Downstream libraries or academic researchers using differential-privacy may desire to implement deterministic tests or substitute an alternative source of randomness, e.g., external random source.
However, RNG and seed-setting only appears to be implemented within algorithms::numerical-mechanisms-testing. These classes are not designed for external use and cannot be linked against in some contexts (e.g., bzl testonly).
Proposed Solution
Create a new RNGNumericalMechanism abstract class and non-testing RNGNumericalMechanismBuilder
Implement non-testing RNGXYZMechanism and, optionally, SeededXYZMechanism as convenience
Re-implement test SeededXYZMechanism classes with non-testing mechanisms
Optionally implement warning/notice for use
Implement safe downstream deterministic test cases, e.g., in PyDP
Alternative
Rely on asymptotic test cases or non-reproducible examples/research.
Problem Description
Downstream libraries or academic researchers using
differential-privacy
may desire to implement deterministic tests or substitute an alternative source of randomness, e.g., external random source.However, RNG and seed-setting only appears to be implemented within
algorithms::numerical-mechanisms-testing
. These classes are not designed for external use and cannot be linked against in some contexts (e.g., bzl testonly).Proposed Solution
RNGXYZMechanism
and, optionally,SeededXYZMechanism
as convenienceSeededXYZMechanism
classes with non-testing mechanismsAlternative
Rely on asymptotic test cases or non-reproducible examples/research.