def test_init11(): outcomes = ['0', '1'] pmf = [1 / 2, 1 / 2] d = Distribution(outcomes, pmf) sd = ScalarDistribution.from_distribution(d) # Different sample space representations assert not d.is_approx_equal(sd)
def test_init11(): outcomes = ["0", "1"] pmf = [1 / 2, 1 / 2] d = Distribution(outcomes, pmf) sd = ScalarDistribution.from_distribution(d) # Different sample space representations assert_false(d.is_approx_equal(sd))
def test_init9(): outcomes = [0, 1, 2] pmf = [1 / 3] * 3 d1 = ScalarDistribution(outcomes, pmf) d2 = ScalarDistribution.from_distribution(d1, base=10) d1.set_base(10) assert d1.is_approx_equal(d2)
def test_init9(): outcomes = [0, 1, 2] pmf = [1 / 3] * 3 d1 = ScalarDistribution(outcomes, pmf) d2 = ScalarDistribution.from_distribution(d1, base=10) d1.set_base(10) assert_true(d1.is_approx_equal(d2))
def test_fanos_inequality(dist): """ H(X|Y) <= hb(P_e) + P_e log(|X| - 1) """ dist1 = SD.from_distribution(dist.marginal([0])) dist2 = SD.from_distribution(dist.marginal([1])) ce = H(dist, [0], [1]) X = len(set().union(dist1.outcomes, dist2.outcomes)) eq_dist = dist1 == dist2 P_e = eq_dist[False] if False in eq_dist else 0 hb = H(SD([P_e, 1 - P_e])) assert ce <= hb + P_e * np.log2(X - 1) + epsilon
def test_init12(): outcomes = ['0', '1'] pmf = [1/2, 1/2] d = Distribution(outcomes, pmf) sd = ScalarDistribution.from_distribution(d, base=10) d.set_base(10) # Different sample space representations assert_false(d.is_approx_equal(sd))
def test_init12(): outcomes = ['0', '1'] pmf = [1 / 2, 1 / 2] d = Distribution(outcomes, pmf) sd = ScalarDistribution.from_distribution(d, base=10) d.set_base(10) # Different sample space representations assert_false(d.is_approx_equal(sd))
def test_fanos_inequality(dist): """ H(X|Y) <= hb(P_e) + P_e log(|X| - 1) """ dist1 = SD.from_distribution(dist.marginal([0])) dist2 = SD.from_distribution(dist.marginal([1])) ce = H(dist, [0], [1]) X = len(set().union(dist1.outcomes, dist2.outcomes)) eq_dist = dist1 == dist2 P_e = eq_dist[False] if False in eq_dist else 0 hb = H(SD([P_e, 1-P_e])) assert ce <= hb + P_e * np.log2(X - 1) + epsilon
def test_init8(): outcomes = [0, 1, 2] pmf = [1 / 3] * 3 d1 = ScalarDistribution(outcomes, pmf) d2 = ScalarDistribution.from_distribution(d1) assert d1.is_approx_equal(d2)
def test_init8(): outcomes = [0, 1, 2] pmf = [1 / 3] * 3 d1 = ScalarDistribution(outcomes, pmf) d2 = ScalarDistribution.from_distribution(d1) assert_true(d1.is_approx_equal(d2))