def testGivenExpressionWithTwoConstantsWhenSimplifyThenExpressionWithOneConstantWithCorrectValueIsObtained( self): constant1 = ConstantBuilder().build() expression = ExpressionBuilder().term(constant1).term( constant1).build() expression.simplify_constant() self.assertTrue(expression.get_value_constant(), 2 * constant1.value)
def testGivenExpressionWithVariableWhenMultiplyBy0ThenExpressionWithConstant0IsObtained( self): variable = VariableBuilder().build() expression = ExpressionBuilder().term(variable).build() expression.multiply(0.0) self.assertEqual(expression.get_value_constant(), 0) self.assertEqual(expression.get_value_variable(variable.name), 0.0)
def testGivenExpressionWithTwoVariablesWithSameNameWhenApplyAndSimplifyThenGetValueReturnsCorrectValue( self): expression = ExpressionBuilder().term(VariableBuilder().name('x').value(3.0).build()). \ term(VariableBuilder().name('x').value(2.0).build()).build() expression.apply('x', 1.0) expression.simplify_constant() self.assertEqual(expression.get_value_constant(), 5.0)
def testGivenExpressionWithTwoConstantsWithInverseValuesWhenSimplifyThenExpressionWithConstantWithValue0IsObtained( self): constant1 = ConstantBuilder().build() constant2 = constant1.clon() constant2.multiply(-1.0) expression = ExpressionBuilder().term(constant1).term( constant2).build() expression.simplify_constant() self.assertEqual(expression.get_value_constant(), 0.0)
def testGivenExpressionWithTwoVariablesWithInverseValuesWhenSimplifyThenExpressionWithNoVariablesAndConstantWithValue0IsObtained( self): variable1 = VariableBuilder().build() variable2 = variable1.clon() variable2.multiply(-1.0) expression = ExpressionBuilder().term(variable1).term( variable2).build() expression.simplify_variable(variable1.name) self.assertEqual(expression.get_value_constant(), 0.0) self.assertEqual(expression.get_value_variable(variable1.name), 0.0)
def testGivenExpressionWithConstantAndVariableWhenMultiplyThenGetValuesReturnsMultipliedTermsValues( self): constant = ConstantBuilder().build() variable = VariableBuilder().build() expression = ExpressionBuilder().term(constant).term(variable).build() multiply_value = 2.0 expression.multiply(multiply_value) constant.multiply(multiply_value) variable.multiply(multiply_value) self.assertEqual(expression.get_value_constant(), constant.value) self.assertEqual(expression.get_value_variable(variable.name), variable.value)
def testGivenExpressionWithOneVariableWhenAddExpressionWithOtherVariableAndConstantThenExpressionContainsAllTerms( self): variable1 = VariableBuilder().name('x').build() variable2 = VariableBuilder().name('y').build() constant = ConstantBuilder().value(1.0).build() expression1 = ExpressionBuilder().term(variable1).build() expression2 = ExpressionBuilder().term(variable2).term( constant).build() expression1.add_expression(expression2) self.assertEqual(expression1.get_name_set(), {variable1.name, variable2.name}) self.assertEqual(expression1.get_value_constant(), constant.value)
def testGivenExpressionWithConstantAndVariableWhenGetValueThenConstantValueIsReturned( self): constant = ConstantBuilder().build() expression = ExpressionBuilder().term( constant).default_variable().build() self.assertEqual(expression.get_value_constant(), constant.value)
def testGivenEmptyExpressionWhenGetValueThen0IsReturned(self): expression = ExpressionBuilder().build() self.assertEqual(expression.get_value_constant(), 0)
def testGivenExpressionWithOnlyAVariableAsTermWhenGetValueThen0IsReturned( self): expression = ExpressionBuilder().default_variable().build() self.assertEqual(expression.get_value_constant(), 0)
def testGivenExpressionWithOnlyAConstantAsTermWhenGetValueThenConstantValueIsReturned( self): constant = ConstantBuilder().build() expression = ExpressionBuilder().build() expression.add_term(constant) self.assertEqual(expression.get_value_constant(), constant.value)
def testGivenExpressionWithVariableWhenApplyThenGetValueReturnsCorrectValue( self): expression = ExpressionBuilder().term( VariableBuilder().name('x').value(3.0).build()).build() expression.apply('x', 1.0) self.assertEqual(expression.get_value_constant(), 3.0)