Skip to content

Commit 5b74964

Browse files
authored
Update to the latest version of Google DP library (#442)
* update commit * compilation fix * compilation fix * test fixes * Fix style in partition_selection.py * Fix style in partition_selection.py
1 parent 1a5be58 commit 5b74964

7 files changed

Lines changed: 10 additions & 22 deletions

File tree

prereqs_linux.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ git submodule update --init --recursive
6060

6161

6262
# checkout out to particular commit
63-
cd third_party/differential-privacy && git checkout d93052f71960cefc533b64c7201a35fce2deeb9e && \
63+
cd third_party/differential-privacy && git checkout 2a1e55484aeb9ca444a3b34dcf128d454e80f255 && \
6464
cd -
6565
# renaming workspace.bazel to workspace
6666
mv third_party/differential-privacy/cc/WORKSPACE.bazel third_party/differential-privacy/cc/WORKSPACE

prereqs_mac.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ fi
4949
git submodule update --init --recursive
5050

5151
# checkout out to particular commit
52-
cd third_party/differential-privacy && git checkout d93052f71960cefc533b64c7201a35fce2deeb9e && \
52+
cd third_party/differential-privacy && git checkout 2a1e55484aeb9ca444a3b34dcf128d454e80f255 && \
5353
cd -
5454
# renaming workspace.bazel to workspace
5555
mv third_party/differential-privacy/cc/WORKSPACE.bazel third_party/differential-privacy/cc/WORKSPACE
@@ -61,4 +61,4 @@ rm -rf third_party/differential-privacy/java third_party/differential-privacy/ex
6161
rm -rf third_party/differential-privacy/go third_party/differential-privacy/examples/go
6262

6363
# Removing the Privacy on Beam part
64-
rm -rf third_party/differential-privacy/privacy-on-beam
64+
rm -rf third_party/differential-privacy/privacy-on-beam

src/bindings/PyDP/algorithms/distributions.cpp

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,10 @@ class declareLaplaceDistributionClass {
2424
py::arg("epsilon") = 0., py::arg("sensitivity"))
2525
.def("get_uniform_double", &dpi::LaplaceDistribution::GetUniformDouble,
2626
R"pbdoc(Returns a uniform random integer of in range [0, 2^53).)pbdoc")
27-
.def("sample", py::overload_cast<double>(&dpi::LaplaceDistribution::Sample),
28-
py::arg("scale") = 1.0,
27+
.def("sample", &dpi::LaplaceDistribution::Sample,
2928
R"pbdoc(
30-
Samples the Laplacian distribution Laplace(u, scale*b).
31-
32-
Parameters
33-
----------
34-
scale
35-
A factor to scale b.
29+
Samples the Laplacian distribution Laplace(u, b).
30+
3631
)pbdoc");
3732
laplace_dist.def("get_diversity", &dpi::LaplaceDistribution::GetDiversity,
3833
R"pbdoc(

src/pydp/algorithms/partition_selection.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ def should_keep(self, num_users: int) -> bool:
2222
"""
2323
Decides whether or not to keep a partition with `num_users` based on differential privacy parameters and strategy.
2424
"""
25-
...
25+
raise NotImplementedError("PartitionSelectionStrategy is an abstract class.")
2626

2727

2828
def create_partition_strategy(

tests/algorithms/test_distributions.py

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ def test_diversity_getter(self):
6363
def test_check_statistics_for_geo_unit_values(self):
6464

6565
ld = LaplaceDistribution(epsilon=1.0, sensitivity=1.0)
66-
samples = [ld.sample(scale=1.0) for _ in range(k_num_geometric_samples)]
66+
samples = [ld.sample() for _ in range(k_num_geometric_samples)]
6767
mean = dp.util.mean(samples)
6868
var = dp.util.variance(samples)
6969

@@ -88,14 +88,9 @@ def test_LaplaceDistributionTypes(self):
8888
sud = ld.get_uniform_double()
8989
assert isinstance(sud, float)
9090
lds = ld.sample()
91-
lds1 = ld.sample(4.0)
9291
assert isinstance(lds, float)
93-
assert isinstance(lds1, float)
9492
ldg = ld.get_diversity()
9593
assert isinstance(ldg, float)
96-
# TODO
97-
# lcdf = ld.cdf(2.0, 0.5)
98-
# assert isinstance(lcdf, float)
9994

10095

10196
class TestGaussianDistributionDataTypes:
@@ -104,9 +99,7 @@ def test_GaussianDistributionTypes(self):
10499
assert isinstance(gd, GaussianDistribution)
105100

106101
gds = gd.sample()
107-
gds1 = gd.sample(1.0)
108102
assert isinstance(gds, float)
109-
assert isinstance(gds1, float)
110103
gdstd = gd.stddev
111104
assert isinstance(gdstd, float)
112105

tests/algorithms/test_partition_selection.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ def test_laplace_keep_and_return_noised_value(
8989
],
9090
[
9191
(10, 1, 1e-5, 1, 0.017845473615190732),
92-
(1100, 0.2, 1e-7, 10, 0.007884076914531857),
92+
(1100, 0.2, 1e-7, 10, 1.0),
9393
],
9494
)
9595
def test_gaussian_keep_and_return_noised_value(

third_party/differential-privacy

0 commit comments

Comments
 (0)