Example #1
0
 def test_conj_matrix_line(self):
     le = linsolve.LinearEquation('x_-y')
     m = np.zeros((2, 4), dtype=np.float)
     le.put_matrix(m, 0, {'x': 0, 'y': 1}, True)
     np.testing.assert_equal(m, np.array([[1, 0, -1., 0], [0, -1, 0, -1]]))
     le = linsolve.LinearEquation('x-y_')
     m = np.zeros((2, 4), dtype=np.float)
     le.put_matrix(m, 0, {'x': 0, 'y': 1}, True)
     np.testing.assert_equal(m, np.array([[1, 0, -1., 0], [0, 1, 0, 1]]))
Example #2
0
 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))
Example #3
0
 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(le.consts.has_key('a'))
     self.assertTrue(le.consts.has_key('b'))
     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']])
Example #4
0
 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']]))
Example #5
0
 def test_matrix_line(self):
     le = linsolve.LinearEquation('x-y')
     m = np.zeros((1, 2), dtype=np.float)
     le.put_matrix(m, 0, {'x': 0, 'y': 1}, False)
     np.testing.assert_equal(m[0], np.array([1, -1.]))
     le = linsolve.LinearEquation('a*x-b*y', a=2, b=4)
     m = np.zeros((1, 2), dtype=np.float)
     le.put_matrix(m, 0, {'x': 0, 'y': 1}, False)
     np.testing.assert_equal(m[0], np.array([2, -4.]))
     le = linsolve.LinearEquation('a*x-b*y', a=2, b=4)
     m = np.zeros((1, 2), dtype=np.float)
     le.put_matrix(m, 0, {'x': 1, 'y': 0}, False)
     np.testing.assert_equal(m[0], np.array([-4, 2.]))
     le = linsolve.LinearEquation('a*b*c*x-b*y', a=2, b=4, c=3)
     m = np.zeros((2, 4), dtype=np.float)
     le.put_matrix(m, 0, {'x': 0, 'y': 1}, True)
     np.testing.assert_equal(m, np.array([[24, 0., -4, 0], [0, 24, 0, -4]]))
Example #6
0
 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)
Example #7
0
 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']])
Example #8
0
 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')