コード例 #1
0
    def test_c_isOperatorInStackSamePrecedenceWithCurrentToken_given_prefix_plus_at_stack_and_prefix_minus_as_token_expect_True(
            self):
        operatorStack = []  # Initialise operator stack

        # Initialise operator token to insert to stack
        operatorToken = operatorT.OperatorToken()
        operatorToken.associativity = dictConstant.RIGHT_TO_LEFT
        operatorToken.precedence = dictConstant.STRONG
        operatorToken.symbol = '+'
        operatorToken.affix = "PREFIX"
        operatorToken.tokenType = "OPERATOR_TOKEN"

        # Initialise current token
        currentToken = operatorT.OperatorToken()
        currentToken.associativity = dictConstant.RIGHT_TO_LEFT
        currentToken.precedence = dictConstant.STRONG
        currentToken.symbol = '+'
        currentToken.affix = "PREFIX"
        currentToken.tokenType = "OPERATOR_TOKEN"
        # Push operator token into stack
        stack.pushStack(operatorStack, operatorToken)
        # isOperatorInStackHigherPrecedence(operatorStack, token)
        self.assertEqual(
            True,
            operatorT.isOperatorInStackSamePrecedenceWithCurrentToken(
                operatorStack, currentToken))
コード例 #2
0
    def test_e_isOperatorInStackSamePrecedenceWithCurrentToken_given_not_empty_stack_and_invalid_operator_token_expect_exception(
            self):
        # isOperatorInStackHigherPrecedence(operatorStack, token)
        operatorStack = []  # Initialise operator stack

        # Initialise operator token to insert to stack
        operatorToken = operatorT.OperatorToken()
        operatorToken.associativity = dictConstant.RIGHT_TO_LEFT
        operatorToken.precedence = dictConstant.STRONG
        operatorToken.symbol = '+'
        operatorToken.affix = "PREFIX"
        operatorToken.tokenType = "OPERATOR_TOKEN"

        # Initialise current token
        currentToken = operatorT.OperatorToken()
        currentToken.associativity = dictConstant.RIGHT_TO_LEFT
        currentToken.precedence = dictConstant.STRONG
        currentToken.symbol = '+'
        currentToken.affix = "PREFIX"
        currentToken.tokenType = "INVALID"

        # Push operator token into stack
        stack.pushStack(operatorStack, operatorToken)

        self.assertEqual(
            False,
            operatorT.isOperatorInStackSamePrecedenceWithCurrentToken(
                operatorStack, currentToken))
コード例 #3
0
    def test_d_isOperatorInStackHigherPrecedenceThanCurrentToken_given_empty_stack_and_valid_operator_token_expect_exception(
            self):
        try:
            # isOperatorInStackHigherPrecedence(operatorStack, token)
            operatorStack = []  # Initialise operator stack
            # Initialise current token
            currentToken = operatorT.OperatorToken()
            currentToken.associativity = dictConstant.RIGHT_TO_LEFT
            currentToken.precedence = dictConstant.STRONG
            currentToken.symbol = '+'
            currentToken.affix = "PREFIX"
            currentToken.tokenType = "OPERATOR_TOKEN"
            self.assertEqual(
                False,
                operatorT.isOperatorInStackHigherPrecedenceThanCurrentToken(
                    operatorStack, currentToken))

        except Exception as e:
            print(e)