diff options
author | Kouhei Yanagita <yanagi@shakenbu.org> | 2022-05-27 15:46:46 +0900 |
---|---|---|
committer | Yusuke Endoh <mame@ruby-lang.org> | 2022-08-12 15:57:52 +0900 |
commit | 4165fd0e763439421296fbc95d754ad53e6ae84f (patch) | |
tree | 30aaa3a05d87130965029484780cd28d06c1a1f0 /test | |
parent | cd1a0b3caaa5446e9258c192cf483b6dfe8d7819 (diff) | |
download | ruby-4165fd0e763439421296fbc95d754ad53e6ae84f.tar.gz |
Add Numeric#ceildiv and Integer#ceildiv
Diffstat (limited to 'test')
-rw-r--r-- | test/ruby/test_complex.rb | 1 | ||||
-rw-r--r-- | test/ruby/test_integer.rb | 17 | ||||
-rw-r--r-- | test/ruby/test_numeric.rb | 14 |
3 files changed, 32 insertions, 0 deletions
diff --git a/test/ruby/test_complex.rb b/test/ruby/test_complex.rb index a3a7546575..5cf52e812e 100644 --- a/test/ruby/test_complex.rb +++ b/test/ruby/test_complex.rb @@ -915,6 +915,7 @@ class Complex_Test < Test::Unit::TestCase assert_not_respond_to(c, :%) assert_not_respond_to(c, :div) assert_not_respond_to(c, :divmod) + assert_not_respond_to(c, :ceildiv) assert_not_respond_to(c, :floor) assert_not_respond_to(c, :ceil) assert_not_respond_to(c, :modulo) diff --git a/test/ruby/test_integer.rb b/test/ruby/test_integer.rb index a2b181c642..c3e11498be 100644 --- a/test/ruby/test_integer.rb +++ b/test/ruby/test_integer.rb @@ -704,4 +704,21 @@ class TestInteger < Test::Unit::TestCase def o.to_int; Object.new; end assert_raise_with_message(TypeError, /can't convert Object to Integer/) {Integer.try_convert(o)} end + + def test_ceildiv + assert_equal(0, 0.ceildiv(3)) + assert_equal(1, 1.ceildiv(3)) + assert_equal(1, 3.ceildiv(3)) + assert_equal(2, 4.ceildiv(3)) + + assert_equal(-1, 4.ceildiv(-3)) + assert_equal(-1, -4.ceildiv(3)) + assert_equal(2, -4.ceildiv(-3)) + + assert_equal(3, 3.ceildiv(1.2)) + assert_equal(3, 3.ceildiv(6/5r)) + + assert_equal(10, (10**100-11).ceildiv(10**99-1)) + assert_equal(11, (10**100-9).ceildiv(10**99-1)) + end end diff --git a/test/ruby/test_numeric.rb b/test/ruby/test_numeric.rb index 0593cb535d..068f9a56eb 100644 --- a/test/ruby/test_numeric.rb +++ b/test/ruby/test_numeric.rb @@ -482,4 +482,18 @@ class TestNumeric < Test::Unit::TestCase assert_equal(0, -2.pow(3, 1)) end + def test_ceildiv + assert_equal(0, 0.0.ceildiv(3.0)) + assert_equal(1, 1.0.ceildiv(3.0)) + assert_equal(1, 3.0.ceildiv(3.0)) + assert_equal(2, 4.0.ceildiv(3.0)) + + assert_equal(-1, 4.0.ceildiv(-3.0)) + assert_equal(-1, -4.0.ceildiv(3.0)) + assert_equal(2, -4.0.ceildiv(-3.0)) + + assert_equal(3, 3.0.ceildiv(1.2)) + assert_equal(3, 3.0.ceildiv(6/5r)) + assert_equal(3, (7r/2).ceildiv(6/5r)) + end end |