def test_laplace_from_privacy_parameters(self, sensitivity, epsilon, delta, expected_parameter): pld = privacy_loss_distribution.LaplacePrivacyLossDistribution.from_privacy_guarantee( privacy_loss_distribution.DifferentialPrivacyParameters(epsilon, delta), sensitivity, value_discretization_interval=1) self.assertAlmostEqual(expected_parameter, pld._parameter)
def test_gaussian_from_privacy_parameters(self, sensitivity, epsilon, delta, expected_standard_deviation): pld = privacy_loss_distribution.GaussianPrivacyLossDistribution.from_privacy_guarantee( privacy_loss_distribution.DifferentialPrivacyParameters(epsilon, delta), sensitivity, value_discretization_interval=1) self.assertAlmostEqual(expected_standard_deviation, pld._standard_deviation, 3)
def test_from_privacy_parameters(self, epsilon, delta, value_discretization_interval, expected_rounded_probability_mass_function, expected_infinity_mass): pld = privacy_loss_distribution.PrivacyLossDistribution.from_privacy_parameters( privacy_loss_distribution.DifferentialPrivacyParameters(epsilon, delta), value_discretization_interval=value_discretization_interval) self.assertAlmostEqual(expected_infinity_mass, pld.infinity_mass) dictionary_almost_equal(self, expected_rounded_probability_mass_function, pld.rounded_probability_mass_function)