def test_einsum_view1d(a): return einsum("i", a)
def test_einsum_elemwise2d_T(a, b): return einsum("ij,ji->ij", a, b)
def test_einsum_mm(a, b): return einsum("ij,jk->ik", a, b)
def test_einsum_sum2d_01(a): return einsum("ij->", a)
def test_einsum_elemwise2d(a, b): return einsum("ij,ij->ij", a, b)
def test_einsum_sum1d(a): return einsum("i->", a)
def test_einsum_sum2d_1(a): return einsum("ij->j", a)
def test_einsum_diag(a): return einsum("ii->i", a)
def test_einsum_trace(a): return einsum("ii", a)
def test_einsum_view2d(a): return einsum("ij->ij", a)
def test_einsum_transpose(a): return einsum("ij->ji", a)
def test_einsum_outer(a, b): return einsum("i,k->ik", a, b)
def test_einsum_inner(a, b): return einsum("j,j", a, b)
def test_einsum_elemwise1d(a, b): return einsum("i,i->i", a, b)
def test_einsum_inner2d(a, b): return einsum("ij,kj->ik", a, b)
def test_einsum_sum2d_0(a): return einsum("ij->i", a)
def test_einsum_rowmul(a, b): return einsum("ij,kj->ikj", a, b)
def test_einsum_outer2d(a, b): return einsum("ij,kl->ijkl", a, b)