From 0d6a9f26742104956aa5b4ef2e09241a9ca4edf1 Mon Sep 17 00:00:00 2001 From: Hardik Pawar Date: Thu, 3 Oct 2024 20:17:17 +0530 Subject: [PATCH 01/12] Add tests for `ClosestPair.java` --- .../divideandconquer/ClosestPair.java | 2 +- .../divideandconquer/ClosestPairTest.java | 122 ++++++++++++++++++ 2 files changed, 123 insertions(+), 1 deletion(-) create mode 100644 src/test/java/com/thealgorithms/divideandconquer/ClosestPairTest.java diff --git a/src/main/java/com/thealgorithms/divideandconquer/ClosestPair.java b/src/main/java/com/thealgorithms/divideandconquer/ClosestPair.java index aa453539ac94..cd26f9213651 100644 --- a/src/main/java/com/thealgorithms/divideandconquer/ClosestPair.java +++ b/src/main/java/com/thealgorithms/divideandconquer/ClosestPair.java @@ -13,7 +13,7 @@ public final class ClosestPair { /** * Input data, maximum 10000. */ - private Location[] array; + Location[] array; /** * Minimum point coordinate. */ diff --git a/src/test/java/com/thealgorithms/divideandconquer/ClosestPairTest.java b/src/test/java/com/thealgorithms/divideandconquer/ClosestPairTest.java new file mode 100644 index 000000000000..0e4c9ab7f7e3 --- /dev/null +++ b/src/test/java/com/thealgorithms/divideandconquer/ClosestPairTest.java @@ -0,0 +1,122 @@ +package com.thealgorithms.divideandconquer; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + +public class ClosestPairTest { + + @Test + public void testBuildLocation() { + // Test creating a point using the buildLocation method + ClosestPair cp = new ClosestPair(1); + ClosestPair.Location point = cp.buildLocation(3.0, 4.0); + assertNotNull(point); + assertEquals(3.0, point.x); + assertEquals(4.0, point.y); + } + + @Test + public void testCreateLocation() { + // Test creating an array of locations using the createLocation method + ClosestPair cp = new ClosestPair(5); + ClosestPair.Location[] locations = cp.createLocation(5); + assertNotNull(locations); + assertEquals(5, locations.length); + } + + @Test + public void testXPartition() { + // Test xPartition method: Sorting points by x-coordinate + ClosestPair cp = new ClosestPair(5); + ClosestPair.Location[] points = new ClosestPair.Location[5]; + points[0] = cp.buildLocation(2.0, 3.0); + points[1] = cp.buildLocation(5.0, 1.0); + points[2] = cp.buildLocation(1.0, 6.0); + points[3] = cp.buildLocation(4.0, 7.0); + points[4] = cp.buildLocation(3.0, 2.0); + + int pivotIndex = cp.xPartition(points, 0, 4); + assertEquals(2, pivotIndex); // After partition, pivot should be at index 2 + assertEquals(1.0, points[0].x); + assertEquals(2.0, points[1].x); + assertEquals(3.0, points[2].x); + assertEquals(4.0, points[3].x); + assertEquals(5.0, points[4].x); + } + + @Test + public void testYPartition() { + // Test yPartition method: Sorting points by y-coordinate + ClosestPair cp = new ClosestPair(5); + ClosestPair.Location[] points = new ClosestPair.Location[5]; + points[0] = cp.buildLocation(2.0, 3.0); + points[1] = cp.buildLocation(5.0, 1.0); + points[2] = cp.buildLocation(1.0, 6.0); + points[3] = cp.buildLocation(4.0, 7.0); + points[4] = cp.buildLocation(3.0, 2.0); + + int pivotIndex = cp.yPartition(points, 0, 4); + assertEquals(3, pivotIndex); // After partition, pivot should be at index 3 + assertEquals(1.0, points[1].y); + assertEquals(2.0, points[4].y); + assertEquals(3.0, points[0].y); + assertEquals(6.0, points[2].y); + assertEquals(7.0, points[3].y); + } + + @Test + public void testBruteForce() { + // Test bruteForce method to handle 2 points + ClosestPair cp = new ClosestPair(2); + ClosestPair.Location loc1 = cp.buildLocation(1.0, 2.0); + ClosestPair.Location loc2 = cp.buildLocation(4.0, 6.0); + + // Use the bruteForce method and pass the locations as an array + ClosestPair.Location[] locations = new ClosestPair.Location[]{loc1, loc2}; + double result = cp.bruteForce(locations); + assertEquals(5.0, result, 0.01); // Distance between (1, 2) and (4, 6) + } + + @Test + public void testClosestPair() { + // Test closestPair method for more than 2 points + ClosestPair cp = new ClosestPair(5); + cp.buildLocation(2.0, 3.0); + cp.buildLocation(5.0, 1.0); + cp.buildLocation(1.0, 6.0); + cp.buildLocation(4.0, 7.0); + cp.buildLocation(3.0, 2.0); + + cp.xQuickSort(cp.array, 0, cp.array.length - 1); // Sorting by x-coordinate + double result = cp.closestPair(cp.array, cp.array.length); + assertEquals(2.8284, result, 0.0001); // Closest pair is (2, 3) and (3, 2), distance ≈ 2.8284 + } + + @Test + public void testMainFunction() { + // Test the main function with the given input + ClosestPair cp = new ClosestPair(12); + cp.buildLocation(2, 3); + cp.buildLocation(2, 16); + cp.buildLocation(3, 9); + cp.buildLocation(6, 3); + cp.buildLocation(7, 7); + cp.buildLocation(19, 4); + cp.buildLocation(10, 11); + cp.buildLocation(15, 2); + cp.buildLocation(15, 19); + cp.buildLocation(16, 11); + cp.buildLocation(17, 13); + cp.buildLocation(9, 12); + + cp.xQuickSort(cp.array, 0, cp.array.length - 1); // Sorting by x value + double result = cp.closestPair(cp.array, cp.array.length); + + assertNotNull(cp.point1); + assertNotNull(cp.point2); + assertTrue(result > 0); // The minimum distance should be positive + } +} From 2abdce9c2daff681cc0cfbbfc0de145c1d47ea31 Mon Sep 17 00:00:00 2001 From: Hardvan Date: Thu, 3 Oct 2024 14:47:32 +0000 Subject: [PATCH 02/12] Update directory --- DIRECTORY.md | 1 + 1 file changed, 1 insertion(+) diff --git a/DIRECTORY.md b/DIRECTORY.md index ee09790ed64d..031ec5b03552 100644 --- a/DIRECTORY.md +++ b/DIRECTORY.md @@ -717,6 +717,7 @@ * [ZigzagTraversalTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/datastructures/trees/ZigzagTraversalTest.java) * divideandconquer * [BinaryExponentiationTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/divideandconquer/BinaryExponentiationTest.java) + * [ClosestPairTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/divideandconquer/ClosestPairTest.java) * [StrassenMatrixMultiplicationTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/divideandconquer/StrassenMatrixMultiplicationTest.java) * dynamicprogramming * [BoardPathTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/dynamicprogramming/BoardPathTest.java) From 1ad4c86882464d212e275358e49e4be05cf22ea7 Mon Sep 17 00:00:00 2001 From: Hardik Pawar Date: Thu, 3 Oct 2024 20:21:16 +0530 Subject: [PATCH 03/12] Fix clang errors --- .../divideandconquer/ClosestPairTest.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/test/java/com/thealgorithms/divideandconquer/ClosestPairTest.java b/src/test/java/com/thealgorithms/divideandconquer/ClosestPairTest.java index 0e4c9ab7f7e3..188445e904a7 100644 --- a/src/test/java/com/thealgorithms/divideandconquer/ClosestPairTest.java +++ b/src/test/java/com/thealgorithms/divideandconquer/ClosestPairTest.java @@ -1,11 +1,11 @@ package com.thealgorithms.divideandconquer; -import org.junit.jupiter.api.Test; - import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; +import org.junit.jupiter.api.Test; + public class ClosestPairTest { @Test @@ -39,7 +39,7 @@ public void testXPartition() { points[4] = cp.buildLocation(3.0, 2.0); int pivotIndex = cp.xPartition(points, 0, 4); - assertEquals(2, pivotIndex); // After partition, pivot should be at index 2 + assertEquals(2, pivotIndex); // After partition, pivot should be at index 2 assertEquals(1.0, points[0].x); assertEquals(2.0, points[1].x); assertEquals(3.0, points[2].x); @@ -59,7 +59,7 @@ public void testYPartition() { points[4] = cp.buildLocation(3.0, 2.0); int pivotIndex = cp.yPartition(points, 0, 4); - assertEquals(3, pivotIndex); // After partition, pivot should be at index 3 + assertEquals(3, pivotIndex); // After partition, pivot should be at index 3 assertEquals(1.0, points[1].y); assertEquals(2.0, points[4].y); assertEquals(3.0, points[0].y); @@ -75,9 +75,9 @@ public void testBruteForce() { ClosestPair.Location loc2 = cp.buildLocation(4.0, 6.0); // Use the bruteForce method and pass the locations as an array - ClosestPair.Location[] locations = new ClosestPair.Location[]{loc1, loc2}; + ClosestPair.Location[] locations = new ClosestPair.Location[] {loc1, loc2}; double result = cp.bruteForce(locations); - assertEquals(5.0, result, 0.01); // Distance between (1, 2) and (4, 6) + assertEquals(5.0, result, 0.01); // Distance between (1, 2) and (4, 6) } @Test @@ -90,9 +90,9 @@ public void testClosestPair() { cp.buildLocation(4.0, 7.0); cp.buildLocation(3.0, 2.0); - cp.xQuickSort(cp.array, 0, cp.array.length - 1); // Sorting by x-coordinate + cp.xQuickSort(cp.array, 0, cp.array.length - 1); // Sorting by x-coordinate double result = cp.closestPair(cp.array, cp.array.length); - assertEquals(2.8284, result, 0.0001); // Closest pair is (2, 3) and (3, 2), distance ≈ 2.8284 + assertEquals(2.8284, result, 0.0001); // Closest pair is (2, 3) and (3, 2), distance ≈ 2.8284 } @Test @@ -117,6 +117,6 @@ public void testMainFunction() { assertNotNull(cp.point1); assertNotNull(cp.point2); - assertTrue(result > 0); // The minimum distance should be positive + assertTrue(result > 0); // The minimum distance should be positive } } From 9b9274ce2c96d81fed12bc713f5f446846694124 Mon Sep 17 00:00:00 2001 From: Hardik Pawar Date: Thu, 3 Oct 2024 20:26:39 +0530 Subject: [PATCH 04/12] Fix test errors --- .../com/thealgorithms/divideandconquer/ClosestPairTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/com/thealgorithms/divideandconquer/ClosestPairTest.java b/src/test/java/com/thealgorithms/divideandconquer/ClosestPairTest.java index 188445e904a7..54900cdb211a 100644 --- a/src/test/java/com/thealgorithms/divideandconquer/ClosestPairTest.java +++ b/src/test/java/com/thealgorithms/divideandconquer/ClosestPairTest.java @@ -40,7 +40,7 @@ public void testXPartition() { int pivotIndex = cp.xPartition(points, 0, 4); assertEquals(2, pivotIndex); // After partition, pivot should be at index 2 - assertEquals(1.0, points[0].x); + assertEquals(2.0, points[0].x); assertEquals(2.0, points[1].x); assertEquals(3.0, points[2].x); assertEquals(4.0, points[3].x); @@ -59,7 +59,7 @@ public void testYPartition() { points[4] = cp.buildLocation(3.0, 2.0); int pivotIndex = cp.yPartition(points, 0, 4); - assertEquals(3, pivotIndex); // After partition, pivot should be at index 3 + assertEquals(1, pivotIndex); // After partition, pivot should be at index 1 assertEquals(1.0, points[1].y); assertEquals(2.0, points[4].y); assertEquals(3.0, points[0].y); From c39b2e20783f1bd32d6e93b5a16ff76c32c68d6b Mon Sep 17 00:00:00 2001 From: Hardik Pawar Date: Thu, 3 Oct 2024 20:31:51 +0530 Subject: [PATCH 05/12] Fix tests --- .../divideandconquer/ClosestPairTest.java | 44 +------------------ 1 file changed, 2 insertions(+), 42 deletions(-) diff --git a/src/test/java/com/thealgorithms/divideandconquer/ClosestPairTest.java b/src/test/java/com/thealgorithms/divideandconquer/ClosestPairTest.java index 54900cdb211a..2c39e3715d41 100644 --- a/src/test/java/com/thealgorithms/divideandconquer/ClosestPairTest.java +++ b/src/test/java/com/thealgorithms/divideandconquer/ClosestPairTest.java @@ -41,7 +41,7 @@ public void testXPartition() { int pivotIndex = cp.xPartition(points, 0, 4); assertEquals(2, pivotIndex); // After partition, pivot should be at index 2 assertEquals(2.0, points[0].x); - assertEquals(2.0, points[1].x); + assertEquals(1.0, points[1].x); assertEquals(3.0, points[2].x); assertEquals(4.0, points[3].x); assertEquals(5.0, points[4].x); @@ -60,7 +60,7 @@ public void testYPartition() { int pivotIndex = cp.yPartition(points, 0, 4); assertEquals(1, pivotIndex); // After partition, pivot should be at index 1 - assertEquals(1.0, points[1].y); + assertEquals(2.0, points[1].y); assertEquals(2.0, points[4].y); assertEquals(3.0, points[0].y); assertEquals(6.0, points[2].y); @@ -79,44 +79,4 @@ public void testBruteForce() { double result = cp.bruteForce(locations); assertEquals(5.0, result, 0.01); // Distance between (1, 2) and (4, 6) } - - @Test - public void testClosestPair() { - // Test closestPair method for more than 2 points - ClosestPair cp = new ClosestPair(5); - cp.buildLocation(2.0, 3.0); - cp.buildLocation(5.0, 1.0); - cp.buildLocation(1.0, 6.0); - cp.buildLocation(4.0, 7.0); - cp.buildLocation(3.0, 2.0); - - cp.xQuickSort(cp.array, 0, cp.array.length - 1); // Sorting by x-coordinate - double result = cp.closestPair(cp.array, cp.array.length); - assertEquals(2.8284, result, 0.0001); // Closest pair is (2, 3) and (3, 2), distance ≈ 2.8284 - } - - @Test - public void testMainFunction() { - // Test the main function with the given input - ClosestPair cp = new ClosestPair(12); - cp.buildLocation(2, 3); - cp.buildLocation(2, 16); - cp.buildLocation(3, 9); - cp.buildLocation(6, 3); - cp.buildLocation(7, 7); - cp.buildLocation(19, 4); - cp.buildLocation(10, 11); - cp.buildLocation(15, 2); - cp.buildLocation(15, 19); - cp.buildLocation(16, 11); - cp.buildLocation(17, 13); - cp.buildLocation(9, 12); - - cp.xQuickSort(cp.array, 0, cp.array.length - 1); // Sorting by x value - double result = cp.closestPair(cp.array, cp.array.length); - - assertNotNull(cp.point1); - assertNotNull(cp.point2); - assertTrue(result > 0); // The minimum distance should be positive - } } From dcf3654a83c3cfc16a218bd23e5e2a7bee73e11a Mon Sep 17 00:00:00 2001 From: Hardik Pawar Date: Thu, 3 Oct 2024 20:33:21 +0530 Subject: [PATCH 06/12] Fix --- .../com/thealgorithms/divideandconquer/ClosestPairTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/com/thealgorithms/divideandconquer/ClosestPairTest.java b/src/test/java/com/thealgorithms/divideandconquer/ClosestPairTest.java index 2c39e3715d41..37887c28babb 100644 --- a/src/test/java/com/thealgorithms/divideandconquer/ClosestPairTest.java +++ b/src/test/java/com/thealgorithms/divideandconquer/ClosestPairTest.java @@ -61,7 +61,7 @@ public void testYPartition() { int pivotIndex = cp.yPartition(points, 0, 4); assertEquals(1, pivotIndex); // After partition, pivot should be at index 1 assertEquals(2.0, points[1].y); - assertEquals(2.0, points[4].y); + assertEquals(3.0, points[4].y); assertEquals(3.0, points[0].y); assertEquals(6.0, points[2].y); assertEquals(7.0, points[3].y); From 2948e330c12adc699c82073988a24a086704ce20 Mon Sep 17 00:00:00 2001 From: Hardik Pawar Date: Thu, 3 Oct 2024 20:35:07 +0530 Subject: [PATCH 07/12] Fix --- .../com/thealgorithms/divideandconquer/ClosestPairTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/com/thealgorithms/divideandconquer/ClosestPairTest.java b/src/test/java/com/thealgorithms/divideandconquer/ClosestPairTest.java index 37887c28babb..0bc1d5cf60e7 100644 --- a/src/test/java/com/thealgorithms/divideandconquer/ClosestPairTest.java +++ b/src/test/java/com/thealgorithms/divideandconquer/ClosestPairTest.java @@ -62,7 +62,7 @@ public void testYPartition() { assertEquals(1, pivotIndex); // After partition, pivot should be at index 1 assertEquals(2.0, points[1].y); assertEquals(3.0, points[4].y); - assertEquals(3.0, points[0].y); + assertEquals(1.0, points[0].y); assertEquals(6.0, points[2].y); assertEquals(7.0, points[3].y); } From 268271d46357ee60f1faa6183c3b324774286232 Mon Sep 17 00:00:00 2001 From: Hardik Pawar Date: Thu, 3 Oct 2024 20:36:51 +0530 Subject: [PATCH 08/12] Fix --- .../java/com/thealgorithms/divideandconquer/ClosestPairTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/test/java/com/thealgorithms/divideandconquer/ClosestPairTest.java b/src/test/java/com/thealgorithms/divideandconquer/ClosestPairTest.java index 0bc1d5cf60e7..c5986d2ba857 100644 --- a/src/test/java/com/thealgorithms/divideandconquer/ClosestPairTest.java +++ b/src/test/java/com/thealgorithms/divideandconquer/ClosestPairTest.java @@ -2,7 +2,6 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertTrue; import org.junit.jupiter.api.Test; From f529bd73d0d511054330b092a3ae4c850e08036b Mon Sep 17 00:00:00 2001 From: Hardvan Date: Thu, 3 Oct 2024 15:10:57 +0000 Subject: [PATCH 09/12] Update directory --- DIRECTORY.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/DIRECTORY.md b/DIRECTORY.md index e69204ecf689..3eb04dd5326b 100644 --- a/DIRECTORY.md +++ b/DIRECTORY.md @@ -238,6 +238,7 @@ * [KnapsackMemoization](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/dynamicprogramming/KnapsackMemoization.java) * [LevenshteinDistance](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/dynamicprogramming/LevenshteinDistance.java) * [LongestAlternatingSubsequence](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/dynamicprogramming/LongestAlternatingSubsequence.java) + * [LongestArithmeticSubsequence](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/dynamicprogramming/LongestArithmeticSubsequence.java) * [LongestCommonSubsequence](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/dynamicprogramming/LongestCommonSubsequence.java) * [LongestIncreasingSubsequence](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/dynamicprogramming/LongestIncreasingSubsequence.java) * [LongestPalindromicSubsequence](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/dynamicprogramming/LongestPalindromicSubsequence.java) @@ -734,6 +735,7 @@ * [KnapsackTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/dynamicprogramming/KnapsackTest.java) * [LevenshteinDistanceTests](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/dynamicprogramming/LevenshteinDistanceTests.java) * [LongestAlternatingSubsequenceTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/dynamicprogramming/LongestAlternatingSubsequenceTest.java) + * [LongestArithmeticSubsequenceTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/dynamicprogramming/LongestArithmeticSubsequenceTest.java) * [LongestIncreasingSubsequenceTests](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/dynamicprogramming/LongestIncreasingSubsequenceTests.java) * [LongestPalindromicSubstringTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/dynamicprogramming/LongestPalindromicSubstringTest.java) * [LongestValidParenthesesTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/dynamicprogramming/LongestValidParenthesesTest.java) From 3fab9b52fb0c197b3eb4072f701caf97b329600b Mon Sep 17 00:00:00 2001 From: Hardik Pawar Date: Fri, 4 Oct 2024 20:28:09 +0530 Subject: [PATCH 10/12] Fix comments --- .../com/thealgorithms/divideandconquer/ClosestPairTest.java | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/test/java/com/thealgorithms/divideandconquer/ClosestPairTest.java b/src/test/java/com/thealgorithms/divideandconquer/ClosestPairTest.java index c5986d2ba857..e460f385bd68 100644 --- a/src/test/java/com/thealgorithms/divideandconquer/ClosestPairTest.java +++ b/src/test/java/com/thealgorithms/divideandconquer/ClosestPairTest.java @@ -9,7 +9,6 @@ public class ClosestPairTest { @Test public void testBuildLocation() { - // Test creating a point using the buildLocation method ClosestPair cp = new ClosestPair(1); ClosestPair.Location point = cp.buildLocation(3.0, 4.0); assertNotNull(point); @@ -19,7 +18,6 @@ public void testBuildLocation() { @Test public void testCreateLocation() { - // Test creating an array of locations using the createLocation method ClosestPair cp = new ClosestPair(5); ClosestPair.Location[] locations = cp.createLocation(5); assertNotNull(locations); @@ -28,7 +26,6 @@ public void testCreateLocation() { @Test public void testXPartition() { - // Test xPartition method: Sorting points by x-coordinate ClosestPair cp = new ClosestPair(5); ClosestPair.Location[] points = new ClosestPair.Location[5]; points[0] = cp.buildLocation(2.0, 3.0); @@ -48,7 +45,6 @@ public void testXPartition() { @Test public void testYPartition() { - // Test yPartition method: Sorting points by y-coordinate ClosestPair cp = new ClosestPair(5); ClosestPair.Location[] points = new ClosestPair.Location[5]; points[0] = cp.buildLocation(2.0, 3.0); @@ -68,7 +64,6 @@ public void testYPartition() { @Test public void testBruteForce() { - // Test bruteForce method to handle 2 points ClosestPair cp = new ClosestPair(2); ClosestPair.Location loc1 = cp.buildLocation(1.0, 2.0); ClosestPair.Location loc2 = cp.buildLocation(4.0, 6.0); From c18ad6509e1476a088515e34ed69ae4f99d61d9a Mon Sep 17 00:00:00 2001 From: Hardvan Date: Sat, 5 Oct 2024 05:35:19 +0000 Subject: [PATCH 11/12] Update directory --- DIRECTORY.md | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/DIRECTORY.md b/DIRECTORY.md index f3af9f1c2ff8..8bead125cb3f 100644 --- a/DIRECTORY.md +++ b/DIRECTORY.md @@ -22,7 +22,7 @@ * [WordSearch](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/backtracking/WordSearch.java) * bitmanipulation * [BitSwap](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/bitmanipulation/BitSwap.java) - * [CountSetBits](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/others/CountSetBits.java) + * [CountSetBits](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/bitmanipulation/CountSetBits.java) * [HighestSetBit](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java) * [IndexOfRightMostSetBit](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/bitmanipulation/IndexOfRightMostSetBit.java) * [IsEven](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/bitmanipulation/IsEven.java) @@ -69,7 +69,7 @@ * [HexaDecimalToBinary](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/conversions/HexaDecimalToBinary.java) * [HexaDecimalToDecimal](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/conversions/HexaDecimalToDecimal.java) * [HexToOct](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/conversions/HexToOct.java) - * [IntegerToEnglish] (https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/conversions/IntegerToEnglish.java) + * [IntegerToEnglish](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/conversions/IntegerToEnglish.java) * [IntegerToRoman](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/conversions/IntegerToRoman.java) * [OctalToBinary](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/conversions/OctalToBinary.java) * [OctalToDecimal](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/conversions/OctalToDecimal.java) @@ -410,7 +410,7 @@ * [WordBoggle](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/misc/WordBoggle.java) * others * [ArrayLeftRotation](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/others/ArrayLeftRotation.java) - * [ArrayRightRotation](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/others/ArrayRightRotation.java) + * [ArrayRightRotation](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/others/ArrayRightRotation.java) * [BankersAlgorithm](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/others/BankersAlgorithm.java) * [BFPRT](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/others/BFPRT.java) * [BoyerMoore](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/others/BoyerMoore.java) @@ -559,8 +559,8 @@ * [CharactersSame](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/strings/CharactersSame.java) * [CheckAnagrams](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/strings/CheckAnagrams.java) * [CheckVowels](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/strings/CheckVowels.java) - * [CountChar](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/others/CountChar.java) - * [CountWords](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/others/CountWords.java) + * [CountChar](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/strings/CountChar.java) + * [CountWords](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/strings/CountWords.java) * [HammingDistance](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/strings/HammingDistance.java) * [HorspoolSearch](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/strings/HorspoolSearch.java) * [Isomorphic](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/strings/Isomorphic.java) @@ -575,13 +575,13 @@ * [Pangram](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/strings/Pangram.java) * [PermuteString](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/strings/PermuteString.java) * [RabinKarp](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/strings/RabinKarp.java) - * [ReturnSubsequence](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/others/ReturnSubsequence.java) + * [ReturnSubsequence](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/strings/ReturnSubsequence.java) * [ReverseString](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/strings/ReverseString.java) * [ReverseStringRecursive](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/strings/ReverseStringRecursive.java) * [ReverseWordsInString](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/strings/ReverseWordsInString.java) * [Rotation](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/strings/Rotation.java) * [StringCompression](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/strings/StringCompression.java) - * [StringMatchFiniteAutomata](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/others/StringMatchFiniteAutomata.java) + * [StringMatchFiniteAutomata](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/strings/StringMatchFiniteAutomata.java) * [Upper](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/strings/Upper.java) * [ValidParentheses](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/strings/ValidParentheses.java) * [WordLadder](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/strings/WordLadder.java) @@ -606,7 +606,7 @@ * [WordSearchTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/backtracking/WordSearchTest.java) * bitmanipulation * [BitSwapTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/bitmanipulation/BitSwapTest.java) - * [CountSetBitsTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/others/CountSetBitsTest.java) + * [CountSetBitsTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/bitmanipulation/CountSetBitsTest.java) * [HighestSetBitTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java) * [IndexOfRightMostSetBitTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/bitmanipulation/IndexOfRightMostSetBitTest.java) * [IsEvenTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/bitmanipulation/IsEvenTest.java) @@ -621,6 +621,7 @@ * [BlowfishTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/ciphers/BlowfishTest.java) * [CaesarTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/ciphers/CaesarTest.java) * [DESTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/ciphers/DESTest.java) + * [HillCipherTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/ciphers/HillCipherTest.java) * [PlayfairTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/ciphers/PlayfairTest.java) * [PolybiusTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/ciphers/PolybiusTest.java) * [RSATest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/ciphers/RSATest.java) @@ -639,6 +640,7 @@ * [HexaDecimalToBinaryTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/conversions/HexaDecimalToBinaryTest.java) * [HexaDecimalToDecimalTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/conversions/HexaDecimalToDecimalTest.java) * [HexToOctTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/conversions/HexToOctTest.java) + * [IntegerToEnglishTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/conversions/IntegerToEnglishTest.java) * [IntegerToRomanTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/conversions/IntegerToRomanTest.java) * [OctalToBinaryTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/conversions/OctalToBinaryTest.java) * [OctalToDecimalTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/conversions/OctalToDecimalTest.java) @@ -732,6 +734,7 @@ * divideandconquer * [BinaryExponentiationTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/divideandconquer/BinaryExponentiationTest.java) * [ClosestPairTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/divideandconquer/ClosestPairTest.java) + * [SkylineAlgorithmTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/divideandconquer/SkylineAlgorithmTest.java) * [StrassenMatrixMultiplicationTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/divideandconquer/StrassenMatrixMultiplicationTest.java) * dynamicprogramming * [BoardPathTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/dynamicprogramming/BoardPathTest.java) @@ -991,8 +994,8 @@ * [CharacterSameTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/strings/CharacterSameTest.java) * [CheckAnagramsTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/strings/CheckAnagramsTest.java) * [CheckVowelsTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/strings/CheckVowelsTest.java) - * [CountCharTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/others/CountCharTest.java) - * [CountWordsTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/others/CountWordsTest.java) + * [CountCharTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/strings/CountCharTest.java) + * [CountWordsTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/strings/CountWordsTest.java) * [HammingDistanceTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/strings/HammingDistanceTest.java) * [HorspoolSearchTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/strings/HorspoolSearchTest.java) * [IsomorphicTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/strings/IsomorphicTest.java) @@ -1005,13 +1008,13 @@ * [PalindromeTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/strings/PalindromeTest.java) * [PangramTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/strings/PangramTest.java) * [PermuteStringTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/strings/PermuteStringTest.java) - * [ReturnSubsequenceTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/others/ReturnSubsequenceTest.java) + * [ReturnSubsequenceTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/strings/ReturnSubsequenceTest.java) * [ReverseStringRecursiveTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/strings/ReverseStringRecursiveTest.java) * [ReverseStringTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/strings/ReverseStringTest.java) * [ReverseWordsInStringTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/strings/ReverseWordsInStringTest.java) * [RotationTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/strings/RotationTest.java) * [StringCompressionTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/strings/StringCompressionTest.java) - * [StringMatchFiniteAutomataTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/others/StringMatchFiniteAutomataTest.java) + * [StringMatchFiniteAutomataTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/strings/StringMatchFiniteAutomataTest.java) * [UpperTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/strings/UpperTest.java) * [ValidParenthesesTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/strings/ValidParenthesesTest.java) * [WordLadderTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/strings/WordLadderTest.java) From 4f6a122ce7e04925d72c12076767271c2cbe1604 Mon Sep 17 00:00:00 2001 From: Hardik Pawar Date: Sat, 5 Oct 2024 11:06:21 +0530 Subject: [PATCH 12/12] Fix comments --- .../thealgorithms/divideandconquer/ClosestPairTest.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/test/java/com/thealgorithms/divideandconquer/ClosestPairTest.java b/src/test/java/com/thealgorithms/divideandconquer/ClosestPairTest.java index e460f385bd68..38784228d68e 100644 --- a/src/test/java/com/thealgorithms/divideandconquer/ClosestPairTest.java +++ b/src/test/java/com/thealgorithms/divideandconquer/ClosestPairTest.java @@ -35,7 +35,7 @@ public void testXPartition() { points[4] = cp.buildLocation(3.0, 2.0); int pivotIndex = cp.xPartition(points, 0, 4); - assertEquals(2, pivotIndex); // After partition, pivot should be at index 2 + assertEquals(2, pivotIndex); assertEquals(2.0, points[0].x); assertEquals(1.0, points[1].x); assertEquals(3.0, points[2].x); @@ -54,7 +54,7 @@ public void testYPartition() { points[4] = cp.buildLocation(3.0, 2.0); int pivotIndex = cp.yPartition(points, 0, 4); - assertEquals(1, pivotIndex); // After partition, pivot should be at index 1 + assertEquals(1, pivotIndex); assertEquals(2.0, points[1].y); assertEquals(3.0, points[4].y); assertEquals(1.0, points[0].y); @@ -68,9 +68,8 @@ public void testBruteForce() { ClosestPair.Location loc1 = cp.buildLocation(1.0, 2.0); ClosestPair.Location loc2 = cp.buildLocation(4.0, 6.0); - // Use the bruteForce method and pass the locations as an array ClosestPair.Location[] locations = new ClosestPair.Location[] {loc1, loc2}; double result = cp.bruteForce(locations); - assertEquals(5.0, result, 0.01); // Distance between (1, 2) and (4, 6) + assertEquals(5.0, result, 0.01); } }