2
2
// Literals
3
3
// ############################################################################
4
4
5
- // ############################################################################
5
+ import scala . util .{ Failure , Success , Try }
6
6
7
7
object Test {
8
8
9
- /* I add a couple of Unicode identifier tests here temporarily */
9
+ /* I add a couple of Unicode identifier tests here " temporarily" */
10
10
11
11
def \ u03b1\ u03c1\ u03b5\ u03c4\ u03b7 = " alpha rho epsilon tau eta"
12
12
13
13
case class GGG (i : Int ) {
14
14
def \ u03b1\ u03b1(that : GGG ) = i + that.i
15
15
}
16
16
17
- def check_success [a](name : String , closure : => a, expected : a): Unit = {
18
- print(" test " + name)
19
- try {
20
- val actual : a = closure
21
- if (actual == expected) {
22
- print(" was successful" );
23
- } else {
24
- print(" failed: expected " + expected + " , found " + actual);
25
- }
26
- } catch {
27
- case exception : Throwable => {
28
- print(" raised exception " + exception);
29
- }
17
+ def check_success [A ](name : String , closure : => A , expected : A ): Unit =
18
+ Try (closure) match {
19
+ case Success (actual) => assert(actual == expected, s " test $name failed: expected $expected, found $actual" )
20
+ case Failure (error) => throw new AssertionError (s " test $name raised exception $error" )
30
21
}
31
- println
32
- }
33
22
34
23
def main (args : Array [String ]): Unit = {
35
24
// char
@@ -39,13 +28,9 @@ object Test {
39
28
check_success(" \"\\ 141\\ 142\" == \" ab\" " , " \141\142 " , " ab" )
40
29
check_success(" \"\\ 0x61\\ 0x62\" .trim() == \" x61\\ 0x62\" " , " \0 x61\0 x62" .substring(1 ), " x61\0 x62" )
41
30
42
- println
43
-
44
31
// boolean
45
32
check_success(" (65 : Byte) == 'A'" , (65 : Byte ) == 'A' , true ) // contrib #176
46
33
47
- println
48
-
49
34
// int
50
35
check_success(" 0X01 == 1" , 0X01 , 1 )
51
36
check_success(" 0x01 == 1" , 0x01 , 1 )
@@ -67,12 +52,10 @@ object Test {
67
52
check_success(" 0x80000000 == -2147483648" , 0x80000000 , - 2147483648 )
68
53
check_success(" 0xffffffff == -1" , 0xffffffff , - 1 )
69
54
70
- println
71
-
72
55
// long
73
56
check_success(" 1l == 1L" , 1l , 1L )
74
57
check_success(" 1L == 1l" , 1L , 1l )
75
- check_success(" 1.asInstanceOf[Long] == 1l " , 1 .asInstanceOf [Long ], 1l )
58
+ check_success(" 1.asInstanceOf[Long] == 1L " , 1 .asInstanceOf [Long ], 1L )
76
59
77
60
check_success(" 0x7fffffffffffffffL == 9223372036854775807L" ,
78
61
0x7fffffffffffffffL, 9223372036854775807L )
@@ -81,37 +64,48 @@ object Test {
81
64
check_success(" 0xffffffffffffffffL == -1L" ,
82
65
0xffffffffffffffffL, - 1L )
83
66
84
- println
85
-
86
67
// see JLS at address:
87
68
// http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#230798
88
69
89
70
// float
90
71
check_success(" 1e1f == 10.0f" , 1e1f , 10.0f )
91
72
check_success(" .3f == 0.3f" , .3f , 0.3f )
92
73
check_success(" 0f == 0.0f" , 0f , 0.0f )
74
+ check_success(" 0f == -0.000000000000000000e+00f" , 0f , - 0.000000000000000000e+00f )
75
+ check_success(" 0f == -0.000000000000000000e+00F" , 0f , - 0.000000000000000000e+00F )
76
+ check_success(" 0f == -0.0000000000000000e14f" , 0f , - 0.0000000000000000e14f )
77
+ check_success(" 01.23f == 1.23f" , 01.23f , 1.23f )
93
78
check_success(" 3.14f == 3.14f" , 3.14f , 3.14f )
94
79
check_success(" 6.022e23f == 6.022e23f" , 6.022e23f , 6.022e23f )
95
- check_success(" 09f == 9.0f" , 9f , 9.0f )
80
+ check_success(" 9f == 9.0f" , 9f , 9.0f )
81
+ check_success(" 09f == 9.0f" , 09f , 9.0f )
82
+ check_success(" 1.00000017881393421514957253748434595763683319091796875001f == 1.0000001f" ,
83
+ 1.00000017881393421514957253748434595763683319091796875001f ,
84
+ 1.0000001f )
85
+ check_success(" 3.4028235E38f == Float.MaxValue" , 3.4028235E38f , Float .MaxValue )
96
86
check_success(" 1.asInstanceOf[Float] == 1.0" , 1 .asInstanceOf [Float ], 1.0f )
97
- check_success(" 1l.asInstanceOf[Float] == 1.0" , 1l .asInstanceOf [Float ], 1.0f )
98
-
99
- println
87
+ check_success(" 1L.asInstanceOf[Float] == 1.0" , 1L .asInstanceOf [Float ], 1.0f )
100
88
101
89
// double
102
90
check_success(" 1e1 == 10.0" , 1e1 , 10.0 )
103
91
check_success(" .3 == 0.3" , .3 , 0.3 )
104
92
check_success(" 0.0 == 0.0" , 0.0 , 0.0 )
105
93
check_success(" 0d == 0.0" , 0d , 0.0 )
106
- check_success(" 01.23 == 1.23" , 1.23 , 1.23 )
94
+ check_success(" 0d == 0.000000000000000000e+00d" , 0d , 0.000000000000000000e+00d )
95
+ check_success(" 0d == -0.000000000000000000e+00d" , 0d , - 0.000000000000000000e+00d )
96
+ check_success(" 0d == -0.000000000000000000e+00D" , 0d , - 0.000000000000000000e+00D )
97
+ check_success(" 0.0 == 0.000000000000000000e+00" , 0.0 , 0.000000000000000000e+00 )
98
+ check_success(" 0.0 == -0.000000000000000000e+00" , 0.0 , - 0.000000000000000000e+00 )
99
+ check_success(" 1.23 == 1.23" , 1.23 , 1.23 )
100
+ check_success(" 01.23 == 1.23" , 01.23 , 1.23 )
107
101
check_success(" 01.23d == 1.23d" , 1.23d , 1.23d )
108
102
check_success(" 3.14 == 3.14" , 3.14 , 3.14 )
109
103
check_success(" 1e-9d == 1.0e-9" , 1e-9d , 1.0e-9 )
110
104
check_success(" 1e137 == 1.0e137" , 1e137 , 1.0e137 )
105
+ check_success(" 1.7976931348623157e308d == Double.MaxValue" , 1.7976931348623157e308d , Double .MaxValue )
111
106
check_success(" 1.asInstanceOf[Double] == 1.0" , 1 .asInstanceOf [Double ], 1.0 )
112
- check_success(" 1l .asInstanceOf[Double] == 1.0" , 1l .asInstanceOf [Double ], 1.0 )
107
+ check_success(" 1L .asInstanceOf[Double] == 1.0" , 1L .asInstanceOf [Double ], 1.0 )
113
108
114
- println
115
109
check_success(" \"\" .length()" , " \u001a " .length(), 1 )
116
110
117
111
val ggg = GGG (1 ) \ u03b1\ u03b1 GGG (2 )
0 commit comments