- Timestamp:
- Jun 22, 2009, 3:52:37 PM (15 years ago)
- Location:
- ruby/trunk/lib/models
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
ruby/trunk/lib/models/Rakefile
r135 r142 1 1 require 'rubygems' 2 Gem::manage_gems2 #Gem::manage_gems 3 3 require 'rake' 4 4 require 'rake/testtask' -
ruby/trunk/lib/models/rm/data_types/quantity.rb
r141 r142 46 46 end 47 47 48 def is_strict ry_comparable_to?(other)48 def is_strictly_comparable_to?(other) 49 49 raise NotImplementedError, 'this method should be implemented' 50 50 end … … 54 54 55 55 end 56 56 57 57 class DV_Quantified < DV_Ordered 58 58 … … 76 76 77 77 class DV_Ordinal < DV_Ordered 78 attr_reader :value, :symbol 79 def initialize(value, symbol, normal_range=nil, normal_status = nil, 80 other_reference_ranges=nil) 78 attr_reader :value, :symbol, :limits 79 80 def initialize(value, symbol, limits=nil, normal_range=nil, 81 normal_status = nil, other_reference_ranges=nil) 82 self.value = value 83 self.symbol = symbol 84 self.limits = limits 85 super(normal_range, normal_status, other_reference_ranges) 81 86 end 82 87 83 def is_strictly_comparable_to? 88 def value=(value) 89 raise ArgumentError, 'value should not be nil' if value.nil? 90 @value = value 91 end 84 92 93 def symbol=(symbol) 94 raise ArgumentError,'symbol should not be nil' if symbol.nil? 95 @symbol = symbol 96 end 97 98 def is_strictly_comparable_to?(others) 99 unless others.instance_of? OpenEHR::RM::Data_Types::Quantity::DV_Ordinal 100 return false 101 end 102 unless others.symbol.defining_code.terminology_id.value == 103 @symbol.defining_code.terminology_id.value 104 return false 105 end 106 return true 85 107 end 86 108 87 109 def <=>(other) 88 110 @value <=> other.value 89 111 end 90 112 91 def limits 92 113 def limits=(limits) 114 unless limits.nil? or limits.meaning.value == 'limits' 115 raise ArgumentError, 'invalid limits' 116 else 117 @limits = limits 118 end 93 119 end 94 120 end -
ruby/trunk/lib/models/rm/data_types/quantity/date_time.rb
r140 r142 43 43 end 44 44 end 45 46 class DV_Interval47 def initialize48 end49 end50 45 end # of Date_Time 51 46 end # of Quantity -
ruby/trunk/lib/models/tests/rm/test_data_types.rb
r141 r142 165 165 @dv_ordered = OpenEHR::RM::Data_Types::Quantity::DV_Ordered.new } 166 166 assert_nothing_raised(Exception){ 167 @dv_interval = OpenEHR::RM::Data_Types::Quantity::D ate_Time::DV_Interval.new}167 @dv_interval = OpenEHR::RM::Data_Types::Quantity::DV_Interval.new(1,10)} 168 168 meaning = OpenEHR::RM::Data_Types::Text::DV_Text.new('normal') 169 169 assert_nothing_raised(Exception){ 170 170 @reference_range = OpenEHR::RM::Data_Types::Quantity::Reference_Range.new(meaning)} 171 171 assert_nothing_raised(Exception){ 172 @dv_ordinal = OpenEHR::RM::Data_Types::Quantity::DV_Ordinal.new(1,'+')} 172 terminology = OpenEHR::RM::Support::Identification::Terminology_ID.new('urine', '') 173 code_phrase = OpenEHR::RM::Data_Types::Text::Code_Phrase.new('protein',terminology) 174 urinary_protein = OpenEHR::RM::Data_Types::Text::DV_Coded_Text.new('+', code_phrase) 175 @dv_ordinal = OpenEHR::RM::Data_Types::Quantity::DV_Ordinal.new(1, urinary_protein)} 173 176 assert_nothing_raised(Exception){ 174 177 @dv_quantified = OpenEHR::RM::Data_Types::Quantity::DV_Quantified.new } … … 182 185 assert_instance_of OpenEHR::RM::Data_Types::Quantity::DV_Ordered, @dv_ordered 183 186 assert_instance_of OpenEHR::RM::Data_Types::Quantity::DV_Quantified, @dv_quantified 184 assert_instance_of OpenEHR::RM::Data_Types::Quantity::D ate_Time::DV_Interval, @dv_interval187 assert_instance_of OpenEHR::RM::Data_Types::Quantity::DV_Interval, @dv_interval 185 188 assert_instance_of OpenEHR::RM::Data_Types::Quantity::Reference_Range, @reference_range 186 189 … … 206 209 other = OpenEHR::RM::Data_Types::Quantity::DV_Ordered.new 207 210 assert_raise(NotImplementedError){ 208 @dv_ordered.is_strict ry_comparable_to?(other)}211 @dv_ordered.is_strictly_comparable_to?(other)} 209 212 end 210 213 211 214 def test_reference_range 212 215 assert_equal 'normal', @reference_range.meaning.value 216 213 217 end 214 218 … … 226 230 227 231 def test_dv_ordinal 228 232 assert_equal 1, @dv_ordinal.value 233 assert_equal '+', @dv_ordinal.symbol.value 234 assert_raise(ArgumentError){@dv_ordinal.symbol = nil} 235 assert_raise(ArgumentError){@dv_ordinal.value = nil} 236 terminology = OpenEHR::RM::Support::Identification::Terminology_ID.new('urine', '') 237 code_phrase = OpenEHR::RM::Data_Types::Text::Code_Phrase.new('protein',terminology) 238 urinary_protein = OpenEHR::RM::Data_Types::Text::DV_Coded_Text.new('++', code_phrase) 239 assert_nothing_raised(Exception){ 240 @dv_ordinal2 = OpenEHR::RM::Data_Types::Quantity::DV_Ordinal.new(2, urinary_protein)} 241 assert @dv_ordinal.is_strictly_comparable_to?(@dv_ordinal2) 242 assert @dv_ordinal < @dv_ordinal2 243 assert @dv_ordinal2 > @dv_ordinal 244 @dv_ordinal.value = 3 245 assert 3, @dv_ordinal.value 246 assert @dv_ordinal > @dv_ordinal2 247 assert_raise(ArgumentError){@dv_ordinal.limits = @reference_range} 248 meaning = OpenEHR::RM::Data_Types::Text::DV_Text.new('limits') 249 limit_reference_range = OpenEHR::RM::Data_Types::Quantity::Reference_Range.new(meaning) 250 assert_nothing_raised(Exception){@dv_ordinal.limits = limit_reference_range} 251 assert_equal 'limits', @dv_ordinal.limits.meaning.value 229 252 end 230 253
Note:
See TracChangeset
for help on using the changeset viewer.