Example of how to create and update a process using Strategy Pattern
There is an included bug in the initial program. It will be noticed by uncommenting tests in IsWeekOfMonthTests. Solution is already supplied in the code (comment initial return). Of course, RuleParsers using strategy pattern will automatically be fixed. Have fun fixing the non-strategy pattern RuleParsers ;)