fixed SuitCaseFactory.shuffle, and added some tests