]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.utils/testcases/org/simantics/utils/strings/TestAlphanumComparator.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.utils / testcases / org / simantics / utils / strings / TestAlphanumComparator.java
diff --git a/bundles/org.simantics.utils/testcases/org/simantics/utils/strings/TestAlphanumComparator.java b/bundles/org.simantics.utils/testcases/org/simantics/utils/strings/TestAlphanumComparator.java
new file mode 100644 (file)
index 0000000..42ffcb8
--- /dev/null
@@ -0,0 +1,122 @@
+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