Пример #1
0
    def test_nested_less_than_or_equal_expression_representation(self):
        a = ConstantExpression(True)
        b = ConstantExpression(False)
        c = ConstantExpression(None)
        node_type = BinaryExpression.LessThanOrEqual

        expr = BinaryExpression(node_type, BinaryExpression(node_type, a, b), c)

        self.assertEquals("((True <= False) <= None)", str(expr))
Пример #2
0
    def test_nested_equal_expression_representation(self):
        a = ConstantExpression(True)
        b = ConstantExpression(False)
        c = ConstantExpression(None)
        node_type = BinaryExpression.Equal

        expr = BinaryExpression(node_type, BinaryExpression(node_type, a, b), c)

        self.assertEquals("((True == False) == None)", str(expr))
Пример #3
0
    def test_nested_greater_than_expression_representation(self):
        a = ConstantExpression(True)
        b = ConstantExpression(False)
        c = ConstantExpression(None)
        node_type = BinaryExpression.GreaterThan

        expr = BinaryExpression(node_type, BinaryExpression(node_type, a, b), c)

        self.assertEquals("((True > False) > None)", str(expr))
    def test_nested_subtraction_expression_representation(self):
        a = ConstantExpression(10)
        b = ConstantExpression(20)
        c = ConstantExpression(30)
        node_type = BinaryExpression.Subtract

        expr = BinaryExpression(node_type, BinaryExpression(node_type, a, b),
                                c)

        self.assertEquals("((10 - 20) - 30)", str(expr))
    def test_nested_multiplication_expression_representation(self):
        a = ConstantExpression(10)
        b = ConstantExpression(20)
        c = ConstantExpression(30)
        node_type = BinaryExpression.Multiply

        expr = BinaryExpression(node_type, BinaryExpression(node_type, a, b),
                                c)

        self.assertEquals("((10 * 20) * 30)", str(expr))
    def test_nested_division_expression_representation(self):
        a = ConstantExpression(10)
        b = ConstantExpression(20)
        c = ConstantExpression(30)
        node_type = BinaryExpression.Divide

        expr = BinaryExpression(node_type, BinaryExpression(node_type, a, b),
                                c)

        self.assertEquals("((10 / 20) / 30)", str(expr))
    def test_nested_power_expression_representation(self):
        a = ConstantExpression(10)
        b = ConstantExpression(20)
        c = ConstantExpression(30)
        node_type = BinaryExpression.Power

        expr = BinaryExpression(node_type, BinaryExpression(node_type, a, b),
                                c)

        self.assertEquals("((10 ** 20) ** 30)", str(expr))
    def test_nested_modulus_expression_representation(self):
        a = ConstantExpression(10)
        b = ConstantExpression(20)
        c = ConstantExpression(30)
        node_type = BinaryExpression.Modulo

        expr = BinaryExpression(node_type, BinaryExpression(node_type, a, b),
                                c)

        self.assertEquals("((10 % 20) % 30)", str(expr))
    def test_nested_addition_expression_representation(self):
        a = ConstantExpression(10)
        b = ConstantExpression(20)
        c = ConstantExpression(30)
        node_type = BinaryExpression.Add

        expr = BinaryExpression(node_type, BinaryExpression(node_type, a, b),
                                c)

        self.assertEquals("((10 + 20) + 30)", str(expr))
Пример #10
0
    def test_nested_not_equal_expression(self):
        a = ConstantExpression(True)
        b = ConstantExpression(False)
        c = ConstantExpression(None)
        node_type = BinaryExpression.NotEqual

        expr = BinaryExpression(node_type, BinaryExpression(node_type, a, b), c)

        self.assertEquals(expr.node_type, node_type)
        self.failUnless(isinstance(expr.lhs, BinaryExpression), "The left-hand side of the binary expression should be a binary expression as well, but is %s" % expr.lhs.__class__)
        self.assertEquals(expr.lhs.node_type, node_type)
        self.assertEquals(expr.lhs.lhs, a)
        self.assertEquals(expr.lhs.rhs, b)
        self.assertEquals(expr.rhs, c)
Пример #11
0
 def test_expression_not_equal_of_two_constants_representation(self):
     a = ConstantExpression(True)
     b = ConstantExpression(False)
     node_type = BinaryExpression.NotEqual
     expr = BinaryExpression(node_type, a, b)
     
     self.assertEquals("(True != False)", str(expr))
Пример #12
0
 def test_expression_less_than_or_equal_of_two_constants_representation(self):
     a = ConstantExpression(True)
     b = ConstantExpression(False)
     node_type = BinaryExpression.LessThanOrEqual
     expr = BinaryExpression(node_type, a, b)
     
     self.assertEquals("(True <= False)", str(expr))
Пример #13
0
 def test_expression_greater_than_of_two_constants_representation(self):
     a = ConstantExpression(True)
     b = ConstantExpression(False)
     node_type = BinaryExpression.GreaterThan
     expr = BinaryExpression(node_type, a, b)
     
     self.assertEquals("(True > False)", str(expr))
    def test_expression_for_addition_of_two_constants_representation(self):
        a = ConstantExpression(10)
        b = ConstantExpression(20)
        node_type = BinaryExpression.Add
        expr = BinaryExpression(node_type, a, b)

        self.assertEquals("(10 + 20)", str(expr))
    def test_expression_for_modulus_of_two_constants_representation(self):
        a = ConstantExpression(10)
        b = ConstantExpression(20)
        node_type = BinaryExpression.Modulo
        expr = BinaryExpression(node_type, a, b)

        self.assertEquals("(10 % 20)", str(expr))
    def test_expression_for_multiplication_of_two_constants_representation(
            self):
        a = ConstantExpression(10)
        b = ConstantExpression(20)
        node_type = BinaryExpression.Multiply
        expr = BinaryExpression(node_type, a, b)

        self.assertEquals("(10 * 20)", str(expr))
    def test_nested_addition_expression(self):
        a = ConstantExpression(10)
        b = ConstantExpression(20)
        c = ConstantExpression(30)
        node_type = BinaryExpression.Add

        expr = BinaryExpression(node_type, BinaryExpression(node_type, a, b),
                                c)

        self.assertEquals(expr.node_type, node_type)
        self.failUnless(
            isinstance(expr.lhs, BinaryExpression),
            "The left-hand side of the binary expression should be a binary expression as well, but is %s"
            % expr.lhs.__class__)
        self.assertEquals(expr.lhs.node_type, node_type)
        self.assertEquals(expr.lhs.lhs, a)
        self.assertEquals(expr.lhs.rhs, b)
        self.assertEquals(expr.rhs, c)
    def test_expression_for_addition_of_two_constants(self):
        a = ConstantExpression(10)
        b = ConstantExpression(20)
        node_type = BinaryExpression.Add
        expr = BinaryExpression(node_type, a, b)

        self.assertEquals(expr.node_type, node_type)
        self.assertEquals(expr.lhs, a)
        self.assertEquals(expr.rhs, b)
Пример #19
0
    def test_expression_greater_than_or_equal_of_two_constants(self):
        a = ConstantExpression(True)
        b = ConstantExpression(False)
        node_type = BinaryExpression.GreaterThanOrEqual
        expr = BinaryExpression(node_type, a, b)

        self.assertEquals(expr.node_type, node_type)
        self.assertEquals(expr.lhs, a)
        self.assertEquals(expr.rhs, b)
Пример #20
0
    def test_expression_less_than_of_two_constants(self):
        a = ConstantExpression(True)
        b = ConstantExpression(False)
        node_type = BinaryExpression.LessThan
        expr = BinaryExpression(node_type, a, b)

        self.assertEquals(expr.node_type, node_type)
        self.assertEquals(expr.lhs, a)
        self.assertEquals(expr.rhs, b)
Пример #21
0
    def test_expression_not_equal_of_two_constants(self):
        a = ConstantExpression(True)
        b = ConstantExpression(False)
        node_type = BinaryExpression.NotEqual
        expr = BinaryExpression(node_type, a, b)

        self.assertEquals(expr.node_type, node_type)
        self.assertEquals(expr.lhs, a)
        self.assertEquals(expr.rhs, b)
Пример #22
0
 def led(self, left):
     return BinaryExpression(BinaryExpression.Or, left,
                             self.expression(self.lbp - 1))
Пример #23
0
 def led(self, left):
     return BinaryExpression(BinaryExpression.Subtract, left,
                             self.expression(self.lbp))
Пример #24
0
 def led(self, left):
     return BinaryExpression(BinaryExpression.Multiply, left,
                             self.expression(self.lbp))
Пример #25
0
 def led(self, left):
     return BinaryExpression(BinaryExpression.LessThanOrEqual, left,
                             self.expression(self.lbp))
Пример #26
0
 def led(self, left):
     return BinaryExpression(BinaryExpression.GreaterThan, left,
                             self.expression(self.lbp))
Пример #27
0
 def led(self, left):
     return BinaryExpression(BinaryExpression.NotEqual, left,
                             self.expression(self.lbp))
Пример #28
0
 def led(self, left):
     return BinaryExpression(BinaryExpression.Divide, left,
                             self.expression(self.lbp))
Пример #29
0
 def led(self, left):
     return BinaryExpression(BinaryExpression.Modulo, left,
                             self.expression(self.lbp))