- Split the repo into
apropos
andapropos-plutus
- move
Apropos.Script
andApropos.Tx
toapropos-plutus
- move
- Implement
Apropos.Tx
- This could depend on
plutus-simple-model
or be influenced by its design
- This could depend on
- Consider design of
Apropos.Gen
- possibly create a Free Monad abstraction layer to hide implementation details
- Consider HasParameterisedEnumerator for types that are easy to exhaustively enumerate
- if the type has <100 inhabitants it may be preferable to enumerate rather than randomly generate them
- this may be aided by a better Gen abstraction that allows us to compose the enuerated tests into a single property that runs once.
- Create road plan for
apropos-plutus
standard library models- having a shared library of specifications could make the library more usable
- this shared library might be best developed by encouraging upstreaming from library users
- Collect space size statistics from generators. Generate 1000 values or so and filter identical values - this could be an interesting statistic. If we have generators that only produce a small number of values for some parameterisation we could reduce the number of tests for that space, flag this as a notable statistic that may indicate a problem, perhaps other use cases or statistics could be found.
- Attach weights to propositions such that we can modulate the number of tests in each property based on these weights. We could allow user specified importance weightings and combine these with weights derived from distribution introspection as described above.This will allow the user to express importance and stop us wasting cycles on generators that have exhausted their space.