88 */
99public abstract class Test_Long extends Test_ {
1010
11+ static long field ;
12+ static Long Field = Long .valueOf (0 );
13+
14+ static Long getLong (long l ) {
15+ return Long .valueOf (l );
16+ }
17+
1118 public static void main (String [] args ) {
1219
1320 long l ;
1421 double d ;
22+ Long L = Long .valueOf (10000 );
23+ Long O , P , J , K ;
24+ long j , k , m ;
25+ showLong ((O = ++L ), 10001 , L , 10001 );
26+ showLong ((J = L ++), 10001 , L , 10002 );
27+ showLong ((K = -L ), -10002 , L , 10002 );
28+ k = ++(L );
29+ P = +L ;
30+ k = -L ;
31+ j = L --;
32+ m = ++L ;
33+ P += 3 ;
34+ field = ++Field ;
35+ System .out .println (
36+ " L = " + L + " O = " + O + " J = " + J + " K = " + K + " k = " + k + " j = " + j + " m = " + m );
37+ j = ++k ;
38+ k = j --;
39+ Character C = Character .valueOf ('c' );
40+ char ch = C ++;
41+ assert (ch == 'c' );
42+ ch = ++C ;
43+ assert (ch == 'e' && C == 'e' );
44+
45+ long [] al = new long [] { O , J , K };
46+ Long [] AL = new Long [] { O , J , K };
47+ int i = 0 ;
48+ (al [i ++])++;
49+ P = ((((AL [i ++]))))++;
50+ System .out .println (O == Long .valueOf (10001 ));
51+ System .out .println (O .equals (Long .valueOf (10001 )));
52+ System .out .println (O != Long .valueOf (10001 ));
53+ boolean b1 = false , b2 = false , b3 = false , b4 ;
54+ boolean tf = ((b1 = (K == -10002 && L == 10003 && O == 10001 )) && (b2 = O .equals (Long .valueOf (10001 )))
55+ && (b3 = O != Long .valueOf (10001 )));
56+
57+ assert (tf );
58+
59+ byte b = (byte ) 255 ;
60+ byte c = b ++;
61+ byte a = ++b ;
62+
63+ Byte B = Byte .valueOf ((byte )100 );
64+ byte [] ab = new byte [] { 1 , 2 , 3 , 4 };
65+ byte [][] abc = new byte [][] { new byte [] {}, new byte [] {1 , 2 , 3 , 4 } };
66+ Byte [][] ABC = new Byte [][] { new Byte [] {}, new Byte [] {1 , 2 , 3 , 4 } };
67+ Byte [] AB = new Byte [] { 1 , 2 , 3 , 4 };
68+ i = 0 ;
69+ ++ab [i ++];
70+ ab [i ++]++;
71+ ++AB [i ++];
72+ AB [i ++]++;
73+
74+ i = 0 ;
75+ j = 1 ;
76+ abc [++i ][(int ) ++j ] |= 0xFFFF ;
77+ i = 0 ;
78+ j = 1 ;
79+
80+ assert (abc [1 ][2 ] == -1 );
81+
82+
83+ P = K ;
84+ assert (P == K );
85+
86+ P = +K ;
87+
88+ assert ( P != K );
89+
90+ // Long += is fine automatically unboxed and reboxed
91+
92+ K ++;// = B ^ (byte) 3;
93+ K += (byte ) 5 ;
94+ L += 5 ;
95+ k += 5 ;
96+
97+ assert (L == 10008 );
98+
99+ Boolean BT = Boolean .TRUE ;
100+
101+ BT = !BT ;
102+ assert (BT == Boolean .FALSE );
103+
104+ // not allowed K ~= K;
105+ k = ~K ; // allowed
106+ assert (k == 9997 );
107+ k = -K ; // allowed
108+
109+ Integer I = Integer .valueOf (33 );
110+ i = I / 5 ;
111+ I /= 5 ;
112+ i = i / 5 ;
113+
114+ i /= 5 ;
115+
116+ L = Long .valueOf (20000 );
117+ L /= 10 ;
118+ assert (L == 2000 );
119+ L /= 3 ;
120+ k = L /3 ;
121+ k = 3 / L ;
122+ k = L / L ;
123+ L = L / L ;
124+ k = 2000 ;
125+ L = Long .valueOf (k /3 );
126+ assert (L == 666 );
127+ L = L / 67 ;
128+ assert (L == 9 );
129+ Short H = Short .valueOf ((short ) 14 );
130+ H = (short ) (H / 3 );
15131
16132
17133 d = Integer .MAX_VALUE ;
18134 d += 1e13 ;
19- l = (long ) d ;
135+ l = (long ) + d ;
20136 System .out .println (d + " " + l );
21- assert (false );
22-
23-
137+ assert (d == l );
138+
139+
24140 int ii = (int ) Float .MAX_VALUE ;
25141 assert (ii == Integer .MAX_VALUE );
142+
143+
144+ // TODO
145+ // long bl = 0x7FFFFFFFFFFFFFFFL;
146+ // System.out.println(bl + " " + (bl + 1));
147+ // assert (bl + 1 < 0);
148+
149+ System .out .println ("JavaScript largest safe number " + Long .parseLong ("1FFFFFFFFFFFFF" , 16 ) + " " + 0x1FFFFFFFFFFFFFL );
26150 assert (Long .parseLong ("1FFFFFFFFFFFFF" , 16 ) == 0x1FFFFFFFFFFFFFL );
27151 d = 0x1FFFFFFFFFFFFFL ;
28152 System .out .println ((long ) d );
29- // note that long literals are NOT caught
30- System .out .println (0x1FFFFFFFFFFFFFL );
31153 assert (((long ) d ) == /** @j2sNative 1 ? 0 : */
32154 0x1FFFFFFFFFFFFFL );
33155
156+ k = 0x7FFFFFFFFFFFFFFFL ;
157+ L = 0x7FFFFFFFFFFFFFFFL ;
158+ L += 0x7FFFFFFFFFFFFFFFL ;
159+ // note that long literals are NOT caught
160+ System .out .println ("Largest Java Number is 9223372036854775807: " + L );
161+
34162 // Can't do this in Java:
35163 try {
36164 l = Long .valueOf ("0xFFFFF" );
37165 assert (false );
38166 } catch (NumberFormatException e ) {
39167 }
40-
168+
41169 try {
42170 l = Long .parseLong ("0xFFFFF" , 16 );
43171 assert (false );
44172 } catch (NumberFormatException e ) {
45173 }
46-
174+
47175 try {
48176 l = Long .parseLong ("0xFFFFF" );
49177 assert (false );
@@ -59,20 +187,18 @@ public static void main(String[] args) {
59187 assert (d == 3 );
60188 d = (long ) -3.8 ;
61189 assert (d == -3 );
62-
63- long m ;
64- for (double i = -20 ; i < 20 ; i ++) {
190+ for (double di = -20 ; di < 20 ; di ++) {
65191 l = 0 ;
66- m = (long ) (l + i / 10 );
67- l += i / 10 ;
68- System .out .println (l + " " + (i / 10 ) + " " + m );
192+ m = (long ) (l + di / 10 );
193+ l += di / 10 ;
194+ System .out .println (l + " " + (di / 10 ) + " " + m );
69195 assert (l == m );
70196 }
71- for (double i = -20 ; i < 20 ; i ++) {
197+ for (double di = -20 ; di < 20 ; di ++) {
72198 l = 0 ;
73- m = (long ) (l - i / 10 );
74- l -= i / 10 ;
75- System .out .println (l + " " + (-i / 10 ) + " " + m );
199+ m = (long ) (l - di / 10 );
200+ l -= di / 10 ;
201+ System .out .println (l + " " + (-di / 10 ) + " " + m );
76202 assert (l == m );
77203 }
78204 l = 0 ;
@@ -83,4 +209,8 @@ public static void main(String[] args) {
83209 System .out .println ("Test_Long OK" );
84210 }
85211
212+ private static void showLong (Long ll1 , long l1 , Long ll2 , long l2 ) {
213+ System .out .println (ll1 + "=" + l1 + " and " + ll2 + "=" + l2 );
214+ }
215+
86216}
0 commit comments