From 8e42c78e2f389f8aabefef163f38a54d170018b5 Mon Sep 17 00:00:00 2001 From: Haidong Ji Date: Tue, 27 Nov 2018 08:43:56 -0600 Subject: Inversion count done! Pretty challenging but a lot of fun and very satisfying. Decided to implement MergeSort first without worrying about inversion count, then went from there. Lesson learned: use the debugger! :) Also passing by reference in Java can be convenient.--- .../tests/InversionCountTest.java | 50 ++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 AlgoDesignAndTechniqueEdxJava/tests/InversionCountTest.java (limited to 'AlgoDesignAndTechniqueEdxJava/tests/InversionCountTest.java') diff --git a/AlgoDesignAndTechniqueEdxJava/tests/InversionCountTest.java b/AlgoDesignAndTechniqueEdxJava/tests/InversionCountTest.java new file mode 100644 index 0000000..483cd23 --- /dev/null +++ b/AlgoDesignAndTechniqueEdxJava/tests/InversionCountTest.java @@ -0,0 +1,50 @@ +import static org.junit.jupiter.api.Assertions.*; + +import org.junit.jupiter.api.Test; + +class InversionCountTest { + + @Test + void testInversionCount0() { + int[] a = {2, 3, 9, 2, 9}; + assertEquals(2, InversionCount.getInversionCountFromArray(a)); + } + + @Test + void testInversionCount1() { + int[] a = {1, 1, 1, 1, 1}; + assertEquals(0, InversionCount.getInversionCountFromArray(a)); + } + + @Test + void testInversionCount2() { + int[] a = {6, 5, 4, 3, 2, 1}; + assertEquals(15, InversionCount.getInversionCountFromArray(a)); + } + + @Test + void testInversionCount3() { + int[] a = {1, 1, 1, 2, 1}; + assertEquals(1, InversionCount.getInversionCountFromArray(a)); + } + + @Test + void testInversionCount4() { + int[] a = {2, 1, 1}; + assertEquals(2, InversionCount.getInversionCountFromArray(a)); + } + + @Test + void testMergeSort0() { + int[] a = {2, 3, 9, 2, 9}; + int[] b = {2, 2, 3, 9, 9}; + assertArrayEquals(b, InversionCount.mergeSortArray(a)); + } + + @Test + void testMergeSort1() { + int[] a = {5, 4, 3, 2, 1}; + int[] b = {1, 2, 3, 4, 5}; + assertArrayEquals(b, InversionCount.mergeSortArray(a)); + } +} -- cgit v1.2.3