summaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/t/range.rb42
1 files changed, 42 insertions, 0 deletions
diff --git a/test/t/range.rb b/test/t/range.rb
index d71fe8946..7ce4a7a94 100644
--- a/test/t/range.rb
+++ b/test/t/range.rb
@@ -110,3 +110,45 @@ assert('Range#dup') do
assert_equal r.end, "z"
assert_true r.exclude_end?
end
+
+assert('Range#max') do
+ assert_equal 10, (1..10).max
+ assert_equal 9, (1...10).max
+ assert_equal nil, (10..1).max
+ assert_equal nil, (10...1).max
+
+ # equal endpoints
+ assert_equal 5, (5..5).max
+ assert_equal nil, (5...5).max
+
+ # block overrides comparison
+ assert_equal(10, (1..10).max { |a, b| a <=> b })
+ assert_equal(9, (1...10).max { |a, b| a <=> b })
+ assert_equal(nil, (10..1).max { |a, b| a <=> b })
+ assert_equal(nil, (10...1).max { |a, b| a <=> b })
+ assert_equal(1, (1..10).max { |a, b| b <=> a })
+ assert_equal(1, (1...10).max { |a, b| b <=> a })
+ assert_equal(nil, (10..1).max { |a, b| b <=> a })
+ assert_equal(nil, (10...1).max { |a, b| b <=> a })
+end
+
+assert('Range#min') do
+ assert_equal 1, (1..10).min
+ assert_equal 1, (1...10).min
+ assert_equal nil, (10..1).min
+ assert_equal nil, (10...1).min
+
+ # equal endpoints
+ assert_equal 7, (7..7).min
+ assert_equal nil, (7...7).min
+
+ # block overrides comparison
+ assert_equal(1, (1..10).min { |a, b| a <=> b })
+ assert_equal(1, (1...10).min { |a, b| a <=> b })
+ assert_equal(nil, (10..1).min { |a, b| a <=> b })
+ assert_equal(nil, (10...1).min { |a, b| a <=> b })
+ assert_equal(10, (1..10).min { |a, b| b <=> a })
+ assert_equal(9, (1...10).min { |a, b| b <=> a })
+ assert_equal(nil, (10..1).min { |a, b| b <=> a })
+ assert_equal(nil, (10...1).min { |a, b| b <=> a })
+end