aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorKouhei Yanagita <yanagi@shakenbu.org>2022-05-27 15:46:46 +0900
committerYusuke Endoh <mame@ruby-lang.org>2022-08-12 15:57:52 +0900
commit4165fd0e763439421296fbc95d754ad53e6ae84f (patch)
tree30aaa3a05d87130965029484780cd28d06c1a1f0 /test
parentcd1a0b3caaa5446e9258c192cf483b6dfe8d7819 (diff)
downloadruby-4165fd0e763439421296fbc95d754ad53e6ae84f.tar.gz
Add Numeric#ceildiv and Integer#ceildiv
Diffstat (limited to 'test')
-rw-r--r--test/ruby/test_complex.rb1
-rw-r--r--test/ruby/test_integer.rb17
-rw-r--r--test/ruby/test_numeric.rb14
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