1#!./perl 2 3BEGIN { 4 chdir 't' if -d 't'; 5 @INC = '../lib'; 6} 7 8print "1..14\n"; 9 10# compile time evaluation 11 12if (int(1.234) == 1) {print "ok 1\n";} else {print "not ok 1\n";} 13 14if (int(-1.234) == -1) {print "ok 2\n";} else {print "not ok 2\n";} 15 16# run time evaluation 17 18$x = 1.234; 19if (int($x) == 1) {print "ok 3\n";} else {print "not ok 3\n";} 20if (int(-$x) == -1) {print "ok 4\n";} else {print "not ok 4\n";} 21 22$x = length("abc") % -10; 23print $x == -7 ? "ok 5\n" : "# expected -7, got $x\nnot ok 5\n"; 24 25{ 26 use integer; 27 $x = length("abc") % -10; 28 $y = (3/-10)*-10; 29 print $x+$y == 3 && abs($x) < 10 ? "ok 6\n" : "not ok 6\n"; 30} 31 32# check bad strings still get converted 33 34@x = ( 6, 8, 10); 35print "not " if $x["1foo"] != 8; 36print "ok 7\n"; 37 38# check values > 32 bits work. 39 40$x = 4294967303.15; 41$y = int ($x); 42 43if ($y eq "4294967303") { 44 print "ok 8\n" 45} else { 46 print "not ok 8 # int($x) is $y, not 4294967303\n" 47} 48 49$y = int (-$x); 50 51if ($y eq "-4294967303") { 52 print "ok 9\n" 53} else { 54 print "not ok 9 # int($x) is $y, not -4294967303\n" 55} 56 57$x = 4294967294.2; 58$y = int ($x); 59 60if ($y eq "4294967294") { 61 print "ok 10\n" 62} else { 63 print "not ok 10 # int($x) is $y, not 4294967294\n" 64} 65 66$x = 4294967295.7; 67$y = int ($x); 68 69if ($y eq "4294967295") { 70 print "ok 11\n" 71} else { 72 print "not ok 11 # int($x) is $y, not 4294967295\n" 73} 74 75$x = 4294967296.11312; 76$y = int ($x); 77 78if ($y eq "4294967296") { 79 print "ok 12\n" 80} else { 81 print "not ok 12 # int($x) is $y, not 4294967296\n" 82} 83 84$y = int(279964589018079/59); 85if ($y == 4745162525730) { 86 print "ok 13\n" 87} else { 88 print "not ok 13 # int(279964589018079/59) is $y, not 4745162525730\n" 89} 90 91$y = 279964589018079; 92$y = int($y/59); 93if ($y == 4745162525730) { 94 print "ok 14\n" 95} else { 96 print "not ok 14 # int(279964589018079/59) is $y, not 4745162525730\n" 97} 98 99