@@ -26,6 +26,31 @@ describe! ordered_float32 {
26
26
assert_eq!( OrderedFloat ( f32_nan) . cmp( & OrderedFloat ( -100000.0f32 ) ) , Greater ) ;
27
27
assert_eq!( OrderedFloat ( -100.0f32 ) . cmp( & OrderedFloat ( Float :: nan( ) ) ) , Less ) ;
28
28
}
29
+
30
+ it "should compare regular floats with comparison operators" {
31
+ assert!( OrderedFloat ( 7.0f32 ) == OrderedFloat ( 7.0 ) ) ;
32
+ assert!( OrderedFloat ( 7.0f32 ) <= OrderedFloat ( 7.0 ) ) ;
33
+ assert!( OrderedFloat ( 7.0f32 ) >= OrderedFloat ( 7.0 ) ) ;
34
+ assert!( OrderedFloat ( 8.0f32 ) > OrderedFloat ( 7.0 ) ) ;
35
+ assert!( OrderedFloat ( 8.0f32 ) >= OrderedFloat ( 7.0 ) ) ;
36
+ assert!( OrderedFloat ( 4.0f32 ) < OrderedFloat ( 7.0 ) ) ;
37
+ assert!( OrderedFloat ( 4.0f32 ) <= OrderedFloat ( 7.0 ) ) ;
38
+ }
39
+
40
+ it "should compare NaN with comparison operators" {
41
+ let f32_nan: OrderedFloat <f32 > = OrderedFloat ( Float :: nan( ) ) ;
42
+ assert!( f32_nan == f32_nan) ;
43
+ assert!( f32_nan <= f32_nan) ;
44
+ assert!( f32_nan >= f32_nan) ;
45
+ assert!( f32_nan > OrderedFloat ( -100000.0f32 ) ) ;
46
+ assert!( f32_nan >= OrderedFloat ( -100000.0f32 ) ) ;
47
+ assert!( OrderedFloat ( -100.0f32 ) < f32_nan) ;
48
+ assert!( OrderedFloat ( -100.0f32 ) <= f32_nan) ;
49
+ assert!( f32_nan > OrderedFloat ( Float :: infinity( ) ) ) ;
50
+ assert!( f32_nan >= OrderedFloat ( Float :: infinity( ) ) ) ;
51
+ assert!( f32_nan > OrderedFloat ( Float :: neg_infinity( ) ) ) ;
52
+ assert!( f32_nan >= OrderedFloat ( Float :: neg_infinity( ) ) ) ;
53
+ }
29
54
}
30
55
31
56
describe ! ordered_float64 {
@@ -41,6 +66,31 @@ describe! ordered_float64 {
41
66
assert_eq!( OrderedFloat ( f64_nan) . cmp( & OrderedFloat ( -100000.0f64 ) ) , Greater ) ;
42
67
assert_eq!( OrderedFloat ( -100.0f64 ) . cmp( & OrderedFloat ( Float :: nan( ) ) ) , Less ) ;
43
68
}
69
+
70
+ it "should compare regular floats with comparison operators" {
71
+ assert!( OrderedFloat ( 7.0 ) == OrderedFloat ( 7.0 ) ) ;
72
+ assert!( OrderedFloat ( 7.0 ) <= OrderedFloat ( 7.0 ) ) ;
73
+ assert!( OrderedFloat ( 7.0 ) >= OrderedFloat ( 7.0 ) ) ;
74
+ assert!( OrderedFloat ( 8.0 ) > OrderedFloat ( 7.0 ) ) ;
75
+ assert!( OrderedFloat ( 8.0 ) >= OrderedFloat ( 7.0 ) ) ;
76
+ assert!( OrderedFloat ( 4.0 ) < OrderedFloat ( 7.0 ) ) ;
77
+ assert!( OrderedFloat ( 4.0 ) <= OrderedFloat ( 7.0 ) ) ;
78
+ }
79
+
80
+ it "should compare NaN with comparison operators" {
81
+ let f64_nan: OrderedFloat <f64 > = OrderedFloat ( Float :: nan( ) ) ;
82
+ assert!( f64_nan == f64_nan) ;
83
+ assert!( f64_nan <= f64_nan) ;
84
+ assert!( f64_nan >= f64_nan) ;
85
+ assert!( f64_nan > OrderedFloat ( -100000.0 ) ) ;
86
+ assert!( f64_nan >= OrderedFloat ( -100000.0 ) ) ;
87
+ assert!( OrderedFloat ( -100.0 ) < f64_nan) ;
88
+ assert!( OrderedFloat ( -100.0 ) <= f64_nan) ;
89
+ assert!( f64_nan > OrderedFloat ( Float :: infinity( ) ) ) ;
90
+ assert!( f64_nan >= OrderedFloat ( Float :: infinity( ) ) ) ;
91
+ assert!( f64_nan > OrderedFloat ( Float :: neg_infinity( ) ) ) ;
92
+ assert!( f64_nan >= OrderedFloat ( Float :: neg_infinity( ) ) ) ;
93
+ }
44
94
}
45
95
46
96
describe ! not_nan32 {
0 commit comments