This project demonstrates a natural order Comparator in Java. Normally, Strings are compared character by character, but that is not the “natural” order humans usually expect. Wikipedia has a good definition of natural order: “Natural sort order is an ordering of strings in alphabetical order, except that multi-digit numbers are ordered as a single character.”
NatOrderComparator/NatOrderComparator.java source code of class
implementing the Comparator<String>
interface.
com.wpollock.natordercomp.tests.NatOrderComparatorTestSuite.java source code of JUnit 4 test suite class.
You can also view the NatOrderComparator Git repo visualization and log.
In reality, developers must pick a small number of tests to implement, at least initially. By using code coverage tools with your testing, you may find lots of code you didn't test. That was the case here at first. At the end, there is over 90% coverage, which is pretty good.
Over time, you will undoubtedly add additional test cases, as new features are enabled and new bugs are discovered. Initially however, you should keep to a manageable number of test cases per unit.
Coverage of JUnit tests, using Eclipse “EclEmma” plug-in:
EclEmma Coverage Summary (in Eclipse
IDE Project→Properties→Coverage Pane)
EclEmma Detail Pane
(in Eclipse IDE)