--- /dev/null
+package org.simantics.utils.strings;\r
+\r
+import java.util.Arrays;\r
+\r
+import org.junit.Test;\r
+\r
+\r
+public class TestAlphanumComparator {\r
+\r
+ String[] test = {\r
+ "20X Radonius Prime",\r
+ "Xiph Xlater 10000",\r
+ "40X Radonius",\r
+ "20X Radonius",\r
+ "Xiph Xlater 5000",\r
+ "Allegia 6R Clasteron",\r
+ "200X Radonius",\r
+ "10X Radonius",\r
+ "Allegia 50B Clasteron",\r
+ "Allegia 50 Clasteron",\r
+ "30X Radonius",\r
+ "Allegia 51 Clasteron",\r
+ "Alpha 2A",\r
+ "1000X Radonius Maximus",\r
+ "Alpha 2A-8000",\r
+ "Allegia 500 Clasteron",\r
+ "Alpha 2A-900",\r
+ "Callisto Morphamax 600",\r
+ "Alpha 2",\r
+ "Callisto Morphamax",\r
+ "Callisto Morphamax 500",\r
+ "Xiph Xlater 58",\r
+ "Callisto Morphamax 6000 SE",\r
+ "Xiph Xlater 500",\r
+ "Alpha 100",\r
+ "Xiph Xlater 5",\r
+ "Callisto Morphamax 6000 SE2",\r
+ "Callisto Morphamax 7000",\r
+ "Callisto Morphamax 700",\r
+ "Xiph Xlater 40",\r
+ "Xiph Xlater 50",\r
+ "Callisto Morphamax 5000",\r
+ "Alpha 200",\r
+ "Xiph Xlater 300",\r
+ "Xiph Xlater 2000",\r
+ };\r
+\r
+ String[] expected = {\r
+ "10X Radonius",\r
+ "20X Radonius",\r
+ "20X Radonius Prime",\r
+ "30X Radonius",\r
+ "40X Radonius",\r
+ "200X Radonius",\r
+ "1000X Radonius Maximus",\r
+ "Allegia 6R Clasteron",\r
+ "Allegia 50 Clasteron",\r
+ "Allegia 50B Clasteron",\r
+ "Allegia 51 Clasteron",\r
+ "Allegia 500 Clasteron",\r
+ "Alpha 2",\r
+ "Alpha 2A",\r
+ "Alpha 2A-900",\r
+ "Alpha 2A-8000",\r
+ "Alpha 100",\r
+ "Alpha 200",\r
+ "Callisto Morphamax",\r
+ "Callisto Morphamax 500",\r
+ "Callisto Morphamax 600",\r
+ "Callisto Morphamax 700",\r
+ "Callisto Morphamax 5000",\r
+ "Callisto Morphamax 6000 SE",\r
+ "Callisto Morphamax 6000 SE2",\r
+ "Callisto Morphamax 7000",\r
+ "Xiph Xlater 5",\r
+ "Xiph Xlater 40",\r
+ "Xiph Xlater 50",\r
+ "Xiph Xlater 58",\r
+ "Xiph Xlater 300",\r
+ "Xiph Xlater 500",\r
+ "Xiph Xlater 2000",\r
+ "Xiph Xlater 5000",\r
+ "Xiph Xlater 10000",\r
+ };\r
+\r
+ @Test\r
+ public void testCaseSensitiveSort() {\r
+ Arrays.sort(test, AlphanumComparator.COMPARATOR);\r
+ for (int i = 0; i < test.length; ++i) {\r
+ if (!test[i].equals(expected[i])) {\r
+ throw new RuntimeException("Sorting did not match expected result:\n result: " + Arrays.toString(test) + "\n expected: " + Arrays.toString(expected));\r
+ }\r
+ }\r
+ }\r
+\r
+ String[] test2 = {\r
+ "AlleGia 50 clAsTeron",\r
+ "ALLEgia 500 ClastERON",\r
+ "AlleGia 51 Clasteron",\r
+ "Allegia 6R CLASTERON",\r
+ "Allegia 50B Clasteron",\r
+ };\r
+\r
+ String[] expected2 = {\r
+ "Allegia 6R CLASTERON",\r
+ "AlleGia 50 clAsTeron",\r
+ "Allegia 50B Clasteron",\r
+ "AlleGia 51 Clasteron",\r
+ "ALLEgia 500 ClastERON",\r
+ };\r
+\r
+ @Test\r
+ public void testCaseInsensitiveSort() {\r
+ Arrays.sort(test2, AlphanumComparator.CASE_INSENSITIVE_COMPARATOR);\r
+ for (int i = 0; i < test2.length; ++i) {\r
+ if (!test2[i].equals(expected2[i])) {\r
+ throw new RuntimeException("Sorting did not match expected result:\n result: " + Arrays.toString(test2) + "\n expected: " + Arrays.toString(expected2));\r
+ }\r
+ }\r
+ }\r
+\r
+}\r