[191] | 1 | require 'test/unit'
|
---|
| 2 |
|
---|
| 3 | class 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
|
---|
[322] | 36 | assert_equal b733954, @dv_date.magnitude
|
---|
[191] | 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
|
---|
| 83 | end
|
---|