def testGivenWhenThen0(self): eqs = EquationSystemBuilder().build() eqs.add(EquationBuilder.y_equals_x()) a = EquationBuilder.one_equals_x() b = EquationBuilder().left_term( VariableBuilder().name('z').build()).right_term( VariableBuilder().name('x').build()).right_term( VariableBuilder().name('y').build()).build() a.add_equation(EquationBuilder.one_equals_y()) eqs.add(a) eqs.add(b) reduction_method = ReductionMethod() equation_system_solver = EquationSystemSolver(eqs, reduction_method) equation_system_solver.resolve() self.assertTrue( equation_system_solver.get_solution('x').equal( EquationBuilder.x_equals_1())) self.assertTrue( equation_system_solver.get_solution('y').equal( EquationBuilder.y_equals_1())) self.assertTrue( equation_system_solver.get_solution('z').equal( EquationBuilder().left_term( VariableBuilder().name('z').build()).right_term( ConstantBuilder().value(2).build()).build()))
def testGivenWhenThen1(self): eqs = EquationSystemBuilder().build() eqs.add(EquationBuilder.y_equals_x()) a = EquationBuilder.one_equals_x() eqs.add(a) reduction_method = ReductionMethod() equation_system_solver = EquationSystemSolver(eqs, reduction_method) equation_system_solver.resolve() self.assertTrue( equation_system_solver.get_solution('x').equal( EquationBuilder.x_equals_1())) self.assertTrue( equation_system_solver.get_solution('y').equal( EquationBuilder.y_equals_1()))
def testGivenXEqualsYWhenApply1ToXThenYEqualsOneIsObtained(self): equation = EquationBuilder.y_equals_x() equation.invert() equation.apply('x', 1.0) self.assertTrue(equation.equal(EquationBuilder.y_equals_1()))
def testGivenYEqualsXWhenApply1ToZThenLookupErrorIsRaised(self): equation = EquationBuilder.y_equals_x() self.assertRaises(LookupError, equation.apply, 'z', 1.0)
def testGivenYEqualsXEquationWhenGetNameSetThenEmptyNameSetWithXAndYIsReturned( self): equation = EquationBuilder.y_equals_x() self.assertEqual(equation.get_name_set(), {'x', 'y'})