Beispiel #1
0
    def test_calc_tokens_append_tokens(self):
        # verify that calc_tokens returns the primary expression
        # with the secondary expression's tokens appended when the
        # operator matches
        expr1 = Expression(1, 2, op=OP_ADD)
        expr2 = 2

        new_expr = calc_tokens(expr1, expr2, op=OP_ADD)
        self.assertEqual(id(new_expr), id(expr1))
Beispiel #2
0
    def test_calc_tokens_insert_tokens_right(self):
        # verify that calc_tokens returns the primary expression
        # with the secondary expression's tokens inserted at index
        # zero when the operator matches, and the primary 
        # expression is on the right.
        expr1 = Expression(1, 2, op=OP_ADD)
        expr2 = 2

        new_expr = calc_tokens(expr2, expr1, op=OP_ADD, right=True)
        self.assertEqual(id(new_expr), id(expr1))
Beispiel #3
0
    def test_calc_tokens_new_expr_right(self):
        expr1 = Expression(1, 2, op=OP_ADD)
        expr2 = 1

        # Test the same thing as above, but from the right side
        new_expr = calc_tokens(expr2, expr1, op=OP_SUB, right=True)
        self.assertEqual(new_expr._tokens[2].type, T_EXP)
        self.assertEqual(new_expr._tokens[1], Token(T_OPR, OP_SUB))
        self.assertEqual(new_expr._tokens[0].type, T_LIT)
        self.assertNotEqual(id(new_expr), id(expr1))
Beispiel #4
0
    def test_calc_tokens_new_expr(self):
        expr1 = Expression(1, 2, op=OP_ADD)
        expr2 = 1

        # calc_tokens should return a new expression containing
        # expr1 and expr2 with OP_SUB as the operator
        new_expr = calc_tokens(expr1, expr2, op=OP_SUB)
        self.assertEqual(new_expr._tokens[0].type, T_EXP)
        self.assertEqual(new_expr._tokens[1], Token(T_OPR, OP_SUB))
        self.assertEqual(new_expr._tokens[2].type, T_LIT)
        self.assertNotEqual(id(new_expr), id(expr1))