summaryrefslogtreecommitdiff
path: root/src/test/lib/tests/test_mod.sail
diff options
context:
space:
mode:
authorAlasdair Armstrong2017-07-26 14:12:09 +0100
committerAlasdair Armstrong2017-07-26 14:12:09 +0100
commit678ab0e23ba4a8d95010df2bd2467dae7d544e29 (patch)
tree0b2e02773327b9483f24b2e1ad46b7235ec9633e /src/test/lib/tests/test_mod.sail
parent26e59493cde0ffbf1868426fe3bec158f2dbaad0 (diff)
parent18cf235fad35a0e06e26ea91ee0e1c673febddb8 (diff)
Merge remote-tracking branch 'origin/master' into sail_new_tc
Diffstat (limited to 'src/test/lib/tests/test_mod.sail')
-rw-r--r--src/test/lib/tests/test_mod.sail23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/test/lib/tests/test_mod.sail b/src/test/lib/tests/test_mod.sail
new file mode 100644
index 00000000..7f078bae
--- /dev/null
+++ b/src/test/lib/tests/test_mod.sail
@@ -0,0 +1,23 @@
+function unit test () = {
+ test_assert ("modpospos_exact", (21 mod 7) == 0);
+ test_assert ("modposneg_exact", (21 mod -7) == 0);
+ test_assert ("modnegpos_exact", (-21 mod 7) == 0);
+ test_assert ("modnegneg_exact", (-21 mod -7) == 0);
+
+ test_assert ("modpospos_approx", (21 mod 8) == 5);
+ test_assert ("modposneg_approx", (21 mod -8) == 5);
+ test_assert ("modnegpos_approx", (-21 mod 8) == -5);
+ test_assert ("modnegneg_approx", (-21 mod -8) == -5);
+
+ (* XXX how to test this? Type checker should catch?
+ test_assert ("mod_zero", (21 mod 0) == undefined); *)
+
+ test_assert("mod_vec_range_pos", (0x7 mod 5) == 2);
+ test_assert("mod_vec_range_neg", (0xf mod 5) == 0);
+
+ test_assert("mod_vec_pos", (0x7 mod 0x5) == 0x2);
+ test_assert("mod_vec_neg", (0xf mod 0x5) == 0x0);
+ test_assert("mod_vec_pos_neg", (0x7 mod 0x8) == 0x7);
+ test_assert("mod_vec_neg_neg", (0xf mod 0x8) == 0x7);
+}
+