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

Add tests #6

Open
andrewthad opened this issue Sep 13, 2017 · 2 comments
Open

Add tests #6

andrewthad opened this issue Sep 13, 2017 · 2 comments

Comments

@andrewthad
Copy link
Contributor

Original issue by @treeowl:

There doesn't seem to be a test suite. I would recommend adding, at least:

  1. Modules implementing the entire non-internal streaming API using FreeT instead of Stream. I think these might as well be exposed, so users can play with them.
  2. Tests verifying that Stream operations behave the same as their FreeT equivalents. See my old SO question How can I test functions polymorphic over applicatives for some ideas about being arbitrary. In this case, I suspect we want to use functors built from algebraic bits (Sum, Product, Compose, Identity, Const) for f parameters, and free monads over such functors for m parameters.
@andrewthad
Copy link
Contributor Author

I like this idea a lot. It seems like the best way to verify that the functions provided by streaming are correct. Rather than sticking the new modules in streaming though (which would cause the library to incur a dependency on free for something that very few end users would need), I would rather just have a streaming-free library that provides them. Then, the test suite for streaming could depend on this.

@treeowl
Copy link
Contributor

treeowl commented Sep 13, 2017 via email

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

No branches or pull requests

3 participants