README.md
[](https://github.com/IgnacioGoldchluk/more_stream_data/actions/workflows/ci.yml)
[](https://github.com/IgnacioGoldchluk/more_stream_data/blob/main/LICENSE.md)
[](https://hex.pm/packages/more_stream_data)
[](https://hexdocs.pm/more_stream_data)
# MoreStreamData
Additional generators based on `StreamData`.
## Installation
Add `more_stream_data` to your list of dependencies in `mix.exs`
```ex
def deps do
[
{:more_stream_data, "~> 0.1", only: :test}
]
end
```
Refer to [StreamData](https://hexdocs.pm/stream_data/StreamData.html) documentation for usage.
You can call additional generators directly in any testfile
```ex
defmodule MyTestMoule do
use ExUnit.Case
use ExUnitProperties
property "generates numbers greater than or equal to the minimum" do
check all number <- MoreStreamData.more_integer(min: 10) do
assert number >= 10
end
end
end
```
## Roadmap
The goal is to port [Python's Hypothesis](https://hypothesis.readthedocs.io/en/latest/) built-in and external strategies considered useful for Elixir ecosystem.
- [ ] Strategies
- [x] `integers`
- [x] `floats`
- [x] `exclude_min` and `exclude_max` options.
- [x] `decimal`
- [x] `from_regex`: A bit slow but works
- [ ] `\b` word boundary
- [x] `\v` vertica line meta character
- [x] Non-printable characters (automatically supported with `\x`)
- [x] `xHH` for hex characters
- [x] `x{HHH...}` for hex characters
- [ ] Atomic groups
- [ ] Lookarounds
- [ ] Positive lookahead
- [ ] Negative lookahead
- [ ] Positive lookbehind
- [ ] Negative lookbehind
- [ ] Modifiers
- [ ] Case insensitive `/i`
- [ ] Extended `/x`
- [ ] Unicode `/u`
- [ ] Dotall `/s`
- [ ] Multiline `/m`
- [ ] Firstline `/f`
- [x] Ungreedy `/U`. Not actually supported but redundant for string generation.
- [x] `emails`
- [x] `domains`
- [x] `urls`
- [x] `datetime`
- [x] `time`
- [x] `timezone`
- [x] `timedeltas`
- [x] `ip_address`