Ejemplo n.º 1
0
def test_vmf_aic_different_distributions():
    # VMF AIC should be higher for VMF than another distribution
    X = np.random.vonmises(mu=np.zeros(3), kappa=np.ones(3), size=(4, 3))
    X = normalise_rows(X)
    Y = np.random.dirichlet(alpha=np.random.random(3), size=4)
    Y = normalise_rows(Y)
    assert vmf_aic(X) > vmf_aic(Y)
Ejemplo n.º 2
0
def test_vmf_aic_unnormalised_matrix():
    # VMF AIC is nan for unnormalised rows
    X = np.array([[0.9, 0.2], [0.3, 2], [1, 1]])
    with pytest.warns(RuntimeWarning):
        assert np.isnan(vmf_aic(X))

    # Normalising fixes this
    norm_X = X / np.linalg.norm(X, axis=1)[:, np.newaxis]
    assert np.isfinite(vmf_aic(norm_X))
Ejemplo n.º 3
0
def test_vmf_aic_zero_matrix(X):
    with pytest.warns(RuntimeWarning):
        assert np.isnan(vmf_aic(X))
Ejemplo n.º 4
0
def test_vmf_aic_num(X, Y):
    if str(Y) == "NaN":
        assert np.isnan(vmf_aic(X))
    else:
        assert np.allclose(vmf_aic(X), Y, atol=1e-8)
Ejemplo n.º 5
0
def test_vmf_aic(X):
    assert np.isfinite(vmf_aic(X))