def testPretty(self): pretty_tests = { (4, 3, 2): '4x^2 + 3x + 2', (2, 8, 3): '2x^2 + 8x + 3', (8, 6, 7, 9): '8x^3 + 6x^2 + 7x + 9', (7, -3, 5, -6): '7x^3 - 3x^2 + 5x - 6', (5, 0, 2): '5x^2 + 2', (-7, 0, 3, 5, 0, -2): '-7x^5 + 3x^3 + 5x^2 - 2', (-7, 0, 0, 5, 0, 0): '-7x^5 + 5x^2', } for test, string in pretty_tests.items(): self.assertEqual(str(Poly(test)), string)
def testDict(self, o1): p1 = Poly(o1) p2 = Poly(p1.todict()) self.assertEqual(p1, p2)
def testMul(self): self.assertEqual( Poly((4, -5)) * Poly((2, 3, -6)), Poly((8, 2, -39, 30))) self.assertEqual( Poly((3, 2)) * Poly((4, -7, 5)), Poly((12, -13, 1, 10)))
def testAdd(self): self.assertEqual(Poly((3, )) + Poly((2, )), Poly((5, ))) self.assertEqual(Poly((3, 1, 2)) + Poly((1, 2, 3)), Poly((4, 3, 5))) self.assertEqual( Poly((15, 16, 19, 18)) + Poly((11, 19)), Poly((15, 16, 30, 37)))
def testEquality(self): self.assertEqual(Poly(), Poly()) self.assertEqual(Poly((3, 4, 5)), Poly((3, 4, 5))) self.assertNotEqual(Poly((5, 4, 3)), Poly((3, 4, 5))) self.assertEqual(Poly((7, 8, 3, 2, 9)), Poly((7, 8, 3, 2, 9)))
def testAcceptsDict(self, d): try: d, Poly(d) except Exception as e: print(e)
def testAcceptsList(self, l): try: Poly(l) except Exception as e: self.fail("Poly() raised {} unexpectedly!".format(e))
def testAcceptsNone(self): try: Poly() except Exception as e: self.fail(e)