def test_check_normality_raises_value_error(backend):
    backend = backend_factory.get_backend(backend)
    tensor = np.ones((2, 3, 2), dtype=np.float64)
    tensors = [tensor]
    mps = BaseMPS(tensors, backend=backend)
    with pytest.raises(ValueError):
        mps.check_orthonormality(which="keft", site=0)
def test_left_orthonormalization(backend_dtype_values):
    backend = backend_dtype_values[0]
    dtype = backend_dtype_values[1]

    D, d, N = 10, 2, 10
    tensors = [get_random_np((1, d, D), dtype)
               ] + [get_random_np((D, d, D), dtype)
                    for _ in range(N - 2)] + [get_random_np((D, d, 1), dtype)]
    mps = BaseMPS(tensors, center_position=N - 1, backend=backend)
    mps.position(0)
    mps.position(len(mps) - 1)
    assert all(
        abs(mps.check_orthonormality('left', site)) < 1E-12
        for site in range(len(mps)))