def METHOD_NAME(transB, alpha, beta, implementation, dtype):
    sdfg = make_sdfg(transB, alpha, beta, implementation, dtype)
    n = 16
    m = 8
    k = 4
    A = np.random.random((n, m)).astype(dtype.as_numpy_dtype())
    if transB:
        B = np.random.random((k, m)).astype(dtype.as_numpy_dtype())
    else:
        B = np.random.random((m, k)).astype(dtype.as_numpy_dtype())
    C = np.random.random((n, k)).astype(dtype.as_numpy_dtype())
    C_ = copy.deepcopy(C)
    A_csr = csr_matrix(A)
    nnz = A_csr.nnz
    A_val = np.copy(A_csr.data)
    A_row = np.copy(A_csr.indptr)
    A_col = np.copy(A_csr.indices)
    sdfg.compile()
    sdfg(A_row=A_row, A_val=A_val, A_col=A_col, B=B, C=C, N=n, M=m, K=k, NNZ=nnz)
    if transB:
        ref = alpha * (A_csr @ B.T) + beta * C_
    else:
        ref = alpha * (A_csr @ B) + beta * C_
    assert np.allclose(ref, C)