-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_gem.rb
More file actions
51 lines (40 loc) · 1.63 KB
/
test_gem.rb
File metadata and controls
51 lines (40 loc) · 1.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/usr/bin/env ruby
# frozen_string_literal: true
# This is a simple script to test the PersianCalender gem
# Run it with: ruby test_gem.rb
require_relative "lib/persian_calender"
puts "Testing PersianCalender gem..."
puts "==============================="
# Create a Persian date
persian_date = PersianCalender.new(1402, 12, 15)
puts "Created Persian date: #{persian_date.to_s}"
# Test different formats
puts "Default format: #{persian_date.to_s}"
puts "Short format: #{persian_date.to_s(format: :short)}"
puts "Long format: #{persian_date.to_s(format: :long)}"
puts "Long English format: #{persian_date.to_s(format: :long_en)}"
# Convert to Gregorian
gregorian = persian_date.to_gregorian
puts "\nConverted to Gregorian: #{gregorian[:year]}-#{gregorian[:month]}-#{gregorian[:day]}"
# Convert from Gregorian to Persian
gregorian_year = 2024
gregorian_month = 3
gregorian_day = 5
persian_from_gregorian = PersianCalender.from_gregorian(gregorian_year, gregorian_month, gregorian_day)
puts "Converted from Gregorian (#{gregorian_year}-#{gregorian_month}-#{gregorian_day}): #{persian_from_gregorian.to_s}"
# Add days
days_to_add = 10
new_date = persian_date.add_days(days_to_add)
puts "\nAdded #{days_to_add} days to #{persian_date.to_s}: #{new_date.to_s}"
# Test month names
puts "\nMonth names:"
(1..12).each do |month|
date = PersianCalender.new(1402, month, 1)
puts "Month #{month}: #{date.month_name} (#{date.month_name(english: true)})"
end
# Test leap year
puts "\nLeap year test:"
[1399, 1400, 1403, 1404].each do |year|
puts "Year #{year} is#{PersianCalender.leap_year?(year) ? '' : ' not'} a leap year"
end
puts "\nTest completed successfully!"