예제 #1
0
 def test_parse_var_sub_var(self):
     indata = "x[1] - y"
     actual = parsing.parse_definition(indata)
     x1 = parsing.VarType("x", [1])
     y = parsing.VarType("y")
     expected = parsing.OpType("-", [x1, y])
     testname = "parse_definition({0!r})".format(indata)
     print_test_message(testname, indata=indata, actual=actual, expected=expected)
     self.assertEqual(actual, expected, "Subtraction operator parsing failed")
예제 #2
0
 def test_parse_integrated_5(self):
     indata = 'mean(chunits(time_bnds, units=time), "bnds")'
     actual = parsing.parse_definition(indata)
     time = parsing.VarType("time")
     time_bnds = parsing.VarType("time_bnds")
     chunits = parsing.FuncType("chunits", [time_bnds], {"units": time})
     expected = parsing.FuncType("mean", [chunits, "bnds"])
     testname = "parse_definition({0!r})".format(indata)
     print_test_message(testname, indata=indata, actual=actual, expected=expected)
     self.assertEqual(actual, expected, "Integrated #5 operator parsing failed")
예제 #3
0
 def test_parse_integrated_2(self):
     indata = "2-17.3*x / f(2.3, x[2:5])"
     actual = parsing.parse_definition(indata)
     x = parsing.VarType("x")
     x25 = parsing.VarType("x", [slice(2, 5)])
     f = parsing.FuncType("f", [2.3, x25])
     m17p3x = parsing.OpType("*", [17.3, x])
     dm17p3xf = parsing.OpType("/", [m17p3x, f])
     expected = parsing.OpType("-", [2, dm17p3xf])
     testname = "parse_definition({0!r})".format(indata)
     print_test_message(testname, indata=indata, actual=actual, expected=expected)
     self.assertEqual(actual, expected, "Integrated #2 operator parsing failed")
예제 #4
0
 def test_parse_var_add_var(self):
     indata = 'x[1] + y'
     actual = parsing.parse_definition(indata)
     x1 = parsing.VarType('x', [1])
     y = parsing.VarType('y')
     expected = parsing.OpType('+', [x1, y])
     testname = 'parse_definition({0!r})'.format(indata)
     print_test_message(testname,
                        indata=indata,
                        actual=actual,
                        expected=expected)
     self.assertEqual(actual, expected, 'Addition operator parsing failed')
예제 #5
0
 def test_parse_integrated_5(self):
     indata = 'mean(chunits(time_bnds, units=time), "bnds")'
     actual = parsing.parse_definition(indata)
     time = parsing.VarType('time')
     time_bnds = parsing.VarType('time_bnds')
     chunits = parsing.FuncType('chunits', [time_bnds], {'units': time})
     expected = parsing.FuncType('mean', [chunits, 'bnds'])
     testname = 'parse_definition({0!r})'.format(indata)
     print_test_message(testname,
                        indata=indata,
                        actual=actual,
                        expected=expected)
     self.assertEqual(actual, expected,
                      'Integrated #5 operator parsing failed')
예제 #6
0
 def test_parse_integrated_2(self):
     indata = '2-17.3*x / f(2.3, x[2:5])'
     actual = parsing.parse_definition(indata)
     x = parsing.VarType('x')
     x25 = parsing.VarType('x', [slice(2, 5)])
     f = parsing.FuncType('f', [2.3, x25])
     m17p3x = parsing.OpType('*', [17.3, x])
     dm17p3xf = parsing.OpType('/', [m17p3x, f])
     expected = parsing.OpType('-', [2, dm17p3xf])
     testname = 'parse_definition({0!r})'.format(indata)
     print_test_message(testname,
                        indata=indata,
                        actual=actual,
                        expected=expected)
     self.assertEqual(actual, expected,
                      'Integrated #2 operator parsing failed')
예제 #7
0
 def test_parse_var_slice_partial_3(self):
     indata = "x[::-1]"
     actual = parsing.parse_definition(indata)
     expected = parsing.VarType("x", [slice(None, None, -1)])
     testname = "parse_definition({0!r})".format(indata)
     print_test_message(testname, indata=indata, actual=actual, expected=expected)
     self.assertEqual(actual, expected, "Variable parsing failed")
예제 #8
0
 def test_parse_var_int_slice(self):
     indata = "x[3,1:2]"
     actual = parsing.parse_definition(indata)
     expected = parsing.VarType("x", [3, slice(1, 2, None)])
     testname = "parse_definition({0!r})".format(indata)
     print_test_message(testname, indata=indata, actual=actual, expected=expected)
     self.assertEqual(actual, expected, "Variable parsing failed")
예제 #9
0
 def test_parse_var_time(self):
     indata = "time"
     actual = parsing.parse_definition(indata)
     expected = parsing.VarType("time")
     testname = "parse_definition({0!r})".format(indata)
     print_test_message(testname, indata=indata, actual=actual, expected=expected)
     self.assertEqual(actual, expected, "Variable time parsing failed")
예제 #10
0
 def test_parse_pos_var(self):
     indata = "+x[1]"
     actual = parsing.parse_definition(indata)
     expected = parsing.VarType("x", [1])
     testname = "parse_definition({0!r})".format(indata)
     print_test_message(testname, indata=indata, actual=actual, expected=expected)
     self.assertEqual(actual, expected, "Positive operator parsing failed")
예제 #11
0
 def test_varpst_init(self):
     indata = ["x"]
     pst = parsing.VarType(*indata)
     actual = type(pst)
     expected = parsing.VarType
     testname = "VarType.__init__({0!r})".format(indata)
     print_test_message(testname, indata=indata, actual=actual, expected=expected)
     self.assertEqual(actual, expected, "Types do not match")
예제 #12
0
 def test_parse_neg_var(self):
     indata = "-x"
     actual = parsing.parse_definition(indata)
     x = parsing.VarType("x")
     expected = parsing.OpType("-", [x])
     testname = "parse_definition({0!r})".format(indata)
     print_test_message(testname, indata=indata, actual=actual, expected=expected)
     self.assertEqual(actual, expected, "Negation parsing failed")
예제 #13
0
 def test_parse_pos_var(self):
     indata = '+x[1]'
     actual = parsing.parse_definition(indata)
     expected = parsing.VarType('x', [1])
     testname = 'parse_definition({0!r})'.format(indata)
     print_test_message(testname,
                        indata=indata,
                        actual=actual,
                        expected=expected)
     self.assertEqual(actual, expected, 'Positive operator parsing failed')
예제 #14
0
 def test_parse_var_time(self):
     indata = 'time'
     actual = parsing.parse_definition(indata)
     expected = parsing.VarType('time')
     testname = 'parse_definition({0!r})'.format(indata)
     print_test_message(testname,
                        indata=indata,
                        actual=actual,
                        expected=expected)
     self.assertEqual(actual, expected, 'Variable time parsing failed')
예제 #15
0
 def test_parse_var_slice_partial_2(self):
     indata = 'x[:2]'
     actual = parsing.parse_definition(indata)
     expected = parsing.VarType('x', [slice(None, 2)])
     testname = 'parse_definition({0!r})'.format(indata)
     print_test_message(testname,
                        indata=indata,
                        actual=actual,
                        expected=expected)
     self.assertEqual(actual, expected, 'Variable parsing failed')
예제 #16
0
 def test_parse_integrated_1(self):
     indata = "2-17.3*x**2"
     actual = parsing.parse_definition(indata)
     x = parsing.VarType("x")
     x2 = parsing.OpType("**", [x, 2])
     m17p3x2 = parsing.OpType("*", [17.3, x2])
     expected = parsing.OpType("-", [2, m17p3x2])
     testname = "parse_definition({0!r})".format(indata)
     print_test_message(testname, indata=indata, actual=actual, expected=expected)
     self.assertEqual(actual, expected, "Integrated #1 operator parsing failed")
예제 #17
0
 def test_parse_neg_var(self):
     indata = '-x'
     actual = parsing.parse_definition(indata)
     x = parsing.VarType('x')
     expected = parsing.OpType('-', [x])
     testname = 'parse_definition({0!r})'.format(indata)
     print_test_message(testname,
                        indata=indata,
                        actual=actual,
                        expected=expected)
     self.assertEqual(actual, expected, 'Negation parsing failed')
예제 #18
0
 def test_parse_integrated_1(self):
     indata = '2-17.3*x**2'
     actual = parsing.parse_definition(indata)
     x = parsing.VarType('x')
     x2 = parsing.OpType('**', [x, 2])
     m17p3x2 = parsing.OpType('*', [17.3, x2])
     expected = parsing.OpType('-', [2, m17p3x2])
     testname = 'parse_definition({0!r})'.format(indata)
     print_test_message(testname,
                        indata=indata,
                        actual=actual,
                        expected=expected)
     self.assertEqual(actual, expected,
                      'Integrated #1 operator parsing failed')