Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Take samples from generators #50

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

jrwest
Copy link
Contributor

@jrwest jrwest commented Dec 19, 2018

Adds the ability to get or print samples from a generator. The visibility changes made to support this I believe to be safe because:

  • allowing instantiation of BoundarySkewedDistribution shouldn't have negative consequences and can be helpful for debugging
  • Precusor's constructor isn't exposed so a reference to it must obtained elsewhere (e.g. via BoundarySkewedDistribution) and then this change is just exposing the value that was generated (mutating that value isn't safe but this would also be only during some sort of debugging).

@hcoles
Copy link
Contributor

hcoles commented Mar 24, 2019

Thanks for this, sorry for the very slow response.

Although I think this is useful functionality I'm not sure it should be pushed into the core Gen interface, I think it would make more sense as a utility that could be passed a Gen.

@jrwest
Copy link
Contributor Author

jrwest commented Mar 25, 2019

Thanks for the reply! No worries at all.

Not opposed to moving it to an external/static interface. My only counter is that it adds extra characters to lines which can already be long (but static imports can resolve that).

For some reference to other libraries, Scalacheck and Hypothesis both define functions (sample/example) on their equivalent Gen interface. EQC has it in the Gen module but Erlang is a harder comparison because there are only module functions:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants