ValueComparator uses ascending flag, tests
Add GenericTypeComparator