summaryrefslogtreecommitdiffstats
path: root/spec/age.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/age.rb')
-rw-r--r--spec/age.rb88
1 files changed, 88 insertions, 0 deletions
diff --git a/spec/age.rb b/spec/age.rb
new file mode 100644
index 0000000..99a09c7
--- /dev/null
+++ b/spec/age.rb
@@ -0,0 +1,88 @@
+#! /usr/bin/env ruby
+# -*- coding: UTF-8 -*-
+
+require 'ayk/age'
+#
+def age_spec(birth,dy,dm,dd)
+ at = ((birth>>(12*dy))>>dm)+dd
+# puts at.strftime "%d.%m.%Y"
+ y,m,d,h,i,s = birth.age(at)
+# puts "#{y} #{m} #{d}"
+ y.should eql dy
+ m.should eql dm
+ d.should eql dd
+end
+#
+describe DateTime do
+ #
+ before(:all) do
+ @b = DateTime.civil 2009,7,27,4,40,0 # Róisín Mannion-Zurcher [IRL|CH] )
+ end
+ it "should pass time checks" do
+ y,m,d,h,i,s = @b.age( DateTime.civil(2009,7,27,4,40,0) )
+ h.should eql 0
+ i.should eql 0
+ s.should eql 0
+ y,m,d,h,i,s = @b.age( DateTime.civil(2009,7,27,7,2,2) )
+ h.should eql 2
+ i.should eql 22
+ s.should eql 2
+ end
+ it "simple checks" do
+ age_spec(@b,0,0,0)
+ age_spec(@b,0,0,1)
+ age_spec(@b,0,1,0)
+ age_spec(@b,0,1,1)
+ age_spec(@b,1,0,0)
+ age_spec(@b,1,0,1)
+ age_spec(@b,1,1,0)
+ age_spec(@b,1,1,1)
+ end
+ it "should pass day computations" do
+ at = ((@b>>(12*0))>>15)+3
+ y,m,d,h,i,s = @b.age(at)
+ y.should eql 1
+ m.should eql 3
+ d.should eql 3
+ at = ((@b>>(12*0))>>1)+366
+ y,m,d,h,i,s = @b.age(at)
+ y.should eql 1
+ m.should eql 1
+ d.should eql 1
+ at = ((@b>>(12*5))>>10)+15
+ y,m,d,h,i,s = @b.age(at)
+ y.should eql 5
+ m.should eql 10
+ d.should eql 15
+ at = ((@b>>(12*0))>>0)+750
+ y,m,d,h,i,s = @b.age(at)
+ y.should eql 2
+ m.should eql 0
+ d.should eql 20
+ end
+ it "should pass more complicated one" do
+ at = DateTime.civil 2010,7,13,4,40,0 # Corina Mannion
+ y,m,d,h,i,s = @b.age(at)
+ y.should eql 0
+ m.should eql 11
+ d.should eql 16
+ h.should eql 0
+ i.should eql 0
+ s.should eql 0
+ at = DateTime.civil 2010,7,13,0,0,0 # Corina Mannion
+ y,m,d,h,i,s = @b.age(at)
+ y.should eql 0
+ m.should eql 11
+ d.should eql 15
+ h.should eql 19
+ i.should eql 20
+ s.should eql 0
+ end
+end
+
+
+#(1..365).each do |n|
+# dt = birth.age( birth+n)
+# puts "#{n} => #{dt[1]} #{dt[2]}"
+#end
+