예제 #1
0
    def set_goal_function(self, function):
        """sets goal function

        If function is not correctly set it returns false,
        if it is correctly set itt returns true
        """
        try:
            function = function.lower()  # convert input to lower case
            expression = self.__parser.parse(
                function)  # try to parse expression

            validator = ExpressionValidator(
                expression, self.__variables)  # get expression validator
            expression, validates, validation_error = validator.validate(
            )  # expression validation
            if not validates:
                self.console_logger.log("function is not validating",
                                        LoggerLevel.ERROR)
                self.console_logger.log(validation_error, LoggerLevel.ERROR)
                print validation_error
                raise Exception()
            self.__expression = expression
            self.__fetch_function_name()  # fetch simple name from function
            self.console_logger.log(
                "function: " + self.get_expression().toString(),
                LoggerLevel.ADDITIONAL)
            self.__correctly_parsed = True
            return True
        except Exception:
            self.__correctly_parsed = False
            return False
예제 #2
0
 def testExpressionValidation(self):
     for (gf, answers) in zip(self.goal_functions, self.answers):
         expr, validates, val_error = ExpressionValidator(
             gf.expression).validate()
         self.assertEqual(answers[0], expr.toString())
         self.assertEqual(answers[1], gf.get_function_name())
         self.assertTrue(validates)
예제 #3
0
    def set_goal_function(self, function):
        """sets goal function

        If function is not correctly set it returns false,
        if it is correctly set itt returns true
        """
        try:
            function = function.lower()                                       # convert input to lower case
            expression = self.__parser.parse(function)                        # try to parse expression

            validator = ExpressionValidator(expression, self.__variables)     # get expression validator
            expression, validates, validation_error = validator.validate()    # expression validation
            if not validates:
                self.console_logger.log("function is not validating", LoggerLevel.ERROR)
                self.console_logger.log(validation_error, LoggerLevel.ERROR)
                print validation_error
                raise Exception()
            self.__expression = expression
            self.__fetch_function_name()                                   # fetch simple name from function
            self.console_logger.log("function: " + self.get_expression().toString(), LoggerLevel.ADDITIONAL)
            self.__correctly_parsed = True
            return True
        except Exception:
            self.__correctly_parsed = False
            return False
예제 #4
0
 def testExpressionValidation(self):
     for (gf, answers) in zip(self.goal_functions, self.answers):
         expr, validates, val_error = ExpressionValidator(gf.expression).validate()
         self.assertEqual(answers[0], expr.toString())
         self.assertEqual(answers[1], gf.get_function_name())
         self.assertTrue(validates)
예제 #5
0
 def testExpressionFailure(self):
     for gf in self.goal_err_functions:
         expr, validates, val_error = ExpressionValidator(
             gf.__expression).validate()
         self.assertFalse(validates)