Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
ruby
提交
4db4faef
R
ruby
项目概览
张重言
/
ruby
通知
3
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
ruby
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
4db4faef
编写于
9月 01, 2020
作者:
J
Jeremy Evans
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Revert "Fix Range#{max,minmax} for range with integer beginning and non-integer end"
This reverts commit
8900a255
.
上级
e080a4cd
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
5 addition
and
29 deletion
+5
-29
range.c
range.c
+3
-18
test/ruby/test_range.rb
test/ruby/test_range.rb
+2
-11
未找到文件。
range.c
浏览文件 @
4db4faef
...
...
@@ -1235,13 +1235,6 @@ range_max(int argc, VALUE *argv, VALUE range)
if
(
c
>
0
)
return
Qnil
;
if
(
EXCL
(
range
))
{
if
(
RB_INTEGER_TYPE_P
(
b
)
&&
!
RB_INTEGER_TYPE_P
(
e
))
{
VALUE
end
=
e
;
e
=
rb_funcall
(
e
,
rb_intern
(
"floor"
),
0
);
if
(
!
RTEST
(
rb_funcall
(
e
,
rb_intern
(
"=="
),
1
,
end
)))
{
return
e
;
}
}
if
(
!
RB_INTEGER_TYPE_P
(
e
))
{
rb_raise
(
rb_eTypeError
,
"cannot exclude non Integer end value"
);
}
...
...
@@ -1254,9 +1247,6 @@ range_max(int argc, VALUE *argv, VALUE range)
}
return
rb_funcall
(
e
,
'-'
,
1
,
INT2FIX
(
1
));
}
if
(
RB_INTEGER_TYPE_P
(
b
)
&&
!
RB_INTEGER_TYPE_P
(
e
))
{
e
=
rb_funcall
(
e
,
rb_intern
(
"floor"
),
0
);
}
return
e
;
}
}
...
...
@@ -1604,14 +1594,9 @@ r_cover_range_p(VALUE range, VALUE beg, VALUE end, VALUE val)
else
if
(
cmp_end
>=
0
)
{
return
TRUE
;
}
if
(
RB_INTEGER_TYPE_P
(
val_beg
)
&&
RB_INTEGER_TYPE_P
(
beg
)
&&
RB_INTEGER_TYPE_P
(
val_end
)
!=
RB_INTEGER_TYPE_P
(
end
))
{
val_max
=
val_end
;
}
else
{
val_max
=
rb_rescue2
(
r_call_max
,
val
,
0
,
Qnil
,
rb_eTypeError
,
(
VALUE
)
0
);
if
(
val_max
==
Qnil
)
return
FALSE
;
}
val_max
=
rb_rescue2
(
r_call_max
,
val
,
0
,
Qnil
,
rb_eTypeError
,
(
VALUE
)
0
);
if
(
val_max
==
Qnil
)
return
FALSE
;
return
r_less
(
end
,
val_max
)
>=
0
;
}
...
...
test/ruby/test_range.rb
浏览文件 @
4db4faef
...
...
@@ -107,13 +107,11 @@ def test_max
assert_equal
(
1
,
(
1
...
2
).
max
)
assert_raise
(
RangeError
)
{
(
1
..
).
max
}
assert_raise
(
RangeError
)
{
(
1
...
).
max
}
assert_equal
(
2
,
(
1
..
2.1
).
max
)
assert_equal
(
2
,
(
1
...
2.1
).
max
)
assert_equal
(
2.0
,
(
1.0
..
2.0
).
max
)
assert_equal
(
nil
,
(
2.0
..
1.0
).
max
)
assert_raise
(
TypeError
)
{
(
1.0
...
2.0
).
max
}
assert_
equal
(
1
,
(
1
...
1.5
).
max
)
assert_
raise
(
TypeError
)
{
(
1
...
1.5
).
max
}
assert_raise
(
TypeError
)
{
(
1.5
...
2
).
max
}
assert_equal
(
-
0x80000002
,
((
-
0x80000002
)
...
(
-
0x80000001
)).
max
)
...
...
@@ -139,13 +137,11 @@ def test_minmax
assert_equal
([
1
,
1
],
(
1
...
2
).
minmax
)
assert_raise
(
RangeError
)
{
(
1
..
).
minmax
}
assert_raise
(
RangeError
)
{
(
1
...
).
minmax
}
assert_equal
([
1
,
2
],
(
1
..
2.1
).
minmax
)
assert_equal
([
1
,
2
],
(
1
...
2.1
).
minmax
)
assert_equal
([
1.0
,
2.0
],
(
1.0
..
2.0
).
minmax
)
assert_equal
([
nil
,
nil
],
(
2.0
..
1.0
).
minmax
)
assert_raise
(
TypeError
)
{
(
1.0
...
2.0
).
minmax
}
assert_
equal
([
1
,
1
],
(
1
..
1.5
).
minmax
)
assert_
raise
(
TypeError
)
{
(
1
...
1.5
).
minmax
}
assert_raise
(
TypeError
)
{
(
1.5
...
2
).
minmax
}
assert_equal
([
-
0x80000002
,
-
0x80000002
],
((
-
0x80000002
)
...
(
-
0x80000001
)).
minmax
)
...
...
@@ -660,12 +656,7 @@ def test_cover
assert_not_operator
(
1
..
10
,
:cover?
,
3
...
2
)
assert_not_operator
(
1
..
10
,
:cover?
,
3
...
3
)
assert_not_operator
(
'aa'
..
'zz'
,
:cover?
,
'aa'
...
'zzz'
)
assert_not_operator
(
1
..
10
,
:cover?
,
1
...
10.1
)
assert_not_operator
(
1
...
10.1
,
:cover?
,
1
..
10.1
)
assert_operator
(
1
..
10.1
,
:cover?
,
1
...
10.1
)
assert_operator
(
1
..
10.1
,
:cover?
,
1
...
10
)
assert_operator
(
1
..
10.1
,
:cover?
,
1
..
10
)
end
def
test_beg_len
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录