def test_monomial_can_only_have_one_or_no_terms(self): """Test that setting terms works correctly.""" m = Monomial(1, 10) self.assertRaises(TermError, m.__setattr__, "terms", [(1, 2), (3, 4)]) m = Monomial(1, 10) m.terms = [(1, 2)] self._assert_polynomials_are_the_same(Monomial(1, 2), m) m = Monomial(1, 10) m.terms = [(0, 2)] self._assert_polynomials_are_the_same(Monomial(0, 2), m)
def test_monomial_terms(self): """Test _vector for Monomials.""" m = Monomial(6, 5) m.coefficient = 0 self.assertEqual([(0, 0)], m.terms) m.terms = [(10, 5), (10, 5), (10, 5), (10, 5)] self.assertEqual(40, m.coefficient) self.assertEqual(5, m.degree) m.terms = [(10, 5), (10, 5), (0, 4), (0, 3), (0, 2), (0, 1), (10, 5), (10, 5)] self.assertEqual(40, m.coefficient) self.assertEqual(5, m.degree) m.terms = [(25, 6), (-25, 6), (25, 4)] self.assertEqual(25, m.coefficient) self.assertEqual(4, m.degree) m.terms = [(25, 6), (-25, 5), (25, 5)] self.assertEqual(25, m.coefficient) self.assertEqual(6, m.degree) bad_terms = [(25, 6), (-25, 6), (25, 4), (25, 3)] self.assertRaises(TermError, m.__setattr__, "terms", bad_terms)