Refactor tests by using ScalaCheck
Solve Exercise 3.5
Add Exercise 3.6
Add Exercise 3.6