Changeset 148 for ruby/trunk


Ignore:
Timestamp:
Jun 29, 2009, 9:38:35 AM (15 years ago)
Author:
KOBAYASHI, Shinji
Message:

fixed #50

Location:
ruby/trunk/lib/models
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • ruby/trunk/lib/models/rm/data_types/quantity.rb

    r147 r148  
    8585          end
    8686
    87           def accuracy=(accuracy)
    88             raise NotImplementedError, 'subclasses need to implemented'
    89           end
    90 
    9187          def accuracy_unknown?
    92             return accuracy.nil?
     88            return @accuracy.nil?
    9389          end
    9490
     
    149145
    150146        class DV_Absolute_Quantity < DV_Quantified
    151           attr_reader :accuracy
     147          attr_accessor :accuracy
     148
     149          def initialize(magnitude, magnitude_status=nil, accuracy=nil,
     150                         normal_range=nil, normal_status = nil,
     151                         other_reference_ranges=nil)
     152            super (magnitude, magnitude_status, normal_range,
     153                   normal_status, other_reference_ranges)
     154            self.accuracy = accuracy
     155          end
    152156
    153157          def add(a_diff)
     
    318322            self.denominator = denominator
    319323            self.precision = precision
     324            self.magnitude_status = magnitude_status
     325            unless accuracy.nil?
     326              set_accuracy(accuracy, accuracy_percent)
     327            else
     328              @accuracy, @accuracy_percent = nil, nil
     329            end
     330            self.normal_range = normal_range
     331            self.normal_status = normal_status
     332            self.other_reference_ranges = other_reference_ranges
    320333          end
    321334
  • ruby/trunk/lib/models/tests/rm/test_data_types.rb

    r147 r148  
    187187    assert_nothing_raised(Exception){
    188188      @dv_proportion = OpenEHR::RM::Data_Types::Quantity::DV_Proportion.new(2,3,0)}
     189    assert_nothing_raised(Exception){
     190      @dv_absolute_quantity = OpenEHR::RM::Data_Types::Quantity::DV_Absolute_Quantity.new(7,'=')}
    189191   end
    190192
     
    201203     assert_instance_of OpenEHR::RM::Data_Types::Quantity::DV_Count, @dv_count
    202204     assert_instance_of OpenEHR::RM::Data_Types::Quantity::DV_Proportion, @dv_proportion
     205     assert_instance_of OpenEHR::RM::Data_Types::Quantity::DV_Absolute_Quantity, @dv_absolute_quantity
    203206  end
    204207
     
    250253    assert_nothing_raised(Exception){@dv_quantified.magnitude_status = nil}
    251254    assert_equal '=',  @dv_quantified.magnitude_status
     255  end
     256
     257  def test_dv_absolute_quantity
     258    assert_equal 7, @dv_absolute_quantity.magnitude
     259    assert @dv_absolute_quantity.accuracy_unknown?
     260    assert_nothing_raised(Exception){@dv_absolute_quantity.accuracy = 0.5}
     261    assert_equal 0.5, @dv_absolute_quantity.accuracy
     262    assert !@dv_absolute_quantity.accuracy_unknown?
    252263  end
    253264
Note: See TracChangeset for help on using the changeset viewer.