Skip to content

Expose RNG or Seeded mechanisms outside of -testing #107

@mjbommar

Description

@mjbommar

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

  1. Create a new RNGNumericalMechanism abstract class and non-testing RNGNumericalMechanismBuilder
  2. Implement non-testing RNGXYZMechanism and, optionally, SeededXYZMechanism as convenience
  3. Re-implement test SeededXYZMechanism classes with non-testing mechanisms
  4. Optionally implement warning/notice for use
  5. Implement safe downstream deterministic test cases, e.g., in PyDP

Alternative

Rely on asymptotic test cases or non-reproducible examples/research.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions