Exemplo n.º 1
0
def test_signal_rank_warning():
    # Throws warning signal rank is larger than possible rank, sets to max-1
    ajive = AJIVE(init_signal_ranks=[2, 2], joint_rank=2)
    a = np.vstack([[1, 1], [1, 1]])
    with pytest.warns(RuntimeWarning):
        ajive.fit([a, a])

    assert ajive.init_signal_ranks_ == [1, 1]
Exemplo n.º 2
0
def test_random_state(data):
    # Tests reproducible simulations
    dat = data["same_views"]
    ajive1 = AJIVE(init_signal_ranks=[2, 2], random_state=0)
    ajive1 = ajive1.fit(Xs=dat)
    ajive2 = AJIVE(init_signal_ranks=[2, 2], random_state=0)
    ajive2 = ajive2.fit(Xs=dat)
    assert_allclose(ajive1.wedin_samples_, ajive2.wedin_samples_)
    assert_allclose(ajive1.random_sv_samples_, ajive2.random_sv_samples_)
Exemplo n.º 3
0
def test_same_indiv(data, init_signal_ranks, individual_ranks, joint_rank):
    # Test same indiv input result across varying inputs
    dat = data["same_views"]
    ajive = AJIVE(
        init_signal_ranks=init_signal_ranks,
        joint_rank=joint_rank,
        individual_ranks=individual_ranks,
    )
    ajive = ajive.fit(Xs=dat)
    Is = ajive.individual_mats_
    assert_allclose(Is[0], Is[1])
Exemplo n.º 4
0
def test_fit_elbows():
    n = 10
    elbows = 3
    np.random.seed(1)
    x = np.random.binomial(1, 0.6, (n**2)).reshape(n, n)
    xorth = orth(x)
    d = np.zeros(xorth.shape[0])
    for i in range(0, len(d), int(len(d) / (elbows + 1))):
        d[:i] += 10
    X = xorth.T.dot(np.diag(d)).dot(xorth)

    Xs = [X, X]

    ajive = AJIVE(n_elbows=2)
    ajive = ajive.fit(Xs)

    assert_equal(ajive.init_signal_ranks_[0], 4)
Exemplo n.º 5
0
def test_joint_rank(data):
    dat = data["same_views"]
    ajive = AJIVE(init_signal_ranks=[2, 2], joint_rank=2)
    ajive = ajive.fit(Xs=dat)
    assert_equal(ajive.joint_rank, 2)
Exemplo n.º 6
0
def test_indiv_rank(data):
    dat = data["same_views"]
    ajive = AJIVE(init_signal_ranks=[2, 2], individual_ranks=[2, 1])
    ajive = ajive.fit(Xs=dat)
    assert_equal(ajive.individual_ranks_[0], 2)