@@ -250,6 +250,43 @@ def __eq__(self, other):
250250 checklast = self .type2test ([StopCompares (), 1 ])
251251 self .assertRaises (DoNotTestEq , checklast .__contains__ , 1 )
252252
253+ def test_compare_nan (self ):
254+ nan = float ('nan' )
255+ a = self .type2test ([nan ])
256+ b = self .type2test ([nan ])
257+ self .assertTrue (a == a )
258+ self .assertFalse (a != a )
259+ self .assertTrue (a == b )
260+ self .assertFalse (a != b )
261+ self .assertFalse (a < a )
262+ self .assertFalse (a < b )
263+ self .assertFalse (a > b )
264+
265+ def test_compare_decimal_nan (self ):
266+ import decimal
267+ nan = decimal .Decimal ("NaN" )
268+ a = self .type2test ([nan ])
269+ b = self .type2test ([nan ])
270+ self .assertTrue (a == a )
271+ self .assertFalse (a != a )
272+ self .assertTrue (a == b )
273+ self .assertFalse (a != b )
274+ self .assertFalse (a < a )
275+ self .assertFalse (a < b )
276+ self .assertFalse (a > b )
277+
278+ def test_compare_signed_zero (self ):
279+ a = self .type2test ([0.0 ])
280+ b = self .type2test ([- 0.0 ])
281+ self .assertTrue (a == a )
282+ self .assertFalse (a != a )
283+ self .assertTrue (b == b )
284+ self .assertFalse (b != b )
285+ self .assertTrue (a == b )
286+ self .assertFalse (a != b )
287+ self .assertFalse (a > b )
288+ self .assertFalse (a < b )
289+
253290 def test_len (self ):
254291 self .assertEqual (len (self .type2test ()), 0 )
255292 self .assertEqual (len (self .type2test ([])), 0 )
0 commit comments