def test_compose_heterogenous(self):
     builder = dp_event_builder.DpEventBuilder()
     builder.compose(_poisson_event)
     builder.compose(_gaussian_event)
     builder.compose(_gaussian_event, 2)
     builder.compose(_poisson_event)
     expected_event = dp_event.ComposedDpEvent(
         [_poisson_event, _self_composed_event, _poisson_event])
     self.assertEqual(expected_event, builder.build())
 def test_compose_composed(self):
     builder = dp_event_builder.DpEventBuilder()
     composed_event = dp_event.ComposedDpEvent(
         [_gaussian_event, _poisson_event, _self_composed_event])
     builder.compose(_gaussian_event)
     builder.compose(composed_event)
     builder.compose(composed_event, 2)
     builder.compose(_poisson_event)
     builder.compose(_poisson_event)
     expected_event = dp_event.ComposedDpEvent([
         _gaussian_event,
         dp_event.SelfComposedDpEvent(composed_event, 3),
         dp_event.SelfComposedDpEvent(_poisson_event, 2)
     ])
     self.assertEqual(expected_event, builder.build())
 def test_compose_self(self):
     builder = dp_event_builder.DpEventBuilder()
     builder.compose(_gaussian_event)
     builder.compose(_gaussian_event, 2)
     self.assertEqual(_self_composed_event, builder.build())
 def test_compose_no_op(self):
     builder = dp_event_builder.DpEventBuilder()
     builder.compose(dp_event.NoOpDpEvent())
     builder.compose(_gaussian_event)
     builder.compose(dp_event.NoOpDpEvent())
     self.assertEqual(_gaussian_event, builder.build())
 def test_single_laplace(self):
     builder = dp_event_builder.DpEventBuilder()
     builder.compose(_laplace_event)
     self.assertEqual(_laplace_event, builder.build())
 def test_single_gaussian(self):
     builder = dp_event_builder.DpEventBuilder()
     builder.compose(_gaussian_event)
     self.assertEqual(_gaussian_event, builder.build())
 def test_no_op(self):
     builder = dp_event_builder.DpEventBuilder()
     self.assertEqual(dp_event.NoOpDpEvent(), builder.build())
 def __init__(self, neighboring_relation: NeighboringRelation):
     self._neighboring_relation = neighboring_relation
     self._ledger = dp_event_builder.DpEventBuilder()