def test_parse_func_nested(self): g2 = parsing.ParsedFunction([['g', 2]]) f1g = parsing.ParsedFunction([['f', 1, g2]]) indata = 'f(1, g(2))' 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_sub_func(self): indata = 'f() - g(1)' actual = parsing.parse_definition(indata) f = parsing.ParsedFunction([['f']]) g1 = parsing.ParsedFunction([['g', 1]]) expected = parsing.ParsedBinOp([['-', 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_quote_funcarg_int(self): indata = 'f("1")' actual = parsing.parse_definition(indata) expected = parsing.ParsedFunction([['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_pos_func(self): indata = '+f()' actual = parsing.parse_definition(indata) expected = parsing.ParsedFunction([['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.ParsedFunction([['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_pst_func_kwds(self): indata = (['x', 1, -3.2, ('x', 5)], {}) pst = parsing.ParsedFunction(indata) actual = pst.kwds expected = {'x': 5} testname = 'ParsedFunction.__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_pst_func_args(self): indata = (['x', 1, -3.2], {}) pst = parsing.ParsedFunction(indata) actual = pst.args expected = tuple(indata[0][1:]) testname = 'ParsedFunction.__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_pst_func_key(self): indata = (['x', 1, -3.2], {}) pst = parsing.ParsedFunction(indata) actual = pst.key expected = indata[0][0] testname = 'ParsedFunction.__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_pst_init_args(self): indata = (['x', 1, -3.2], {}) pst = parsing.ParsedFunction(indata) actual = type(pst) expected = parsing.ParsedFunction testname = 'ParsedFunction.__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_neg_func(self): indata = '-f()' actual = parsing.parse_definition(indata) f = parsing.ParsedFunction([['f']]) expected = parsing.ParsedUniOp([['-', 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_parse_integrated_2(self): indata = '2-17.3*x / f(2.3, x[2:5])' actual = parsing.parse_definition(indata) x = parsing.ParsedVariable([['x']]) x25 = parsing.ParsedVariable([['x', slice(2, 5)]]) f = parsing.ParsedFunction([['f', 2.3, x25]]) dxf = parsing.ParsedBinOp([['/', x, f]]) m17p3dxf = parsing.ParsedBinOp([['*', 17.3, dxf]]) expected = parsing.ParsedBinOp([['-', 2, m17p3dxf]]) 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')