def TestKnownValues(self): """ Tests some linear equation by testing against known output """ var = ['Cost','PaintA','PaintB','PaintC','Quantity'] tokens = [(group,value) for group, value in self.lex.scan("2PaintA+3PaintB-0.5Cost")] par = Parser(tokens, {}, var) assert par.parseLinearEquation() == [(2, 1), (3, 2), (-0.5, 0)] tokens = [(group,value) for group, value in self.lex.scan("5Cost*3.1+(-2)8*Quantity-(-8)PaintA")] par = Parser(tokens, {}, var) assert par.parseLinearEquation() == [(15.5, 0), (-16, 4), (8, 1)] tokens = [(group,value) for group, value in self.lex.scan("2(1+0.5)PaintA+33*Quantity-13Cost*(2.5+1)")] par = Parser(tokens, {}, var) assert par.parseLinearEquation() == [(3.0, 1), (33, 4), (-45.5, 0)]