mtl icon indicating copy to clipboard operation
mtl copied to clipboard

MonadAccum law tests

Open kozross opened this issue 2 years ago • 2 comments

This relates to this comment here. Specifically, these tests use property-based testing to exercise all the stated laws of MonadAccum, with a large enough test count to be meaningful.

kozross avatar May 21 '22 04:05 kozross

@andreasabel I mostly tagged you as a reviewer because you suggested/requested some tests. Was this what you had in mind?

I started with MonadAccum for two reasons: it's one of the (currently only two) type classes provided by mtl which even states any laws, and of the two, it is by far the easiest, both in terms of the laws themselves, and also to test.

kozross avatar May 21 '22 18:05 kozross

Well done!

I started with MonadAccum for two reasons: it's one of the (currently only two) type classes provided by mtl which even states any laws, and of the two, it is by far the easiest, both in terms of the laws themselves, and also to test.

Testing the laws is of course the gold standard!

Even simple unit tests that cover the functionality are useful, detecting basic problems like missing exports, unintended loops, etc.

andreasabel avatar May 22 '22 15:05 andreasabel