summaryrefslogtreecommitdiff
path: root/lib/integer.t
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>2001-09-07 20:26:29 +0000
committerJarkko Hietaniemi <jhi@iki.fi>2001-09-07 20:26:29 +0000
commit4d0ed6f7ca164e8f0de0f0e2228fdb2e304666cb (patch)
tree74bda6f69313aa6254187bb270db1bc8b3046dba /lib/integer.t
parent87ba1cf0601b0f7a78cf89e2b19c04887bae5595 (diff)
downloadperl-4d0ed6f7ca164e8f0de0f0e2228fdb2e304666cb.tar.gz
Clean up 1_compile.t; move tests to more consistent
places (t/ subdirectories); add integer.t (much of the pragma is tested elsewhere but there is no one centralized place) p4raw-id: //depot/perl@11940
Diffstat (limited to 'lib/integer.t')
-rw-r--r--lib/integer.t46
1 files changed, 46 insertions, 0 deletions
diff --git a/lib/integer.t b/lib/integer.t
new file mode 100644
index 0000000000..4184747c3e
--- /dev/null
+++ b/lib/integer.t
@@ -0,0 +1,46 @@
+use integer;
+
+use Test::More tests => 11;
+use Config;
+
+my $x = 4.5;
+my $y = 5.6;
+my $z;
+
+$z = $x + $y;
+is($z, 9, "plus");
+
+$z = $x - $y;
+is($z, -1, "minus");
+
+$z = $x * $y;
+is($z, 20, "times");
+
+$z = $x / $y;
+is($z, 0, "divide");
+
+$z = $x / $y;
+is($z, 0, "modulo");
+
+is($x, 4.5, "scalar still floating point");
+
+isnt(sqrt($x), 2, "functions still floating point");
+
+isnt($x ** .5, 2, "power still floating point");
+
+is(++$x, 5.5, "++ still floating point");
+
+SKIP: {
+ my $ivsize = $Config{ivsize};
+ skip "ivsize == $ivsize", 2 unless $ivsize == 4 || $ivsize == 8;
+
+ if ($ivsize == 4) {
+ $z = 2**31 - 1;
+ is($z + 1, -2147483648, "left shift");
+ } elsif ($ivsize == 8) {
+ $z = 2**63 - 1;
+ is($z + 1, -9223372036854775808, "left shift");
+ }
+}
+
+is(~0, -1, "unsigned");