@@ -144,4 +144,31 @@ def test_to_i
144
144
assert_operator ( ( -4611686018427387905.0 ) . to_i , :< , 0 )
145
145
assert_operator ( ( -4611686018427387906.0 ) . to_i , :< , 0 )
146
146
end
147
+
148
+ def test_cmp
149
+ inf = 1.0 / 0.0
150
+ nan = inf / inf
151
+ assert_equal ( 0 , 1.0 <=> 1.0 )
152
+ assert_equal ( 1 , 1.0 <=> 0.0 )
153
+ assert_equal ( -1 , 1.0 <=> 2.0 )
154
+ assert_nil ( 1.0 <=> nil )
155
+ assert_nil ( 1.0 <=> nan )
156
+ assert_nil ( nan <=> 1.0 )
157
+
158
+ assert_equal ( 0 , 1.0 <=> 1 )
159
+ assert_equal ( 1 , 1.0 <=> 0 )
160
+ assert_equal ( -1 , 1.0 <=> 2 )
161
+
162
+ assert_equal ( -1 , 1.0 <=> 2 **32 )
163
+
164
+ assert_equal ( 1 , inf <=> ( Float ::MAX . to_i *2 ) )
165
+ assert_equal ( -1 , -inf <=> ( -Float ::MAX . to_i *2 ) )
166
+ assert_equal ( -1 , ( Float ::MAX . to_i *2 ) <=> inf )
167
+ assert_equal ( 1 , ( -Float ::MAX . to_i *2 ) <=> -inf )
168
+
169
+ assert_raise ( ArgumentError ) { 1.0 > nil }
170
+ assert_raise ( ArgumentError ) { 1.0 >= nil }
171
+ assert_raise ( ArgumentError ) { 1.0 < nil }
172
+ assert_raise ( ArgumentError ) { 1.0 <= nil }
173
+ end
147
174
end
0 commit comments