import unittest import polymatrix from polymatrix.expressionstate.init.initexpressionstate import init_expression_state from polymatrix.expression.init.initfromtermsexpr import init_from_terms_expr from polymatrix.expression.init.initlinearinexpr import init_linear_in_expr class TestLinearIn(unittest.TestCase): def test_1(self): underlying_terms = { (0, 0): { tuple(): 1.0, ((1, 1),): 2.0, }, (1, 0): { ((0, 1),): 4.0, ((0, 1), (1, 1)): 3.0, ((1, 2),): 5.0, }, (2, 0): { ((0, 1), (1, 2)): 3.0, }, } expr = init_from_terms_expr(terms=underlying_terms, shape=(3, 1)) state = init_expression_state(n_param=2) state, result = polymatrix.to_matrix_equations((expr,), (0, 1)).apply(state) A0 = result.matrix_equations[0][0] A1 = result.matrix_equations[0][1] A2 = result.matrix_equations[0][2] A3 = result.matrix_equations[0][3] self.assertEquals(A0[0, 0], 1.0) self.assertEquals(A1[0, 1], 2.0) self.assertEquals(A1[1, 0], 4.0) self.assertEquals(A2[1, 1], 1.5) self.assertEquals(A2[1, 2], 1.5) self.assertEquals(A2[1, 3], 5.0) self.assertEquals(A3[2, 3], 1.0) self.assertEquals(A3[2, 5], 1.0) self.assertEquals(A3[2, 6], 1.0)