added some comments to describe the different test cases