示例#1
0
def test_itc1():
    """
    Test against standard result.
    """
    itc = IMI.intrinsic_total_correlation(dist1, [[0], [1]], [2])
    assert itc == pytest.approx(0)
    itc = IMI.intrinsic_total_correlation(dist1, [[0], [2]], [1])
    assert itc == pytest.approx(0)
    itc = IMI.intrinsic_total_correlation(dist1, [[1], [2]], [0])
    assert itc == pytest.approx(0)
    itc = IMI.intrinsic_total_correlation(dist3, [[0,1], [2]], [3, 4])
    assert itc == pytest.approx(0)
示例#2
0
def test_itc2():
    """
    Test against standard result, with rv names.
    """
    itc = IMI.intrinsic_total_correlation(dist2, ['X', 'Y'], 'Z')
    assert itc == pytest.approx(0)
    itc = IMI.intrinsic_total_correlation(dist2, ['X', 'Z'], 'Y')
    assert itc == pytest.approx(0)
    itc = IMI.intrinsic_total_correlation(dist2, ['Y', 'Z'], 'X')
    assert itc == pytest.approx(0)
    itc = IMI.intrinsic_total_correlation(dist4, ['VW', 'X'], 'YZ')
    assert itc == pytest.approx(0)
def test_itc2():
    """
    Test against standard result, with rv names.
    """
    itc = IMI.intrinsic_total_correlation(dist2, ['X', 'Y'], 'Z')
    assert itc == pytest.approx(0)
    itc = IMI.intrinsic_total_correlation(dist2, ['X', 'Z'], 'Y')
    assert itc == pytest.approx(0)
    itc = IMI.intrinsic_total_correlation(dist2, ['Y', 'Z'], 'X')
    assert itc == pytest.approx(0)
    itc = IMI.intrinsic_total_correlation(dist4, ['VW', 'X'], 'YZ')
    assert itc == pytest.approx(0)
def test_itc1():
    """
    Test against standard result.
    """
    itc = IMI.intrinsic_total_correlation(dist1, [[0], [1]], [2])
    assert itc == pytest.approx(0)
    itc = IMI.intrinsic_total_correlation(dist1, [[0], [2]], [1])
    assert itc == pytest.approx(0)
    itc = IMI.intrinsic_total_correlation(dist1, [[1], [2]], [0])
    assert itc == pytest.approx(0)
    itc = IMI.intrinsic_total_correlation(dist3, [[0,1], [2]], [3, 4])
    assert itc == pytest.approx(0)
示例#5
0
def test_constructor():
    """
    Test the generic constructor.
    """
    test = IMI.intrinsic_mutual_information_constructor(total_correlation).functional()
    itc = IMI.intrinsic_total_correlation(dist1, [[0], [1]], [2], bound=3)
    itc2 = test(dist1, [[0], [1]], [2], bound=3)
    assert itc == pytest.approx(itc2, abs=1e-4)
示例#6
0
def test_bounds(dist):
    """
    I[X:Y v Z] <= I[X:Y]
    I[X:Y v Z] <= I[X:Y|Z]
    """
    imi = IMI.intrinsic_total_correlation(dist, [[0], [1]], [2])
    mi = total_correlation(dist, [[0], [1]])
    cmi = total_correlation(dist, [[0], [1]], [2])
    assert imi <= mi + 1e-10
    assert imi <= cmi + 1e-10
def test_bounds(dist):
    """
    I[X:Y v Z] <= I[X:Y]
    I[X:Y v Z] <= I[X:Y|Z]
    """
    imi = IMI.intrinsic_total_correlation(dist, [[0], [1]], [2])
    mi = total_correlation(dist, [[0], [1]])
    cmi = total_correlation(dist, [[0], [1]], [2])
    assert imi <= mi + 1e-10
    assert imi <= cmi + 1e-10
示例#8
0
def test_itc4():
    """
    Test multivariate, with rv names
    """
    itc = IMI.intrinsic_total_correlation(dist6, ['W', 'X', 'Y'], 'Z')
    assert itc == pytest.approx(0)
示例#9
0
def test_itc3():
    """
    Test multivariate
    """
    itc = IMI.intrinsic_total_correlation(dist5, [[0], [1], [2]], [3])
    assert itc == pytest.approx(0)
示例#10
0
def test_1(dist, val):
    """
    Test against known values.
    """
    imi = IMI.intrinsic_total_correlation(dist, [[0], [1]], [2])
    assert imi == pytest.approx(val, abs=1e-5)
示例#11
0
def test_imi_fail():
    """
    Test that things fail when not provided with a conditional variable.
    """
    with pytest.raises(ditException):
        IMI.intrinsic_total_correlation(dist1, [[0], [1], [2]])
def test_itc4():
    """
    Test multivariate, with rv names
    """
    itc = IMI.intrinsic_total_correlation(dist6, ['W', 'X', 'Y'], 'Z')
    assert itc == pytest.approx(0)
def test_itc3():
    """
    Test multivariate
    """
    itc = IMI.intrinsic_total_correlation(dist5, [[0], [1], [2]], [3])
    assert itc == pytest.approx(0)
def test_1(dist, val):
    """
    Test against known values.
    """
    imi = IMI.intrinsic_total_correlation(dist, [[0], [1]], [2])
    assert imi == pytest.approx(val, abs=1e-5)
def test_imi_fail():
    """
    Test that things fail when not provided with a conditional variable.
    """
    with pytest.raises(ditException):
        IMI.intrinsic_total_correlation(dist1, [[0], [1], [2]])