From c8d302046359ab44a0106145950dde13dc3a2ba9 Mon Sep 17 00:00:00 2001 From: nobu Date: Thu, 16 Mar 2017 00:43:07 +0000 Subject: test_rational.rb: shorten * test/ruby/test_rational.rb (test_parse): reduce repeated arguments. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57983 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/test_rational.rb | 191 +++++++++++++++++++++++---------------------- 1 file changed, 98 insertions(+), 93 deletions(-) (limited to 'test/ruby/test_rational.rb') diff --git a/test/ruby/test_rational.rb b/test/ruby/test_rational.rb index e0cb8db99e..6185611a5c 100644 --- a/test/ruby/test_rational.rb +++ b/test/ruby/test_rational.rb @@ -675,100 +675,105 @@ class Rational_Test < Test::Unit::TestCase end end + def assert_valid_rational(n, d, r) + x = Rational(n, d) + assert_equal(x, r.to_r, "#{r.dump}.to_r") + assert_equal(x, Rational(r), "Rational(#{r.dump})") + end + + def assert_invalid_rational(n, d, r) + x = Rational(n, d) + assert_equal(x, r.to_r, "#{r.dump}.to_r") + assert_raise(ArgumentError, "Rational(#{r.dump})") {Rational(r)} + end + def test_parse - assert_equal(Rational(5), '5'.to_r, "'5'.to_r") - assert_equal(Rational(-5), '-5'.to_r, "'-5'.to_r") - assert_equal(Rational(5,3), '5/3'.to_r, "'5/3'.to_r") - assert_equal(Rational(-5,3), '-5/3'.to_r, "'-5/3'.to_r") - - assert_equal(Rational(5), '5.0'.to_r, "'5.0'.to_r") - assert_equal(Rational(-5), '-5.0'.to_r, "'-5.0'.to_r") - assert_equal(Rational(5,3), '5.0/3'.to_r, "'5.0/3'.to_r") - assert_equal(Rational(-5,3), '-5.0/3'.to_r, "'-5.0/3'.to_r") - - assert_equal(Rational(5), '5e0'.to_r, "'5e0'.to_r") - assert_equal(Rational(-5), '-5e0'.to_r, "'-5e0'.to_r") - assert_equal(Rational(5,3), '5e0/3'.to_r, "'5e0/3'.to_r") - assert_equal(Rational(-5,3), '-5e0/3'.to_r, "'-5e0/3'.to_r") - - assert_equal(Rational(5e1), '5e1'.to_r, "'5e1'.to_r") - assert_equal(Rational(-5e2), '-5e2'.to_r, "'-5e2'.to_r") - assert_equal(Rational(5e3,3), '5e003/3'.to_r, "'5e003/3'.to_r") - assert_equal(Rational(-5e4,3), '-5e004/3'.to_r, "'-5e004/3'.to_r") - - assert_equal(Rational(33,100), '.33'.to_r, "'.33'.to_r") - assert_equal(Rational(33,100), '0.33'.to_r, "'0.33'.to_r") - assert_equal(Rational(-33,100), '-.33'.to_r, "'-.33'.to_r") - assert_equal(Rational(-33,100), '-0.33'.to_r, "'-0.33'.to_r") - assert_equal(Rational(-33,100), '-0.3_3'.to_r, "'-0.3_3'.to_r") - - assert_equal(Rational(1,2), '5e-1'.to_r, "'5e-1'.to_r") - assert_equal(Rational(50), '5e+1'.to_r, "'5e+1'.to_r") - assert_equal(Rational(1,2), '5.0e-1'.to_r, "'5.0e-1'.to_r") - assert_equal(Rational(50), '5.0e+1'.to_r, "'5.0e+1'.to_r") - assert_equal(Rational(50), '5e1'.to_r, "'5e1'.to_r") - assert_equal(Rational(50), '5E1'.to_r, "'5E1'.to_r") - assert_equal(Rational(500), '5e2'.to_r, "'5e2'.to_r") - assert_equal(Rational(5000), '5e3'.to_r, "'5e3'.to_r") - assert_equal(Rational(500000000000), '5e1_1'.to_r, "'5e1_1'.to_r") - - assert_equal(Rational(5), Rational('5'), "Rational('5')") - assert_equal(Rational(-5), Rational('-5'), "Rational('-5')") - assert_equal(Rational(5,3), Rational('5/3'), "Rational('5/3')") - assert_equal(Rational(-5,3), Rational('-5/3'), "Rational('-5/3')") - - assert_equal(Rational(5), Rational('5.0'), "Rational('5.0')") - assert_equal(Rational(-5), Rational('-5.0'), "Rational('-5.0')") - assert_equal(Rational(5,3), Rational('5.0/3'), "Rational('5.0/3')") - assert_equal(Rational(-5,3), Rational('-5.0/3'), "Rational('-5.0/3')") - - assert_equal(Rational(5), Rational('5e0'), "Rational('5e0')") - assert_equal(Rational(-5), Rational('-5e0'), "Rational('-5e0')") - assert_equal(Rational(5,3), Rational('5e0/3'), "Rational('5e0/3')") - assert_equal(Rational(-5,3), Rational('-5e0/3'), "Rational('-5e0/3')") - - assert_equal(Rational(5e1), Rational('5e1'), "Rational('5e1')") - assert_equal(Rational(-5e2), Rational('-5e2'), "Rational('-5e2')") - assert_equal(Rational(5e3,3), Rational('5e003/3'), "Rational('5e003/3')") - assert_equal(Rational(-5e4,3), Rational('-5e004/3'), "Rational('-5e004/3')") - - assert_equal(Rational(33,100), Rational('.33'), "Rational('.33')") - assert_equal(Rational(33,100), Rational('0.33'), "Rational('0.33')") - assert_equal(Rational(-33,100), Rational('-.33'), "Rational('-.33')") - assert_equal(Rational(-33,100), Rational('-0.33'), "Rational('-0.33')") - assert_equal(Rational(-33,100), Rational('-0.3_3'), "Rational('-0.3_3')") - - assert_equal(Rational(1,2), Rational('5e-1'), "Rational('5e-1')") - assert_equal(Rational(50), Rational('5e+1'), "Rational('5e+1')") - assert_equal(Rational(1,2), Rational('5.0e-1'), "Rational('5.0e-1')") - assert_equal(Rational(50), Rational('5.0e+1'), "Rational('5.0e+1')") - assert_equal(Rational(50), Rational('5e1'), "Rational('5e1')") - assert_equal(Rational(50), Rational('5E1'), "Rational('5E1')") - assert_equal(Rational(500), Rational('5e2'), "Rational('5e2')") - assert_equal(Rational(5000), Rational('5e3'), "Rational('5e3')") - assert_equal(Rational(500000000000), Rational('5e1_1'), "Rational('5e1_1')") - - assert_equal(Rational(0), ''.to_r, "''.to_r") - assert_equal(Rational(0), ' '.to_r, "' '.to_r") - assert_equal(Rational(5), "\f\n\r\t\v5\0".to_r, '"\f\n\r\t\v5\0".to_r') - assert_equal(Rational(0), '_'.to_r, "'_'.to_r") - assert_equal(Rational(0), '_5'.to_r, "'_5'.to_r") - assert_equal(Rational(5), '5_'.to_r, "'5_'.to_r") - assert_equal(Rational(5), '5x'.to_r, "'5x'.to_r") - assert_equal(Rational(5), '5/_3'.to_r, "'5/_3'.to_r") - assert_equal(Rational(5,3), '5/3_'.to_r, "'5/3_'.to_r") - assert_equal(Rational(5,3), '5/3.3'.to_r, "'5/3.3'.to_r") - assert_equal(Rational(5,3), '5/3x'.to_r, "'5/3x'.to_r") - assert_raise(ArgumentError, "Rational('')") {Rational('')} - assert_raise(ArgumentError, "Rational('_')") {Rational('_')} - assert_raise(ArgumentError, 'Rational("\f\n\r\t\v5\0")') {Rational("\f\n\r\t\v5\0")} - assert_raise(ArgumentError, "Rational('_5')") {Rational('_5')} - assert_raise(ArgumentError, "Rational('5_')") {Rational('5_')} - assert_raise(ArgumentError, "Rational('5x')") {Rational('5x')} - assert_raise(ArgumentError, "Rational('5/_3')") {Rational('5/_3')} - assert_raise(ArgumentError, "Rational('5/3_')") {Rational('5/3_')} - assert_raise(ArgumentError, "Rational('5/3.3')") {Rational('5/3.3')} - assert_raise(ArgumentError, "Rational('5/3x')") {Rational('5/3x')} + ok = method(:assert_valid_rational) + ng = method(:assert_invalid_rational) + + ok[ 5, 1, '5'] + ok[-5, 1, '-5'] + ok[ 5, 3, '5/3'] + ok[-5, 3, '-5/3'] + + ok[ 5, 1, '5.0'] + ok[-5, 1, '-5.0'] + ok[ 5, 3, '5.0/3'] + ok[-5, 3, '-5.0/3'] + + ok[ 5, 1, '5e0'] + ok[-5, 1, '-5e0'] + ok[ 5, 3, '5e0/3'] + ok[-5, 3, '-5e0/3'] + + ok[ 5e1, 1, '5e1'] + ok[-5e2, 1, '-5e2'] + ok[ 5e3, 3, '5e003/3'] + ok[-5e4, 3, '-5e004/3'] + + ok[ 33, 100, '.33'] + ok[ 33, 100, '0.33'] + ok[-33, 100, '-.33'] + ok[-33, 100, '-0.33'] + ok[-33, 100, '-0.3_3'] + + ok[ 1, 2, '5e-1'] + ok[50, 1, '5e+1'] + ok[ 1, 2, '5.0e-1'] + ok[50, 1, '5.0e+1'] + ok[50, 1, '5e1'] + ok[50, 1, '5E1'] + ok[500, 1, '5e2'] + ok[5000, 1, '5e3'] + ok[500000000000, 1, '5e1_1'] + + ok[ 5, 1, '5'] + ok[-5, 1, '-5'] + ok[ 5, 3, '5/3'] + ok[-5, 3, '-5/3'] + + ok[ 5, 1, '5.0'] + ok[-5, 1, '-5.0'] + ok[ 5, 3, '5.0/3'] + ok[-5, 3, '-5.0/3'] + + ok[ 5, 1, '5e0'] + ok[-5, 1, '-5e0'] + ok[ 5, 3, '5e0/3'] + ok[-5, 3, '-5e0/3'] + + ok[ 5e1, 1, '5e1'] + ok[-5e2, 1, '-5e2'] + ok[ 5e3, 3, '5e003/3'] + ok[-5e4, 3, '-5e004/3'] + + ok[ 33, 100, '.33'] + ok[ 33, 100, '0.33'] + ok[-33, 100, '-.33'] + ok[-33, 100, '-0.33'] + ok[-33, 100, '-0.3_3'] + + ok[ 1, 2, '5e-1'] + ok[50, 1, '5e+1'] + ok[ 1, 2, '5.0e-1'] + ok[50, 1, '5.0e+1'] + ok[50, 1, '5e1'] + ok[50, 1, '5E1'] + ok[500, 1, '5e2'] + ok[5000, 1, '5e3'] + ok[500000000000, 1, '5e1_1'] + + ng[0, 1, ''] + ng[0, 1, ' '] + ng[5, 1, "\f\n\r\t\v5\0"] + ng[0, 1, '_'] + ng[0, 1, '_5'] + ng[5, 1, '5_'] + ng[5, 1, '5x'] + ng[5, 1, '5/_3'] + ng[5, 3, '5/3_'] + ng[5, 3, '5/3.3'] + ng[5, 3, '5/3x'] end def test_to_i -- cgit v1.2.3