def test_capacitor(self): ns.circ(['va a 0 ac 1 dc 0', 'c a 0 1']) ns.ac('lin', 1, 1, 1) self.assertVectors({'frequency': [1], 'a': [1], 'va#branch': [-2j * pi], })
def test_inductor(self): # operating point does not converge if I use a voltage source here ns.circ(['ia a 0 ac 1 dc 0', 'l1 a 0 1']) ns.ac('lin', 1, 1, 1) self.assertVectors({'frequency': [1], 'a': [-2j * pi], 'l1#branch': [-1], })
def test_model_parameters(self): ns.circ(['r n 0 rmodel', '.model rmodel R res = 3']) self.assertEqual(ns.model_parameters(model='rmodel')['r'], 3) self.assertEqual(ns.model_parameters(device='r')['r'], 3) # Must specify device or model, and not both self.assertRaises(ValueError, ns.model_parameters) self.assertRaises(ValueError, ns.model_parameters, model='rmodel', device='r')
def test_ac(self): ns.circ(['va a 0 ac 1 dc 0', 'c a 0 1']) results = ns.ac('lin', 1, 1, 1) self.assertEqual(results.keys(), {'a', 'va#branch', 'frequency'}) # Invalid mode self.assertRaises(ValueError, ns.ac, 'foo', 1, 2, 3) # fstart > fstop self.assertRaises(ValueError, ns.ac, 'lin', 2, 3, 2)
def test_plots(self): ns.circ('va a 0 dc 1') for ii in range(3): ns.operating_point() self.assertEqual(ns.plots(), ['op3', 'op2', 'op1', 'const'])
def test_resistor(self): ns.circ(['va a 0 dc 1', 'r a 0 2']) ns.operating_point() self.assertEqual(ns.vectors(), {'a': [1], 'va#branch': [-0.5]})
def test_vsource(self): ns.circ('va a 0 dc 1') ns.operating_point() self.assertEqual(ns.vectors(), {'a': [1], 'va#branch': [0]})
def setUp(self): ns.circ('va a 0 dc 0')
def test_altermod(self): ns.circ(['r n 0 rmodel', '.model rmodel R res = 3']) ns.alter_model('r', res=4) ns.operating_point() self.assertEqual(ns.vector('@r[resistance]'), 4)
def test_alter(self): ns.circ('r n 0 1') ns.alter('r', resistance=2, temp=3) ns.operating_point() # Necessary for resistance to be calculated self.assertEqual(ns.vector('@r[resistance]'), 2) self.assertEqual(ns.vector('@r[temp]'), 3)