Esempio n. 1
0
 def test_div(self):
     data = (
         [5, 0, 1, 0],
         [5, 1, 1, 1],
         [5, 1, 2, 3],
         [5, 1, 3, 2],
         [5, 1, 4, 4],
         [5, 1, 6, 1],
         [5, 2, 1, 2],
         [5, 2, 2, 1],
         [5, 2, 3, 4],
         [5, 2, 4, 3],
         [5, 2, 6, 2],
         [5, 3, 1, 3],
         [5, 3, 2, 4],
         [5, 3, 3, 1],
         [5, 3, 4, 2],
         [5, 3, 6, 3],
         [5, 4, 1, 4],
         [5, 4, 2, 2],
         [5, 4, 3, 3],
         [5, 4, 4, 1],
         [5, 4, 6, 4],
     )
     for (n, _a, _b, expected) in data:
         with self.subTest(n=n, _a=_a, _b=_b, expected=expected):
             a = zp.Element(n, _a)
             b = zp.Element(n, _b)
             self.assertEqual((a / b).v, expected)
             self.assertEqual(a.v, _a % n)
             self.assertEqual(b.v, _b % n)
Esempio n. 2
0
 def test_div_zero(self):
     data = (
         [5, 1, 0, 0],
         [5, 1, 5, 1],
     )
     for (n, _a, _b, expected) in data:
         with self.subTest(n=n, _a=_a, _b=_b, expected=expected):
             a = zp.Element(n, _a)
             b = zp.Element(n, _b)
             with self.assertRaises(ZeroDivisionError):
                 self.assertEqual((a / b).v, expected)
                 self.assertEqual(a.v, _a % n)
                 self.assertEqual(b.v, _b % n)
Esempio n. 3
0
 def test_add(self):
     data = (
         [5, 1, 1, 2],
         [5, 1, 4, 0],
         [5, -1, 0, 4],
         [5, -1, -4, 0],
         [5, -2, -4, 4],
     )
     for (n, _a, _b, expected) in data:
         with self.subTest(n=n, _a=_a, _b=_b, expected=expected):
             a = zp.Element(n, _a)
             b = zp.Element(n, _b)
             self.assertEqual((a + b).v, expected)
             self.assertEqual(a.v, _a % n)
             self.assertEqual(b.v, _b % n)
Esempio n. 4
0
 def test_pow(self):
     data = (
         [5, 1, 0, 1],
         [5, 1, 3, 1],
         [5, 2, 0, 1],
         [5, 2, 2, 4],
         [5, 2, 3, 3],
     )
     for (n, _a, _b, expected) in data:
         with self.subTest(n=n, _a=_a, _b=_b, expected=expected):
             a = zp.Element(n, _a)
             self.assertEqual((a**_b).v, expected)
             self.assertEqual(a.v, _a % n)
Esempio n. 5
0
 def test_neg(self):
     data = (
         [5, 0, 0],
         [5, 1, 4],
         [5, 2, 3],
         [5, 3, 2],
         [5, 4, 1],
         [5, 5, 0],
         [5, -1, 1],
     )
     for (n, _a, expected) in data:
         with self.subTest(n=n, _a=_a, expected=expected):
             a = zp.Element(n, _a)
             self.assertEqual((-a).v, expected)