def test_eval(self): le = linsolve.LinearEquation('a*x-b*y',a=2,b=4) sol = {'x':3, 'y':7} self.assertEqual(2*3-4*7, le.eval(sol)) sol = {'x':3*np.ones(4), 'y':7*np.ones(4)} np.testing.assert_equal(2*3-4*7, le.eval(sol)) le = linsolve.LinearEquation('x_-y') sol = {'x':3+3j*np.ones(10), 'y':7+2j*np.ones(10)} ans = np.conj(sol['x']) - sol['y'] np.testing.assert_equal(ans, le.eval(sol))
def test_order_terms(self): le = linsolve.LinearEquation('x+y') terms = [[1,1,'x'],[1,1,'y']] self.assertEqual(terms, le.order_terms([[1,1,'x'],[1,1,'y']])) terms2 = [[1,1,'x'],[1,'y',1]] self.assertEqual(terms, le.order_terms([[1,1,'x'],[1,'y',1]])) le = linsolve.LinearEquation('a*x-b*y',a=2,b=4) terms = [[1,'a','x'],[1,'b','y']] self.assertEqual(terms, le.order_terms([[1,'a','x'],[1,'b','y']])) terms2 = [[1,'x','a'],[1,'b','y']] self.assertEqual(terms, le.order_terms([[1,'x','a'],[1,'b','y']])) le = linsolve.LinearEquation('g5*bl95+g1*bl111',g5=1,g1=1) terms = [['g5','bl95'],['g1','bl111']] self.assertEqual(terms, le.order_terms([['g5','bl95'],['g1','bl111']]))
def test_basics(self): le = linsolve.LinearEquation('x+y') self.assertEqual(le.terms, [['x'],['y']]) self.assertEqual(le.consts, {}) self.assertEqual(len(le.prms), 2) le = linsolve.LinearEquation('x-y') self.assertEqual(le.terms, [['x'],[-1,'y']]) le = linsolve.LinearEquation('a*x+b*y',a=1,b=2) self.assertEqual(le.terms, [['a','x'],['b','y']]) self.assertTrue('a' in le.consts) self.assertTrue('b' in le.consts) self.assertEqual(len(le.prms), 2) le = linsolve.LinearEquation('a*x-b*y',a=1,b=2) self.assertEqual(le.terms, [['a','x'],[-1,'b','y']])
def test_basics(self): le = linsolve.LinearEquation('x+y') assert le.terms == [['x'], ['y']] assert le.consts == {} assert len(le.prms) == 2 le = linsolve.LinearEquation('x-y') assert le.terms == [['x'], [-1, 'y']] le = linsolve.LinearEquation('a*x+b*y', a=1, b=2) assert le.terms == [['a', 'x'], ['b', 'y']] assert 'a' in le.consts assert 'b' in le.consts assert len(le.prms) == 2 le = linsolve.LinearEquation('a*x-b*y', a=1, b=2) assert le.terms == [['a', 'x'], [-1, 'b', 'y']]
def test_term_check(self): le = linsolve.LinearEquation('a*x-b*y',a=2,b=4) terms = [[1,'a','x'],[1,'b','y']] self.assertEqual(terms, le.order_terms([[1,'a','x'],[1,'b','y']])) terms4 = [['c','x','a'],[1,'b','y']] self.assertRaises(AssertionError, le.order_terms, terms4) terms5 = [[1,'a','b'],[1,'b','y']] self.assertRaises(AssertionError, le.order_terms, terms5)
def test_term_check(self): le = linsolve.LinearEquation('a*x-b*y', a=2, b=4) terms = [[1, 'a', 'x'], [1, 'b', 'y']] assert terms == le.order_terms([[1, 'a', 'x'], [1, 'b', 'y']]) terms4 = [['c', 'x', 'a'], [1, 'b', 'y']] with pytest.raises(AssertionError): le.order_terms(terms4) terms5 = [[1, 'a', 'b'], [1, 'b', 'y']] with pytest.raises(AssertionError): le.order_terms(terms5)
def test_unary(self): le = linsolve.LinearEquation('-a*x-b*y',a=1,b=2) self.assertEqual(le.terms, [[-1,'a','x'],[-1,'b','y']])
def test_more(self): consts = {'g5':1,'g1':1} for k in ['g5*bl95', 'g1*bl111', 'g1*bl103']: le = linsolve.LinearEquation(k,**consts) self.assertEqual(le.terms[0][0][0], 'g')