def test_parse_func_sub_func(self): indata = "f() - g(1)" actual = parsing.parse_definition(indata) f = parsing.FuncType("f") g1 = parsing.FuncType("g", [1]) expected = parsing.OpType("-", [f, g1]) 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")
def test_parse_func_nested(self): indata = "f(1, g(2))" g2 = parsing.FuncType("g", [2]) f1g = parsing.FuncType("f", [1, g2]) actual = parsing.parse_definition(indata) expected = f1g testname = "parse_definition({0!r})".format(indata) print_test_message(testname, indata=indata, actual=actual, expected=expected) self.assertEqual(actual, expected, "Function parsing failed")
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")
def test_parse_func_nested(self): indata = 'f(1, g(2))' g2 = parsing.FuncType('g', [2]) f1g = parsing.FuncType('f', [1, g2]) actual = parsing.parse_definition(indata) expected = f1g testname = 'parse_definition({0!r})'.format(indata) print_test_message(testname, indata=indata, actual=actual, expected=expected) self.assertEqual(actual, expected, 'Function parsing failed')
def test_parse_func_add_func(self): indata = 'f() + g(1)' actual = parsing.parse_definition(indata) f = parsing.FuncType('f') g1 = parsing.FuncType('g', [1]) expected = parsing.OpType('+', [f, g1]) 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')
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')
def test_parse_pos_func(self): indata = "+f()" actual = parsing.parse_definition(indata) expected = parsing.FuncType("f") 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")
def test_parse_func_arg(self): indata = "f(1)" actual = parsing.parse_definition(indata) expected = parsing.FuncType("f", [1]) testname = "parse_definition({0!r})".format(indata) print_test_message(testname, indata=indata, actual=actual, expected=expected) self.assertEqual(actual, expected, "Function parsing failed")
def test_parse_quote_funcarg_escaped(self): indata = "f('\"1\"')" actual = parsing.parse_definition(indata) expected = parsing.FuncType("f", ['"1"']) testname = "parse_definition({0!r})".format(indata) print_test_message(testname, indata=indata, actual=actual, expected=expected) self.assertEqual(actual, expected, "String parsing failed")
def test_parse_quote_funcarg_kwd(self): indata = 'f(a="1")' actual = parsing.parse_definition(indata) expected = parsing.FuncType("f", [], {"a": "1"}) testname = "parse_definition({0!r})".format(indata) print_test_message(testname, indata=indata, actual=actual, expected=expected) self.assertEqual(actual, expected, "String parsing failed")
def test_parse_quote_funcarg_func(self): indata = 'g("f(x,y,z)")' actual = parsing.parse_definition(indata) expected = parsing.FuncType("g", ["f(x,y,z)"]) testname = "parse_definition({0!r})".format(indata) print_test_message(testname, indata=indata, actual=actual, expected=expected) self.assertEqual(actual, expected, "String parsing failed")
def test_pst_func_kwds(self): indata = ["x", [1, -3.2], {"x": 5}] pst = parsing.FuncType(*indata) actual = pst.kwds expected = {"x": 5} testname = "FuncType.__init__({0!r})".format(indata) print_test_message(testname, indata=indata, actual=actual, expected=expected) self.assertEqual(actual, expected, "Args do not match")
def test_parse_neg_func(self): indata = "-f()" actual = parsing.parse_definition(indata) f = parsing.FuncType("f") expected = parsing.OpType("-", [f]) testname = "parse_definition({0!r})".format(indata) print_test_message(testname, indata=indata, actual=actual, expected=expected) self.assertEqual(actual, expected, "Negation parsing failed")
def test_pst_init_args(self): indata = (["x", 1, -3.2], {}) pst = parsing.FuncType(indata) actual = type(pst) expected = parsing.FuncType testname = "FuncType.__init__({0!r})".format(indata) print_test_message(testname, indata=indata, actual=actual, expected=expected) self.assertEqual(actual, expected, "Types do not match")
def test_pst_func_key(self): indata = ["x", [1, -3.2], {}] pst = parsing.FuncType(*indata) actual = pst.key expected = indata[0] testname = "FuncType.__init__({0!r})".format(indata) print_test_message(testname, indata=indata, actual=actual, expected=expected) self.assertEqual(actual, expected, "Key does not match")
def test_parse_pos_func(self): indata = '+f()' actual = parsing.parse_definition(indata) expected = parsing.FuncType('f') 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')
def test_parse_func_arg(self): indata = 'f(1)' actual = parsing.parse_definition(indata) expected = parsing.FuncType('f', [1]) testname = 'parse_definition({0!r})'.format(indata) print_test_message(testname, indata=indata, actual=actual, expected=expected) self.assertEqual(actual, expected, 'Function parsing failed')
def test_parse_quote_funcarg_escaped(self): indata = 'f(\'"1"\')' actual = parsing.parse_definition(indata) expected = parsing.FuncType('f', ['"1"']) testname = 'parse_definition({0!r})'.format(indata) print_test_message(testname, indata=indata, actual=actual, expected=expected) self.assertEqual(actual, expected, 'String parsing failed')
def test_pst_func_args(self): indata = ['x', [1, -3.2], {}] pst = parsing.FuncType(*indata) actual = pst.args expected = indata[1] testname = 'FuncType.__init__({0!r})'.format(indata) print_test_message(testname, indata=indata, actual=actual, expected=expected) self.assertEqual(actual, expected, 'Args do not match')
def test_parse_neg_func(self): indata = '-f()' actual = parsing.parse_definition(indata) f = parsing.FuncType('f') expected = parsing.OpType('-', [f]) testname = 'parse_definition({0!r})'.format(indata) print_test_message(testname, indata=indata, actual=actual, expected=expected) self.assertEqual(actual, expected, 'Negation parsing failed')
def test_funcpst_init(self): indata = (['x'], {}) pst = parsing.FuncType(indata) actual = type(pst) expected = parsing.FuncType testname = 'FuncType.__init__({0!r})'.format(indata) print_test_message(testname, indata=indata, actual=actual, expected=expected) self.assertEqual(actual, expected, 'Types do not match')
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")
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')