I think our existing tools could work well for those tasks, at least to start with:
- English to define the interfaces better in documentation (I think the documentation for AbstractArrays is quite thin);
- functions like
test_array_type(MyCustomArray)
for interface testing (like Invenia’s package on this); - make packages called something like AlternativeArrays.jl that offer a variety of functions that accept an array and return an OffsetArray, or an AxisArray or whatever and then just go through the tests of other packages and add some
for
loops in there like these:
@testset "Alternative array compatibility" for f in alternative_array_factories
@test unique(f([1, 1, 2, 3, 1])) == f([1, 2, 3])
end
Edit: And if it’s too much hassle to open a bunch of PRs on other projects, the composition tests can just be done in some package that exists only for running lots of tests. Might be easier to manage.