Changeset 145 for ruby/trunk/lib
- Timestamp:
- Jun 23, 2009, 8:00:51 PM (15 years ago)
- Location:
- ruby/trunk/lib/models
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
ruby/trunk/lib/models/rm/data_types/quantity.rb
r144 r145 56 56 57 57 class DV_Quantified < DV_Ordered 58 attr_reader :magnitude, : accuracy, :magnitude_status58 attr_reader :magnitude, :magnitude_status, :accuracy 59 59 60 60 def initialize(magnitude, magnitude_status=nil, … … 165 165 166 166 class DV_Amount < DV_Quantified 167 attr_reader :accuracy, :accuracy_is_percent 168 169 def infix(dv_amount, op) 170 raise NotImplementError, 'infix must be implemented' 171 end 172 173 def accuracy=(accuracy) 174 raise ArgumentError, 'accuracy invalid' 167 attr_reader :accuracy_is_percent 168 def initialize(magnitude, magnitude_status=nil, accuracy=nil, 169 accuracy_percent=nil, normal_range=nil, 170 normal_status = nil, other_reference_ranges=nil) 171 super(magnitude, magnitude_status, normal_range, 172 normal_status, other_reference_ranges) 173 set_accuracy(accuracy, accuracy_percent) unless accuracy.nil? 174 end 175 def +(other) 176 raise NotImplementError, '+ operator must be overloaded' 177 end 178 179 def -(other) 180 raise NotImplementError, '- operator must be overloaded' 181 end 182 183 def set_accuracy(accuracy, accuracy_percent) 184 if accuracy_percent 185 raise ArgumentError, 'accuracy invalid' if accuracy < 0.0 || accuracy > 100.0 186 else 187 raise ArgumentError, 'accuracy invaild' if accuracy < 0.0 || accuracy > 1.0 188 end 189 @accuracy, @accuracy_percent = accuracy, accuracy_percent 190 end 191 192 def accuracy_is_percent? 193 return @accuracy_percent 175 194 end 176 195 end -
ruby/trunk/lib/models/tests/rm/test_data_types.rb
r144 r145 180 180 @dv_quantified = OpenEHR::RM::Data_Types::Quantity::DV_Quantified.new(1,'=')} 181 181 assert_nothing_raised(Exception){ 182 @dv_amount = OpenEHR::RM::Data_Types::Quantity::DV_Amount.new( 1)}183 assert_nothing_raised(Exception){ 184 @dv_quantity = OpenEHR::RM::Data_Types::Quantity::DV_Quantity.new( 1)}182 @dv_amount = OpenEHR::RM::Data_Types::Quantity::DV_Amount.new(2,'<')} 183 assert_nothing_raised(Exception){ 184 @dv_quantity = OpenEHR::RM::Data_Types::Quantity::DV_Quantity.new(3,'~')} 185 185 end 186 186 … … 247 247 248 248 def test_dv_amount 249 249 assert_equal 2, @dv_amount.magnitude 250 assert_equal '<', @dv_amount.magnitude_status 251 assert @dv_amount.accuracy_unknown? 252 assert_nothing_raised(Exception){@dv_amount.set_accuracy(50,true)} 253 assert_equal 50, @dv_amount.accuracy 254 assert @dv_amount.accuracy_is_percent? 255 assert_nothing_raised(Exception){@dv_amount.set_accuracy(0.3, false)} 256 assert_equal 0.3, @dv_amount.accuracy 257 assert !@dv_amount.accuracy_is_percent? 258 assert !@dv_amount.accuracy_unknown? 250 259 end 251 260
Note:
See TracChangeset
for help on using the changeset viewer.