def test_bread_cp():
    """
    Test CANDECOMP/PARFAC decomposition using bread dataset.
    """
    X, meta = load_bread()
    assert_raises(ValueError, cp, X)
    U1 = cp(X, 2, init_type="hosvd")
    U2 = _cp3(X, 2, tol=1E-4, max_iter=500, init_type="hosvd")
    for n, i in enumerate(U1):
        assert_almost_equal(U1[n], U2[n])
def test_generated_cp():
    """
    Test CANDECOMP/PARFAC decomposition. Problem from
    http://issnla2010.ba.cnr.it/DecompositionsI.pdf
    """
    rs = np.random.RandomState(1999)
    X = .7 * rs.rand(2, 4, 3) + .25 * rs.rand(2, 4, 3)
    assert_raises(ValueError, cp, X)
    U1 = cp(X, 2, init_type="hosvd")
    U2 = _cp3(X, 2, tol=1E-4, max_iter=500, init_type="hosvd")
    for n, i in enumerate(U1):
        assert_almost_equal(U1[n], U2[n])