def METHOD_NAME():
    sdfg = make_sdfg(True, 'squeezed')
    N = 20
    M = 10
    A = np.random.randint(0, 100, size=[N + 1, M]).astype(np.int64)
    expected = np.copy(A)
    expected[0:N - 2, 1:M] = np.reshape(np.arange(N - 2) + 99, (N - 2, 1))
    expected[2:N, 0:M - 1] = np.reshape(np.arange(N - 2) + 101, (N - 2, 1))
    sdfg(A=A, N=N, M=M)
    assert np.allclose(A, expected)
    # Check the propagated memlets out of the nested SDFG.
    N = dace.symbolic.symbol('N')
    j = dace.symbolic.symbol('j')
    main_state = sdfg.nodes()[0]
    out_memlet_1 = main_state.edges()[1].data
    assert out_memlet_1.volume == N - 2
    assert out_memlet_1.dynamic == False
    assert out_memlet_1.subset[0] == (0, N - 3, 1)
    assert out_memlet_1.subset[1] == (j, j, 1)
    out_memlet_2 = main_state.edges()[3].data
    assert out_memlet_2.volume == N - 2
    assert out_memlet_2.dynamic == False
    assert out_memlet_2.subset[0] == (2, N - 1, 1)
    assert out_memlet_2.subset[1] == (j - 1, j - 1, 1)