summaryrefslogtreecommitdiff
path: root/src/test/lib/tests/test_mod_signed.sail
diff options
context:
space:
mode:
authorRobert Norton2017-07-19 18:08:02 +0100
committerRobert Norton2017-07-19 18:08:02 +0100
commit632b10c0d4b01dc1af8593b8ae1f088fbfd9e342 (patch)
treeac566808213125670da5f4dc3d702fe663333f7e /src/test/lib/tests/test_mod_signed.sail
parentd8969b1f9631dc15d5fb6b3b33a4a69dbfb7358a (diff)
split library tests into separate files to avoid risk of sail compiler stack overflow.
Diffstat (limited to 'src/test/lib/tests/test_mod_signed.sail')
-rw-r--r--src/test/lib/tests/test_mod_signed.sail26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/test/lib/tests/test_mod_signed.sail b/src/test/lib/tests/test_mod_signed.sail
new file mode 100644
index 00000000..61acec17
--- /dev/null
+++ b/src/test/lib/tests/test_mod_signed.sail
@@ -0,0 +1,26 @@
+function unit test () = {
+ ();
+ (* XXX mod_signed does exist on ocaml shallow embedding...
+ test_assert ("mod_signed_pospos_exact", (21 mod_s 7) == 0);
+ test_assert ("mod_signed_posneg_exact", (21 mod_s -7) == 0);
+ test_assert ("mod_signed_negpos_exact", (-21 mod_s 7) == 0);
+ test_assert ("mod_signed_negneg_exact", (-21 mod_s -7) == 0);
+
+ test_assert ("mod_signed_pospos_approx", (21 mod_s 8) == 5);
+ test_assert ("mod_signed_posneg_approx", (21 mod_s -8) == 5);
+ test_assert ("mod_signed_negpos_approx", (-21 mod_s 8) == -5);
+ test_assert ("mod_signed_negneg_approx", (-21 mod_s -8) == -5);
+
+ (* XXX how to test this? Type checker should catch?
+ test_assert ("mod_signed_zero", (21 mod_s 0) == undefined); *)
+
+ test_assert("mod_vec_range_signed_pos", (0x7 mod_s 5) == 2);
+ test_assert("mod_vec_range_signed_neg", (0xf mod_s 5) == -1);
+
+ test_assert("mod_vec_signed_pos", (0x7 mod_s 0x5) == 0x2);
+ test_assert("mod_vec_signed_neg", (0xf mod_s 0x5) == 0xf);
+ test_assert("mod_vec_signed_pos_neg", (0x7 mod_s 0x8) == 0x7);
+ test_assert("mod_vec_signed_neg_neg", (0xf mod_s 0x8) == 0x7);
+ *)
+}
+