Changeset 21189

Show
Ignore:
Timestamp:
07/03/08 21:11:25 (5 months ago)
Author:
moritz
Message:

[spec] started to fudge artih.t - got rid of all compilation and run time
errors, doesn't PASS yet

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • t/spec/S03-operators/arith.t

    r21188 r21189  
    1616# Probably degrades error messages, so restore once rakudo does .nextwith. 
    1717 
     18#?DOES 1 
    1819sub tryok ($ok, $todo = '') { 
    1920    if ($todo) { 
     
    2526    } 
    2627} 
     28 
     29#?DOES 1 
    2730sub tryeq ($lhs, $rhs, $todo = '') { 
    2831    if ($todo) { 
     
    6366tryeq -13 % -4, -1; 
    6467 
    65 # % now does floats { 
     68#?rakudo skip 'modulo with floats' 
     69{ 
    6670    tryeq 5 % 2.5, 0; 
    6771    tryeq 2.5 % 1, .5; 
    68 # } 
     72} 
    6973 
    7074 
     
    156160 
    157161# 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} 
    195205 
    196206# Multiplication 
     
    316326is -Inf, -Inf; 
    317327isnt Inf, -Inf; 
     328#?rakudo skip 'undef.abs' 
    318329is -Inf.abs, Inf; 
     330#?rakudo 4 todo 'Inf' 
    319331is Inf+100, Inf; 
    320332is Inf-100, Inf; 
     
    323335is Inf*-100, -Inf; 
    324336is 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} 
    342356# See L<"http://mathworld.wolfram.com/Indeterminate.html"> 
    343357# 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} 
    347364 
    348365#flunk("1**Inf is platform-specific -- it's 1 on OSX and NaN elsewhere", :todo); 
    349366 
    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} 
    375395 
    376396=begin pod