summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorksss <[email protected]>2016-11-18 10:01:03 +0900
committerksss <[email protected]>2016-11-18 10:01:03 +0900
commit4ef591c89705a9ec10aaf8f323d8f73304c0097a (patch)
tree463e32a222f4c9bbebaf7e9e2dae1766410646e4
parent1685eff2a5e672173d67916a1c96648df92b7271 (diff)
downloadmruby-4ef591c89705a9ec10aaf8f323d8f73304c0097a.tar.gz
mruby-4ef591c89705a9ec10aaf8f323d8f73304c0097a.zip
Fix condition of Range#include?
-rw-r--r--src/range.c2
-rw-r--r--test/t/range.rb7
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