def test_delta_zero(self): self.assertEqual(linear_or_square_equation(2, 4, 2), -1) self.assertEqual(linear_or_square_equation(1, 2, 1), -1)
def test_delta_negative(self): self.assertEqual(linear_or_square_equation(1, 0, 2), None) self.assertEqual(linear_or_square_equation(-100, 5, -16), None)
def test_wrong_input_type(self): self.assertRaises(ValueError, lambda: linear_or_square_equation("string", 2, "string2")) self.assertRaises(ValueError, lambda: linear_or_square_equation(100, 2.5, "string"))
def test_all_parameters_equal_zero(self): self.assertEqual(linear_or_square_equation(0, 0, 0), "Infinitely many solutions")
def test_a_and_b_equal_zero(self): self.assertEqual(linear_or_square_equation(0, 0, -100.3), None) self.assertEqual(linear_or_square_equation(0, 0, 2.433), None)
def test_a_equal_zero(self): self.assertEqual(linear_or_square_equation(0, 3, 20), -20/3) self.assertEqual(linear_or_square_equation(0, -2.4, 6.3), -6.3/-2.4)
def test_delta_positive(self): self.assertEqual(set(linear_or_square_equation(-1.4, -5.4, 2.3)), {-4.244223582492476, 0.38708072534961846}) self.assertEqual(set(linear_or_square_equation(-30.5, -5.4, 2.3)), {-0.3770491803278688, 0.2})