Esempio n. 1
0
def main():
	parser = argparse.ArgumentParser(description='Process operator and arguments')	
	parser.add_argument('operator')
	parser.add_argument('arguments', type=float, nargs='+')

	args = parser.parse_args()

	try:
		print evaluate(args.operator, *args.arguments)
	except Exception as e:
		print "Error: " + e.message
Esempio n. 2
0
def check_answer(x, y, op, result, user_choice):
    if (evaluate(x, y, op) == result) and (user_choice == True ):
        return True 
    elif (evaluate(x, y, op) == result) and (user_choice == False):
        return False
        
    elif (evaluate(x, y, op) != result) and (user_choice == False):
        return True
        
    elif (evaluate(x, y, op) != result) and (user_choice == True):
        return False
Esempio n. 3
0
    def test_invalid_expression(self):
        """
        Make sure code will behave correctly for invalid input
        """

        data = [
            "1/0",
            "import os",
        ]

        for expression in data:
            with self.assertRaises(StandardError):
                evaluate(expression)
Esempio n. 4
0
    def test_invalid_expression(self):
        """
        Make sure code will behave correctly for invalid input
        """

        data = [
            "1/0",
            "import os",
        ]

        for expression in data:
            with self.assertRaises(StandardError):
                evaluate(expression)
Esempio n. 5
0
    def test_multiple_hex_to_decimal(self):
        self.assertEqual(calc.evaluate("0x00"), 0)
        self.assertEqual(calc.evaluate("0xFF"), 255)

        self.assertEqual(calc.evaluate("0x0000000000000000000000000000000000000"), 0)
        self.assertEqual(
            calc.evaluate("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"), 356811923176489970264571492362373784095686655
        )

        self.assertEqual(calc.evaluate("0x1234567890"), 78187493520)
        self.assertEqual(calc.evaluate("0xABCDEF"), 11259375)

        self.assertEqual(calc.evaluate("0xA83F"), 43071)
        self.assertEqual(calc.evaluate("0x1AB5"), 6837)
        self.assertEqual(calc.evaluate("0x9D2C"), 40236)
        self.assertEqual(calc.evaluate("0xD6B4"), 54964)
Esempio n. 6
0
def generate_quiz():
    x = randint(0,10)
    y = randint(1,10)
    op = choice(['+', '-', '*', '/'])
    result = evaluate(x, y, op)+randint(-2,2)
    # Hint: Return [x, y, op, result]
    return [x, y, op, result]
def generate_quiz():
    # Hint: Return [x, y, op, result]
    x = randint(0, 20)
    y = randint(0, 20)
    op = choice(["+", "-", "*", "/"])
    error = randint(-1, 1)
    result = evaluate(x, y, op) + error

    return x, y, op, result
def check_answer(x, y, op, result, user_choice):

    if evaluate(x, y, op) == result:
        if user_choice == True:
            return True
        else:
            return False
    else:
        if user_choice == False:
            return True
        else:
            return False
        pass
Esempio n. 9
0
    def test_simple_expression(self):
        """
        Test expression without functions or constants
        """

        data = [
            ("84-9*3", 57),
            ("8**4", 4096),
            ("3*(2*5)**3/(123-32+9)", 30),
        ]

        for expression, expected in data:
            result = evaluate(expression)

            msg = "{} evaluated to: {}. Expected {}".format(
                expression, result, expected)
            self.assertEquals(result, expected, msg)
Esempio n. 10
0
    def test_simple_expression(self):
        """
        Test expression without functions or constants
        """

        data = [
            ("84-9*3", 57),
            ("8**4", 4096),
            ("3*(2*5)**3/(123-32+9)", 30),
        ]

        for expression, expected in data:
            result = evaluate(expression)

            msg = "{} evaluated to: {}. Expected {}".format(
                expression, result, expected)
            self.assertEquals(result, expected, msg)
Esempio n. 11
0
    def test_complex_expression(self):
        """
        Test expression with functions or constants
        """

        data = [
            ("2*log(exp(2))", 4),
            ("cos(2*pi)", 1),
            ("log(8,2)", 3),
        ]

        for expression, expected in data:
            result = evaluate(expression)

            msg = "{} evaluated to: {}. Expected {}".format(
                expression, result, expected)
            self.assertEquals(result, expected, msg)
Esempio n. 12
0
    def test_complex_expression(self):
        """
        Test expression with functions or constants
        """

        data = [
            ("2*log(exp(2))", 4),
            ("cos(2*pi)", 1),
            ("log(8,2)", 3),
        ]

        for expression, expected in data:
            result = evaluate(expression)

            msg = "{} evaluated to: {}. Expected {}".format(
                expression, result, expected)
            self.assertEquals(result, expected, msg)
Esempio n. 13
0
 def test_multiple_digits(self):
     self.assertEqual(calc.evaluate('99999'), 99999)
     self.assertEqual(calc.evaluate('12345'), 12345)
     self.assertEqual(calc.evaluate('99999'), 99999)
     self.assertEqual(calc.evaluate('99'), 99)
     self.assertEqual(calc.evaluate('00'), 00)
Esempio n. 14
0
 def test_single_digit(self):
     i = 0
     for c in '0123456789':
         self.assertEqual(calc.evaluate(c),i)
         i = i + 1
Esempio n. 15
0
 def test_floating_numbers(self):
     self.assertEqual(calc.evaluate('123.456'),123.456)
     self.assertEqual(calc.evaluate('-123.456'),-123.456)
Esempio n. 16
0
 def test_multiple_digits(self):
     self.assertEqual(calc.evaluate('99999'),99999)
     self.assertEqual(calc.evaluate('12345'),12345)
     self.assertEqual(calc.evaluate('99999'),99999)
     self.assertEqual(calc.evaluate('99'),99)
     self.assertEqual(calc.evaluate('00'),00)
 def test_multiple_digits(self):
     self.assertEqual(calc.evaluate('888'),888)
     self.assertEqual(calc.evaluate('12345'),12345)
     self.assertEqual(calc.evaluate('11111111'),11111111)
     self.assertEqual(calc.evaluate('00'),00)
Esempio n. 18
0
from random import randint
from calc import evaluate

#1. Generate equation

x = randint(0, 9)
y = randint(0, 9)
error = randint(-1, 1)
r = evaluate("+", x, y) + error

print(f"{x} + {y} = {r}")

if error == 0:
    r = True
else:
    r = False

while True:
    user_answer = input("(Y/N)? ").upper()
    if user_answer == "Y":
        user_answer = True
        if user_answer == r:
            print("Yay!")
            break
        else:
            print("Wrong!")
            break
    elif user_answer == "N":
        user_answer = False
        if user_answer == r:
            print("Yay!")
	def test_not_supported_method(self):
		with self.assertRaises(ValueError):
			evaluate("not_supported", 1, 2)
Esempio n. 20
0
from random import randint,choice
from calc import evaluate

f_n = choice(["+","-","*","/"])
x = randint(0,9)
y = randint(0,9)
error = randint(-1,1)

r = evaluate(f_n,x,y) + error
# r = i + error
r_a = (error == 0)
print(f"{x}{f_n}{y}={r}")

while True:
    user_choice = input("Your answer?(Y/N) ").upper()
    if user_choice != "Y" and user_choice != "N":
        print("Choose Y/N answer! ")
    else:
        break
u_a = (user_choice == "Y")
if u_a == r_a:
    print("Yay!")
else:
    print("Wrong!")
    
Esempio n. 21
0
 def test_multiple_digits(self):
     self.assertEqual(calc.evaluate("99999"), 99999)
     self.assertEqual(calc.evaluate("12345"), 12345)
     self.assertEqual(calc.evaluate("99999"), 99999)
     self.assertEqual(calc.evaluate("99"), 99)
     self.assertEqual(calc.evaluate("00"), 00)
Esempio n. 22
0
def step_impl(context):
    global result
    result = calc.evaluate('1+1')
Esempio n. 23
0
def step_impl(context):
    global result
    result = calc.evaluate('---123')
Esempio n. 24
0
 def test_negative_numbers(self):
     self.assertEqual(calc.evaluate("-123"), -123)
     self.assertEqual(calc.evaluate("-1"), -1)
     self.assertEqual(calc.evaluate("0"), 0)
     self.assertEqual(calc.evaluate("---123"), -123)
Esempio n. 25
0
 def test_floating_numbers(self):
     self.assertEqual(calc.evaluate('123.456'), 123.456)
     self.assertEqual(calc.evaluate('-123.456'), -123.456)
     self.assertEqual(calc.evaluate('0123.456'), 123.456)
from random import randint, choice
from calc import evaluate

phtoan = ["+", "-", "*", "/"]
op = choice(phtoan)
#1 sinh bieu thuc
x = randint(0, 9)
y = randint(0, 9)
error = randint(-1, 1)
r = evaluate(x, y, op) + error
print(f"{x} {op} {y} = {r}")
#2
user_answer = input("(Y/N)?").upper()
if user_answer == "Y":
    if error == 0:
        print("Yay")
    else:
        print("You're Wrong")
else:
    if error == 0:
        print("You're Wrong")
    else:
        print("yay")
Esempio n. 27
0
from random import randint, choice
from calc import evaluate

#1.sinh bieu thuc
x = randint(0, 9)
y = randint(0, 9)
pt = choice(["+", "-", "*", "/"])
error = randint(-1, 1)

r = evaluate(x, y, pt) + error

print(f"{x} {pt} {y} = {r}")

user_answer = input("(Y?N)?").upper()

if user_answer == "Y":
    if error == 0:
        print("yay")
    elif error != 0:  # co the dung ham else luon
        print("wrong")
elif user_answer == "N":
    if error == 0:
        print("wrong")
    elif error != 0:
        print("yay")
	def test_supported_method(self):		
		self.assertAlmostEqual(evaluate("+", 1, 2), 3)
Esempio n. 29
0
#     print(x,"+",y,"=",r+random.randint(-1,1))
# else:
#     print(x,"+",y,"=",r)
#     # string formating
#     # s=f"{x}+{y}={r}"
# answer=input("Choose your answer(t/f):")
# if answer=="t" and c=='1':
#     print("yay")
# elif answer=="f" and c=='0':
#     print("yay")
# elif answer=="t" and c=='0':
#     print("nay")
# elif answer=="f" and c=='1':
#     print("nay")
opr = random.choice(["+", "-", "*", "/"])
error = random.randint(-1, 1)
r = calc.evaluate(x, y, opr) + error
s = f"{x}{opr}{y}={r}"
print(s)
answer = input("y/n")
if error == 0:
    if answer == "y":
        print("yay")
    else:
        print("nay")
else:
    if answer == "y":
        print("nay")
    else:
        print("yay")
Esempio n. 30
0
def test_evaluate(source, want):
    stack = [] 
    evaluate(source.split(), stack)
    assert want == stack[-1]
Esempio n. 31
0
def check_answer(x, y, op, result, user_choice):
    real_result = evaluate(x, y, op)
    if user_choice:
        return real_result = result
    else:
        return not real_result = result
Esempio n. 32
0
from calc import evaluate

x = int(input("x: "))
y = int(input("y: "))

s = evaluate(x, y)

print("result: ", end = "")

print(s)
Esempio n. 33
0
 def test_add_two_numbers(self):
     self.assertEqual(calc.evaluate('1+1'), 2)
Esempio n. 34
0
 def test_negative_numbers(self):
     self.assertEqual(calc.evaluate('-123'),-123)
     self.assertEqual(calc.evaluate('-1'),-1)
     self.assertEqual(calc.evaluate('0'),0)
     self.assertEqual(calc.evaluate('---123'),-123)
a = int(input("Enter a:"))
b = int(input("Enter b:"))
from calc import evaluate

# print()
# if ptoan == "+":
#     n = a + b   
# elif ptoan == "-":
#      n = a - b
# elif ptoan == "*":
#     n =a*b
# else:
#     n =a/b
pt = input("pt: ")
n = evaluate(a,b,pt )

print(n)
Esempio n. 36
0
 def test_hexadecimal_numbers(self):
     self.assertEqual(calc.evaluate('0x00'),0)
     self.assertEqual(calc.evaluate('0x10'),16)
     self.assertEqual(calc.evaluate('0xff'),255)
     self.assertEqual(calc.evaluate('0xFF'),255)
Esempio n. 37
0
#!/usr/bin/env python3

import sys
import calc

input = " ".join(sys.argv[1:])

if len(input) == 0:
    exit(0)

eval_result = calc.evaluate(input)

info = ""

first_32_code_names = [
    "NUL", "SOH", "STX", "ETX", "EOT", "ENQ", "ACK", "BEL", "BS", "TAB", "LF",
    "VT", "FF", "CR", "SO", "SI", "DLE", "DC1", "DC2", "DC3", "DC4", "NAK",
    "SYN", "ETB", "CAN", "EM", "SUB", "ESC", "FS", "GS", "RS", "US"
]


def get_info(number):
    if isinstance(number, int) or number.is_integer():
        integer = int(number)
        if integer >= ord(" ") and integer <= ord("~"):
            return chr(integer)
        elif integer >= 0 and integer <= 31:
            return "「" + first_32_code_names[integer] + "」"
        elif integer == 127:
            return "「DEL」"
        else:
Esempio n. 38
0
from calc import evaluate

x = int(input("x = "))
y = int(input("y = "))
pt = input("pt: ")

r = evaluate(x, y, pt)

# if pt == "+":
#     r= x + y
# elif pt == "-":
#     r = x -y
# elif pt =="*":
#     r=x*y
# elif pt == "/":
#     r=x/y

print(r)
Esempio n. 39
0
def test_evaluate(source, want):
    result = evaluate(tokenize(source))
    assert want == result
Esempio n. 40
0
 def test_negative_numbers(self):
     self.assertEqual(calc.evaluate('-123'), -123)
     self.assertEqual(calc.evaluate('-1'), -1)
     self.assertEqual(calc.evaluate('0'), 0)
     self.assertEqual(calc.evaluate('---123'), -123)
     self.assertEqual(calc.evaluate('-----123'), -123)
Esempio n. 41
0
#!/usr/bin/env python3

import sys
import calc

input = " ".join(sys.argv[1:])

print(calc.evaluate(input), end="")
Esempio n. 42
0
 def test_hexadecimal_numbers(self):
     self.assertEqual(calc.evaluate('0x00'), 0)
     self.assertEqual(calc.evaluate('0x10'), 16)
     self.assertEqual(calc.evaluate('0xff'), 255)
     self.assertEqual(calc.evaluate('0xFF'), 255)
Esempio n. 43
0
 def test_single_hex_to_decimal(self):
     i = 0
     for c in "0123456789ABCDEF":
         self.assertEqual(calc.evaluate("0x" + c), i)
         i += 1
Esempio n. 44
0
 def test_single_digit(self):
     i = 0
     for c in '0123456789':
         self.assertEqual(calc.evaluate(c), i)
         i = i + 1
Esempio n. 45
0
#!/usr/bin/env python3

import sys
import calc

input = " ".join(sys.argv[1:])

print(calc.to_bin(calc.evaluate(input)), end="")