예제 #1
0
 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)
예제 #5
0
 def test_make_resistor(self):
     mgr = ComponentManager()
     self.assertTrue(isinstance(mgr.new_resistor("r1"),
                                Components.Resistor))
예제 #6
0
 def test_disallow_duplicates(self):
     mgr = ComponentManager()
     r1 = mgr.new_resistor("r1")
     with self.assertRaises(ValueError):
         r2 = mgr.new_resistor("r1")
예제 #7
0
 def test_make_capacitor(self):
     mgr = ComponentManager()
     self.assertTrue(
         isinstance(mgr.new_capacitor("r1"), Components.Capacitor))
예제 #8
0
 def test_make_wire(self):
     mgr = ComponentManager()
     self.assertTrue(isinstance(mgr.new_wire("w1"), Components.Wire))
예제 #9
0
 def test_make_battery(self):
     mgr = ComponentManager()
     self.assertTrue(isinstance(mgr.new_battery("v1"), Components.Battery))