A time expression is an expression that happens (or not) in a recurrent way
For example:
Thursday, February 22, 2018.
Every 3 days from Thursday, February 22, 2018 to March 15, 2018.
On the 8th of each month from January 2018 to August 2019.
The 3rd Friday every 2 months from January 2018 to August 2019.
On August 8 every year from 2018 to 2024.
Write the corresponding implementations in TimeExpression to pass the test cases of TimeExpressionTest.
We want to see how you design the model of the domain and how you apply TDD as a software development technique
In the test cases you can create new types that replace primitives like int.