Implement purity tests for FFI based on property testing
wende opened this issue · 2 comments
wende commented
Along with typetests which verify the spec of a function we want a property test that checks whether used FFI call is pure and total.
For example:
myDivision : Float -> Float -> Float
myDivision =
ffi "Kernel" "/"
Should verify "all" possible incomes and outcomes:
- Check the params for 0 and any possible random floats
-2^128
-2^128
- Verify if there is a return value of type float. If not fail the test
->
Function throws an error when second parameter is a 0. It has to be fixed by using different module likeffi "NativeBasics "safe_div"
Example 2
myMap : (Bool -> Int) -> List Bool -> List Int
- Generate a function verifying that it took a bool and returning a random int
- Generate a list of random length with random bools inside
- Check if function always returns a list of integers. If not throw
Etc
OvermindDL1 commented
You might be able to generate these with some of the elixir property testing libraries to save work.