コード例 #1
0
 def test_assignment_formula(self):
     ns = {}
     ast = parse("\"Force\" F = 1 * (2+3)")
     program = interpreter.interpret(ast, ns)
     self.assertEqual(ns["F"].longname, 'Force')
     self.assertEqual(ns["F"].name, 'F')
     self.assertEqual(ns["F"].value, 5)
コード例 #2
0
 def test_pythoncode_combi(self):
     ns = {"a": 1}
     a = (">a+=1\n" + ">a+=1\n" + "b=3")
     ast = parse(a)
     program = interpreter.interpret(ast, ns)
     self.assertEqual(ns["a"], 3)
     self.assertEqual(ns["b"].value, 3)
コード例 #3
0
 def test_assignment(self):
     ns = {}
     ast = parse("\"Force\" F = 1.234 <0.01> [N]")
     program = interpreter.interpret(ast, ns)
     self.assertEqual(ns["F"].longname, 'Force')
     self.assertEqual(ns["F"].name, 'F')
     self.assertEqual(ns["F"].value, 1.234)
     self.assertEqual(ns["F"].error, 0.01)
コード例 #4
0
 def test_unquoted_longname(self):
     ns = {}
     ast = parse(
         "My favorite väriable F = 1 * (2+3)"
     )
     program = interpreter.interpret(ast, ns)
     self.assertEqual(ns["F"].longname, 'My favorite väriable')
     self.assertEqual(ns["F"].name, 'F')
コード例 #5
0
 def test_pythoncode_combi(self):
     ns = {"a":1}
     a=(">a+=1\n"+
        ">a+=1\n"+
        "b=3")
     ast = parse(a)
     program = interpreter.interpret(ast, ns)
     self.assertEqual(ns["a"], 3)
     self.assertEqual(ns["b"].value, 3)
コード例 #6
0
 def test_assignment_formula(self):
     ns = {}
     ast = parse(
         "\"Force\" F = 1 * (2+3)"
     )
     program = interpreter.interpret(ast, ns)
     self.assertEqual(ns["F"].longname, 'Force')
     self.assertEqual(ns["F"].name, 'F')
     self.assertEqual(ns["F"].value, 5)
コード例 #7
0
 def test_assignment(self):
     ns = {}
     ast = parse(
         "\"Force\" F = 1.234 <0.01> [N]"
     )
     program = interpreter.interpret(ast, ns)
     self.assertEqual(ns["F"].longname, 'Force')
     self.assertEqual(ns["F"].name, 'F')
     self.assertEqual(ns["F"].value, 1.234)
     self.assertEqual(ns["F"].error, 0.01)
コード例 #8
0
 def test_example(self):
     a=("\n#bla\n" +
       "{\n" +
       "Zeit t <0.1> [s], Höhe h [m], h_err [dm]\n" +
       "4 5 6\n" +
       "}\n" +
       "\n" +
       "# Bismut\n" +
       "a=3")
     ast = parse(a)
     program = interpreter.interpret(ast, {})
コード例 #9
0
ファイル: interactive.py プロジェクト: benti/Error-Pypagation
def calculation(calc):
    """ parses and executes calculation

    Args:
        calc: string of calculation(s) like in data file
    """

    global ns

    # parse
    syntax_tree = parse(calc)

    # execute
    ns = interpreter.interpret(syntax_tree, ns)
コード例 #10
0
def calculation(calc):
    """ parses and executes calculation

    Args:
        calc: string of calculation(s) like in data file
    """

    global ns

    # parse
    syntax_tree = parse(calc)

    # execute
    ns = interpreter.interpret(syntax_tree, ns)
コード例 #11
0
 def test_multi_assignment(self):
     ns = {}
     ast = parse("{\n" + " F[N], s[m], s_err[cm]\n" + " 1.1 2 0.1\n" +
                 " 3 4 0.2\n"
                 "}")
     program = interpreter.interpret(ast, ns)
     self.assertEqual(ns["F"].name, 'F')
     self.assertEqual(ns["F"].value[0], 1.1)
     self.assertEqual(ns["F"].value[1], 3)
     self.assertEqual(ns["s"].name, 's')
     self.assertEqual(ns["s"].value[0], 2)
     self.assertEqual(ns["s"].value[1], 4)
     self.assertEqual(ns["s"].error[0], 0.1)
     self.assertEqual(ns["s"].error[1], 0.2)
コード例 #12
0
ファイル: project.py プロジェクト: benti/Error-Pypagation
    def calc(self, calc):
        """ parses and executes calculations

        Args:
            calc: string of calculation(s) like in data file
        """

        # parse
        syntax_tree = parse(calc)

        # interpret
        commands = interpreter.interpret(syntax_tree)

        # execute
        for c in commands:
            c.execute(self)
コード例 #13
0
ファイル: project.py プロジェクト: abentkamp/Error-Pypagation
    def calc(self, calc):
        """ parses and executes calculations

        Args:
            calc: string of calculation(s) like in data file
        """

        # parse
        syntax_tree = parse(calc)

        # interpret
        commands = interpreter.interpret(syntax_tree)

        # execute
        for c in commands:
            c.execute(self)
コード例 #14
0
 def test_multi_assignment(self):
     ns = {}
     ast = parse(
         "{\n" +
         " F[N], s[m], s_err[cm]\n" +
         " 1.1 2 0.1\n" +
         " 3 4 0.2\n"
         "}"
     )
     program = interpreter.interpret(ast, ns)
     self.assertEqual(ns["F"].name, 'F')
     self.assertEqual(ns["F"].value[0], 1.1)
     self.assertEqual(ns["F"].value[1], 3)
     self.assertEqual(ns["s"].name, 's')
     self.assertEqual(ns["s"].value[0], 2)
     self.assertEqual(ns["s"].value[1], 4)
     self.assertEqual(ns["s"].error[0], 0.1)
     self.assertEqual(ns["s"].error[1], 0.2)
コード例 #15
0
 def test_coordinated_brackets(self):
     ast = parse(
         "grad_Bi = (2)*(3)"
     )
     program = interpreter.interpret(ast, {})
コード例 #16
0
 def test_unquoted_longname(self):
     ns = {}
     ast = parse("My favorite väriable F = 1 * (2+3)")
     program = interpreter.interpret(ast, ns)
     self.assertEqual(ns["F"].longname, 'My favorite väriable')
     self.assertEqual(ns["F"].name, 'F')
コード例 #17
0
 def test_coordinated_brackets(self):
     ast = parse("grad_Bi = (2)*(3)")
     program = interpreter.interpret(ast, {})
コード例 #18
0
 def test_example(self):
     a = ("\n#bla\n" + "{\n" +
          "Zeit t <0.1> [s], Höhe h [m], h_err [dm]\n" + "4 5 6\n" + "}\n" +
          "\n" + "# Bismut\n" + "a=3")
     ast = parse(a)
     program = interpreter.interpret(ast, {})