def test_gf2m_sub__neg(self):
        """ Negative tests for gf2m_sub(a,b) """
        # Not meant to be called with other values than int or long
        self.failUnlessRaises(TypeError, ar.gf2m_sub, 0.0, 0b110)
        self.failUnlessRaises(TypeError, ar.gf2m_sub, "asdf", 0b110)

        self.failUnlessEqual(ar.gf2m_sub(-0b110, 0b1101), 0b1011)
        self.failUnlessEqual(ar.gf2m_sub(0b110, -0b1101), 0b1011)
        self.failUnlessEqual(ar.gf2m_sub(0b110, -0b1101), 0b1011)
    def test_gf2m_sub__neg(self):
        """ Negative tests for gf2m_sub(a,b) """
        # Not meant to be called with other values than int or long
        self.failUnlessRaises(TypeError, ar.gf2m_sub, 0.0, 0b110)
        self.failUnlessRaises(TypeError, ar.gf2m_sub, "asdf", 0b110)
         
	self.failUnlessEqual(ar.gf2m_sub(-0b110,0b1101), 0b1011)
	self.failUnlessEqual(ar.gf2m_sub(0b110,-0b1101), 0b1011)
	self.failUnlessEqual(ar.gf2m_sub(0b110,-0b1101), 0b1011)
    def test_gf2m_sub__pos(self):
        """ Positive tests for gf2m_sub(a, b)

        Sage test calculations::
            sage: F.<t> = GF(2)[]
            sage: a = x^3 + x^2 + 1    # a = 0b1101
            sage: b = x^2 + x          # b = 0b110
            sage: a-b
            x^3 + x + 1
            sage: b-a
            x^3 + x + 1
        """
        self.failUnlessEqual(ar.gf2m_sub(0b1101, 0b110), 0b1011)
        self.failUnlessEqual(ar.gf2m_sub(0b110, 0b1101), 0b1011)
    def test_gf2m_sub__pos(self):
        """ Positive tests for gf2m_sub(a, b)

        Sage test calculations::
            sage: F.<t> = GF(2)[]
            sage: a = x^3 + x^2 + 1    # a = 0b1101
            sage: b = x^2 + x          # b = 0b110
            sage: a-b
            x^3 + x + 1
            sage: b-a
            x^3 + x + 1
        """
	self.failUnlessEqual(ar.gf2m_sub(0b1101,0b110), 0b1011)
	self.failUnlessEqual(ar.gf2m_sub(0b110,0b1101), 0b1011)