diff options
| -rw-r--r-- | src/range.c | 2 | ||||
| -rw-r--r-- | test/t/range.rb | 7 |
2 files changed, 5 insertions, 4 deletions
diff --git a/src/range.c b/src/range.c index 079a1035e..7b304011a 100644 --- a/src/range.c +++ b/src/range.c @@ -229,7 +229,7 @@ mrb_range_include(mrb_state *mrb, mrb_value range) end = r->edges->end; include_p = r_le(mrb, beg, val) && /* beg <= val */ ((r->excl && r_gt(mrb, end, val)) || /* end > val */ - (r_ge(mrb, end, val))); /* end >= val */ + (!r->excl && r_ge(mrb, end, val))); /* end >= val */ return mrb_bool_value(include_p); } diff --git a/test/t/range.rb b/test/t/range.rb index 278b26902..2ff89de4c 100644 --- a/test/t/range.rb +++ b/test/t/range.rb @@ -43,10 +43,11 @@ assert('Range#first', '15.2.14.4.7') do end assert('Range#include?', '15.2.14.4.8') do - a = (1..10) + assert_true (1..10).include?(10) + assert_false (1..10).include?(11) - assert_true a.include?(5) - assert_false a.include?(20) + assert_true (1...10).include?(9) + assert_false (1...10).include?(10) end assert('Range#initialize', '15.2.14.4.9') do |
