Changeset 145 for ruby/trunk


Ignore:
Timestamp:
Jun 23, 2009, 8:00:51 PM (15 years ago)
Author:
KOBAYASHI, Shinji
Message:

ref #50
DV_Amount finished

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

Legend:

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

    r144 r145  
    5656
    5757        class DV_Quantified < DV_Ordered
    58           attr_reader :magnitude, :accuracy, :magnitude_status
     58          attr_reader :magnitude, :magnitude_status, :accuracy
    5959
    6060          def initialize(magnitude, magnitude_status=nil,
     
    165165
    166166        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
    175194          end
    176195        end
  • ruby/trunk/lib/models/tests/rm/test_data_types.rb

    r144 r145  
    180180      @dv_quantified = OpenEHR::RM::Data_Types::Quantity::DV_Quantified.new(1,'=')}
    181181    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,'~')}
    185185   end
    186186
     
    247247
    248248  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?
    250259  end
    251260
Note: See TracChangeset for help on using the changeset viewer.