Changeset 21189
- Timestamp:
- 07/03/08 21:11:25 (5 months ago)
- Files:
-
- 1 modified
-
t/spec/S03-operators/arith.t (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
t/spec/S03-operators/arith.t
r21188 r21189 16 16 # Probably degrades error messages, so restore once rakudo does .nextwith. 17 17 18 #?DOES 1 18 19 sub tryok ($ok, $todo = '') { 19 20 if ($todo) { … … 25 26 } 26 27 } 28 29 #?DOES 1 27 30 sub tryeq ($lhs, $rhs, $todo = '') { 28 31 if ($todo) { … … 63 66 tryeq -13 % -4, -1; 64 67 65 # % now does floats { 68 #?rakudo skip 'modulo with floats' 69 { 66 70 tryeq 5 % 2.5, 0; 67 71 tryeq 2.5 % 1, .5; 68 #}72 } 69 73 70 74 … … 156 160 157 161 # No warnings should appear; 158 my $a; 159 $a += 1; 160 tryeq $a, 1; 161 undefine $a; 162 $a += -1; 163 tryeq $a, -1; 164 undefine $a; 165 $a += 4294967290; 166 tryeq $a, 4294967290; 167 undefine $a; 168 $a += -4294967290; 169 tryeq $a, -4294967290; 170 undefine $a; 171 $a += 4294967297; 172 tryeq $a, 4294967297; 173 undefine $a; 174 $a += -4294967297; 175 tryeq $a, -4294967297; 176 177 my $s; 178 $s -= 1; 179 tryeq $s, -1; 180 undefine $s; 181 $s -= -1; 182 tryeq $s, +1; 183 undefine $s; 184 $s -= -4294967290; 185 tryeq $s, +4294967290; 186 undefine $s; 187 $s -= 4294967290; 188 tryeq $s, -4294967290; 189 undefine $s; 190 $s -= 4294967297; 191 tryeq $s, -4294967297; 192 undefine $s; 193 $s -= -4294967297; 194 tryeq $s, +4294967297; 162 #?rakudo skip '+= MMD bug' 163 { 164 my $a; 165 $a += 1; 166 tryeq $a, 1; 167 undefine $a; 168 $a += -1; 169 tryeq $a, -1; 170 undefine $a; 171 $a += 4294967290; 172 tryeq $a, 4294967290; 173 undefine $a; 174 $a += -4294967290; 175 tryeq $a, -4294967290; 176 undefine $a; 177 $a += 4294967297; 178 tryeq $a, 4294967297; 179 undefine $a; 180 $a += -4294967297; 181 tryeq $a, -4294967297; 182 } 183 184 #?rakudo skip '-= MMD bug' 185 { 186 my $s; 187 $s -= 1; 188 tryeq $s, -1; 189 undefine $s; 190 $s -= -1; 191 tryeq $s, +1; 192 undefine $s; 193 $s -= -4294967290; 194 tryeq $s, +4294967290; 195 undefine $s; 196 $s -= 4294967290; 197 tryeq $s, -4294967290; 198 undefine $s; 199 $s -= 4294967297; 200 tryeq $s, -4294967297; 201 undefine $s; 202 $s -= -4294967297; 203 tryeq $s, +4294967297; 204 } 195 205 196 206 # Multiplication … … 316 326 is -Inf, -Inf; 317 327 isnt Inf, -Inf; 328 #?rakudo skip 'undef.abs' 318 329 is -Inf.abs, Inf; 330 #?rakudo 4 todo 'Inf' 319 331 is Inf+100, Inf; 320 332 is Inf-100, Inf; … … 323 335 is Inf*-100, -Inf; 324 336 is Inf/-100, -Inf; 325 is 100/Inf, 0; 326 is Inf**100, Inf; 327 is Inf*0, NaN; 328 is Inf-Inf, NaN; 329 is Inf*Inf, Inf; 330 is Inf/Inf, NaN; 331 is Inf*Inf/Inf, NaN; 332 is Inf**0, 1; 333 is 0**0, 1; 334 is 0**Inf, 0; 335 336 my $inf1 = 100**Inf; 337 is $inf1, Inf, "100**Inf"; 338 my $inf2 = Inf**Inf; 339 is $inf2, Inf, "Inf**Inf"; 340 341 337 #?rakudo skip 'Inf, NaN' 338 { 339 is 100/Inf, 0; 340 is Inf**100, Inf; 341 is Inf*0, NaN; 342 is Inf-Inf, NaN; 343 is Inf*Inf, Inf; 344 is Inf/Inf, NaN; 345 is Inf*Inf/Inf, NaN; 346 is Inf**0, 1; 347 is 0**0, 1; 348 is 0**Inf, 0; 349 350 my $inf1 = 100**Inf; 351 is $inf1, Inf, "100**Inf"; 352 my $inf2 = Inf**Inf; 353 is $inf2, Inf, "Inf**Inf"; 354 355 } 342 356 # See L<"http://mathworld.wolfram.com/Indeterminate.html"> 343 357 # for why these three values are defined like they are. 344 is 0.9**Inf, 0, "0.9**Inf converges towards 0"; 345 is 1.1**Inf, Inf, "1.1**Inf diverges towards Inf"; 346 is 1**Inf, 1; 358 #?rakudo skip 'Inf, NaN' 359 { 360 is 0.9**Inf, 0, "0.9**Inf converges towards 0"; 361 is 1.1**Inf, Inf, "1.1**Inf diverges towards Inf"; 362 is 1**Inf, 1; 363 } 347 364 348 365 #flunk("1**Inf is platform-specific -- it's 1 on OSX and NaN elsewhere", :todo); 349 366 350 # NaN 351 is NaN, NaN; 352 is -NaN, NaN; 353 is NaN+100, NaN; 354 is NaN-100, NaN; 355 is NaN*100, NaN; 356 is NaN/100, NaN; 357 is NaN**100, NaN; 358 is NaN+NaN, NaN; 359 is NaN-NaN, NaN; 360 is NaN*NaN, NaN; 361 is NaN/NaN, NaN; 362 363 is NaN+Inf, NaN; 364 is NaN-Inf, NaN; 365 is NaN*Inf, NaN; 366 is NaN/Inf, NaN; 367 is Inf/NaN, NaN; 368 369 my $nan1 = NaN**NaN; 370 is $nan1, NaN, "NaN**NaN"; 371 my $nan2 = NaN**Inf; 372 is $nan2, NaN, "NaN**Inf"; 373 my $nan3 = Inf**NaN; 374 is $nan3, NaN, "Inf**NaN"; 367 #?rakudo skip 'Inf, NaN' 368 { 369 # NaN 370 is NaN, NaN; 371 is -NaN, NaN; 372 is NaN+100, NaN; 373 is NaN-100, NaN; 374 is NaN*100, NaN; 375 is NaN/100, NaN; 376 is NaN**100, NaN; 377 is NaN+NaN, NaN; 378 is NaN-NaN, NaN; 379 is NaN*NaN, NaN; 380 is NaN/NaN, NaN; 381 382 is NaN+Inf, NaN; 383 is NaN-Inf, NaN; 384 is NaN*Inf, NaN; 385 is NaN/Inf, NaN; 386 is Inf/NaN, NaN; 387 388 my $nan1 = NaN**NaN; 389 is $nan1, NaN, "NaN**NaN"; 390 my $nan2 = NaN**Inf; 391 is $nan2, NaN, "NaN**Inf"; 392 my $nan3 = Inf**NaN; 393 is $nan3, NaN, "Inf**NaN"; 394 } 375 395 376 396 =begin pod
