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)
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"))
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"))
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"))
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"))
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)
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)
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)
def _node(self): return Node(self._unique_node_name())
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)
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)
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)