@@ -19,5 +19,36 @@ object Test {
19
19
while (x > 10.0 ) { x = x + 1 ; println(x) }
20
20
do { x = x + 1 ; println(x) } while (x < 10.0 )
21
21
do { x = x + 1 ; println(x) } while (x > 10.0 )
22
+
23
+ // tests from https://github.com/scala/scala/pull/5207
24
+ {
25
+ val n = Double .NaN
26
+ def ne (x : Double , y : Double ) = x != y
27
+ val fs : List [(Double , Double ) => Boolean ] = List (_ < _, _ <= _, _ > _, _ >= _, _ == _, (x, y) => ! ne(x, y))
28
+ val vs = List [Double ](n, 1 , - 1 , 0 )
29
+ for (f <- fs; v <- vs; (x, y) <- List ((n, v), (v, n))) assert(! f(x, y))
30
+ }
31
+
32
+ {
33
+ val n = Float .NaN
34
+ def ne (x : Float , y : Float ) = x != y
35
+ val fs : List [(Float , Float ) => Boolean ] = List (_ < _, _ <= _, _ > _, _ >= _, _ == _, (x, y) => ! ne(x, y))
36
+ val vs = List [Float ](n, 1 , - 1 , 0 )
37
+ for (f <- fs; v <- vs; (x, y) <- List ((n, v), (v, n))) assert(! f(x, y))
38
+ }
39
+
40
+ {
41
+ def a [T ](x : T , y : T ) = x == y
42
+ def b [T ](x : T , y : T ) = x != y
43
+ val n = Double .NaN
44
+ (a(n, n) :: a(n, 0 ) :: a (0 , n) :: ! b(n, n) :: ! b(n, 0 ) :: ! b(0 , n) :: Nil ).foreach(b => assert(! b))
45
+ }
46
+
47
+ {
48
+ def a [T ](x : T , y : T ) = x == y
49
+ def b [T ](x : T , y : T ) = x != y
50
+ val n = Float .NaN
51
+ (a(n, n) :: a(n, 0 ) :: a (0 , n) :: ! b(n, n) :: ! b(n, 0 ) :: ! b(0 , n) :: Nil ).foreach(b => assert(! b))
52
+ }
22
53
}
23
54
}
0 commit comments