X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fop%2Fint.t;h=e9596a39a07bc9a43d356dbb1dff19b1c526033d;hb=36c66720946952b050ad9db88444230a58b3c69d;hp=eb060acd727c3f43207a723bdb34a5f2ccf3d70a;hpb=79072805bf63abe5b5978b5928ab00d360ea3e7f;p=p5sagit%2Fp5-mst-13.2.git diff --git a/t/op/int.t b/t/op/int.t index eb060ac..e9596a3 100755 --- a/t/op/int.t +++ b/t/op/int.t @@ -1,8 +1,11 @@ #!./perl -# $RCSfile: int.t,v $$Revision: 4.1 $$Date: 92/08/07 18:28:00 $ +BEGIN { + chdir 't' if -d 't'; + @INC = '../lib'; +} -print "1..4\n"; +print "1..14\n"; # compile time evaluation @@ -15,3 +18,81 @@ if (int(-1.234) == -1) {print "ok 2\n";} else {print "not ok 2\n";} $x = 1.234; if (int($x) == 1) {print "ok 3\n";} else {print "not ok 3\n";} if (int(-$x) == -1) {print "ok 4\n";} else {print "not ok 4\n";} + +$x = length("abc") % -10; +print $x == -7 ? "ok 5\n" : "# expected -7, got $x\nnot ok 5\n"; + +{ + use integer; + $x = length("abc") % -10; + $y = (3/-10)*-10; + print $x+$y == 3 && abs($x) < 10 ? "ok 6\n" : "not ok 6\n"; +} + +# check bad strings still get converted + +@x = ( 6, 8, 10); +print "not " if $x["1foo"] != 8; +print "ok 7\n"; + +# check values > 32 bits work. + +$x = 4294967303.15; +$y = int ($x); + +if ($y eq "4294967303") { + print "ok 8\n" +} else { + print "not ok 8 # int($x) is $y, not 4294967303\n" +} + +$y = int (-$x); + +if ($y eq "-4294967303") { + print "ok 9\n" +} else { + print "not ok 9 # int($x) is $y, not -4294967303\n" +} + +$x = 4294967294.2; +$y = int ($x); + +if ($y eq "4294967294") { + print "ok 10\n" +} else { + print "not ok 10 # int($x) is $y, not 4294967294\n" +} + +$x = 4294967295.7; +$y = int ($x); + +if ($y eq "4294967295") { + print "ok 11\n" +} else { + print "not ok 11 # int($x) is $y, not 4294967295\n" +} + +$x = 4294967296.11312; +$y = int ($x); + +if ($y eq "4294967296") { + print "ok 12\n" +} else { + print "not ok 12 # int($x) is $y, not 4294967296\n" +} + +$y = int(279964589018079/59); +if ($y == 4745162525730) { + print "ok 13\n" +} else { + print "not ok 13 # int(279964589018079/59) is $y, not 4745162525730\n" +} + +$y = 279964589018079; +$y = int($y/59); +if ($y == 4745162525730) { + print "ok 14\n" +} else { + print "not ok 14 # int(279964589018079/59) is $y, not 4745162525730\n" +} +