The lsug markup uses an applicative parser. It has cats type class instances for functor and alternative.
While the parser is unit tested, the instances themselves could use law tests.
Potential Solution
As we use munit for unit testing, we can add laws with discipline-munit. This is described in the cats laws documentation.
The tests should be added in the lsug.markup.ParserSpec. Provided there are no test failures, the parser shouldn't be changed.
Prerequisites
You should be familiar with the some type classes, such as Functor. You should also understand the concept of unit testing.
The lsug markup uses an applicative parser. It has cats type class instances for functor and alternative. While the parser is unit tested, the instances themselves could use law tests.
Potential Solution
As we use munit for unit testing, we can add laws with
discipline-munit
. This is described in the cats laws documentation. The tests should be added in thelsug.markup.ParserSpec
. Provided there are no test failures, the parser shouldn't be changed.Prerequisites
You should be familiar with the some type classes, such as Functor. You should also understand the concept of unit testing.
What you'll learn
Getting started
Read our Contributor Guide to get set up.