def test_parse_var_sub_var(self): indata = 'x[1] - y' actual = parsing.parse_definition(indata) x1 = parsing.ParsedVariable([['x', 1]]) y = parsing.ParsedVariable([['y']]) expected = parsing.ParsedBinOp([['-', 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')
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')
def test_parse_pos_var(self): indata = '+x[1]' actual = parsing.parse_definition(indata) expected = parsing.ParsedVariable([['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')
def test_parse_var_slice_partial_3(self): indata = 'x[::-1]' actual = parsing.parse_definition(indata) expected = parsing.ParsedVariable([['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')
def test_parse_var_none_slice(self): indata = 'x[,1:2:3]' actual = parsing.parse_definition(indata) expected = parsing.ParsedVariable([['x', None, slice(1, 2, 3)]]) testname = 'parse_definition({0!r})'.format(indata) print_test_message(testname, indata=indata, actual=actual, expected=expected) self.assertEqual(actual, expected, 'Variable parsing failed')
def test_parse_neg_var(self): indata = '-x' actual = parsing.parse_definition(indata) x = parsing.ParsedVariable([['x']]) expected = parsing.ParsedUniOp([['-', 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')
def test_varpst_init(self): indata = (['x'], {}) pst = parsing.ParsedVariable(indata) actual = type(pst) expected = parsing.ParsedVariable testname = 'ParsedVariable.__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_1(self): indata = '2-17.3*x**2' actual = parsing.parse_definition(indata) x = parsing.ParsedVariable([['x']]) x2 = parsing.ParsedBinOp([['**', x, 2]]) m17p3x2 = parsing.ParsedBinOp([['*', 17.3, x2]]) expected = parsing.ParsedBinOp([['-', 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')