source: ruby/branches/0.5/test/unit/open_ehr/rm/data_types/quantity/date_time_test.rb@ 322

Last change on this file since 322 was 322, checked in by KOBAYASHI, Shinji, 15 years ago

common/generic near completed

File size: 3.7 KB
Line 
1require 'test/unit'
2
3class DateTimeTest < Test::Unit::TestCase
4# include OpenEhr::RM::DataTypes::Quantity::DateTime
5 def setup
6 assert_nothing_raised(Exception){
7 @dv_temporal = OpenEhr::RM::DataTypes::Quantity::DateTime::DvTemporal.new('2008')}
8 assert_nothing_raised(Exception){
9 @dv_date = OpenEhr::RM::DataTypes::Quantity::DateTime::DvDate.new('2009-06-29')}
10 assert_nothing_raised(Exception){
11 @dv_time = OpenEhr::RM::DataTypes::Quantity::DateTime::DvTime.new('12:34:56.78')}
12 assert_nothing_raised(Exception){
13 @dv_date_time = OpenEhr::RM::DataTypes::Quantity::DateTime::DvDateTime.new('2009-06-29T12:34:56.78')}
14 assert_nothing_raised(Exception){
15 @dv_duration = OpenEhr::RM::DataTypes::Quantity::DateTime::DvDuration.new('P1Y2M3W4DT5H6M7.8S')}
16 end
17
18 def test_init
19 assert_instance_of OpenEhr::RM::DataTypes::Quantity::DateTime::DvTemporal, @dv_temporal
20 assert_instance_of OpenEhr::RM::DataTypes::Quantity::DateTime::DvDate, @dv_date
21 assert_instance_of OpenEhr::RM::DataTypes::Quantity::DateTime::DvTime, @dv_time
22 assert_instance_of OpenEhr::RM::DataTypes::Quantity::DateTime::DvDateTime, @dv_date_time
23 assert_instance_of OpenEhr::RM::DataTypes::Quantity::DateTime::DvDuration, @dv_duration
24 end
25
26 def test_dv_temporal
27 assert_equal '2008', @dv_temporal.value
28 assert_raise(NotImplementedError){@dv_temporal.diff('2009')}
29 end
30
31 def test_dv_date
32 assert_equal '2009-06-29', @dv_date.value
33 assert_equal 2009, @dv_date.year
34 assert_equal 6, @dv_date.month
35 assert_equal 29, @dv_date.day
36 assert_equal b733954, @dv_date.magnitude
37 date2 = OpenEhr::RM::DataTypes::Quantity::DateTime::DvDate.new('2009-07-08')
38 assert_equal 'P0Y0M1W9D',@dv_date.diff(date2).value
39 date2 = OpenEhr::RM::DataTypes::Quantity::DateTime::DvDate.new('2004-02-28')
40 date3 = OpenEhr::RM::DataTypes::Quantity::DateTime::DvDate.new('2004-03-01')
41 assert_equal 'P0Y0M0W2D', date2.diff(date3).value
42 date4 = OpenEhr::RM::DataTypes::Quantity::DateTime::DvDate.new('2003-12-31')
43 assert_equal 'P0Y1M4W28D', date2.diff(date4).value
44 birthday = OpenEhr::RM::DataTypes::Quantity::DateTime::DvDate.new('1970-04-19')
45 assert_equal 'P39Y2M1W11D', birthday.diff(OpenEhr::RM::DataTypes::Quantity::DateTime::DvDate.new('2009-06-30')).value
46 end
47
48 def test_dv_time
49 assert_equal '12:34:56.78', @dv_time.value
50 assert_equal 12, @dv_time.hour
51 assert_equal 34, @dv_time.minute
52 assert_equal 56, @dv_time.second
53 assert_equal 0.78, @dv_time.fractional_second
54 assert_equal((12*60*60 + 34 * 60 + 56 + 0.78), @dv_time.magnitude)
55 dv_time2 = OpenEhr::RM::DataTypes::Quantity::DateTime::DvTime.new('15:36:48.05')
56 assert_equal 'P0Y0M0W0DT3H1M51.27S', @dv_time.diff(dv_time2).value
57 end
58
59 def test_dv_date_time
60 assert_equal '2009-06-29T12:34:56.78', @dv_date_time.value
61 assert_equal 2009, @dv_date_time.year
62 assert_equal 6, @dv_date_time.month
63 assert_equal 29, @dv_date_time.day
64 assert_equal 12, @dv_date_time.hour
65 assert_equal 34, @dv_date_time.minute
66 assert_equal 56, @dv_date_time.second
67 assert_equal 0.78, @dv_date_time.fractional_second
68 dv_date_time2 = OpenEhr::RM::DataTypes::Quantity::DateTime::DvDateTime.new('1970-04-19T13:55:30.12')
69 assert_equal 'P39Y2M1W9DT22H39M26.66S', @dv_date_time.diff(dv_date_time2).value
70 end
71
72 def test_dv_duration
73 assert_equal 'P1Y2M3W4DT5H6M7.8S', @dv_duration.value
74 assert_equal 1, @dv_duration.years
75 assert_equal 2, @dv_duration.months
76 assert_equal 3, @dv_duration.weeks
77 assert_equal 4, @dv_duration.days
78 assert_equal 5, @dv_duration.hours
79 assert_equal 6, @dv_duration.minutes
80 assert_equal 7, @dv_duration.seconds
81 assert_equal 0.8, @dv_duration.fractional_second
82 end
83end
Note: See TracBrowser for help on using the repository browser.