The project appears to have full functionality as outlined in the task description, and doesn't produce any errors. The code is mostly well commented with good descriptions of what different parts do, however I believe the 'Riffle Shuffle' isn't as well commented as the 'Fisher-Yates Shuffle' and could benefit from a brief description of what it does in the same way as the other shuffle. I also don't think the Card class is fully commented.
Not too important but there is a spelling mistake in this comment in the Pack class:
// Onlt one pack, via singleton should exist.
Both range and type error handling is covered properly in all areas where its needed from what I can see.
I believe the Console messages in the testing class before demonstrating both the deal methods would make more sense being in the respective methods themselves. I don't really see anything else that needs adding apart from maybe allowing a user to choose shuffles and how many cards to draw etc, but this was never requested in the task description so not really needed.
The project appears to have full functionality as outlined in the task description, and doesn't produce any errors. The code is mostly well commented with good descriptions of what different parts do, however I believe the 'Riffle Shuffle' isn't as well commented as the 'Fisher-Yates Shuffle' and could benefit from a brief description of what it does in the same way as the other shuffle. I also don't think the Card class is fully commented. Not too important but there is a spelling mistake in this comment in the Pack class:
// Onlt one pack, via singleton should exist.
Both range and type error handling is covered properly in all areas where its needed from what I can see.
I believe the Console messages in the testing class before demonstrating both the deal methods would make more sense being in the respective methods themselves. I don't really see anything else that needs adding apart from maybe allowing a user to choose shuffles and how many cards to draw etc, but this was never requested in the task description so not really needed.