def test_gf2m_modmulinv__neg(self): """ Negative tests for gf2m_modmulinv(a,f) """ # Not meant to be called with other values than int or long self.failUnlessRaises(AttributeError, ar.gf2m_modmulinv, 0.0, 0b10011) self.failUnlessRaises(TypeError, ar.gf2m_modmulinv, "asdf", 0b10011) self.failUnlessEqual(ar.gf2m_modmulinv(-0b1010011,0b100011011),0b11001010) self.failUnlessEqual(ar.gf2m_modmulinv(0b1010011,-0b100011011),0b11001010) self.failUnlessEqual(ar.gf2m_modmulinv(-0b1010011,-0b100011011),0b11001010)
def test_gf2m_modmulinv__pos(self): """ Positive tests for gf2m_modmulinv(a,f) Sage test calculations:: sage: F.<y> = GF(2)[] sage: a = y^6 + y^4 + y + 1 # a = 0b1010011 sage: b = y^7 + y^6 + y^3 + y # b = 0b11001010 sage: p = y^8 + y^4 + y^3 + y + 1 # f = 0b100011011 sage: ai = a.inverse_mod(p); ai y^7 + y^6 + y^3 + y sage: inverse_mod(a,p) y^7 + y^6 + y^3 + y sage: b == ai True """ self.failUnlessEqual(ar.gf2m_modmulinv(0b1010011,0b100011011),0b11001010)