def METHOD_NAME(implementation, dtype, storage):
    sdfg = make_sdfg(implementation, dtype, storage)
    getrf_sdfg = sdfg.compile()
    np_dtype = getattr(np, dtype.to_string())
    from scipy.linalg import lu_factor
    size = 4
    lapack_status = np.array([-1], dtype=np.int32)
    A = np.array([[2, 5, 8, 7], [5, 2, 2, 8], [7, 5, 6, 6], [5, 4, 4, 8]], dtype=np_dtype)
    lu_ref, _ = lu_factor(A)
    pivots = np.ndarray([0, 0, 0, 0], dtype=np.int32)
    # the x is input AND output, the "result" argument gives the lapack status!
    getrf_sdfg(x=A, result=lapack_status, pivots=pivots, n=size)
    if np.allclose(A, lu_ref):
        print("Test ran successfully for {}.".format(implementation))
    else:
        raise ValueError("Validation error!")