'arr_2d[a:b:c, d]'

def test_2d_slicing3(self, flags=enable_pyobj_flags):

    pyfunc = slicing_2d_usecase3
    arraytype = types.Array(types.int32, 2, 'C')
    argtys = (arraytype, types.int32, types.int32, types.int32, types.int32)
    cr = compile_isolated(pyfunc, argtys, flags=flags)
    cfunc = cr.entry_point
    a = np.arange(100, dtype='i4').reshape(10, 10)
    args = [(0, 10, 1, 0), (2, 3, 1, 1), (10, 0, (-1), 8), (9, 0, (-2), 4), (0, 10, 2, 3), (0, (-1), 3, 1)]
    for arg in args:
        expected = pyfunc(a, *arg)
        self.assertPreciseEqual(cfunc(a, *arg), expected)
    arraytype = types.Array(types.int32, 2, 'A')
    argtys = (arraytype, types.int32, types.int32, types.int32, types.int32)
    cr = compile_isolated(pyfunc, argtys, flags=flags)
    cfunc = cr.entry_point
    a = np.arange(400, dtype='i4').reshape(20, 20)[::2, ::2]
    for arg in args:
        expected = pyfunc(a, *arg)
        self.assertPreciseEqual(cfunc(a, *arg), expected)
