Commit c02502b3 by Piotr Mitros

New constant for calculator and new tests

parent 3a515bfd
...@@ -4,6 +4,7 @@ import math ...@@ -4,6 +4,7 @@ import math
import operator import operator
import numpy import numpy
import scipy.constants
from pyparsing import Word, alphas, nums, oneOf, Literal from pyparsing import Word, alphas, nums, oneOf, Literal
from pyparsing import ZeroOrMore, OneOrMore, StringStart from pyparsing import ZeroOrMore, OneOrMore, StringStart
...@@ -24,7 +25,12 @@ default_functions = {'sin' : numpy.sin, ...@@ -24,7 +25,12 @@ default_functions = {'sin' : numpy.sin,
'abs':numpy.abs 'abs':numpy.abs
} }
default_variables = {'j':numpy.complex(0,1), default_variables = {'j':numpy.complex(0,1),
'e':numpy.complex(numpy.e) 'e':numpy.e,
'pi':numpy.pi,
'k':scipy.constants.k,
'c':scipy.constants.c,
'T':298.15,
'q':scipy.constants.e
} }
log = logging.getLogger("mitx.courseware.capa") log = logging.getLogger("mitx.courseware.capa")
......
...@@ -27,6 +27,9 @@ class ModelsTest(unittest.TestCase): ...@@ -27,6 +27,9 @@ class ModelsTest(unittest.TestCase):
self.assertEqual(calc.evaluator({},{}, "-1"), -1) self.assertEqual(calc.evaluator({},{}, "-1"), -1)
self.assertEqual(calc.evaluator({},{}, "-0.33"), -.33) self.assertEqual(calc.evaluator({},{}, "-0.33"), -.33)
self.assertEqual(calc.evaluator({},{}, "-.33"), -.33) self.assertEqual(calc.evaluator({},{}, "-.33"), -.33)
self.assertEqual(calc.evaluator(variables, functions, "R1*R3"), 8.0)
self.assertTrue(abs(calc.evaluator(variables, functions, "sin(e)-0.41"))<0.01)
self.assertTrue(abs(calc.evaluator(variables, functions, "k*T/q-0.025"))<0.001)
exception_happened = False exception_happened = False
try: try:
evaluator({},{}, "5+7 QWSEKO") evaluator({},{}, "5+7 QWSEKO")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment