Beispiel #1
0
    def test_remove_component(self):
        """Test remove component from circuit"""
        r = Resistor(name="r1", value=10e3, node1="n1", node2="n2")
        c = Capacitor(name="c1", value="10u", node1="n1", node2="n2")

        self.circuit.add_component(r)
        self.circuit.add_component(c)

        self.assertCountEqual(self.circuit.components, [r, c])
        self.assertCountEqual(self.circuit.non_gnd_nodes,
                              [Node("n1"), Node("n2")])
        self.assertEqual(self.circuit.n_components, 2)
        self.assertEqual(self.circuit.n_nodes, 2)

        self.circuit.remove_component(r)

        self.assertEqual(self.circuit.components, [c])
        self.assertCountEqual(self.circuit.non_gnd_nodes,
                              [Node("n1"), Node("n2")])
        self.assertEqual(self.circuit.n_components, 1)
        self.assertEqual(self.circuit.n_nodes, 2)

        self.circuit.remove_component(c)

        self.assertEqual(self.circuit.components, [])
        self.assertEqual(self.circuit.non_gnd_nodes, [])
        self.assertEqual(self.circuit.n_components, 0)
        self.assertEqual(self.circuit.n_nodes, 0)
Beispiel #2
0
 def test_inductor(self):
     self.parser.parse("l l1 10u n1 n2")
     l = self.parser.circuit["l1"]
     self.assertEqual(l.name, "l1")
     self.assertAlmostEqual(l.inductance, 10e-6)
     self.assertEqual(l.node1, Node("n1"))
     self.assertEqual(l.node2, Node("n2"))
Beispiel #3
0
 def test_capacitor(self):
     self.parser.parse("c c1 10n n1 n2")
     c = self.parser.circuit["c1"]
     self.assertEqual(c.name, "c1")
     self.assertAlmostEqual(c.capacitance, 10e-9)
     self.assertEqual(c.node1, Node("n1"))
     self.assertEqual(c.node2, Node("n2"))
Beispiel #4
0
 def test_resistor(self):
     self.parser.parse("r r1 10k n1 n2")
     r = self.parser.circuit["r1"]
     self.assertEqual(r.name, "r1")
     self.assertAlmostEqual(r.resistance, 10e3)
     self.assertEqual(r.node1, Node("n1"))
     self.assertEqual(r.node2, Node("n2"))
Beispiel #5
0
 def test_opamp(self):
     self.parser.parse("op op1 OP00 n1 n2 n3")
     op = self.parser.circuit["op1"]
     self.assertEqual(op.name, "op1")
     self.assertEqual(op.model.lower(), "op00")
     self.assertEqual(op.node1, Node("n1"))
     self.assertEqual(op.node2, Node("n2"))
     self.assertEqual(op.node3, Node("n3"))
Beispiel #6
0
 def test_signal_input(self):
     """Test input component name, nodes, etc. after construction"""
     for input_type in ("voltage", "current"):
         with self.subTest(input_type):
             inpt = Input(input_type=input_type, nodes=["gnd", "nin"])
             self.assertEqual(inpt.name, "input")
             self.assertEqual(inpt.input_type, input_type)
             self.assertEqual(inpt.nodes, [Node("gnd"), Node("nin")])
             self.assertEqual(inpt.node1, Node("gnd"))
             self.assertEqual(inpt.node2, Node("nin"))
             self.assertEqual(inpt.node_n, inpt.node1)
             self.assertEqual(inpt.node_p, inpt.node2)
Beispiel #7
0
 def test_noise_input(self):
     """Test input component name, nodes, etc. after construction"""
     for input_type in ("voltage", "current"):
         with self.subTest(input_type):
             inpt = Input(input_type=input_type,
                          nodes=["gnd", "nin"],
                          is_noise=True,
                          impedance="15.5k")
             self.assertEqual(inpt.name, "input")
             self.assertEqual(inpt.input_type, input_type)
             self.assertEqual(inpt.impedance, 15.5e3)
             self.assertEqual(inpt.nodes, [Node("gnd"), Node("nin")])
             self.assertEqual(inpt.node1, Node("gnd"))
             self.assertEqual(inpt.node2, Node("nin"))
             self.assertEqual(inpt.node_n, inpt.node1)
             self.assertEqual(inpt.node_p, inpt.node2)
Beispiel #8
0
    def test_add_component(self):
        """Test add component to circuit"""
        r = Resistor(name="r1", value=10e3, node1="n1", node2="n2")
        c = Capacitor(name="c1", value="10u", node1="n1", node2="n2")
        l = Inductor(name="l1", value="1u", node1="n1", node2="n2")

        self.circuit.add_component(r)
        self.assertCountEqual(self.circuit.components, [r])
        self.assertCountEqual(self.circuit.non_gnd_nodes,
                              [Node("n1"), Node("n2")])
        self.assertEqual(self.circuit.n_components, 1)
        self.assertEqual(self.circuit.n_nodes, 2)
        self.circuit.add_component(c)
        self.assertCountEqual(self.circuit.components, [r, c])
        self.assertCountEqual(self.circuit.non_gnd_nodes,
                              [Node("n1"), Node("n2")])
        self.assertEqual(self.circuit.n_components, 2)
        self.assertEqual(self.circuit.n_nodes, 2)
        self.circuit.add_component(l)
        self.assertCountEqual(self.circuit.components, [r, c, l])
        self.assertCountEqual(self.circuit.non_gnd_nodes,
                              [Node("n1"), Node("n2")])
        self.assertEqual(self.circuit.n_components, 3)
        self.assertEqual(self.circuit.n_nodes, 2)
Beispiel #9
0
 def _node(self):
     return Node(self._unique_node_name())
Beispiel #10
0
    def test_nodes_normal(self):
        """Test creating component with node list"""
        nodes = [Node("n1"), Node("n2")]

        component = Component(nodes=nodes)
        self.assertEqual(nodes, component.nodes)
Beispiel #11
0
 def test_input(self):
     self.parser.parse("iinput nin")
     self.assertEqual(self.parser.input_type, "current")
     self.assertEqual(self.parser.output_type, None)
     self.assertEqual(self.parser.input_node_p, Node("nin"))
     self.assertEqual(self.parser.input_node_n, None)
Beispiel #12
0
 def test_input(self):
     self.parser.parse("uinput nin")
     self.assertEqual(self.parser.input_type, "voltage")
     self.assertEqual(self.parser.input_node_p, Node("nin"))
     self.assertEqual(self.parser.input_node_n, None)