diff options
author | tadf <tadf@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-09-23 10:33:27 +0000 |
---|---|---|
committer | tadf <tadf@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-09-23 10:33:27 +0000 |
commit | 8b54d5812ca4d42f2fe2c53f2b29640ce22d09c3 (patch) | |
tree | 38bfaa790495f320a25a1cd1d3707983ff66bebe /test/ruby/test_rational.rb | |
parent | 455fbd2373cfc63b21c4fa2fcae4806710438fa9 (diff) | |
download | ruby-8b54d5812ca4d42f2fe2c53f2b29640ce22d09c3.tar.gz |
* complex.c (nucomp_s_canonicalize_internal): does no apply
canonicalization rule anymore.
* rational.c (nurat_s_canonicalize_internal(_no_reduce)?): ditto.
* complex.c: removed class method new! and new.
* rational.c: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19483 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/ruby/test_rational.rb')
-rw-r--r-- | test/ruby/test_rational.rb | 152 |
1 files changed, 21 insertions, 131 deletions
diff --git a/test/ruby/test_rational.rb b/test/ruby/test_rational.rb index 7f75584e0e..8b0f057bc9 100644 --- a/test/ruby/test_rational.rb +++ b/test/ruby/test_rational.rb @@ -13,18 +13,14 @@ class Rational_Test < Test::Unit::TestCase end def test_ratsub - c = RationalSub.__send__(:new, 1) - cc = RationalSub.__send__(:convert, 1) + c = RationalSub.__send__(:convert, 1) assert_kind_of(Numeric, c) - assert_kind_of(Numeric, cc) if @unify assert_instance_of(Fixnum, c) - assert_instance_of(Fixnum, cc) else assert_instance_of(RationalSub, c) - assert_instance_of(RationalSub, cc) c2 = c + 1 assert_instance_of(RationalSub, c2) @@ -81,150 +77,53 @@ class Rational_Test < Test::Unit::TestCase assert_instance_of(String, c.to_s) end - def test_new_bang # no unify & no reduce - assert_instance_of(Rational, Rational.__send__(:new!, 2,1)) - assert_equal([2,1], Rational.__send__(:new!, 2,1). - instance_eval{[numerator, denominator]}) - assert_equal([2,4], Rational.__send__(:new!, 2,4). - instance_eval{[numerator, denominator]}) - assert_equal([-2,4], Rational.__send__(:new!, -2,4). - instance_eval{[numerator, denominator]}) - assert_equal([-2,4], Rational.__send__(:new!, 2,-4). - instance_eval{[numerator, denominator]}) - assert_equal([2,4], Rational.__send__(:new!, -2,-4). - instance_eval{[numerator, denominator]}) - - # to_i - assert_equal([2,1], Rational.__send__(:new!, Rational(2)). - instance_eval{[numerator, denominator]}) - assert_equal([2,3], Rational.__send__(:new!, Rational(2), Rational(3)). - instance_eval{[numerator, denominator]}) - assert_equal([2,3], Rational.__send__(:new!, 2, Rational(3)). - instance_eval{[numerator, denominator]}) - - assert_equal([1,1], Rational.__send__(:new!, 1.1). - instance_eval{[numerator, denominator]}) - assert_equal([-1,1], Rational.__send__(:new!, -1.1). - instance_eval{[numerator, denominator]}) - assert_equal([1,1], Rational.__send__(:new!, '1'). - instance_eval{[numerator, denominator]}) - assert_equal([0,1], Rational.__send__(:new!, nil). - instance_eval{[numerator, denominator]}) - - assert_raise(ZeroDivisionError){Rational.__send__(:new!, 1, 0)} - end - -=begin - def test_reduce - if @unify - assert_instance_of(Fixnum, Rational.__send__(:reduce, 2,1)) - else - assert_instance_of(Rational, Rational.__send__(:reduce, 2,1)) - assert_instance_of(Rational, Rational.__send__(:reduce, 2,1)) - end - assert_equal([2,1], Rational.__send__(:reduce, 2,1). - instance_eval{[numerator, denominator]}) - assert_equal([1,2], Rational.__send__(:reduce, 2,4). - instance_eval{[numerator, denominator]}) - assert_equal([-1,2], Rational.__send__(:reduce, -2,4). - instance_eval{[numerator, denominator]}) - assert_equal([-1,2], Rational.__send__(:reduce, 2,-4). - instance_eval{[numerator, denominator]}) - assert_equal([1,2], Rational.__send__(:reduce, -2,-4). - instance_eval{[numerator, denominator]}) - - assert_raise(ArgumentError){Rational.__send__(:reduce, Rational(1,2),2)} - assert_raise(ArgumentError){Rational.__send__(:reduce, 2,Rational(1,2))} - assert_raise(ArgumentError){Rational. - __send__(:reduce, Rational(1,2),Rational(1,2))} - - assert_raise(ArgumentError){Rational.__send__(:reduce, 1.1)} - assert_raise(ArgumentError){Rational.__send__(:reduce, -1.1)} - assert_raise(ArgumentError){Rational.__send__(:reduce, '1')} - assert_raise(ArgumentError){Rational.__send__(:reduce, nil)} - end -=end - - def test_new - if @unify - assert_instance_of(Fixnum, Rational.__send__(:new, 2,1)) - else - assert_instance_of(Rational, Rational.__send__(:new, 2,1)) - assert_equal([2,1], Rational.__send__(:new, 2,1). - instance_eval{[numerator, denominator]}) - end - assert_equal([1,2], Rational.__send__(:new, 2,4). - instance_eval{[numerator, denominator]}) - assert_equal([-1,2], Rational.__send__(:new, -2,4). - instance_eval{[numerator, denominator]}) - assert_equal([-1,2], Rational.__send__(:new, 2,-4). - instance_eval{[numerator, denominator]}) - assert_equal([1,2], Rational.__send__(:new, -2,-4). - instance_eval{[numerator, denominator]}) - - assert_raise(ArgumentError){Rational.__send__(:new, Rational(1,2),2)} - assert_raise(ArgumentError){Rational.__send__(:new, 2,Rational(1,2))} - assert_raise(ArgumentError){Rational.__send__(:new, Rational(1,2),Rational(1,2))} - - assert_raise(ArgumentError){Rational.__send__(:new, 1.1)} - assert_raise(ArgumentError){Rational.__send__(:new, -1.1)} - assert_raise(ArgumentError){Rational.__send__(:new, '1')} - assert_raise(ArgumentError){Rational.__send__(:new, nil)} -=begin - assert_raise(ArgumentError){Rational.__send__(:new, Rational(1))} - if @complex - assert_raise(ArgumentError){Rational.__send__(:new, Complex(1))} - end -=end - end - def test_conv c = Rational(0,1) - assert_equal(Rational.__send__(:new, 0,1), c) + assert_equal(Rational(0,1), c) c = Rational(2**32, 2**32) - assert_equal(Rational.__send__(:new, 2**32,2**32), c) + assert_equal(Rational(2**32,2**32), c) assert_equal([1,1], [c.numerator,c.denominator]) c = Rational(-2**32, 2**32) - assert_equal(Rational.__send__(:new, -2**32,2**32), c) + assert_equal(Rational(-2**32,2**32), c) assert_equal([-1,1], [c.numerator,c.denominator]) c = Rational(2**32, -2**32) - assert_equal(Rational.__send__(:new, 2**32,-2**32), c) + assert_equal(Rational(2**32,-2**32), c) assert_equal([-1,1], [c.numerator,c.denominator]) c = Rational(-2**32, -2**32) - assert_equal(Rational.__send__(:new, -2**32,-2**32), c) + assert_equal(Rational(-2**32,-2**32), c) assert_equal([1,1], [c.numerator,c.denominator]) c = Rational(Rational(1,2),2) - assert_equal(Rational.__send__(:new, 1,4), c) + assert_equal(Rational(1,4), c) c = Rational(2,Rational(1,2)) - assert_equal(Rational.__send__(:new, 4), c) + assert_equal(Rational(4), c) c = Rational(Rational(1,2),Rational(1,2)) - assert_equal(Rational.__send__(:new, 1), c) + assert_equal(Rational(1), c) if @complex && !@keiju c = Rational(Complex(1,2),2) - assert_equal(Complex.__send__(:new, Rational(1,2),1), c) + assert_equal(Complex(Rational(1,2),1), c) c = Rational(2,Complex(1,2)) - assert_equal(Complex.__send__(:new, Rational(2,5),Rational(-4,5)), c) + assert_equal(Complex(Rational(2,5),Rational(-4,5)), c) c = Rational(Complex(1,2),Complex(1,2)) - assert_equal(Rational.__send__(:new, 1), c) + assert_equal(Rational(1), c) end - assert_equal(Rational.__send__(:new, 3),Rational(3)) - assert_equal(Rational.__send__(:new, 1),Rational(3,3)) + assert_equal(Rational(3),Rational(3)) + assert_equal(Rational(1),Rational(3,3)) assert_equal(3.3.to_r,Rational(3.3)) assert_equal(1,Rational(3.3,3.3)) - assert_equal(Rational.__send__(:new, 3),Rational('3')) - assert_equal(Rational.__send__(:new, 1),Rational('3.0','3.0')) - assert_equal(Rational.__send__(:new, 1),Rational('3/3','3/3')) + assert_equal(Rational(3),Rational('3')) + assert_equal(Rational(1),Rational('3.0','3.0')) + assert_equal(Rational(1),Rational('3/3','3/3')) assert_raise(ArgumentError){Rational(nil)} assert_raise(ArgumentError){Rational('')} assert_raise(ArgumentError){Rational(Object.new)} @@ -243,22 +142,22 @@ class Rational_Test < Test::Unit::TestCase assert_equal(4, c.numerator) assert_equal(5, c.denominator) - c = Rational.__send__(:new, 4) + c = Rational(4) assert_equal(4, c.numerator) assert_equal(1, c.denominator) - c = Rational.__send__(:new, 4,5) + c = Rational(4,5) assert_equal(4, c.numerator) assert_equal(5, c.denominator) - c = Rational.__send__(:new!, 4) + c = Rational(4) assert_equal(4, c.numerator) assert_equal(1, c.denominator) - c = Rational.__send__(:new!, 4,5) + c = Rational(4,5) assert_equal(4, c.numerator) assert_equal(5, c.denominator) @@ -790,16 +689,7 @@ class Rational_Test < Test::Unit::TestCase def test_equal assert(Rational(1,1) == Rational(1)) - assert(Rational(1,1) == Rational.__send__(:new, 1)) - assert(Rational(1,1) == Rational.__send__(:new, 1,1)) - assert(Rational(1,1) == Rational.__send__(:new!, 1)) - assert(Rational(1,1) == Rational.__send__(:new!, 1,1)) - assert(Rational(-1,1) == Rational(-1)) - assert(Rational(-1,1) == Rational.__send__(:new, -1)) - assert(Rational(-1,1) == Rational.__send__(:new, -1,1)) - assert(Rational(-1,1) == Rational.__send__(:new!, -1)) - assert(Rational(-1,1) == Rational.__send__(:new!, -1,1)) assert_equal(false, Rational(2,1) == Rational(1)) assert_equal(true, Rational(2,1) != Rational(1)) |