test/test_hijri.rb in hijri-0.5.0 vs test/test_hijri.rb in hijri-0.6.0
- old
+ new
@@ -6,37 +6,37 @@
def test_version
version = Hijri.const_get('VERSION')
assert(!version.empty?, 'should have a VERSION constant')
end
-
+
def test_hijri_date_to_string
date = Hijri::Date.new 1433, 9, 18
assert_equal "1433-09-18", date.to_s
end
-
+
def test_greo_date_to_hijri
date = Date.new 2014, 12, 7
# switiching between solar calendar and lunar calendar is a bit
# hard and complecated and there is error ratio to it. Because
# of that we accept multiple date as a result.
correct_dates = (14..16).map {|n| "1436-02-#{n}" }
assert_includes correct_dates, date.to_hijri.to_s
end
-
+
def test_hijri_to_greo
h = Hijri::Date.new 1430, 1, 1
g = Date.new 2008, 12, 29
assert_equal(g , h.to_greo)
end
-
+
def test_hijri_date_today
gdate = Date.today
hdate = Hijri::Date.today
assert_equal gdate, hdate.to_greo
end
-
+
def test_hijri_datetime_now_create_datetime_object_with_now_date_and_time
g_datetime = DateTime.now
h_datetime = Hijri::DateTime.now
exact_date = h_datetime.to_greo
@@ -54,11 +54,11 @@
end
def test_comparing_two_hijri_date
date1 = Hijri::Date.new 1435, 1, 1
date2 = Hijri::Date.new 1435, 1, 1
-
+
assert_equal date1, date2
end
def test_comparing_hijri_date_and_greogrian_date
date1 = Hijri::Date.new(1435, 1, 1)
@@ -81,90 +81,90 @@
def test_hijri_datetime_to_string_add_plus_for_zone_equal_0000
datetime = Hijri::DateTime.new 1433, 9, 18, 1, 1, 1, '00:00'
assert_equal "1433-09-18T01:01:01+00:00", datetime.to_s
end
-
+
def test_hijri_date_strftime_shows_hijri_month_names
date = Hijri::Date.new 1436, 2, 21
assert_equal "Safar", date.strftime("%B")
end
def test_hijri_date_strftime_with_no_input
date = Hijri::Date.new 1433, 12, 18
assert_equal "1433-12-18", date.strftime
end
-
+
def test_hijri_datetime_strftime_with_no_input
datetime = Hijri::DateTime.new 1433, 9, 18, 1, 1, 1, '+03:00'
#"1433-09-18T01:01:01+03:00"
assert_equal datetime.to_s, datetime.strftime
end
-
+
def test_hijri_full_arabic_month
date = Hijri::Date.new 1436, 3, 1
assert_equal "Rabia-Awwal", date.strftime('%B')
end
-
+
def test_hijri_short_arabic_month_name
date = Hijri::Date.new 1436, 3, 1
assert_equal "Rabia I", date.strftime('%b')
end
-
+
def test_hijri_full_arabic_day_name
(15..21).each do |day|
date = Hijri::Date.new 1436, 1, day
assert_equal Hijri::Date::DAYNAMES[(day-1)%7], date.strftime('%A')
end
end
def test_hijri_short_arabic_day_name
- (1..7).each do |day|
+ (1..7).each do |day|
date = Hijri::Date.new 1436, 3, day
assert_equal Hijri::Date::ABBR_DAYNAMES[(day+2)%7], date.strftime('%a')
end
end
-
+
def test_hijri_day_of_the_year
date = Hijri::Date.new 1436, 3, 20
assert_equal "079", date.strftime('%j')
end
-
+
def test_hijri_week_number_of_the_year
date = Hijri::Date.new 1436, 3, 20
assert_equal "11", date.strftime('%U')
assert_equal "11", date.strftime('%W')
end
def test_date_change
date = Hijri::Date.new 1436, 3, 20
date_to_be = Hijri::Date.new 1435, 4, 10
-
+
date.change :year => 1435, :month => 4, :day => 10
assert_equal date_to_be, date
end
def test_date_change_with_nil_arguments
date = Hijri::Date.new 1436, 3, 20
date_to_be = Hijri::Date.new 1435, 4, 20
-
+
date.change :year => 1435, :month => 4, :day => nil
assert_equal date_to_be, date
end
def test_datetime_change
datetime = Hijri::DateTime.new(1436, 3, 20, 10, 15, 30)
datetime_to_be = Hijri::DateTime.new(1435, 4, 10, 9, 30, 0)
-
+
datetime.change :year => 1435, :month => 4, :day => 10, :hour => 9, :minute => 30, :second => 0
assert_equal datetime_to_be, datetime
end
def test_datetime_change_with_nil_arguments
datetime = Hijri::DateTime.new(1436, 3, 20, 10, 15, 30)
datetime_to_be = Hijri::DateTime.new(1435, 4, 10, 9, 30, 30)
-
+
datetime.change :year => 1435, :month => 4, :day => 10, :hour => 9, :minute => 30, :second => nil
assert_equal datetime_to_be, datetime
end
def test_initilize_date_with_invalid_arguments
@@ -173,6 +173,38 @@
def test_initilize_datetime_with_invalid_arguments
assert_raises(ArgumentError) { Hijri::DateTime.new(1430, 12, 10, 30, 70) }
end
+ def test_to_hijri_accept_adjust_variable
+ today = Date.today.to_hijri
+ yesterday = Date.today.to_hijri(-1)
+ tomorrow = Date.today.to_hijri(+1)
+
+ assert today > yesterday
+ assert tomorrow > today
+ end
+
+ def test_to_goreg_accept_adjust_variable
+ today = Hijri::Date.today.to_greo
+ yesterday = Hijri::Date.today.to_greo(-1)
+ tomorrow = Hijri::Date.today.to_greo(+1)
+
+ assert today > yesterday
+ assert tomorrow > today
+ end
+
+ def test_resolve_hijri_date_1439_4_12_to_greo_not_raise_error
+ # this to test issue #5 https://github.com/ecleel/hijri/issues/5
+ hdate = Hijri::Date.new(1439, 4, 12)
+ gdate = Date.new(2017, 12, 31)
+ assert_equal gdate, hdate.to_greo
+ end
+
+ # def test_issue_4_of_wrong_conversion
+ # gdate = Date.new 2017, 9, 1
+ # hdate = Hijri::Date.new 1438, 12, 9
+ #
+ # # assert_equal hdate, gdate.to_hijri
+ # assert_equal Hijri::Date.new(1437, 12, 6), Date.new(2016, 9, 9).to_hijri
+ # end
end