Exemple #1
0
    def setUp(self):
        """
	create two different Fq's.
	"""
        self.F2 = FinitePrimeField.getInstance(2)
        f = FinitePrimeFieldPolynomial([(0, 1), (5, 1), (6, 1)], self.F2)
        self.F64 = FiniteExtendedField(2, f)
        self.F3 = FinitePrimeField.getInstance(3)
        f = FinitePrimeFieldPolynomial(enumerate([1, 2, 1, 2, 1]), self.F3)
        self.F81 = FiniteExtendedField(3, f)
Exemple #2
0
 def testCreateElement(self):
     F125 = FiniteExtendedField(5, 3)
     self.assertEqual(
         F125.createElement(6),
         F125.createElement(
             FinitePrimeFieldPolynomial(enumerate([1, 1]),
                                        FinitePrimeField.getInstance(5))))
     self.assertEqual(F125.createElement(6), F125.createElement([1, 1]))
Exemple #3
0
 def testInit(self):
     self.assertEqual(8, card(FiniteExtendedField(2, 3)))
     f = FinitePrimeFieldPolynomial(enumerate([1, 1, 0, 1]),
                                    FinitePrimeField.getInstance(2))
     self.assertEqual(8, card(FiniteExtendedField(2, f)))
     for i in range(10):  # 10 might be enough to check random moduli
         F8 = FiniteExtendedField(2, 3)
         defining_polynomial = F8.modulus
         self.assertTrue(defining_polynomial.degree() == 3)
         self.assertTrue(defining_polynomial.isirreducible())
Exemple #4
0
 def testContains(self):
     # elements of the field
     F125 = FiniteExtendedField(5, 3)
     self.assertTrue(F125.one in F125)
     self.assertTrue(F125.createElement(17) in F125)
     # elements of prime fields
     self.assertTrue(FinitePrimeField.getInstance(5).one in F125)
     # different characteristic
     self.assertFalse(FinitePrimeFieldElement(3, 7) in F125)
     # elements of disjoint fields
     F25 = FiniteExtendedField(5, 2)
     self.assertFalse(F25.one in F125)
     self.assertFalse(F25.createElement(17) in F125)
     F625 = FiniteExtendedField(5, 4)
     self.assertFalse(F625.one in F125)
     self.assertFalse(F625.createElement(17) in F125)
     # we don't expect an element of extended fields be in the field
     # even if it actually is.
     F15625 = FiniteExtendedField(5, 6)
     self.assertFalse(F15625.one in F125)
Exemple #5
0
 def testRepr(self):
     f = FinitePrimeFieldPolynomial(
         [(0, 2), (8, 1)], coeffring=FinitePrimeField.getInstance(311))
     self.assertEqual(0, repr(f).index("Finite"))
Exemple #6
0
 def testSubring(self):
     F125 = FiniteExtendedField(5, 3)
     F5 = FinitePrimeField.getInstance(5)
     self.assertFalse(F125.issubring(F5))
Exemple #7
0
 def setUp(self):
     self.F3 = FinitePrimeField.getInstance(3)
     self.F81 = FiniteExtendedField(3, 4)
Exemple #8
0
 def testGetInstance(self):
     self.assertEqual(self.F17, FinitePrimeField.getInstance(17))
     self.assertTrue(
         FinitePrimeField.getInstance(17) is FinitePrimeField.getInstance(
             17))