コード例 #1
0
    def test_expr_final(self):
        expr = Expression("((1+2)+1)*2")
        self.assertEquals(8, expr.eval())

        expr = Expression("(1+(1+2))*2")
        self.assertEquals(8, expr.eval())

        expr = Expression("(2-(1-2))*3+(2-(2+1))*3")
        self.assertEquals(6, expr.eval())
コード例 #2
0
    def test_expr_with_nested_parentheses(self):
        expr = Expression("((10+21)+34)*20")
        self.assertEquals(1300, expr.eval())

        expr = Expression("(50-(12+34))*20")
        self.assertEquals(80, expr.eval())

        expr = Expression("((11+23)%11)*20")
        self.assertEquals(20, expr.eval())

        expr = Expression("(12-(15-12))*10/(24-(12+10))/3")
        self.assertEquals(15, expr.eval())

        expr = Expression("(100-(1920-1900))*2/(24-(12+10))/2")
        self.assertEquals(40, expr.eval())
コード例 #3
0
    def test_expr_with_minus(self):
        expr = Expression("((12))")
        self.assertEquals(12, expr.eval())

        expr = Expression("-10+20")
        self.assertEquals(10, expr.eval())

        expr = Expression("(-10)+20")
        self.assertEquals(10, expr.eval())

        expr = Expression("20+(-10)")
        self.assertEquals(10, expr.eval())

        expr = Expression("(-11+12)*1-15+12/2")
        self.assertEquals(-8, expr.eval())

        expr = Expression("(11+12)*(-1)-(15+12/2)")
        self.assertEquals(-44, expr.eval())

        expr = Expression("((12+(-11))*2-11)*3")
        self.assertEquals(-27, expr.eval())
コード例 #4
0
 def test_expr_with_operator_followed_by_left_parenthesis(self):
     expr = Expression("2**(1+2)")
     self.assertEquals(8, expr.eval())
コード例 #5
0
 def test_expr_with_pow(self):
     expr = Expression("2**3")
     self.assertEquals(8, expr.eval())
コード例 #6
0
    def test_expr_with_right_parenthesis_followed_by_right_parenthesis(self):
        expr = Expression("(48-(12+34))*10")
        self.assertEquals(20, expr.eval())

        expr = Expression("10*(48-(12+34))")
        self.assertEquals(20, expr.eval())
コード例 #7
0
 def test_expr_ends_with_right_parenthesis(self):
     expr = Expression("10*(12+34)")
     self.assertEquals(460, expr.eval())
コード例 #8
0
 def test_parenthesis_without_negative(self):
     expr = Expression("10*(48-(12+34))")
     self.assertEquals(20, expr.eval())
コード例 #9
0
 def test_expr_with_minus_when_negative_num_wrapped_with_parentheses(self):
     expr = Expression("(-12)")
     self.assertEquals(-12, expr.eval())
コード例 #10
0
 def test_expr_has_one_operator(self):
     expr = Expression("12+34")
     self.assertEquals(46, expr.eval())
コード例 #11
0
 def test_expr_has_parentheses(self):
     expr = Expression("2*(1+2)")
     self.assertEquals(6, expr.eval())
コード例 #12
0
 def test_expr_context(self):
     expr = Expression("", Context("3", 0))
     self.assertEquals(3, expr.eval())
コード例 #13
0
 def test_multichar_operator(self):
     expr = Expression("10**2")
     self.assertEquals(100, expr.eval())
コード例 #14
0
 def test_multidigit_operand(self):
     expr = Expression("12")
     self.assertEquals(12, expr.eval())
コード例 #15
0
 def test_parenthesis_with_negative(self):
     expr = Expression("((12+(-11))*2-11)**2")
     self.assertEquals(81, expr.eval())
コード例 #16
0
 def test_expr_with_minus_when_expr_starts_with_minus(self):
     expr = Expression("-12")
     self.assertEquals(-12, expr.eval())
コード例 #17
0
 def test_num(self):
     expr = Expression("12")
     self.assertEquals(12, expr.eval())
コード例 #18
0
 def test_expr_has_multiple_operators(self):
     expr = Expression("12+34*10")
     self.assertEquals(352, expr.eval())
コード例 #19
0
 def test_expr_with_right_parenthesis_followed_by_an_operator(self):
     expr = Expression("(12+34)*10")
     self.assertEquals(460, expr.eval())
コード例 #20
0
 def test_negative_operand(self):
     expr = Expression("-12")
     self.assertEquals(-12, expr.eval())