Ejemplo n.º 1
0
 def test_binary_operator(self):
     a = pybamm.Symbol("a")
     b = pybamm.Symbol("b")
     bin = pybamm.BinaryOperator("binary test", a, b)
     self.assertEqual(bin.children[0].name, a.name)
     self.assertEqual(bin.children[1].name, b.name)
     c = pybamm.Scalar(1)
     d = pybamm.Scalar(2)
     bin2 = pybamm.BinaryOperator("binary test", c, d)
     with self.assertRaises(NotImplementedError):
         bin2.evaluate()
Ejemplo n.º 2
0
 def test_id(self):
     a = pybamm.Scalar(4)
     b = pybamm.Scalar(5)
     bin1 = pybamm.BinaryOperator("test", a, b)
     bin2 = pybamm.BinaryOperator("test", a, b)
     bin3 = pybamm.BinaryOperator("new test", a, b)
     self.assertEqual(bin1.id, bin2.id)
     self.assertNotEqual(bin1.id, bin3.id)
     c = pybamm.Scalar(5)
     bin4 = pybamm.BinaryOperator("test", a, c)
     self.assertEqual(bin1.id, bin4.id)
     d = pybamm.Scalar(42)
     bin5 = pybamm.BinaryOperator("test", a, d)
     self.assertNotEqual(bin1.id, bin5.id)
Ejemplo n.º 3
0
 def test_binary_operator_domains(self):
     # same domain
     a = pybamm.Symbol("a", domain=["negative electrode"])
     b = pybamm.Symbol("b", domain=["negative electrode"])
     bin1 = pybamm.BinaryOperator("binary test", a, b)
     self.assertEqual(bin1.domain, ["negative electrode"])
     # one empty domain
     c = pybamm.Symbol("c", domain=[])
     bin2 = pybamm.BinaryOperator("binary test", a, c)
     self.assertEqual(bin2.domain, ["negative electrode"])
     bin3 = pybamm.BinaryOperator("binary test", c, b)
     self.assertEqual(bin3.domain, ["negative electrode"])
     # mismatched domains
     d = pybamm.Symbol("d", domain=["positive electrode"])
     with self.assertRaises(pybamm.DomainError):
         pybamm.BinaryOperator("binary test", a, d)