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 testGivenExpressionWithTwoVariablesSameNameWhenSimplifyThenExpressionWithOneVariableWithCorrectValueIsObtained( self): variable1 = VariableBuilder().name('x').build() expression = ExpressionBuilder().term(variable1).term(variable1).term( VariableBuilder().name('y').build()).default_constant().build() expression.simplify_variable(variable1.name) self.assertTrue(expression.get_value_variable(variable1.name), 2 * variable1.value)
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 testGivenExpressionWithVariablesWithSpecificNamesWhenGetValueNameWithOtherVariableNameThen0IsReturned( self): expression = ExpressionBuilder().term( VariableBuilder().name('y').build()).term(VariableBuilder().name( 'z').build()).default_constant().build() self.assertEqual(expression.get_value_variable('x'), 0)
def testGivenExpressionTwoWithVariablesWithDifferentNamesWhenGetValueNameThenCorrectVariableValueIsReturned( self): variable = VariableBuilder().name('x').build() expression = ExpressionBuilder().term( VariableBuilder().name('y').build()).term(variable).build() self.assertEqual(expression.get_value_variable('x'), variable.value)
def testGivenExpressionWithVariableAndConstantWhenGetValueNameThenVariableValueIsReturned( self): variable = VariableBuilder().name('x').build() expression = ExpressionBuilder().default_constant().term( variable).build() self.assertEqual(expression.get_value_variable('x'), variable.value)