@@ -26,6 +26,31 @@ describe! ordered_float32 {
2626 assert_eq!( OrderedFloat ( f32_nan) . cmp( & OrderedFloat ( -100000.0f32 ) ) , Greater ) ;
2727 assert_eq!( OrderedFloat ( -100.0f32 ) . cmp( & OrderedFloat ( Float :: nan( ) ) ) , Less ) ;
2828 }
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+ }
2954}
3055
3156describe ! ordered_float64 {
@@ -41,6 +66,31 @@ describe! ordered_float64 {
4166 assert_eq!( OrderedFloat ( f64_nan) . cmp( & OrderedFloat ( -100000.0f64 ) ) , Greater ) ;
4267 assert_eq!( OrderedFloat ( -100.0f64 ) . cmp( & OrderedFloat ( Float :: nan( ) ) ) , Less ) ;
4368 }
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+ }
4494}
4595
4696describe ! not_nan32 {
0 commit comments