def test_cannot_connect_twice(self): mgr = ComponentManager() r1 = mgr.new_resistor("r1") r2 = mgr.new_resistor("r2") r1.connect_to(r2) with self.assertRaises(ValueError): r1.connect_to(r2)
def test_one_resistor_voltage(self): mgr = ComponentManager() v1 = mgr.new_battery("v1") v1.set_voltage(12) r1 = mgr.new_resistor("r1") r1.R = 10 v1.connect_to(r1) r1.connect_to(v1) sols = mgr.solve_all(v1) self.assertEqual(sols["v1"]["V"], 12) self.assertEqual(sols["r1"]["V"], 12)
def test_three_resistor_current(self): mgr = ComponentManager() v1 = mgr.new_battery("v1", 12) r1 = mgr.new_resistor("r1", 10) r2 = mgr.new_resistor("r2", 20) r3 = mgr.new_resistor("r3", 30) v1.connect_to(r1) r1.connect_to(r2) r2.connect_to(r3) r3.connect_to(v1) sols = mgr.solve_all(v1) self.assertEqual(sols["v1"]["I"], 0.2) self.assertEqual(sols["r1"]["I"], 0.2) self.assertEqual(sols["r2"]["I"], 0.2) self.assertEqual(sols["r3"]["I"], 0.2)
def test_two_same_R_current(self): mgr = ComponentManager() v1 = mgr.new_battery("v1") v1.set_voltage(12) r1 = mgr.new_resistor("r1") r1.R = 12 r2 = mgr.new_resistor("r2") r2.R = 12 v1.connect_to(r1) v1.connect_to(r2) r1.connect_to(v1) r2.connect_to(v1) sols = mgr.solve_all(v1) print(sols) self.assertEqual(sols["v1"]["I"], 2) self.assertEqual(sols["r1"]["I"], 1) self.assertEqual(sols["r2"]["I"], 1)
def test_make_resistor(self): mgr = ComponentManager() self.assertTrue(isinstance(mgr.new_resistor("r1"), Components.Resistor))
def test_disallow_duplicates(self): mgr = ComponentManager() r1 = mgr.new_resistor("r1") with self.assertRaises(ValueError): r2 = mgr.new_resistor("r1")
def test_make_capacitor(self): mgr = ComponentManager() self.assertTrue( isinstance(mgr.new_capacitor("r1"), Components.Capacitor))
def test_make_wire(self): mgr = ComponentManager() self.assertTrue(isinstance(mgr.new_wire("w1"), Components.Wire))
def test_make_battery(self): mgr = ComponentManager() self.assertTrue(isinstance(mgr.new_battery("v1"), Components.Battery))