Class: Interval::TestSimpleArithmetic

Inherits:
Test::Unit::TestCase
  • Object
show all
Defined in:
lib/interval.rb

Overview

Tests the arithmetic of Interval::Simple.

Instance Method Summary collapse

Instance Method Details

#test_dsubObject



847
848
849
850
851
852
# File 'lib/interval.rb', line 847

def test_dsub
  assert_equal(Interval[2], Interval[3,4].dsub(Interval[1,2]))
  assert_equal(Interval[3,4], Interval[4,6].dsub(Interval[1,2]))
  assert_equal(Interval[], Interval[3,4].dsub(Interval[0,2]))

end

#test_inverseObject



863
864
865
866
867
868
# File 'lib/interval.rb', line 863

def test_inverse
  assert_equal(Interval[0.5,1],Interval[1,2].inverse)
  assert_equal(Interval[-1,-0.5],(-Interval[1,2]).inverse)
  assert_equal(Interval[[-Infinity,-1],[0.5,+Infinity]],Interval[-1,2].inverse)
  assert_equal(Interval[[-Infinity],[1,+Infinity]],Interval[0,1].inverse)
end

#test_minusObject



843
844
845
# File 'lib/interval.rb', line 843

def test_minus
  assert_equal(Interval[-2,-1], -Interval[1,2])
end

#test_plusObject



835
836
837
838
839
840
841
# File 'lib/interval.rb', line 835

def test_plus
  assert_equal(Interval[-Infinity,+Infinity], Interval[-Infinity] + Interval[Infinity])
  assert_equal(Interval[4,6], Interval[1,2] + Interval[3,4])
  assert_equal(Interval[3,Infinity], Interval[1,Infinity]+Interval[2])
  assert_equal(Interval[-Infinity,+Infinity],Interval[-Infinity,-1] + Interval[2,+Infinity])
  assert_equal(Interval[-Infinity,+Infinity],Interval[-Infinity] + Interval[8,+Infinity])
end

#test_powerObject



870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
# File 'lib/interval.rb', line 870

def test_power
  assert_equal((-Interval[1,2]).inverse, (-Interval[1,2]) ** -1)
  assert_equal(Interval[0,4], Interval[-1,2]**2)
  assert_equal(Interval[-27,8], Interval[-3,2]**3)

  assert_equal(
    Interval[FPU.down{(1/3.0)*(1/3.0)},FPU.up{(1/3.0)*(1/3.0)}],
    (Interval[1]/3.0) ** 2)

  assert_equal(
    Interval[
      FPU.down{(1/3.0)*(1/3.0)*(1/3.0)},
      FPU.up{(1/3.0)*(1/3.0)*(1/3.0)}],
    (Interval[1]/3.0) ** 3)
end

#test_timesObject



854
855
856
857
858
859
860
861
# File 'lib/interval.rb', line 854

def test_times
  assert_equal(Interval[-Infinity,+Infinity],Interval[Infinity] * Interval[0])
  assert_equal(Interval[+Infinity],Interval[Infinity] * Interval[3])
  assert_equal(Interval[-8,+10], Interval[1,2] * Interval[-4,5])
  assert_equal(Interval[3,8], Interval[1,2] * Interval[3,4])
  assert_equal(Interval[-Infinity,+Infinity],Interval[0,1] * Interval[2,Infinity])
  assert_equal(Interval[2, Infinity], Interval[-Infinity,-2] * Interval[-Infinity,-1])
end