Improved PotentialAssignment description with better formatting, and handling for failed toString() calls. Refactored tests into proper unit tests closer wrapping the relevant bit of this code too.