コード例 #1
0
ファイル: app.py プロジェクト: marcpare/edsger
def evaluate():
	expression = request.GET["expression"]
	
	response.content_type = 'text/json'
	try:
		result = edsger.evaluate(expression)
		return json.dumps(result)
	except Exception, err:
		return json.dumps(err.__class__.__name__ + ": " + str(err))
コード例 #2
0
ファイル: test_evaluator.py プロジェクト: marcpare/edsger
	def test_unary_minus(self):
		self.assertAlmostEqual(evaluate('1--2'), 3)
		self.assertAlmostEqual(evaluate('-3+-2'), -5)
		self.assertAlmostEqual(evaluate('1+(-2*2)'), -3)
		self.assertAlmostEqual(evaluate('1--(-2^2)'), -3)
		self.assertAlmostEqual(evaluate('(1)-2'), -1)
コード例 #3
0
ファイル: test_evaluator.py プロジェクト: marcpare/edsger
	def test_order_of_operations(self):
		self.assertAlmostEqual(evaluate("(1 + 2) * (4 - 1) ^ 2"), 27)
		self.assertAlmostEqual(evaluate("(1 + 2) * (4 - 2 ^ 3)"), -12)
		self.assertAlmostEqual(evaluate("10 / 2 / 3"), 10.0 / 2.0 / 3.0)
コード例 #4
0
ファイル: test_evaluator.py プロジェクト: marcpare/edsger
	def test_nested_par(self):
		self.assertAlmostEqual(evaluate("((10 - 8) * (2)) + (5 / 3)"), ((10 - 8) * (2)) + (5.0 / 3))
コード例 #5
0
ファイル: test_evaluator.py プロジェクト: marcpare/edsger
	def test_assoc(self):
		self.assertAlmostEqual(evaluate('1 + 2 * 3'), 7)
		self.assertAlmostEqual(evaluate('1 + 2 * 3 ^ 2'), 19)
コード例 #6
0
ファイル: test_evaluator.py プロジェクト: marcpare/edsger
	def test_division(self):
		self.assertAlmostEqual(evaluate('10 / 2'), 5)
		self.assertAlmostEqual(evaluate('3 / 2'), 3.0/2.0)
コード例 #7
0
ファイル: test_evaluator.py プロジェクト: marcpare/edsger
	def test_multiplication(self):
		self.assertAlmostEqual(evaluate('2 * 3'), 6)
コード例 #8
0
ファイル: test_evaluator.py プロジェクト: marcpare/edsger
	def test_subtraction(self):
		self.assertAlmostEqual(evaluate('1 - 2'), -1)
コード例 #9
0
ファイル: test_evaluator.py プロジェクト: marcpare/edsger
	def test_addition(self):
		self.assertAlmostEqual(evaluate('1 + 2'), 3)