def test_divide_fract_to_frac_wrog(self): self.assertFalse( divide_chemical_expression("6/2CO2 + H2O", "2H2O+9/6CO2"), 2)
def test_divide_order(self): self.assertEqual(divide_chemical_expression("2CO2 + H2O", "2H2O+4CO2"), Fraction(1, 2))
def test_divide_fract_to_frac(self): self.assertEqual( divide_chemical_expression("3/4CO2 + H2O", "2H2O+9/6CO2"), Fraction(1, 2))
def test_divide_wrong_phases(self): self.assertFalse( divide_chemical_expression("H2O(s) + CO2", "2H2O+2CO2(s)"))
def test_divide_wrong_phases_but_phases_ignored(self): self.assertEqual( divide_chemical_expression("H2O(s) + CO2", "2H2O+2CO2(s)", ignore_state=True), Fraction(1, 2))
def test_divide_right_phases(self): self.assertEqual( divide_chemical_expression("H2O(s) + CO2", "2H2O(s)+2CO2"), Fraction(1, 2))
def test_divide_right_phases_other_order(self): self.assertEqual( divide_chemical_expression("2H2O(s) + 2CO2", "H2O(s)+CO2"), 2)
def test_divide_right_simple(self): self.assertEqual(divide_chemical_expression("H2O + CO2", "H2O+CO2"), 1)
def test_divide_wrong_reagents(self): self.assertFalse(divide_chemical_expression("H2O + CO2", "CO2"))
def test_divide_right(self): self.assertEqual( divide_chemical_expression("5(H1H212)^70010- + 10H2O", "10H2O + 5(H1H212)^70010-"), 1)
def test_divide_wrong_factors(self): self.assertFalse( divide_chemical_expression("5(H1H212)^70010- + 10H2O", "5H2O + 10(H1H212)^70010-"))
def test_divide_by_zero(self): self.assertFalse(divide_chemical_expression("0H2O", "H2O"))