[248] | 1 | require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
---|
| 2 | include OpenEHR::RM::DataTypes::Quantity
|
---|
| 3 |
|
---|
| 4 | describe DvAmount do
|
---|
| 5 | before(:each) do
|
---|
| 6 | @dv_amount = DvAmount.new(:magnitude => 2,
|
---|
| 7 | :accuracy => 100,
|
---|
| 8 | :accuracy_percent => true)
|
---|
| 9 | end
|
---|
| 10 |
|
---|
| 11 | it 'should be an instance of DvAmount' do
|
---|
| 12 | @dv_amount.should be_an_instance_of DvAmount
|
---|
| 13 | end
|
---|
| 14 |
|
---|
| 15 | it 's magnitude should be equal 2' do
|
---|
| 16 | @dv_amount.magnitude.should be_equal 2
|
---|
| 17 | end
|
---|
| 18 |
|
---|
| 19 | it 's accuracy should be 100 percent' do
|
---|
| 20 | @dv_amount.accuracy.should be_equal 100
|
---|
| 21 | end
|
---|
| 22 |
|
---|
| 23 | it 's accuracy_is_percent should be true' do
|
---|
| 24 | @dv_amount.accuracy_is_percent?.should be_true
|
---|
| 25 | end
|
---|
| 26 |
|
---|
| 27 | it 'should has an instance with nil accuracy' do
|
---|
| 28 | dv_amount = DvAmount.new(:magnitude => 1)
|
---|
| 29 | dv_amount.should be_an_instance_of DvAmount
|
---|
| 30 | end
|
---|
| 31 |
|
---|
| 32 | it 'should be 3 if +2 magnitude DvAmount' do
|
---|
| 33 | dv_amount4 = @dv_amount + DvAmount.new(:magnitude => 2)
|
---|
| 34 | dv_amount4.magnitude.should == 4
|
---|
| 35 | end
|
---|
| 36 |
|
---|
| 37 | it 'should be -1 if - 3 magnitude DvAmount' do
|
---|
| 38 | dv_amount_1 = @dv_amount - DvAmount.new(:magnitude => 3)
|
---|
| 39 | dv_amount_1.magnitude.should == -1
|
---|
| 40 | end
|
---|
| 41 |
|
---|
| 42 | it 'should be type mismatch' do
|
---|
| 43 | lambda {
|
---|
| 44 | @dv_amount + 1
|
---|
| 45 | }.should raise_error ArgumentError
|
---|
| 46 | end
|
---|
| 47 |
|
---|
| 48 | it 'should not raise ArgumentError' do
|
---|
| 49 | lambda {
|
---|
| 50 | @dv_amount.set_accuracy(0, true)
|
---|
| 51 | }.should_not raise_error ArgumentError
|
---|
| 52 | end
|
---|
| 53 | it 'should not raise ArgumentError' do
|
---|
| 54 | lambda {
|
---|
| 55 | @dv_amount.set_accuracy(50, true)
|
---|
| 56 | }.should_not raise_error ArgumentError
|
---|
| 57 | end
|
---|
| 58 |
|
---|
| 59 | it 'should not raise ArgumentError' do
|
---|
| 60 | lambda {
|
---|
| 61 | @dv_amount.set_accuracy(100, true)
|
---|
| 62 | }.should_not raise_error ArgumentError
|
---|
| 63 | end
|
---|
| 64 |
|
---|
| 65 | it 'should raise ArgumentError with invaild accuracy' do
|
---|
| 66 | lambda {
|
---|
| 67 | @dv_amount.set_accuracy(-0.01, true)
|
---|
| 68 | }.should raise_error ArgumentError
|
---|
| 69 | end
|
---|
| 70 |
|
---|
| 71 | it 'should raise ArgumentError with invaild accuracy' do
|
---|
| 72 | lambda {
|
---|
| 73 | @dv_amount.set_accuracy(100.1, true)
|
---|
| 74 | }.should raise_error ArgumentError
|
---|
| 75 | end
|
---|
| 76 |
|
---|
| 77 | it 'should not raise ArgumentError' do
|
---|
| 78 | lambda {
|
---|
| 79 | @dv_amount.set_accuracy(0, false)
|
---|
| 80 | }.should_not raise_error ArgumentError
|
---|
| 81 | end
|
---|
| 82 | it 'should not raise ArgumentError' do
|
---|
| 83 | lambda {
|
---|
| 84 | @dv_amount.set_accuracy(0.5, false)
|
---|
| 85 | }.should_not raise_error ArgumentError
|
---|
| 86 | end
|
---|
| 87 |
|
---|
| 88 | it 'should not raise ArgumentError' do
|
---|
| 89 | lambda {
|
---|
| 90 | @dv_amount.set_accuracy(1.0, false)
|
---|
| 91 | }.should_not raise_error ArgumentError
|
---|
| 92 | end
|
---|
| 93 |
|
---|
| 94 | it 'should raise ArgumentError with invaild accuracy' do
|
---|
| 95 | lambda {
|
---|
| 96 | @dv_amount.set_accuracy(-0.01, false)
|
---|
| 97 | }.should raise_error ArgumentError
|
---|
| 98 | end
|
---|
| 99 |
|
---|
| 100 | it 'should raise ArgumentError with invaild accuracy' do
|
---|
| 101 | lambda {
|
---|
| 102 | @dv_amount.set_accuracy(1.01, false)
|
---|
| 103 | }.should raise_error ArgumentError
|
---|
| 104 | end
|
---|
| 105 | end
|
---|