aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/ec
diff options
context:
space:
mode:
authorJ08nY2018-12-15 17:11:33 +0100
committerJ08nY2019-03-21 11:00:14 +0100
commit618426e9010c7966751b8e24b99a20f59692b60c (patch)
treea3677613c653b04830380c4147270917c53150bc /test/ec
parentbec2c56a86ce1d0b2285aaed50726fbdba42d620 (diff)
downloadpyecsca-618426e9010c7966751b8e24b99a20f59692b60c.tar.gz
pyecsca-618426e9010c7966751b8e24b99a20f59692b60c.tar.zst
pyecsca-618426e9010c7966751b8e24b99a20f59692b60c.zip
Add more tests and cleanup some typing errors.
Diffstat (limited to 'test/ec')
-rw-r--r--test/ec/test_mod.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/test/ec/test_mod.py b/test/ec/test_mod.py
new file mode 100644
index 0000000..6e4cfbf
--- /dev/null
+++ b/test/ec/test_mod.py
@@ -0,0 +1,30 @@
+from unittest import TestCase
+
+from pyecsca.ec.mod import Mod, gcd, extgcd
+
+
+class ModTests(TestCase):
+
+ def test_gcd(self):
+ self.assertEqual(gcd(15, 20), 5)
+ self.assertEqual(extgcd(15, 20), (-1, 1, 5))
+
+ def test_wrong_mod(self):
+ a = Mod(5, 7)
+ b = Mod(4, 11)
+ with self.assertRaises(ValueError):
+ a + b
+
+ def test_other(self):
+ a = Mod(5, 7)
+ b = Mod(3, 7)
+ self.assertEqual(int(-a), 2)
+ self.assertEqual(str(a), "5")
+ self.assertEqual(6 - a, Mod(1, 7))
+ self.assertNotEqual(a, b)
+ self.assertEqual(a / b, Mod(4, 7))
+ self.assertEqual(a // b, Mod(4, 7))
+ self.assertEqual(5 / b, Mod(4, 7))
+ self.assertEqual(5 // b, Mod(4, 7))
+ self.assertEqual(divmod(a, b), (Mod(1, 7), Mod(2, 7)))
+ self.assertNotEqual(a, 6) \ No newline at end of file