From 255a5075aec34191a5b538e904e1149e57f8f884 Mon Sep 17 00:00:00 2001 From: varada610 Date: Tue, 7 Jan 2025 15:05:42 -0800 Subject: [PATCH 01/15] refactoring to correct package --- .../{misc => matrix}/InverseOfMatrix.java | 2 +- .../{misc => matrix}/MatrixTranspose.java | 2 +- .../{misc => matrix}/MedianOfMatrix.java | 2 +- .../{misc => matrix}/MirrorOfMatrix.java | 2 +- .../PrintAMatrixInSpiralOrder.java | 124 +++++++++--------- .../RotateMatrixBy90Degrees.java | 2 +- .../matrixexponentiation/Fibonacci.java | 2 +- .../{misc => matrix}/InverseOfMatrixTest.java | 7 +- .../{misc => matrix}/MatrixTransposeTest.java | 4 +- .../{misc => matrix}/MedianOfMatrixTest.java | 4 +- .../{misc => matrix}/MirrorOfMatrixTest.java | 4 +- .../TestPrintMatrixInSpiralOrder.java | 4 +- 12 files changed, 84 insertions(+), 75 deletions(-) rename src/main/java/com/thealgorithms/{misc => matrix}/InverseOfMatrix.java (98%) rename src/main/java/com/thealgorithms/{misc => matrix}/MatrixTranspose.java (97%) rename src/main/java/com/thealgorithms/{misc => matrix}/MedianOfMatrix.java (95%) rename src/main/java/com/thealgorithms/{misc => matrix}/MirrorOfMatrix.java (98%) rename src/main/java/com/thealgorithms/{others => matrix}/PrintAMatrixInSpiralOrder.java (94%) rename src/main/java/com/thealgorithms/{others => matrix}/RotateMatrixBy90Degrees.java (98%) rename src/main/java/com/thealgorithms/{ => matrix}/matrixexponentiation/Fibonacci.java (98%) rename src/test/java/com/thealgorithms/{misc => matrix}/InverseOfMatrixTest.java (96%) rename src/test/java/com/thealgorithms/{misc => matrix}/MatrixTransposeTest.java (95%) rename src/test/java/com/thealgorithms/{misc => matrix}/MedianOfMatrixTest.java (91%) rename src/test/java/com/thealgorithms/{misc => matrix}/MirrorOfMatrixTest.java (95%) rename src/test/java/com/thealgorithms/{others => matrix}/TestPrintMatrixInSpiralOrder.java (91%) diff --git a/src/main/java/com/thealgorithms/misc/InverseOfMatrix.java b/src/main/java/com/thealgorithms/matrix/InverseOfMatrix.java similarity index 98% rename from src/main/java/com/thealgorithms/misc/InverseOfMatrix.java rename to src/main/java/com/thealgorithms/matrix/InverseOfMatrix.java index 706feab0c69d..13e795a91297 100644 --- a/src/main/java/com/thealgorithms/misc/InverseOfMatrix.java +++ b/src/main/java/com/thealgorithms/matrix/InverseOfMatrix.java @@ -1,4 +1,4 @@ -package com.thealgorithms.misc; +package com.thealgorithms.matrix; /** * This class provides methods to compute the inverse of a square matrix diff --git a/src/main/java/com/thealgorithms/misc/MatrixTranspose.java b/src/main/java/com/thealgorithms/matrix/MatrixTranspose.java similarity index 97% rename from src/main/java/com/thealgorithms/misc/MatrixTranspose.java rename to src/main/java/com/thealgorithms/matrix/MatrixTranspose.java index 743682780b01..f91ebc10b8a9 100644 --- a/src/main/java/com/thealgorithms/misc/MatrixTranspose.java +++ b/src/main/java/com/thealgorithms/matrix/MatrixTranspose.java @@ -1,4 +1,4 @@ -package com.thealgorithms.misc; +package com.thealgorithms.matrix; /** * diff --git a/src/main/java/com/thealgorithms/misc/MedianOfMatrix.java b/src/main/java/com/thealgorithms/matrix/MedianOfMatrix.java similarity index 95% rename from src/main/java/com/thealgorithms/misc/MedianOfMatrix.java rename to src/main/java/com/thealgorithms/matrix/MedianOfMatrix.java index edeedbbee540..c710c60a2d2a 100644 --- a/src/main/java/com/thealgorithms/misc/MedianOfMatrix.java +++ b/src/main/java/com/thealgorithms/matrix/MedianOfMatrix.java @@ -1,4 +1,4 @@ -package com.thealgorithms.misc; +package com.thealgorithms.matrix; import java.util.ArrayList; import java.util.Collections; diff --git a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/matrix/MirrorOfMatrix.java similarity index 98% rename from src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java rename to src/main/java/com/thealgorithms/matrix/MirrorOfMatrix.java index 89dfce3fe049..b24fcba75619 100644 --- a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java +++ b/src/main/java/com/thealgorithms/matrix/MirrorOfMatrix.java @@ -1,4 +1,4 @@ -package com.thealgorithms.misc; +package com.thealgorithms.matrix; // Problem Statement /* diff --git a/src/main/java/com/thealgorithms/others/PrintAMatrixInSpiralOrder.java b/src/main/java/com/thealgorithms/matrix/PrintAMatrixInSpiralOrder.java similarity index 94% rename from src/main/java/com/thealgorithms/others/PrintAMatrixInSpiralOrder.java rename to src/main/java/com/thealgorithms/matrix/PrintAMatrixInSpiralOrder.java index ddc37a916cbf..2e735222b7a6 100644 --- a/src/main/java/com/thealgorithms/others/PrintAMatrixInSpiralOrder.java +++ b/src/main/java/com/thealgorithms/matrix/PrintAMatrixInSpiralOrder.java @@ -1,62 +1,62 @@ -package com.thealgorithms.others; - -import java.util.ArrayList; -import java.util.List; - -public class PrintAMatrixInSpiralOrder { - /** - * Search a key in row and column wise sorted matrix - * - * @param matrix matrix to be searched - * @param row number of rows matrix has - * @param col number of columns matrix has - * @author Sadiul Hakim : https://github.com/sadiul-hakim - */ - - public List print(int[][] matrix, int row, int col) { - - // r traverses matrix row wise from first - int r = 0; - // c traverses matrix column wise from first - int c = 0; - int i; - - List result = new ArrayList<>(); - - while (r < row && c < col) { - // print first row of matrix - for (i = c; i < col; i++) { - result.add(matrix[r][i]); - } - - // increase r by one because first row printed - r++; - - // print last column - for (i = r; i < row; i++) { - result.add(matrix[i][col - 1]); - } - - // decrease col by one because last column has been printed - col--; - - // print rows from last except printed elements - if (r < row) { - for (i = col - 1; i >= c; i--) { - result.add(matrix[row - 1][i]); - } - - row--; - } - - // print columns from first except printed elements - if (c < col) { - for (i = row - 1; i >= r; i--) { - result.add(matrix[i][c]); - } - c++; - } - } - return result; - } -} +package com.thealgorithms.matrix; + +import java.util.ArrayList; +import java.util.List; + +public class PrintAMatrixInSpiralOrder { + /** + * Search a key in row and column wise sorted matrix + * + * @param matrix matrix to be searched + * @param row number of rows matrix has + * @param col number of columns matrix has + * @author Sadiul Hakim : https://github.com/sadiul-hakim + */ + + public List print(int[][] matrix, int row, int col) { + + // r traverses matrix row wise from first + int r = 0; + // c traverses matrix column wise from first + int c = 0; + int i; + + List result = new ArrayList<>(); + + while (r < row && c < col) { + // print first row of matrix + for (i = c; i < col; i++) { + result.add(matrix[r][i]); + } + + // increase r by one because first row printed + r++; + + // print last column + for (i = r; i < row; i++) { + result.add(matrix[i][col - 1]); + } + + // decrease col by one because last column has been printed + col--; + + // print rows from last except printed elements + if (r < row) { + for (i = col - 1; i >= c; i--) { + result.add(matrix[row - 1][i]); + } + + row--; + } + + // print columns from first except printed elements + if (c < col) { + for (i = row - 1; i >= r; i--) { + result.add(matrix[i][c]); + } + c++; + } + } + return result; + } +} diff --git a/src/main/java/com/thealgorithms/others/RotateMatrixBy90Degrees.java b/src/main/java/com/thealgorithms/matrix/RotateMatrixBy90Degrees.java similarity index 98% rename from src/main/java/com/thealgorithms/others/RotateMatrixBy90Degrees.java rename to src/main/java/com/thealgorithms/matrix/RotateMatrixBy90Degrees.java index 6ad0ef024342..9a7f255282ac 100644 --- a/src/main/java/com/thealgorithms/others/RotateMatrixBy90Degrees.java +++ b/src/main/java/com/thealgorithms/matrix/RotateMatrixBy90Degrees.java @@ -1,4 +1,4 @@ -package com.thealgorithms.others; +package com.thealgorithms.matrix; import java.util.Scanner; /** diff --git a/src/main/java/com/thealgorithms/matrixexponentiation/Fibonacci.java b/src/main/java/com/thealgorithms/matrix/matrixexponentiation/Fibonacci.java similarity index 98% rename from src/main/java/com/thealgorithms/matrixexponentiation/Fibonacci.java rename to src/main/java/com/thealgorithms/matrix/matrixexponentiation/Fibonacci.java index afd34933047a..df7233d1f975 100644 --- a/src/main/java/com/thealgorithms/matrixexponentiation/Fibonacci.java +++ b/src/main/java/com/thealgorithms/matrix/matrixexponentiation/Fibonacci.java @@ -1,4 +1,4 @@ -package com.thealgorithms.matrixexponentiation; +package com.thealgorithms.matrix.matrixexponentiation; import java.util.Scanner; diff --git a/src/test/java/com/thealgorithms/misc/InverseOfMatrixTest.java b/src/test/java/com/thealgorithms/matrix/InverseOfMatrixTest.java similarity index 96% rename from src/test/java/com/thealgorithms/misc/InverseOfMatrixTest.java rename to src/test/java/com/thealgorithms/matrix/InverseOfMatrixTest.java index 2f20de444315..9a72b4de4303 100644 --- a/src/test/java/com/thealgorithms/misc/InverseOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/matrix/InverseOfMatrixTest.java @@ -1,12 +1,13 @@ -package com.thealgorithms.misc; - -import static org.junit.jupiter.api.Assertions.assertArrayEquals; +package com.thealgorithms.matrix; import java.util.stream.Stream; + +import static org.junit.jupiter.api.Assertions.assertArrayEquals; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; + class InverseOfMatrixTest { @ParameterizedTest diff --git a/src/test/java/com/thealgorithms/misc/MatrixTransposeTest.java b/src/test/java/com/thealgorithms/matrix/MatrixTransposeTest.java similarity index 95% rename from src/test/java/com/thealgorithms/misc/MatrixTransposeTest.java rename to src/test/java/com/thealgorithms/matrix/MatrixTransposeTest.java index cf668807b819..369e5a2e1cbb 100644 --- a/src/test/java/com/thealgorithms/misc/MatrixTransposeTest.java +++ b/src/test/java/com/thealgorithms/matrix/MatrixTransposeTest.java @@ -1,4 +1,4 @@ -package com.thealgorithms.misc; +package com.thealgorithms.matrix; import static org.junit.jupiter.api.Assertions.assertArrayEquals; import static org.junit.jupiter.api.Assertions.assertThrows; @@ -8,6 +8,8 @@ import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; +import com.thealgorithms.matrix.MatrixTranspose; + public class MatrixTransposeTest { private static Stream provideValidMatrixTestCases() { diff --git a/src/test/java/com/thealgorithms/misc/MedianOfMatrixTest.java b/src/test/java/com/thealgorithms/matrix/MedianOfMatrixTest.java similarity index 91% rename from src/test/java/com/thealgorithms/misc/MedianOfMatrixTest.java rename to src/test/java/com/thealgorithms/matrix/MedianOfMatrixTest.java index 19bc66857ae6..c541b69e1545 100644 --- a/src/test/java/com/thealgorithms/misc/MedianOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/matrix/MedianOfMatrixTest.java @@ -1,4 +1,4 @@ -package com.thealgorithms.misc; +package com.thealgorithms.matrix; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -7,6 +7,8 @@ import java.util.List; import org.junit.jupiter.api.Test; +import com.thealgorithms.matrix.MedianOfMatrix; + public class MedianOfMatrixTest { @Test diff --git a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java b/src/test/java/com/thealgorithms/matrix/MirrorOfMatrixTest.java similarity index 95% rename from src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java rename to src/test/java/com/thealgorithms/matrix/MirrorOfMatrixTest.java index 0da0cf0f804a..5326cc7fcaa4 100644 --- a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/matrix/MirrorOfMatrixTest.java @@ -1,4 +1,4 @@ -package com.thealgorithms.misc; +package com.thealgorithms.matrix; import static org.junit.jupiter.api.Assertions.assertArrayEquals; import static org.junit.jupiter.api.Assertions.assertNull; @@ -6,6 +6,8 @@ import org.junit.jupiter.api.Test; +import com.thealgorithms.matrix.MirrorOfMatrix; + class MirrorOfMatrixTest { @Test diff --git a/src/test/java/com/thealgorithms/others/TestPrintMatrixInSpiralOrder.java b/src/test/java/com/thealgorithms/matrix/TestPrintMatrixInSpiralOrder.java similarity index 91% rename from src/test/java/com/thealgorithms/others/TestPrintMatrixInSpiralOrder.java rename to src/test/java/com/thealgorithms/matrix/TestPrintMatrixInSpiralOrder.java index 986e72ea45b5..1e2fe2b446df 100644 --- a/src/test/java/com/thealgorithms/others/TestPrintMatrixInSpiralOrder.java +++ b/src/test/java/com/thealgorithms/matrix/TestPrintMatrixInSpiralOrder.java @@ -1,10 +1,12 @@ -package com.thealgorithms.others; +package com.thealgorithms.matrix; import static org.junit.jupiter.api.Assertions.assertIterableEquals; import java.util.List; import org.junit.jupiter.api.Test; +import com.thealgorithms.matrix.PrintAMatrixInSpiralOrder; + public class TestPrintMatrixInSpiralOrder { @Test public void testOne() { From 8c36f5fa94fdb62cb3207e4e917f49d36d2fa305 Mon Sep 17 00:00:00 2001 From: varada610 Date: Wed, 8 Jan 2025 12:57:53 -0800 Subject: [PATCH 02/15] build fix --- src/test/java/com/thealgorithms/matrix/InverseOfMatrixTest.java | 1 - src/test/java/com/thealgorithms/matrix/MatrixTransposeTest.java | 2 -- src/test/java/com/thealgorithms/matrix/MedianOfMatrixTest.java | 2 -- src/test/java/com/thealgorithms/matrix/MirrorOfMatrixTest.java | 2 -- .../com/thealgorithms/matrix/TestPrintMatrixInSpiralOrder.java | 2 -- 5 files changed, 9 deletions(-) diff --git a/src/test/java/com/thealgorithms/matrix/InverseOfMatrixTest.java b/src/test/java/com/thealgorithms/matrix/InverseOfMatrixTest.java index 9a72b4de4303..27292df991a5 100644 --- a/src/test/java/com/thealgorithms/matrix/InverseOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/matrix/InverseOfMatrixTest.java @@ -7,7 +7,6 @@ import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; - class InverseOfMatrixTest { @ParameterizedTest diff --git a/src/test/java/com/thealgorithms/matrix/MatrixTransposeTest.java b/src/test/java/com/thealgorithms/matrix/MatrixTransposeTest.java index 369e5a2e1cbb..0457f31418cf 100644 --- a/src/test/java/com/thealgorithms/matrix/MatrixTransposeTest.java +++ b/src/test/java/com/thealgorithms/matrix/MatrixTransposeTest.java @@ -8,8 +8,6 @@ import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; -import com.thealgorithms.matrix.MatrixTranspose; - public class MatrixTransposeTest { private static Stream provideValidMatrixTestCases() { diff --git a/src/test/java/com/thealgorithms/matrix/MedianOfMatrixTest.java b/src/test/java/com/thealgorithms/matrix/MedianOfMatrixTest.java index c541b69e1545..db66bb2d187b 100644 --- a/src/test/java/com/thealgorithms/matrix/MedianOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/matrix/MedianOfMatrixTest.java @@ -7,8 +7,6 @@ import java.util.List; import org.junit.jupiter.api.Test; -import com.thealgorithms.matrix.MedianOfMatrix; - public class MedianOfMatrixTest { @Test diff --git a/src/test/java/com/thealgorithms/matrix/MirrorOfMatrixTest.java b/src/test/java/com/thealgorithms/matrix/MirrorOfMatrixTest.java index 5326cc7fcaa4..2d68e1faaa17 100644 --- a/src/test/java/com/thealgorithms/matrix/MirrorOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/matrix/MirrorOfMatrixTest.java @@ -6,8 +6,6 @@ import org.junit.jupiter.api.Test; -import com.thealgorithms.matrix.MirrorOfMatrix; - class MirrorOfMatrixTest { @Test diff --git a/src/test/java/com/thealgorithms/matrix/TestPrintMatrixInSpiralOrder.java b/src/test/java/com/thealgorithms/matrix/TestPrintMatrixInSpiralOrder.java index 1e2fe2b446df..bb415a5861a8 100644 --- a/src/test/java/com/thealgorithms/matrix/TestPrintMatrixInSpiralOrder.java +++ b/src/test/java/com/thealgorithms/matrix/TestPrintMatrixInSpiralOrder.java @@ -5,8 +5,6 @@ import java.util.List; import org.junit.jupiter.api.Test; -import com.thealgorithms.matrix.PrintAMatrixInSpiralOrder; - public class TestPrintMatrixInSpiralOrder { @Test public void testOne() { From 970a32a7c73cc48cc6ba0cebfb5672aa024a4967 Mon Sep 17 00:00:00 2001 From: varada610 Date: Fri, 10 Jan 2025 12:17:40 -0800 Subject: [PATCH 03/15] Build fail by lint --- src/test/java/com/thealgorithms/matrix/InverseOfMatrixTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/com/thealgorithms/matrix/InverseOfMatrixTest.java b/src/test/java/com/thealgorithms/matrix/InverseOfMatrixTest.java index 27292df991a5..f710cf4432c8 100644 --- a/src/test/java/com/thealgorithms/matrix/InverseOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/matrix/InverseOfMatrixTest.java @@ -1,8 +1,8 @@ package com.thealgorithms.matrix; +import static org.junit.jupiter.api.Assertions.assertArrayEquals; import java.util.stream.Stream; -import static org.junit.jupiter.api.Assertions.assertArrayEquals; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; From 4c54898c374d687b6409cc4de8999337e57fed6e Mon Sep 17 00:00:00 2001 From: varada610 Date: Fri, 10 Jan 2025 12:38:02 -0800 Subject: [PATCH 04/15] build fix for PMD --- .../thealgorithms/matrix/matrixexponentiation/Fibonacci.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/thealgorithms/matrix/matrixexponentiation/Fibonacci.java b/src/main/java/com/thealgorithms/matrix/matrixexponentiation/Fibonacci.java index df7233d1f975..9c9f97b93ea4 100644 --- a/src/main/java/com/thealgorithms/matrix/matrixexponentiation/Fibonacci.java +++ b/src/main/java/com/thealgorithms/matrix/matrixexponentiation/Fibonacci.java @@ -55,14 +55,14 @@ private static int[][] matrixMultiplication(int[][] matrix1, int[][] matrix2) { */ public static int[][] fib(int n) { if (n == 0) { - return Fibonacci.IDENTITY_MATRIX; + return IDENTITY_MATRIX; } else { int[][] cachedResult = fib(n / 2); int[][] matrixExpResult = matrixMultiplication(cachedResult, cachedResult); if (n % 2 == 0) { return matrixExpResult; } else { - return matrixMultiplication(Fibonacci.FIB_MATRIX, matrixExpResult); + return matrixMultiplication(FIB_MATRIX, matrixExpResult); } } } From 66de9229975e371bc1b60281053673ade23bf87f Mon Sep 17 00:00:00 2001 From: varada610 Date: Fri, 10 Jan 2025 13:57:06 -0800 Subject: [PATCH 05/15] pmd failure and clang check --- pmd-exclude.properties | 1 - src/test/java/com/thealgorithms/matrix/InverseOfMatrixTest.java | 1 - 2 files changed, 2 deletions(-) diff --git a/pmd-exclude.properties b/pmd-exclude.properties index f6ee88196962..5bf31455e190 100644 --- a/pmd-exclude.properties +++ b/pmd-exclude.properties @@ -55,7 +55,6 @@ com.thealgorithms.maths.SumOfArithmeticSeries=UselessParentheses com.thealgorithms.maths.TrinomialTriangle=UselessParentheses com.thealgorithms.maths.VampireNumber=CollapsibleIfStatements com.thealgorithms.maths.Volume=UselessParentheses -com.thealgorithms.matrixexponentiation.Fibonacci=UnnecessaryFullyQualifiedName com.thealgorithms.misc.Sparsity=UselessParentheses com.thealgorithms.misc.ThreeSumProblem=UselessParentheses com.thealgorithms.misc.WordBoggle=UselessParentheses diff --git a/src/test/java/com/thealgorithms/matrix/InverseOfMatrixTest.java b/src/test/java/com/thealgorithms/matrix/InverseOfMatrixTest.java index f710cf4432c8..930fb377cd32 100644 --- a/src/test/java/com/thealgorithms/matrix/InverseOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/matrix/InverseOfMatrixTest.java @@ -2,7 +2,6 @@ import static org.junit.jupiter.api.Assertions.assertArrayEquals; import java.util.stream.Stream; - import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; From 1481c9b59eefe0a4cba515b1fe43fd031faaa6fc Mon Sep 17 00:00:00 2001 From: varada610 Date: Tue, 14 Jan 2025 22:47:55 -0800 Subject: [PATCH 06/15] Create package prime, matrix and games --- .../{ => Prime}/LiouvilleLambdaFunction.java | 4 +- .../MillerRabinPrimalityCheck.java | 2 +- .../maths/{ => Prime}/MobiusFunction.java | 4 +- .../maths/{ => Prime}/PrimeCheck.java | 2 +- .../maths/{ => Prime}/PrimeFactorization.java | 2 +- .../maths/{ => Prime}/SquareFreeInteger.java | 2 +- .../com/thealgorithms/maths/TwinPrime.java | 2 + .../{maths => matrix}/MatrixRank.java | 45 +-------------- .../thealgorithms/matrix/MirrorOfMatrix.java | 37 +++---------- .../matrixexponentiation/Fibonacci.java | 51 +++++------------ .../{maths => matrix/utils}/MatrixUtil.java | 55 +++++++++++++++++-- .../{others => puzzlesandgames}/Sudoku.java | 2 +- .../TowerOfHanoi.java | 4 +- .../{misc => puzzlesandgames}/WordBoggle.java | 6 +- .../maths/MobiusFunctionTest.java | 2 + .../maths/SquareFreeIntegerTest.java | 2 + .../LiouvilleLambdaFunctionTest.java | 4 +- .../MillerRabinPrimalityCheckTest.java | 5 +- .../maths/{ => prime}/PrimeCheckTest.java | 4 +- .../{ => prime}/PrimeFactorizationTest.java | 8 ++- .../{maths => matrix}/MatrixRankTest.java | 8 +-- .../{maths => matrix}/MatrixUtilTest.java | 8 ++- .../matrix/MirrorOfMatrixTest.java | 38 ++++++------- .../SudokuTest.java | 4 +- .../TowerOfHanoiTest.java | 4 +- .../WordBoggleTest.java | 2 +- 26 files changed, 143 insertions(+), 164 deletions(-) rename src/main/java/com/thealgorithms/maths/{ => Prime}/LiouvilleLambdaFunction.java (93%) rename src/main/java/com/thealgorithms/maths/{ => Prime}/MillerRabinPrimalityCheck.java (98%) rename src/main/java/com/thealgorithms/maths/{ => Prime}/MobiusFunction.java (96%) rename src/main/java/com/thealgorithms/maths/{ => Prime}/PrimeCheck.java (98%) rename src/main/java/com/thealgorithms/maths/{ => Prime}/PrimeFactorization.java (95%) rename src/main/java/com/thealgorithms/maths/{ => Prime}/SquareFreeInteger.java (97%) rename src/main/java/com/thealgorithms/{maths => matrix}/MatrixRank.java (77%) rename src/main/java/com/thealgorithms/{maths => matrix/utils}/MatrixUtil.java (66%) rename src/main/java/com/thealgorithms/{others => puzzlesandgames}/Sudoku.java (99%) rename src/main/java/com/thealgorithms/{others => puzzlesandgames}/TowerOfHanoi.java (97%) rename src/main/java/com/thealgorithms/{misc => puzzlesandgames}/WordBoggle.java (98%) rename src/test/java/com/thealgorithms/maths/{ => prime}/LiouvilleLambdaFunctionTest.java (94%) rename src/test/java/com/thealgorithms/maths/{ => prime}/MillerRabinPrimalityCheckTest.java (92%) rename src/test/java/com/thealgorithms/maths/{ => prime}/PrimeCheckTest.java (89%) rename src/test/java/com/thealgorithms/maths/{ => prime}/PrimeFactorizationTest.java (93%) rename src/test/java/com/thealgorithms/{maths => matrix}/MatrixRankTest.java (98%) rename src/test/java/com/thealgorithms/{maths => matrix}/MatrixUtilTest.java (96%) rename src/test/java/com/thealgorithms/{others => puzzlesandgames}/SudokuTest.java (95%) rename src/test/java/com/thealgorithms/{others => puzzlesandgames}/TowerOfHanoiTest.java (94%) rename src/test/java/com/thealgorithms/{misc => puzzlesandgames}/WordBoggleTest.java (98%) diff --git a/src/main/java/com/thealgorithms/maths/LiouvilleLambdaFunction.java b/src/main/java/com/thealgorithms/maths/Prime/LiouvilleLambdaFunction.java similarity index 93% rename from src/main/java/com/thealgorithms/maths/LiouvilleLambdaFunction.java rename to src/main/java/com/thealgorithms/maths/Prime/LiouvilleLambdaFunction.java index c0f55f5e3485..73535b3aedae 100644 --- a/src/main/java/com/thealgorithms/maths/LiouvilleLambdaFunction.java +++ b/src/main/java/com/thealgorithms/maths/Prime/LiouvilleLambdaFunction.java @@ -1,4 +1,4 @@ -package com.thealgorithms.maths; +package com.thealgorithms.maths.Prime; /* * Java program for liouville lambda function @@ -24,7 +24,7 @@ private LiouvilleLambdaFunction() { * -1 when number has odd number of prime factors * @throws IllegalArgumentException when number is negative */ - static int liouvilleLambda(int number) { + public static int liouvilleLambda(int number) { if (number <= 0) { // throw exception when number is less than or is zero throw new IllegalArgumentException("Number must be greater than zero."); diff --git a/src/main/java/com/thealgorithms/maths/MillerRabinPrimalityCheck.java b/src/main/java/com/thealgorithms/maths/Prime/MillerRabinPrimalityCheck.java similarity index 98% rename from src/main/java/com/thealgorithms/maths/MillerRabinPrimalityCheck.java rename to src/main/java/com/thealgorithms/maths/Prime/MillerRabinPrimalityCheck.java index f889213abfcb..debe3a214a32 100644 --- a/src/main/java/com/thealgorithms/maths/MillerRabinPrimalityCheck.java +++ b/src/main/java/com/thealgorithms/maths/Prime/MillerRabinPrimalityCheck.java @@ -1,4 +1,4 @@ -package com.thealgorithms.maths; +package com.thealgorithms.maths.Prime; import java.util.Random; diff --git a/src/main/java/com/thealgorithms/maths/MobiusFunction.java b/src/main/java/com/thealgorithms/maths/Prime/MobiusFunction.java similarity index 96% rename from src/main/java/com/thealgorithms/maths/MobiusFunction.java rename to src/main/java/com/thealgorithms/maths/Prime/MobiusFunction.java index 915d0d9a6dae..3d4e4eff0f03 100644 --- a/src/main/java/com/thealgorithms/maths/MobiusFunction.java +++ b/src/main/java/com/thealgorithms/maths/Prime/MobiusFunction.java @@ -1,4 +1,4 @@ -package com.thealgorithms.maths; +package com.thealgorithms.maths.Prime; /* * Java program for mobius function @@ -25,7 +25,7 @@ private MobiusFunction() { * 0 when number has repeated prime factor * -1 when number has odd number of prime factors */ - static int mobius(int number) { + public static int mobius(int number) { if (number <= 0) { // throw exception when number is less than or is zero throw new IllegalArgumentException("Number must be greater than zero."); diff --git a/src/main/java/com/thealgorithms/maths/PrimeCheck.java b/src/main/java/com/thealgorithms/maths/Prime/PrimeCheck.java similarity index 98% rename from src/main/java/com/thealgorithms/maths/PrimeCheck.java rename to src/main/java/com/thealgorithms/maths/Prime/PrimeCheck.java index 628a819aeba4..91c490f70aef 100644 --- a/src/main/java/com/thealgorithms/maths/PrimeCheck.java +++ b/src/main/java/com/thealgorithms/maths/Prime/PrimeCheck.java @@ -1,4 +1,4 @@ -package com.thealgorithms.maths; +package com.thealgorithms.maths.Prime; import java.util.Scanner; diff --git a/src/main/java/com/thealgorithms/maths/PrimeFactorization.java b/src/main/java/com/thealgorithms/maths/Prime/PrimeFactorization.java similarity index 95% rename from src/main/java/com/thealgorithms/maths/PrimeFactorization.java rename to src/main/java/com/thealgorithms/maths/Prime/PrimeFactorization.java index 9ac50fd9043b..e12002b3d8c7 100644 --- a/src/main/java/com/thealgorithms/maths/PrimeFactorization.java +++ b/src/main/java/com/thealgorithms/maths/Prime/PrimeFactorization.java @@ -1,4 +1,4 @@ -package com.thealgorithms.maths; +package com.thealgorithms.maths.Prime; /* * Authors: diff --git a/src/main/java/com/thealgorithms/maths/SquareFreeInteger.java b/src/main/java/com/thealgorithms/maths/Prime/SquareFreeInteger.java similarity index 97% rename from src/main/java/com/thealgorithms/maths/SquareFreeInteger.java rename to src/main/java/com/thealgorithms/maths/Prime/SquareFreeInteger.java index 22e9fee00605..15c0a8a691cd 100644 --- a/src/main/java/com/thealgorithms/maths/SquareFreeInteger.java +++ b/src/main/java/com/thealgorithms/maths/Prime/SquareFreeInteger.java @@ -1,4 +1,4 @@ -package com.thealgorithms.maths; +package com.thealgorithms.maths.Prime; /* * Java program for Square free integer * This class has a function which checks diff --git a/src/main/java/com/thealgorithms/maths/TwinPrime.java b/src/main/java/com/thealgorithms/maths/TwinPrime.java index ef8de0d1018e..f4e546a2d7a4 100644 --- a/src/main/java/com/thealgorithms/maths/TwinPrime.java +++ b/src/main/java/com/thealgorithms/maths/TwinPrime.java @@ -9,6 +9,8 @@ * * */ +import com.thealgorithms.maths.Prime.PrimeCheck; + public final class TwinPrime { private TwinPrime() { } diff --git a/src/main/java/com/thealgorithms/maths/MatrixRank.java b/src/main/java/com/thealgorithms/matrix/MatrixRank.java similarity index 77% rename from src/main/java/com/thealgorithms/maths/MatrixRank.java rename to src/main/java/com/thealgorithms/matrix/MatrixRank.java index 7a628b92dccb..6692b6c37c60 100644 --- a/src/main/java/com/thealgorithms/maths/MatrixRank.java +++ b/src/main/java/com/thealgorithms/matrix/MatrixRank.java @@ -1,4 +1,6 @@ -package com.thealgorithms.maths; +package com.thealgorithms.matrix; + +import static com.thealgorithms.matrix.utils.MatrixUtil.validateInputMatrix; /** * This class provides a method to compute the rank of a matrix. @@ -63,47 +65,6 @@ private static double[][] deepCopy(double[][] matrix) { return matrixCopy; } - private static void validateInputMatrix(double[][] matrix) { - if (matrix == null) { - throw new IllegalArgumentException("The input matrix cannot be null"); - } - if (matrix.length == 0) { - throw new IllegalArgumentException("The input matrix cannot be empty"); - } - if (!hasValidRows(matrix)) { - throw new IllegalArgumentException("The input matrix cannot have null or empty rows"); - } - if (isJaggedMatrix(matrix)) { - throw new IllegalArgumentException("The input matrix cannot be jagged"); - } - } - - private static boolean hasValidRows(double[][] matrix) { - for (double[] row : matrix) { - if (row == null || row.length == 0) { - return false; - } - } - return true; - } - - /** - * @brief Checks if the input matrix is a jagged matrix. - * Jagged matrix is a matrix where the number of columns in each row is not the same. - * - * @param matrix The input matrix - * @return True if the input matrix is a jagged matrix, false otherwise - */ - private static boolean isJaggedMatrix(double[][] matrix) { - int numColumns = matrix[0].length; - for (double[] row : matrix) { - if (row.length != numColumns) { - return true; - } - } - return false; - } - /** * @brief The pivot row is the row in the matrix that is used to eliminate other rows and reduce the matrix to its row echelon form. * The pivot row is selected as the first row (from top to bottom) where the value in the current column (the pivot column) is not zero. diff --git a/src/main/java/com/thealgorithms/matrix/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/matrix/MirrorOfMatrix.java index b24fcba75619..af766b4030d6 100644 --- a/src/main/java/com/thealgorithms/matrix/MirrorOfMatrix.java +++ b/src/main/java/com/thealgorithms/matrix/MirrorOfMatrix.java @@ -1,6 +1,9 @@ package com.thealgorithms.matrix; // Problem Statement + +import com.thealgorithms.matrix.utils.MatrixUtil; + /* We have given an array of m x n (where m is the number of rows and n is the number of columns). Print the new matrix in such a way that the new matrix is the mirror image of the original matrix. @@ -17,41 +20,17 @@ public final class MirrorOfMatrix { private MirrorOfMatrix() { } - public static int[][] mirrorMatrix(final int[][] originalMatrix) { - if (originalMatrix == null) { - // Handle invalid input - return null; - } - if (originalMatrix.length == 0) { - return new int[0][0]; - } - - checkInput(originalMatrix); + public static double[][] mirrorMatrix(final double[][] originalMatrix) { + MatrixUtil.validateInputMatrix(originalMatrix); int numRows = originalMatrix.length; int numCols = originalMatrix[0].length; - int[][] mirroredMatrix = new int[numRows][numCols]; + double[][] mirroredMatrix = new double[numRows][numCols]; for (int i = 0; i < numRows; i++) { - mirroredMatrix[i] = reverseRow(originalMatrix[i]); + mirroredMatrix[i] = MatrixUtil.reverseRow(originalMatrix[i]); } return mirroredMatrix; - } - private static int[] reverseRow(final int[] inRow) { - int[] res = new int[inRow.length]; - for (int i = 0; i < inRow.length; ++i) { - res[i] = inRow[inRow.length - 1 - i]; - } - return res; - } - - private static void checkInput(final int[][] matrix) { - // Check if all rows have the same number of columns - for (int i = 1; i < matrix.length; i++) { - if (matrix[i].length != matrix[0].length) { - throw new IllegalArgumentException("The input is not a matrix."); - } - } - } + } } diff --git a/src/main/java/com/thealgorithms/matrix/matrixexponentiation/Fibonacci.java b/src/main/java/com/thealgorithms/matrix/matrixexponentiation/Fibonacci.java index 9c9f97b93ea4..c298f2ee899d 100644 --- a/src/main/java/com/thealgorithms/matrix/matrixexponentiation/Fibonacci.java +++ b/src/main/java/com/thealgorithms/matrix/matrixexponentiation/Fibonacci.java @@ -1,7 +1,10 @@ package com.thealgorithms.matrix.matrixexponentiation; +import java.math.BigDecimal; import java.util.Scanner; +import com.thealgorithms.matrix.utils.MatrixUtil; + /** * @author Anirudh Buvanesh (https://github.com/anirudhb11) For more information * see https://www.geeksforgeeks.org/matrix-exponentiation/ @@ -12,39 +15,13 @@ private Fibonacci() { } // Exponentiation matrix for Fibonacci sequence - private static final int[][] FIB_MATRIX = {{1, 1}, {1, 0}}; - private static final int[][] IDENTITY_MATRIX = {{1, 0}, {0, 1}}; - // First 2 fibonacci numbers - private static final int[][] BASE_FIB_NUMBERS = {{1}, {0}}; - - /** - * Performs multiplication of 2 matrices - * - * @param matrix1 - * @param matrix2 - * @return The product of matrix1 and matrix2 - */ - private static int[][] matrixMultiplication(int[][] matrix1, int[][] matrix2) { - // Check if matrices passed can be multiplied - int rowsInMatrix1 = matrix1.length; - int columnsInMatrix1 = matrix1[0].length; + private static final BigDecimal ONE = BigDecimal.valueOf(1); + private static final BigDecimal ZERO = BigDecimal.valueOf(0); - int rowsInMatrix2 = matrix2.length; - int columnsInMatrix2 = matrix2[0].length; - - assert columnsInMatrix1 == rowsInMatrix2; - int[][] product = new int[rowsInMatrix1][columnsInMatrix2]; - for (int rowIndex = 0; rowIndex < rowsInMatrix1; rowIndex++) { - for (int colIndex = 0; colIndex < columnsInMatrix2; colIndex++) { - int matrixEntry = 0; - for (int intermediateIndex = 0; intermediateIndex < columnsInMatrix1; intermediateIndex++) { - matrixEntry += matrix1[rowIndex][intermediateIndex] * matrix2[intermediateIndex][colIndex]; - } - product[rowIndex][colIndex] = matrixEntry; - } - } - return product; - } + private static final BigDecimal[][] FIB_MATRIX = {{ONE, ONE}, {ONE, ZERO}}; + private static final BigDecimal[][] IDENTITY_MATRIX = {{ONE, ZERO}, {ZERO, ONE}}; + // First 2 fibonacci numbers + private static final BigDecimal[][] BASE_FIB_NUMBERS = {{ONE}, {ZERO}}; /** * Calculates the fibonacci number using matrix exponentiaition technique @@ -53,16 +30,16 @@ private static int[][] matrixMultiplication(int[][] matrix1, int[][] matrix2) { * Outputs the nth * fibonacci number * @return a 2 X 1 array as { {F_n+1}, {F_n} } */ - public static int[][] fib(int n) { + public static BigDecimal[][] fib(int n) { if (n == 0) { return IDENTITY_MATRIX; } else { - int[][] cachedResult = fib(n / 2); - int[][] matrixExpResult = matrixMultiplication(cachedResult, cachedResult); + BigDecimal[][] cachedResult = fib(n / 2); + BigDecimal[][] matrixExpResult = MatrixUtil.multiply(cachedResult, cachedResult).get(); if (n % 2 == 0) { return matrixExpResult; } else { - return matrixMultiplication(FIB_MATRIX, matrixExpResult); + return MatrixUtil.multiply(FIB_MATRIX, matrixExpResult).get(); } } } @@ -71,7 +48,7 @@ public static void main(String[] args) { // Returns [0, 1, 1, 2, 3, 5 ..] for n = [0, 1, 2, 3, 4, 5.. ] Scanner sc = new Scanner(System.in); int n = sc.nextInt(); - int[][] result = matrixMultiplication(fib(n), BASE_FIB_NUMBERS); + BigDecimal[][] result = MatrixUtil.multiply(fib(n), BASE_FIB_NUMBERS).get(); System.out.println("Fib(" + n + ") = " + result[1][0]); sc.close(); } diff --git a/src/main/java/com/thealgorithms/maths/MatrixUtil.java b/src/main/java/com/thealgorithms/matrix/utils/MatrixUtil.java similarity index 66% rename from src/main/java/com/thealgorithms/maths/MatrixUtil.java rename to src/main/java/com/thealgorithms/matrix/utils/MatrixUtil.java index 7e462f92e185..f6806ca41a93 100644 --- a/src/main/java/com/thealgorithms/maths/MatrixUtil.java +++ b/src/main/java/com/thealgorithms/matrix/utils/MatrixUtil.java @@ -1,4 +1,4 @@ -package com.thealgorithms.maths; +package com.thealgorithms.matrix.utils; import java.math.BigDecimal; import java.util.Optional; @@ -9,9 +9,7 @@ * @author: caos321 * @date: 31 October 2021 (Sunday) */ -public final class MatrixUtil { - private MatrixUtil() { - } +public class MatrixUtil { private static boolean isValid(final BigDecimal[][] matrix) { return matrix != null && matrix.length > 0 && matrix[0].length > 0; @@ -25,6 +23,47 @@ private static boolean canMultiply(final BigDecimal[][] matrix1, final BigDecima return (isValid(matrix1) && isValid(matrix2) && matrix1[0].length == matrix2.length); } + public static void validateInputMatrix(double[][] matrix) { + if (matrix == null) { + throw new IllegalArgumentException("The input matrix cannot be null"); + } + if (matrix.length == 0) { + throw new IllegalArgumentException("The input matrix cannot be empty"); + } + if (!hasValidRows(matrix)) { + throw new IllegalArgumentException("The input matrix cannot have null or empty rows"); + } + if (isJaggedMatrix(matrix)) { + throw new IllegalArgumentException("The input matrix cannot be jagged"); + } + } + + private static boolean hasValidRows(double[][] matrix) { + for (double[] row : matrix) { + if (row == null || row.length == 0) { + return false; + } + } + return true; + } + + /** + * @brief Checks if the input matrix is a jagged matrix. + * Jagged matrix is a matrix where the number of columns in each row is not the same. + * + * @param matrix The input matrix + * @return True if the input matrix is a jagged matrix, false otherwise + */ + private static boolean isJaggedMatrix(double[][] matrix) { + int numColumns = matrix[0].length; + for (double[] row : matrix) { + if (row.length != numColumns) { + return true; + } + } + return false; + } + private static Optional operate(final BigDecimal[][] matrix1, final BigDecimal[][] matrix2, final BiFunction operation) { if (!hasEqualSizes(matrix1, matrix2)) { return Optional.empty(); @@ -80,4 +119,12 @@ public static Optional multiply(final BigDecimal[][] matrix1, fi return Optional.of(result); } + + public static double[] reverseRow(final double[] inRow) { + double[] res = new double[inRow.length]; + for (int i = 0; i < inRow.length; ++i) { + res[i] = inRow[inRow.length - 1 - i]; + } + return res; + } } diff --git a/src/main/java/com/thealgorithms/others/Sudoku.java b/src/main/java/com/thealgorithms/puzzlesandgames/Sudoku.java similarity index 99% rename from src/main/java/com/thealgorithms/others/Sudoku.java rename to src/main/java/com/thealgorithms/puzzlesandgames/Sudoku.java index 0e88aee46f4d..fce665c4de00 100644 --- a/src/main/java/com/thealgorithms/others/Sudoku.java +++ b/src/main/java/com/thealgorithms/puzzlesandgames/Sudoku.java @@ -1,4 +1,4 @@ -package com.thealgorithms.others; +package com.thealgorithms.puzzlesandgames; /** * A class that provides methods to solve Sudoku puzzles of any n x n size diff --git a/src/main/java/com/thealgorithms/others/TowerOfHanoi.java b/src/main/java/com/thealgorithms/puzzlesandgames/TowerOfHanoi.java similarity index 97% rename from src/main/java/com/thealgorithms/others/TowerOfHanoi.java rename to src/main/java/com/thealgorithms/puzzlesandgames/TowerOfHanoi.java index 7017ed03f843..ece2236f86ad 100644 --- a/src/main/java/com/thealgorithms/others/TowerOfHanoi.java +++ b/src/main/java/com/thealgorithms/puzzlesandgames/TowerOfHanoi.java @@ -1,4 +1,4 @@ -package com.thealgorithms.others; +package com.thealgorithms.puzzlesandgames; import java.util.List; @@ -23,7 +23,7 @@ * Space Complexity: O(n) - Linear space complexity due to the recursion stack. * Wikipedia: https://en.wikipedia.org/wiki/Tower_of_Hanoi */ -final class TowerOfHanoi { +class TowerOfHanoi { private TowerOfHanoi() { } diff --git a/src/main/java/com/thealgorithms/misc/WordBoggle.java b/src/main/java/com/thealgorithms/puzzlesandgames/WordBoggle.java similarity index 98% rename from src/main/java/com/thealgorithms/misc/WordBoggle.java rename to src/main/java/com/thealgorithms/puzzlesandgames/WordBoggle.java index 8b629d68209b..409f2c6f2d39 100644 --- a/src/main/java/com/thealgorithms/misc/WordBoggle.java +++ b/src/main/java/com/thealgorithms/puzzlesandgames/WordBoggle.java @@ -1,4 +1,4 @@ -package com.thealgorithms.misc; +package com.thealgorithms.puzzlesandgames; import java.util.ArrayList; import java.util.HashMap; @@ -8,9 +8,7 @@ import java.util.Set; public final class WordBoggle { - private WordBoggle() { - } - + /** * O(nm * 8^s + ws) time where n = width of boggle board, m = height of * boggle board, s = length of longest word in string array, w = length of diff --git a/src/test/java/com/thealgorithms/maths/MobiusFunctionTest.java b/src/test/java/com/thealgorithms/maths/MobiusFunctionTest.java index f3a6514ce633..8b139845bbe2 100644 --- a/src/test/java/com/thealgorithms/maths/MobiusFunctionTest.java +++ b/src/test/java/com/thealgorithms/maths/MobiusFunctionTest.java @@ -5,6 +5,8 @@ import org.junit.jupiter.api.Test; +import com.thealgorithms.maths.Prime.MobiusFunction; + class MobiusFunctionTest { @Test diff --git a/src/test/java/com/thealgorithms/maths/SquareFreeIntegerTest.java b/src/test/java/com/thealgorithms/maths/SquareFreeIntegerTest.java index d7e16e02602b..296943f9bb65 100644 --- a/src/test/java/com/thealgorithms/maths/SquareFreeIntegerTest.java +++ b/src/test/java/com/thealgorithms/maths/SquareFreeIntegerTest.java @@ -6,6 +6,8 @@ import java.util.List; import org.junit.jupiter.api.Test; +import com.thealgorithms.maths.Prime.SquareFreeInteger; + class SquareFreeIntegerTest { @Test diff --git a/src/test/java/com/thealgorithms/maths/LiouvilleLambdaFunctionTest.java b/src/test/java/com/thealgorithms/maths/prime/LiouvilleLambdaFunctionTest.java similarity index 94% rename from src/test/java/com/thealgorithms/maths/LiouvilleLambdaFunctionTest.java rename to src/test/java/com/thealgorithms/maths/prime/LiouvilleLambdaFunctionTest.java index a2763047acf0..9c90f7defbdc 100644 --- a/src/test/java/com/thealgorithms/maths/LiouvilleLambdaFunctionTest.java +++ b/src/test/java/com/thealgorithms/maths/prime/LiouvilleLambdaFunctionTest.java @@ -1,10 +1,12 @@ -package com.thealgorithms.maths; +package com.thealgorithms.maths.prime; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; import org.junit.jupiter.api.Test; +import com.thealgorithms.maths.Prime.LiouvilleLambdaFunction; + class LiouvilleLambdaFunctionTest { @Test diff --git a/src/test/java/com/thealgorithms/maths/MillerRabinPrimalityCheckTest.java b/src/test/java/com/thealgorithms/maths/prime/MillerRabinPrimalityCheckTest.java similarity index 92% rename from src/test/java/com/thealgorithms/maths/MillerRabinPrimalityCheckTest.java rename to src/test/java/com/thealgorithms/maths/prime/MillerRabinPrimalityCheckTest.java index d547cecf24cd..9d54d5d07d83 100644 --- a/src/test/java/com/thealgorithms/maths/MillerRabinPrimalityCheckTest.java +++ b/src/test/java/com/thealgorithms/maths/prime/MillerRabinPrimalityCheckTest.java @@ -1,10 +1,11 @@ -package com.thealgorithms.maths; +package com.thealgorithms.maths.prime; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; - import org.junit.jupiter.api.Test; +import com.thealgorithms.maths.Prime.MillerRabinPrimalityCheck; + class MillerRabinPrimalityCheckTest { @Test void testDeterministicMillerRabinForPrimes() { diff --git a/src/test/java/com/thealgorithms/maths/PrimeCheckTest.java b/src/test/java/com/thealgorithms/maths/prime/PrimeCheckTest.java similarity index 89% rename from src/test/java/com/thealgorithms/maths/PrimeCheckTest.java rename to src/test/java/com/thealgorithms/maths/prime/PrimeCheckTest.java index c3e1634c51fe..2517e7ccd72b 100644 --- a/src/test/java/com/thealgorithms/maths/PrimeCheckTest.java +++ b/src/test/java/com/thealgorithms/maths/prime/PrimeCheckTest.java @@ -1,8 +1,10 @@ -package com.thealgorithms.maths; +package com.thealgorithms.maths.prime; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import com.thealgorithms.maths.Prime.PrimeCheck; + public class PrimeCheckTest { @Test diff --git a/src/test/java/com/thealgorithms/maths/PrimeFactorizationTest.java b/src/test/java/com/thealgorithms/maths/prime/PrimeFactorizationTest.java similarity index 93% rename from src/test/java/com/thealgorithms/maths/PrimeFactorizationTest.java rename to src/test/java/com/thealgorithms/maths/prime/PrimeFactorizationTest.java index 6994379d736a..45231213e671 100644 --- a/src/test/java/com/thealgorithms/maths/PrimeFactorizationTest.java +++ b/src/test/java/com/thealgorithms/maths/prime/PrimeFactorizationTest.java @@ -1,13 +1,15 @@ -package com.thealgorithms.maths; - -import static org.junit.jupiter.api.Assertions.assertEquals; +package com.thealgorithms.maths.prime; import java.util.List; import java.util.stream.Stream; + +import static org.junit.jupiter.api.Assertions.assertEquals; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; +import com.thealgorithms.maths.Prime.PrimeFactorization; + class PrimeFactorizationTest { @ParameterizedTest diff --git a/src/test/java/com/thealgorithms/maths/MatrixRankTest.java b/src/test/java/com/thealgorithms/matrix/MatrixRankTest.java similarity index 98% rename from src/test/java/com/thealgorithms/maths/MatrixRankTest.java rename to src/test/java/com/thealgorithms/matrix/MatrixRankTest.java index 415b84ec43f8..7bfe4214b132 100644 --- a/src/test/java/com/thealgorithms/maths/MatrixRankTest.java +++ b/src/test/java/com/thealgorithms/matrix/MatrixRankTest.java @@ -1,10 +1,10 @@ -package com.thealgorithms.maths; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertThrows; +package com.thealgorithms.matrix; import java.util.Arrays; import java.util.stream.Stream; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; diff --git a/src/test/java/com/thealgorithms/maths/MatrixUtilTest.java b/src/test/java/com/thealgorithms/matrix/MatrixUtilTest.java similarity index 96% rename from src/test/java/com/thealgorithms/maths/MatrixUtilTest.java rename to src/test/java/com/thealgorithms/matrix/MatrixUtilTest.java index b954e6ff7511..ab459ae2f72c 100644 --- a/src/test/java/com/thealgorithms/maths/MatrixUtilTest.java +++ b/src/test/java/com/thealgorithms/matrix/MatrixUtilTest.java @@ -1,11 +1,13 @@ -package com.thealgorithms.maths; - -import static org.junit.jupiter.api.Assertions.assertTrue; +package com.thealgorithms.matrix; import java.math.BigDecimal; import java.util.Objects; + +import static org.junit.jupiter.api.Assertions.assertTrue; import org.junit.jupiter.api.Test; +import com.thealgorithms.matrix.utils.MatrixUtil; + class MatrixUtilTest { @Test diff --git a/src/test/java/com/thealgorithms/matrix/MirrorOfMatrixTest.java b/src/test/java/com/thealgorithms/matrix/MirrorOfMatrixTest.java index 2d68e1faaa17..a1b80a913f8f 100644 --- a/src/test/java/com/thealgorithms/matrix/MirrorOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/matrix/MirrorOfMatrixTest.java @@ -1,53 +1,51 @@ package com.thealgorithms.matrix; import static org.junit.jupiter.api.Assertions.assertArrayEquals; -import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; - import org.junit.jupiter.api.Test; class MirrorOfMatrixTest { @Test void testMirrorMatrixRegularMatrix() { - int[][] originalMatrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; - int[][] expectedMirrorMatrix = {{3, 2, 1}, {6, 5, 4}, {9, 8, 7}}; - int[][] mirroredMatrix = MirrorOfMatrix.mirrorMatrix(originalMatrix); + double[][] originalMatrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; + double[][] expectedMirrorMatrix = {{3, 2, 1}, {6, 5, 4}, {9, 8, 7}}; + double[][] mirroredMatrix = MirrorOfMatrix.mirrorMatrix(originalMatrix); assertArrayEquals(expectedMirrorMatrix, mirroredMatrix); } @Test void testMirrorMatrixEmptyMatrix() { - int[][] originalMatrix = {}; - int[][] expectedMirrorMatrix = {}; - int[][] mirroredMatrix = MirrorOfMatrix.mirrorMatrix(originalMatrix); - assertArrayEquals(expectedMirrorMatrix, mirroredMatrix); + double[][] originalMatrix = {}; + Exception e = assertThrows(IllegalArgumentException.class, () -> MirrorOfMatrix.mirrorMatrix(originalMatrix)); + assertEquals("The input matrix cannot be empty", e.getMessage()); } @Test void testMirrorMatrixSingleElementMatrix() { - int[][] originalMatrix = {{42}}; - int[][] expectedMirrorMatrix = {{42}}; - int[][] mirroredMatrix = MirrorOfMatrix.mirrorMatrix(originalMatrix); + double[][] originalMatrix = {{42}}; + double[][] expectedMirrorMatrix = {{42}}; + double[][] mirroredMatrix = MirrorOfMatrix.mirrorMatrix(originalMatrix); assertArrayEquals(expectedMirrorMatrix, mirroredMatrix); } @Test void testMirrorMatrixMultipleRowsOneColumnMatrix() { - int[][] originalMatrix = {{1}, {2}, {3}, {4}}; - int[][] expectedMirrorMatrix = {{1}, {2}, {3}, {4}}; - int[][] mirroredMatrix = MirrorOfMatrix.mirrorMatrix(originalMatrix); + double[][] originalMatrix = {{1}, {2}, {3}, {4}}; + double[][] expectedMirrorMatrix = {{1}, {2}, {3}, {4}}; + double[][] mirroredMatrix = MirrorOfMatrix.mirrorMatrix(originalMatrix); assertArrayEquals(expectedMirrorMatrix, mirroredMatrix); } @Test void testMirrorMatrixNullInput() { - int[][] originalMatrix = null; - assertNull(MirrorOfMatrix.mirrorMatrix(originalMatrix)); - } + double[][] originalMatrix = null; + Exception e = assertThrows(IllegalArgumentException.class, () -> MirrorOfMatrix.mirrorMatrix(originalMatrix)); + assertEquals("The input matrix cannot be null", e.getMessage()); } @Test - void testMirrotMarixThrows() { - assertThrows(IllegalArgumentException.class, () -> MirrorOfMatrix.mirrorMatrix(new int[][] {{1}, {2, 3}})); + void testMirrorMatrixThrows() { + assertThrows(IllegalArgumentException.class, () -> MirrorOfMatrix.mirrorMatrix(new double[][] {{1}, {2, 3}})); } } diff --git a/src/test/java/com/thealgorithms/others/SudokuTest.java b/src/test/java/com/thealgorithms/puzzlesandgames/SudokuTest.java similarity index 95% rename from src/test/java/com/thealgorithms/others/SudokuTest.java rename to src/test/java/com/thealgorithms/puzzlesandgames/SudokuTest.java index 5018b2768302..1d2f68eb43b3 100644 --- a/src/test/java/com/thealgorithms/others/SudokuTest.java +++ b/src/test/java/com/thealgorithms/puzzlesandgames/SudokuTest.java @@ -1,4 +1,4 @@ -package com.thealgorithms.others; +package com.thealgorithms.puzzlesandgames; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; @@ -7,6 +7,8 @@ import org.junit.jupiter.api.Test; +import com.thealgorithms.puzzlesandgames.Sudoku; + public class SudokuTest { @Test diff --git a/src/test/java/com/thealgorithms/others/TowerOfHanoiTest.java b/src/test/java/com/thealgorithms/puzzlesandgames/TowerOfHanoiTest.java similarity index 94% rename from src/test/java/com/thealgorithms/others/TowerOfHanoiTest.java rename to src/test/java/com/thealgorithms/puzzlesandgames/TowerOfHanoiTest.java index ca9376dd48eb..090822be41a1 100644 --- a/src/test/java/com/thealgorithms/others/TowerOfHanoiTest.java +++ b/src/test/java/com/thealgorithms/puzzlesandgames/TowerOfHanoiTest.java @@ -1,4 +1,4 @@ -package com.thealgorithms.others; +package com.thealgorithms.puzzlesandgames; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -7,6 +7,8 @@ import java.util.List; import org.junit.jupiter.api.Test; +import com.thealgorithms.puzzlesandgames.TowerOfHanoi; + public class TowerOfHanoiTest { @Test diff --git a/src/test/java/com/thealgorithms/misc/WordBoggleTest.java b/src/test/java/com/thealgorithms/puzzlesandgames/WordBoggleTest.java similarity index 98% rename from src/test/java/com/thealgorithms/misc/WordBoggleTest.java rename to src/test/java/com/thealgorithms/puzzlesandgames/WordBoggleTest.java index 1d4ed7c5e737..ef5d3c92eb5e 100644 --- a/src/test/java/com/thealgorithms/misc/WordBoggleTest.java +++ b/src/test/java/com/thealgorithms/puzzlesandgames/WordBoggleTest.java @@ -1,4 +1,4 @@ -package com.thealgorithms.misc; +package com.thealgorithms.puzzlesandgames; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; From 2e50255fb211ee23d131a43559dde0a494c1615e Mon Sep 17 00:00:00 2001 From: varada610 Date: Tue, 14 Jan 2025 23:45:05 -0800 Subject: [PATCH 07/15] fix merge conflict --- .../maths/GoldbachConjecture.java | 2 +- .../thealgorithms/matrix/MirrorOfMatrix.java | 42 ------------- .../matrixexponentiation/Fibonacci.java | 59 ------------------- .../matrix/MirrorOfMatrixTest.java | 41 ------------- 4 files changed, 1 insertion(+), 143 deletions(-) diff --git a/src/main/java/com/thealgorithms/maths/GoldbachConjecture.java b/src/main/java/com/thealgorithms/maths/GoldbachConjecture.java index 52391bc100d8..4e962722ba88 100644 --- a/src/main/java/com/thealgorithms/maths/GoldbachConjecture.java +++ b/src/main/java/com/thealgorithms/maths/GoldbachConjecture.java @@ -1,6 +1,6 @@ package com.thealgorithms.maths; -import static com.thealgorithms.maths.PrimeCheck.isPrime; +import static com.thealgorithms.maths.Prime.PrimeCheck.isPrime; /** * This is a representation of the unsolved problem of Goldbach's Projection, according to which every diff --git a/src/main/java/com/thealgorithms/matrix/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/matrix/MirrorOfMatrix.java index dbec5f8f56cf..af766b4030d6 100644 --- a/src/main/java/com/thealgorithms/matrix/MirrorOfMatrix.java +++ b/src/main/java/com/thealgorithms/matrix/MirrorOfMatrix.java @@ -1,12 +1,9 @@ package com.thealgorithms.matrix; // Problem Statement -<<<<<<< HEAD import com.thealgorithms.matrix.utils.MatrixUtil; -======= ->>>>>>> 754bf6c5f8f55b758bdee2667f6cadf4f0ab659f /* We have given an array of m x n (where m is the number of rows and n is the number of columns). Print the new matrix in such a way that the new matrix is the mirror image of the original matrix. @@ -23,26 +20,12 @@ public final class MirrorOfMatrix { private MirrorOfMatrix() { } -<<<<<<< HEAD public static double[][] mirrorMatrix(final double[][] originalMatrix) { MatrixUtil.validateInputMatrix(originalMatrix); -======= - public static int[][] mirrorMatrix(final int[][] originalMatrix) { - if (originalMatrix == null) { - // Handle invalid input - return null; - } - if (originalMatrix.length == 0) { - return new int[0][0]; - } - - checkInput(originalMatrix); ->>>>>>> 754bf6c5f8f55b758bdee2667f6cadf4f0ab659f int numRows = originalMatrix.length; int numCols = originalMatrix[0].length; -<<<<<<< HEAD double[][] mirroredMatrix = new double[numRows][numCols]; for (int i = 0; i < numRows; i++) { @@ -50,29 +33,4 @@ public static int[][] mirrorMatrix(final int[][] originalMatrix) { } return mirroredMatrix; } -======= - int[][] mirroredMatrix = new int[numRows][numCols]; - - for (int i = 0; i < numRows; i++) { - mirroredMatrix[i] = reverseRow(originalMatrix[i]); - } - return mirroredMatrix; - } - private static int[] reverseRow(final int[] inRow) { - int[] res = new int[inRow.length]; - for (int i = 0; i < inRow.length; ++i) { - res[i] = inRow[inRow.length - 1 - i]; - } - return res; - } - - private static void checkInput(final int[][] matrix) { - // Check if all rows have the same number of columns - for (int i = 1; i < matrix.length; i++) { - if (matrix[i].length != matrix[0].length) { - throw new IllegalArgumentException("The input is not a matrix."); - } - } - } ->>>>>>> 754bf6c5f8f55b758bdee2667f6cadf4f0ab659f } diff --git a/src/main/java/com/thealgorithms/matrix/matrixexponentiation/Fibonacci.java b/src/main/java/com/thealgorithms/matrix/matrixexponentiation/Fibonacci.java index 16e36b7362ee..b0012ecac794 100644 --- a/src/main/java/com/thealgorithms/matrix/matrixexponentiation/Fibonacci.java +++ b/src/main/java/com/thealgorithms/matrix/matrixexponentiation/Fibonacci.java @@ -1,15 +1,10 @@ package com.thealgorithms.matrix.matrixexponentiation; -<<<<<<< HEAD import java.math.BigDecimal; import java.util.Scanner; import com.thealgorithms.matrix.utils.MatrixUtil; -======= -import java.util.Scanner; - ->>>>>>> 754bf6c5f8f55b758bdee2667f6cadf4f0ab659f /** * @author Anirudh Buvanesh (https://github.com/anirudhb11) For more information * see https://www.geeksforgeeks.org/matrix-exponentiation/ @@ -20,7 +15,6 @@ private Fibonacci() { } // Exponentiation matrix for Fibonacci sequence -<<<<<<< HEAD private static final BigDecimal ONE = BigDecimal.valueOf(1); private static final BigDecimal ZERO = BigDecimal.valueOf(0); @@ -28,41 +22,6 @@ private Fibonacci() { private static final BigDecimal[][] IDENTITY_MATRIX = {{ONE, ZERO}, {ZERO, ONE}}; // First 2 fibonacci numbers private static final BigDecimal[][] BASE_FIB_NUMBERS = {{ONE}, {ZERO}}; -======= - private static final int[][] FIB_MATRIX = {{1, 1}, {1, 0}}; - private static final int[][] IDENTITY_MATRIX = {{1, 0}, {0, 1}}; - // First 2 fibonacci numbers - private static final int[][] BASE_FIB_NUMBERS = {{1}, {0}}; - - /** - * Performs multiplication of 2 matrices - * - * @param matrix1 - * @param matrix2 - * @return The product of matrix1 and matrix2 - */ - private static int[][] matrixMultiplication(int[][] matrix1, int[][] matrix2) { - // Check if matrices passed can be multiplied - int rowsInMatrix1 = matrix1.length; - int columnsInMatrix1 = matrix1[0].length; - - int rowsInMatrix2 = matrix2.length; - int columnsInMatrix2 = matrix2[0].length; - - assert columnsInMatrix1 == rowsInMatrix2; - int[][] product = new int[rowsInMatrix1][columnsInMatrix2]; - for (int rowIndex = 0; rowIndex < rowsInMatrix1; rowIndex++) { - for (int colIndex = 0; colIndex < columnsInMatrix2; colIndex++) { - int matrixEntry = 0; - for (int intermediateIndex = 0; intermediateIndex < columnsInMatrix1; intermediateIndex++) { - matrixEntry += matrix1[rowIndex][intermediateIndex] * matrix2[intermediateIndex][colIndex]; - } - product[rowIndex][colIndex] = matrixEntry; - } - } - return product; - } ->>>>>>> 754bf6c5f8f55b758bdee2667f6cadf4f0ab659f /** * Calculates the fibonacci number using matrix exponentiaition technique @@ -71,7 +30,6 @@ private static int[][] matrixMultiplication(int[][] matrix1, int[][] matrix2) { * Outputs the nth * fibonacci number * @return a 2 X 1 array as { {F_n+1}, {F_n} } */ -<<<<<<< HEAD public static BigDecimal[][] fib(int n) { if (n == 0) { return IDENTITY_MATRIX; @@ -82,18 +40,6 @@ public static BigDecimal[][] fib(int n) { return matrixExpResult; } else { return MatrixUtil.multiply(FIB_MATRIX, matrixExpResult).get(); -======= - public static int[][] fib(int n) { - if (n == 0) { - return IDENTITY_MATRIX; - } else { - int[][] cachedResult = fib(n / 2); - int[][] matrixExpResult = matrixMultiplication(cachedResult, cachedResult); - if (n % 2 == 0) { - return matrixExpResult; - } else { - return matrixMultiplication(FIB_MATRIX, matrixExpResult); ->>>>>>> 754bf6c5f8f55b758bdee2667f6cadf4f0ab659f } } } @@ -102,12 +48,7 @@ public static void main(String[] args) { // Returns [0, 1, 1, 2, 3, 5 ..] for n = [0, 1, 2, 3, 4, 5.. ] Scanner sc = new Scanner(System.in); int n = sc.nextInt(); -<<<<<<< HEAD BigDecimal[][] result = MatrixUtil.multiply(fib(n), BASE_FIB_NUMBERS).get(); -======= - int[][] result = matrixMultiplication(fib(n), BASE_FIB_NUMBERS); ->>>>>>> 754bf6c5f8f55b758bdee2667f6cadf4f0ab659f - System.out.println("Fib(" + n + ") = " + result[1][0]); sc.close(); } } diff --git a/src/test/java/com/thealgorithms/matrix/MirrorOfMatrixTest.java b/src/test/java/com/thealgorithms/matrix/MirrorOfMatrixTest.java index 7970b90cc30c..a1b80a913f8f 100644 --- a/src/test/java/com/thealgorithms/matrix/MirrorOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/matrix/MirrorOfMatrixTest.java @@ -1,77 +1,45 @@ package com.thealgorithms.matrix; import static org.junit.jupiter.api.Assertions.assertArrayEquals; -<<<<<<< HEAD import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; -======= -import static org.junit.jupiter.api.Assertions.assertNull; -import static org.junit.jupiter.api.Assertions.assertThrows; - ->>>>>>> 754bf6c5f8f55b758bdee2667f6cadf4f0ab659f import org.junit.jupiter.api.Test; class MirrorOfMatrixTest { @Test void testMirrorMatrixRegularMatrix() { -<<<<<<< HEAD double[][] originalMatrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; double[][] expectedMirrorMatrix = {{3, 2, 1}, {6, 5, 4}, {9, 8, 7}}; double[][] mirroredMatrix = MirrorOfMatrix.mirrorMatrix(originalMatrix); -======= - int[][] originalMatrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; - int[][] expectedMirrorMatrix = {{3, 2, 1}, {6, 5, 4}, {9, 8, 7}}; - int[][] mirroredMatrix = MirrorOfMatrix.mirrorMatrix(originalMatrix); ->>>>>>> 754bf6c5f8f55b758bdee2667f6cadf4f0ab659f assertArrayEquals(expectedMirrorMatrix, mirroredMatrix); } @Test void testMirrorMatrixEmptyMatrix() { -<<<<<<< HEAD double[][] originalMatrix = {}; Exception e = assertThrows(IllegalArgumentException.class, () -> MirrorOfMatrix.mirrorMatrix(originalMatrix)); assertEquals("The input matrix cannot be empty", e.getMessage()); -======= - int[][] originalMatrix = {}; - int[][] expectedMirrorMatrix = {}; - int[][] mirroredMatrix = MirrorOfMatrix.mirrorMatrix(originalMatrix); - assertArrayEquals(expectedMirrorMatrix, mirroredMatrix); ->>>>>>> 754bf6c5f8f55b758bdee2667f6cadf4f0ab659f } @Test void testMirrorMatrixSingleElementMatrix() { -<<<<<<< HEAD double[][] originalMatrix = {{42}}; double[][] expectedMirrorMatrix = {{42}}; double[][] mirroredMatrix = MirrorOfMatrix.mirrorMatrix(originalMatrix); -======= - int[][] originalMatrix = {{42}}; - int[][] expectedMirrorMatrix = {{42}}; - int[][] mirroredMatrix = MirrorOfMatrix.mirrorMatrix(originalMatrix); ->>>>>>> 754bf6c5f8f55b758bdee2667f6cadf4f0ab659f assertArrayEquals(expectedMirrorMatrix, mirroredMatrix); } @Test void testMirrorMatrixMultipleRowsOneColumnMatrix() { -<<<<<<< HEAD double[][] originalMatrix = {{1}, {2}, {3}, {4}}; double[][] expectedMirrorMatrix = {{1}, {2}, {3}, {4}}; double[][] mirroredMatrix = MirrorOfMatrix.mirrorMatrix(originalMatrix); -======= - int[][] originalMatrix = {{1}, {2}, {3}, {4}}; - int[][] expectedMirrorMatrix = {{1}, {2}, {3}, {4}}; - int[][] mirroredMatrix = MirrorOfMatrix.mirrorMatrix(originalMatrix); ->>>>>>> 754bf6c5f8f55b758bdee2667f6cadf4f0ab659f assertArrayEquals(expectedMirrorMatrix, mirroredMatrix); } @Test void testMirrorMatrixNullInput() { -<<<<<<< HEAD double[][] originalMatrix = null; Exception e = assertThrows(IllegalArgumentException.class, () -> MirrorOfMatrix.mirrorMatrix(originalMatrix)); assertEquals("The input matrix cannot be null", e.getMessage()); } @@ -79,14 +47,5 @@ void testMirrorMatrixNullInput() { @Test void testMirrorMatrixThrows() { assertThrows(IllegalArgumentException.class, () -> MirrorOfMatrix.mirrorMatrix(new double[][] {{1}, {2, 3}})); -======= - int[][] originalMatrix = null; - assertNull(MirrorOfMatrix.mirrorMatrix(originalMatrix)); - } - - @Test - void testMirrotMarixThrows() { - assertThrows(IllegalArgumentException.class, () -> MirrorOfMatrix.mirrorMatrix(new int[][] {{1}, {2, 3}})); ->>>>>>> 754bf6c5f8f55b758bdee2667f6cadf4f0ab659f } } From 4c6d209e8ba603983639698de22eb19ba99f4345 Mon Sep 17 00:00:00 2001 From: varada610 Date: Wed, 15 Jan 2025 13:11:14 -0800 Subject: [PATCH 08/15] fix linter issues --- .../matrix/matrixexponentiation/Fibonacci.java | 3 +-- .../java/com/thealgorithms/puzzlesandgames/Sudoku.java | 3 --- .../com/thealgorithms/maths/SquareFreeIntegerTest.java | 4 ++-- .../maths/prime/LiouvilleLambdaFunctionTest.java | 4 +--- .../maths/prime/MillerRabinPrimalityCheckTest.java | 2 +- .../maths/{ => prime}/MobiusFunctionTest.java | 6 ++---- .../com/thealgorithms/maths/prime/PrimeCheckTest.java | 3 +-- .../thealgorithms/maths/prime/PrimeFactorizationTest.java | 3 +-- .../java/com/thealgorithms/matrix/MatrixRankTest.java | 6 +++--- .../java/com/thealgorithms/matrix/MatrixUtilTest.java | 6 +++--- .../java/com/thealgorithms/matrix/MirrorOfMatrixTest.java | 3 ++- .../com/thealgorithms/puzzlesandgames/SudokuTest.java | 2 -- .../thealgorithms/puzzlesandgames/TowerOfHanoiTest.java | 8 +++----- 13 files changed, 20 insertions(+), 33 deletions(-) rename src/test/java/com/thealgorithms/maths/{ => prime}/MobiusFunctionTest.java (98%) diff --git a/src/main/java/com/thealgorithms/matrix/matrixexponentiation/Fibonacci.java b/src/main/java/com/thealgorithms/matrix/matrixexponentiation/Fibonacci.java index b0012ecac794..9f322b30632a 100644 --- a/src/main/java/com/thealgorithms/matrix/matrixexponentiation/Fibonacci.java +++ b/src/main/java/com/thealgorithms/matrix/matrixexponentiation/Fibonacci.java @@ -1,10 +1,9 @@ package com.thealgorithms.matrix.matrixexponentiation; +import com.thealgorithms.matrix.utils.MatrixUtil; import java.math.BigDecimal; import java.util.Scanner; -import com.thealgorithms.matrix.utils.MatrixUtil; - /** * @author Anirudh Buvanesh (https://github.com/anirudhb11) For more information * see https://www.geeksforgeeks.org/matrix-exponentiation/ diff --git a/src/main/java/com/thealgorithms/puzzlesandgames/Sudoku.java b/src/main/java/com/thealgorithms/puzzlesandgames/Sudoku.java index fce665c4de00..a2cf837e0ea7 100644 --- a/src/main/java/com/thealgorithms/puzzlesandgames/Sudoku.java +++ b/src/main/java/com/thealgorithms/puzzlesandgames/Sudoku.java @@ -9,9 +9,6 @@ */ final class Sudoku { - private Sudoku() { - } - /** * Checks if placing a number in a specific position on the Sudoku board is safe. * The number is considered safe if it does not violate any of the Sudoku rules: diff --git a/src/test/java/com/thealgorithms/maths/SquareFreeIntegerTest.java b/src/test/java/com/thealgorithms/maths/SquareFreeIntegerTest.java index 296943f9bb65..48493618222a 100644 --- a/src/test/java/com/thealgorithms/maths/SquareFreeIntegerTest.java +++ b/src/test/java/com/thealgorithms/maths/SquareFreeIntegerTest.java @@ -1,9 +1,9 @@ package com.thealgorithms.maths; +import java.util.List; + import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; - -import java.util.List; import org.junit.jupiter.api.Test; import com.thealgorithms.maths.Prime.SquareFreeInteger; diff --git a/src/test/java/com/thealgorithms/maths/prime/LiouvilleLambdaFunctionTest.java b/src/test/java/com/thealgorithms/maths/prime/LiouvilleLambdaFunctionTest.java index 9c90f7defbdc..eafca5a59b65 100644 --- a/src/test/java/com/thealgorithms/maths/prime/LiouvilleLambdaFunctionTest.java +++ b/src/test/java/com/thealgorithms/maths/prime/LiouvilleLambdaFunctionTest.java @@ -2,10 +2,8 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; - -import org.junit.jupiter.api.Test; - import com.thealgorithms.maths.Prime.LiouvilleLambdaFunction; +import org.junit.jupiter.api.Test; class LiouvilleLambdaFunctionTest { diff --git a/src/test/java/com/thealgorithms/maths/prime/MillerRabinPrimalityCheckTest.java b/src/test/java/com/thealgorithms/maths/prime/MillerRabinPrimalityCheckTest.java index 9d54d5d07d83..4defcd587758 100644 --- a/src/test/java/com/thealgorithms/maths/prime/MillerRabinPrimalityCheckTest.java +++ b/src/test/java/com/thealgorithms/maths/prime/MillerRabinPrimalityCheckTest.java @@ -2,9 +2,9 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import org.junit.jupiter.api.Test; import com.thealgorithms.maths.Prime.MillerRabinPrimalityCheck; +import org.junit.jupiter.api.Test; class MillerRabinPrimalityCheckTest { @Test diff --git a/src/test/java/com/thealgorithms/maths/MobiusFunctionTest.java b/src/test/java/com/thealgorithms/maths/prime/MobiusFunctionTest.java similarity index 98% rename from src/test/java/com/thealgorithms/maths/MobiusFunctionTest.java rename to src/test/java/com/thealgorithms/maths/prime/MobiusFunctionTest.java index 8b139845bbe2..87637edf98f1 100644 --- a/src/test/java/com/thealgorithms/maths/MobiusFunctionTest.java +++ b/src/test/java/com/thealgorithms/maths/prime/MobiusFunctionTest.java @@ -1,11 +1,9 @@ -package com.thealgorithms.maths; +package com.thealgorithms.maths.prime; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; - -import org.junit.jupiter.api.Test; - import com.thealgorithms.maths.Prime.MobiusFunction; +import org.junit.jupiter.api.Test; class MobiusFunctionTest { diff --git a/src/test/java/com/thealgorithms/maths/prime/PrimeCheckTest.java b/src/test/java/com/thealgorithms/maths/prime/PrimeCheckTest.java index 2517e7ccd72b..2182bcd9cb16 100644 --- a/src/test/java/com/thealgorithms/maths/prime/PrimeCheckTest.java +++ b/src/test/java/com/thealgorithms/maths/prime/PrimeCheckTest.java @@ -1,10 +1,9 @@ package com.thealgorithms.maths.prime; +import com.thealgorithms.maths.Prime.PrimeCheck; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -import com.thealgorithms.maths.Prime.PrimeCheck; - public class PrimeCheckTest { @Test diff --git a/src/test/java/com/thealgorithms/maths/prime/PrimeFactorizationTest.java b/src/test/java/com/thealgorithms/maths/prime/PrimeFactorizationTest.java index 45231213e671..e1a953208be4 100644 --- a/src/test/java/com/thealgorithms/maths/prime/PrimeFactorizationTest.java +++ b/src/test/java/com/thealgorithms/maths/prime/PrimeFactorizationTest.java @@ -4,12 +4,11 @@ import java.util.stream.Stream; import static org.junit.jupiter.api.Assertions.assertEquals; +import com.thealgorithms.maths.Prime.PrimeFactorization; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; -import com.thealgorithms.maths.Prime.PrimeFactorization; - class PrimeFactorizationTest { @ParameterizedTest diff --git a/src/test/java/com/thealgorithms/matrix/MatrixRankTest.java b/src/test/java/com/thealgorithms/matrix/MatrixRankTest.java index 7bfe4214b132..33a0196b7bf7 100644 --- a/src/test/java/com/thealgorithms/matrix/MatrixRankTest.java +++ b/src/test/java/com/thealgorithms/matrix/MatrixRankTest.java @@ -1,10 +1,10 @@ package com.thealgorithms.matrix; -import java.util.Arrays; -import java.util.stream.Stream; - import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; + +import java.util.Arrays; +import java.util.stream.Stream; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; diff --git a/src/test/java/com/thealgorithms/matrix/MatrixUtilTest.java b/src/test/java/com/thealgorithms/matrix/MatrixUtilTest.java index ab459ae2f72c..52d1b89c39ed 100644 --- a/src/test/java/com/thealgorithms/matrix/MatrixUtilTest.java +++ b/src/test/java/com/thealgorithms/matrix/MatrixUtilTest.java @@ -1,13 +1,13 @@ package com.thealgorithms.matrix; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import com.thealgorithms.matrix.utils.MatrixUtil; import java.math.BigDecimal; import java.util.Objects; -import static org.junit.jupiter.api.Assertions.assertTrue; import org.junit.jupiter.api.Test; -import com.thealgorithms.matrix.utils.MatrixUtil; - class MatrixUtilTest { @Test diff --git a/src/test/java/com/thealgorithms/matrix/MirrorOfMatrixTest.java b/src/test/java/com/thealgorithms/matrix/MirrorOfMatrixTest.java index a1b80a913f8f..766495af5b83 100644 --- a/src/test/java/com/thealgorithms/matrix/MirrorOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/matrix/MirrorOfMatrixTest.java @@ -42,7 +42,8 @@ void testMirrorMatrixMultipleRowsOneColumnMatrix() { void testMirrorMatrixNullInput() { double[][] originalMatrix = null; Exception e = assertThrows(IllegalArgumentException.class, () -> MirrorOfMatrix.mirrorMatrix(originalMatrix)); - assertEquals("The input matrix cannot be null", e.getMessage()); } + assertEquals("The input matrix cannot be null", e.getMessage()); + } @Test void testMirrorMatrixThrows() { diff --git a/src/test/java/com/thealgorithms/puzzlesandgames/SudokuTest.java b/src/test/java/com/thealgorithms/puzzlesandgames/SudokuTest.java index 1d2f68eb43b3..7fb96dcf805f 100644 --- a/src/test/java/com/thealgorithms/puzzlesandgames/SudokuTest.java +++ b/src/test/java/com/thealgorithms/puzzlesandgames/SudokuTest.java @@ -7,8 +7,6 @@ import org.junit.jupiter.api.Test; -import com.thealgorithms.puzzlesandgames.Sudoku; - public class SudokuTest { @Test diff --git a/src/test/java/com/thealgorithms/puzzlesandgames/TowerOfHanoiTest.java b/src/test/java/com/thealgorithms/puzzlesandgames/TowerOfHanoiTest.java index 090822be41a1..41ef3d4c509d 100644 --- a/src/test/java/com/thealgorithms/puzzlesandgames/TowerOfHanoiTest.java +++ b/src/test/java/com/thealgorithms/puzzlesandgames/TowerOfHanoiTest.java @@ -1,13 +1,11 @@ package com.thealgorithms.puzzlesandgames; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; - import java.util.ArrayList; import java.util.List; -import org.junit.jupiter.api.Test; -import com.thealgorithms.puzzlesandgames.TowerOfHanoi; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; +import org.junit.jupiter.api.Test; public class TowerOfHanoiTest { From 1b6981a2a5243d03d7e4f6ef722d8be7402899f6 Mon Sep 17 00:00:00 2001 From: varada610 Date: Wed, 15 Jan 2025 13:32:53 -0800 Subject: [PATCH 09/15] checks fixes --- src/main/java/com/thealgorithms/matrix/MirrorOfMatrix.java | 4 ++-- src/main/java/com/thealgorithms/matrix/utils/MatrixUtil.java | 3 +++ src/main/java/com/thealgorithms/puzzlesandgames/Sudoku.java | 3 +++ .../java/com/thealgorithms/puzzlesandgames/TowerOfHanoi.java | 2 +- .../java/com/thealgorithms/puzzlesandgames/WordBoggle.java | 2 ++ 5 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/thealgorithms/matrix/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/matrix/MirrorOfMatrix.java index af766b4030d6..3a3055f38732 100644 --- a/src/main/java/com/thealgorithms/matrix/MirrorOfMatrix.java +++ b/src/main/java/com/thealgorithms/matrix/MirrorOfMatrix.java @@ -20,7 +20,7 @@ public final class MirrorOfMatrix { private MirrorOfMatrix() { } - public static double[][] mirrorMatrix(final double[][] originalMatrix) { + public static double[][] mirrorMatrix(final double[][] originalMatrix) { MatrixUtil.validateInputMatrix(originalMatrix); int numRows = originalMatrix.length; @@ -32,5 +32,5 @@ public static double[][] mirrorMatrix(final double[][] originalMatrix) { mirroredMatrix[i] = MatrixUtil.reverseRow(originalMatrix[i]); } return mirroredMatrix; - } + } } diff --git a/src/main/java/com/thealgorithms/matrix/utils/MatrixUtil.java b/src/main/java/com/thealgorithms/matrix/utils/MatrixUtil.java index f6806ca41a93..874e920b8f6b 100644 --- a/src/main/java/com/thealgorithms/matrix/utils/MatrixUtil.java +++ b/src/main/java/com/thealgorithms/matrix/utils/MatrixUtil.java @@ -11,6 +11,9 @@ */ public class MatrixUtil { + private MatrixUtil() { + } + private static boolean isValid(final BigDecimal[][] matrix) { return matrix != null && matrix.length > 0 && matrix[0].length > 0; } diff --git a/src/main/java/com/thealgorithms/puzzlesandgames/Sudoku.java b/src/main/java/com/thealgorithms/puzzlesandgames/Sudoku.java index a2cf837e0ea7..fce665c4de00 100644 --- a/src/main/java/com/thealgorithms/puzzlesandgames/Sudoku.java +++ b/src/main/java/com/thealgorithms/puzzlesandgames/Sudoku.java @@ -9,6 +9,9 @@ */ final class Sudoku { + private Sudoku() { + } + /** * Checks if placing a number in a specific position on the Sudoku board is safe. * The number is considered safe if it does not violate any of the Sudoku rules: diff --git a/src/main/java/com/thealgorithms/puzzlesandgames/TowerOfHanoi.java b/src/main/java/com/thealgorithms/puzzlesandgames/TowerOfHanoi.java index ece2236f86ad..72e9a14ac070 100644 --- a/src/main/java/com/thealgorithms/puzzlesandgames/TowerOfHanoi.java +++ b/src/main/java/com/thealgorithms/puzzlesandgames/TowerOfHanoi.java @@ -23,7 +23,7 @@ * Space Complexity: O(n) - Linear space complexity due to the recursion stack. * Wikipedia: https://en.wikipedia.org/wiki/Tower_of_Hanoi */ -class TowerOfHanoi { +final class TowerOfHanoi { private TowerOfHanoi() { } diff --git a/src/main/java/com/thealgorithms/puzzlesandgames/WordBoggle.java b/src/main/java/com/thealgorithms/puzzlesandgames/WordBoggle.java index 409f2c6f2d39..0c41a0ffefe3 100644 --- a/src/main/java/com/thealgorithms/puzzlesandgames/WordBoggle.java +++ b/src/main/java/com/thealgorithms/puzzlesandgames/WordBoggle.java @@ -9,6 +9,8 @@ public final class WordBoggle { + private WordBoggle() { + } /** * O(nm * 8^s + ws) time where n = width of boggle board, m = height of * boggle board, s = length of longest word in string array, w = length of From 0b2c39e05fa3246a241ccaaaabeb59941f6dd7af Mon Sep 17 00:00:00 2001 From: varada610 Date: Tue, 21 Jan 2025 11:41:06 -0800 Subject: [PATCH 10/15] remove main --- .../matrix/matrixexponentiation/Fibonacci.java | 8 -------- .../com/thealgorithms/maths/SquareFreeIntegerTest.java | 5 ++--- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/thealgorithms/matrix/matrixexponentiation/Fibonacci.java b/src/main/java/com/thealgorithms/matrix/matrixexponentiation/Fibonacci.java index 9f322b30632a..c55bfdcbd893 100644 --- a/src/main/java/com/thealgorithms/matrix/matrixexponentiation/Fibonacci.java +++ b/src/main/java/com/thealgorithms/matrix/matrixexponentiation/Fibonacci.java @@ -42,12 +42,4 @@ public static BigDecimal[][] fib(int n) { } } } - - public static void main(String[] args) { - // Returns [0, 1, 1, 2, 3, 5 ..] for n = [0, 1, 2, 3, 4, 5.. ] - Scanner sc = new Scanner(System.in); - int n = sc.nextInt(); - BigDecimal[][] result = MatrixUtil.multiply(fib(n), BASE_FIB_NUMBERS).get(); - sc.close(); - } } diff --git a/src/test/java/com/thealgorithms/maths/SquareFreeIntegerTest.java b/src/test/java/com/thealgorithms/maths/SquareFreeIntegerTest.java index 48493618222a..5b35ee7bd9d0 100644 --- a/src/test/java/com/thealgorithms/maths/SquareFreeIntegerTest.java +++ b/src/test/java/com/thealgorithms/maths/SquareFreeIntegerTest.java @@ -1,12 +1,11 @@ package com.thealgorithms.maths; -import java.util.List; - import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; -import org.junit.jupiter.api.Test; import com.thealgorithms.maths.Prime.SquareFreeInteger; +import java.util.List; +import org.junit.jupiter.api.Test; class SquareFreeIntegerTest { From 7aedeab68a13c6582d875b22f67773ead6ca2257 Mon Sep 17 00:00:00 2001 From: varada610 Date: Tue, 21 Jan 2025 12:22:51 -0800 Subject: [PATCH 11/15] trailing spaces and regex issues --- .../thealgorithms/matrix/matrixexponentiation/Fibonacci.java | 1 - src/main/java/com/thealgorithms/matrix/utils/MatrixUtil.java | 4 ++-- .../java/com/thealgorithms/puzzlesandgames/WordBoggle.java | 2 +- .../java/com/thealgorithms/matrix/MirrorOfMatrixTest.java | 2 +- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/thealgorithms/matrix/matrixexponentiation/Fibonacci.java b/src/main/java/com/thealgorithms/matrix/matrixexponentiation/Fibonacci.java index c55bfdcbd893..ef4cc0209675 100644 --- a/src/main/java/com/thealgorithms/matrix/matrixexponentiation/Fibonacci.java +++ b/src/main/java/com/thealgorithms/matrix/matrixexponentiation/Fibonacci.java @@ -2,7 +2,6 @@ import com.thealgorithms.matrix.utils.MatrixUtil; import java.math.BigDecimal; -import java.util.Scanner; /** * @author Anirudh Buvanesh (https://github.com/anirudhb11) For more information diff --git a/src/main/java/com/thealgorithms/matrix/utils/MatrixUtil.java b/src/main/java/com/thealgorithms/matrix/utils/MatrixUtil.java index 874e920b8f6b..a4c2b659ada9 100644 --- a/src/main/java/com/thealgorithms/matrix/utils/MatrixUtil.java +++ b/src/main/java/com/thealgorithms/matrix/utils/MatrixUtil.java @@ -9,7 +9,7 @@ * @author: caos321 * @date: 31 October 2021 (Sunday) */ -public class MatrixUtil { +public final class MatrixUtil { private MatrixUtil() { } @@ -40,7 +40,7 @@ public static void validateInputMatrix(double[][] matrix) { throw new IllegalArgumentException("The input matrix cannot be jagged"); } } - + private static boolean hasValidRows(double[][] matrix) { for (double[] row : matrix) { if (row == null || row.length == 0) { diff --git a/src/main/java/com/thealgorithms/puzzlesandgames/WordBoggle.java b/src/main/java/com/thealgorithms/puzzlesandgames/WordBoggle.java index 0c41a0ffefe3..ca1430f744ab 100644 --- a/src/main/java/com/thealgorithms/puzzlesandgames/WordBoggle.java +++ b/src/main/java/com/thealgorithms/puzzlesandgames/WordBoggle.java @@ -8,7 +8,7 @@ import java.util.Set; public final class WordBoggle { - + private WordBoggle() { } /** diff --git a/src/test/java/com/thealgorithms/matrix/MirrorOfMatrixTest.java b/src/test/java/com/thealgorithms/matrix/MirrorOfMatrixTest.java index 766495af5b83..e617ef038444 100644 --- a/src/test/java/com/thealgorithms/matrix/MirrorOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/matrix/MirrorOfMatrixTest.java @@ -42,7 +42,7 @@ void testMirrorMatrixMultipleRowsOneColumnMatrix() { void testMirrorMatrixNullInput() { double[][] originalMatrix = null; Exception e = assertThrows(IllegalArgumentException.class, () -> MirrorOfMatrix.mirrorMatrix(originalMatrix)); - assertEquals("The input matrix cannot be null", e.getMessage()); + assertEquals("The input matrix cannot be null", e.getMessage()); } @Test From 05b499109f56646d8df5418f9807459dcb255044 Mon Sep 17 00:00:00 2001 From: varada610 Date: Wed, 22 Jan 2025 14:52:14 -0800 Subject: [PATCH 12/15] PMD fix --- pmd-exclude.properties | 1 - .../thealgorithms/matrix/matrixexponentiation/Fibonacci.java | 2 -- 2 files changed, 3 deletions(-) diff --git a/pmd-exclude.properties b/pmd-exclude.properties index 5bf31455e190..a633ddad62bb 100644 --- a/pmd-exclude.properties +++ b/pmd-exclude.properties @@ -46,7 +46,6 @@ com.thealgorithms.maths.KaprekarNumbers=UselessParentheses com.thealgorithms.maths.KeithNumber=UselessParentheses com.thealgorithms.maths.LeonardoNumber=UselessParentheses com.thealgorithms.maths.LinearDiophantineEquationsSolver=UselessParentheses -com.thealgorithms.maths.MatrixUtil=UselessParentheses com.thealgorithms.maths.RomanNumeralUtil=UselessParentheses com.thealgorithms.maths.SecondMinMax=UselessParentheses com.thealgorithms.maths.SecondMinMaxTest=UnnecessaryFullyQualifiedName diff --git a/src/main/java/com/thealgorithms/matrix/matrixexponentiation/Fibonacci.java b/src/main/java/com/thealgorithms/matrix/matrixexponentiation/Fibonacci.java index ef4cc0209675..85852713b9ba 100644 --- a/src/main/java/com/thealgorithms/matrix/matrixexponentiation/Fibonacci.java +++ b/src/main/java/com/thealgorithms/matrix/matrixexponentiation/Fibonacci.java @@ -18,8 +18,6 @@ private Fibonacci() { private static final BigDecimal[][] FIB_MATRIX = {{ONE, ONE}, {ONE, ZERO}}; private static final BigDecimal[][] IDENTITY_MATRIX = {{ONE, ZERO}, {ZERO, ONE}}; - // First 2 fibonacci numbers - private static final BigDecimal[][] BASE_FIB_NUMBERS = {{ONE}, {ZERO}}; /** * Calculates the fibonacci number using matrix exponentiaition technique From 89219e8d9ba2306c3cd57bd9aa5621479522030f Mon Sep 17 00:00:00 2001 From: varada610 Date: Wed, 22 Jan 2025 15:23:36 -0800 Subject: [PATCH 13/15] PMD fix --- pmd-exclude.properties | 1 + src/main/java/com/thealgorithms/matrix/utils/MatrixUtil.java | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/pmd-exclude.properties b/pmd-exclude.properties index a633ddad62bb..5bf31455e190 100644 --- a/pmd-exclude.properties +++ b/pmd-exclude.properties @@ -46,6 +46,7 @@ com.thealgorithms.maths.KaprekarNumbers=UselessParentheses com.thealgorithms.maths.KeithNumber=UselessParentheses com.thealgorithms.maths.LeonardoNumber=UselessParentheses com.thealgorithms.maths.LinearDiophantineEquationsSolver=UselessParentheses +com.thealgorithms.maths.MatrixUtil=UselessParentheses com.thealgorithms.maths.RomanNumeralUtil=UselessParentheses com.thealgorithms.maths.SecondMinMax=UselessParentheses com.thealgorithms.maths.SecondMinMaxTest=UnnecessaryFullyQualifiedName diff --git a/src/main/java/com/thealgorithms/matrix/utils/MatrixUtil.java b/src/main/java/com/thealgorithms/matrix/utils/MatrixUtil.java index a4c2b659ada9..5ff9e37f6b9a 100644 --- a/src/main/java/com/thealgorithms/matrix/utils/MatrixUtil.java +++ b/src/main/java/com/thealgorithms/matrix/utils/MatrixUtil.java @@ -19,11 +19,11 @@ private static boolean isValid(final BigDecimal[][] matrix) { } private static boolean hasEqualSizes(final BigDecimal[][] matrix1, final BigDecimal[][] matrix2) { - return (isValid(matrix1) && isValid(matrix2) && matrix1.length == matrix2.length && matrix1[0].length == matrix2[0].length); + return isValid(matrix1) && isValid(matrix2) && matrix1.length == matrix2.length && matrix1[0].length == matrix2[0].length; } private static boolean canMultiply(final BigDecimal[][] matrix1, final BigDecimal[][] matrix2) { - return (isValid(matrix1) && isValid(matrix2) && matrix1[0].length == matrix2.length); + return isValid(matrix1) && isValid(matrix2) && matrix1[0].length == matrix2.length; } public static void validateInputMatrix(double[][] matrix) { From 186e09f4b77c52ab43f52aabf9c433f03de0e7af Mon Sep 17 00:00:00 2001 From: varada610 Date: Wed, 22 Jan 2025 15:41:21 -0800 Subject: [PATCH 14/15] clang fixes --- .../com/thealgorithms/maths/prime/MobiusFunctionTest.java | 1 + .../thealgorithms/maths/prime/PrimeFactorizationTest.java | 6 +++--- src/test/java/com/thealgorithms/matrix/MatrixUtilTest.java | 1 - .../java/com/thealgorithms/matrix/MirrorOfMatrixTest.java | 1 + .../com/thealgorithms/puzzlesandgames/TowerOfHanoiTest.java | 6 +++--- 5 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/test/java/com/thealgorithms/maths/prime/MobiusFunctionTest.java b/src/test/java/com/thealgorithms/maths/prime/MobiusFunctionTest.java index 87637edf98f1..734d02477ba2 100644 --- a/src/test/java/com/thealgorithms/maths/prime/MobiusFunctionTest.java +++ b/src/test/java/com/thealgorithms/maths/prime/MobiusFunctionTest.java @@ -2,6 +2,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; + import com.thealgorithms.maths.Prime.MobiusFunction; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/thealgorithms/maths/prime/PrimeFactorizationTest.java b/src/test/java/com/thealgorithms/maths/prime/PrimeFactorizationTest.java index e1a953208be4..79d685726261 100644 --- a/src/test/java/com/thealgorithms/maths/prime/PrimeFactorizationTest.java +++ b/src/test/java/com/thealgorithms/maths/prime/PrimeFactorizationTest.java @@ -1,10 +1,10 @@ package com.thealgorithms.maths.prime; -import java.util.List; -import java.util.stream.Stream; - import static org.junit.jupiter.api.Assertions.assertEquals; + import com.thealgorithms.maths.Prime.PrimeFactorization; +import java.util.List; +import java.util.stream.Stream; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; diff --git a/src/test/java/com/thealgorithms/matrix/MatrixUtilTest.java b/src/test/java/com/thealgorithms/matrix/MatrixUtilTest.java index 52d1b89c39ed..78947b1e70cb 100644 --- a/src/test/java/com/thealgorithms/matrix/MatrixUtilTest.java +++ b/src/test/java/com/thealgorithms/matrix/MatrixUtilTest.java @@ -5,7 +5,6 @@ import com.thealgorithms.matrix.utils.MatrixUtil; import java.math.BigDecimal; import java.util.Objects; - import org.junit.jupiter.api.Test; class MatrixUtilTest { diff --git a/src/test/java/com/thealgorithms/matrix/MirrorOfMatrixTest.java b/src/test/java/com/thealgorithms/matrix/MirrorOfMatrixTest.java index e617ef038444..2e4370922370 100644 --- a/src/test/java/com/thealgorithms/matrix/MirrorOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/matrix/MirrorOfMatrixTest.java @@ -3,6 +3,7 @@ import static org.junit.jupiter.api.Assertions.assertArrayEquals; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; + import org.junit.jupiter.api.Test; class MirrorOfMatrixTest { diff --git a/src/test/java/com/thealgorithms/puzzlesandgames/TowerOfHanoiTest.java b/src/test/java/com/thealgorithms/puzzlesandgames/TowerOfHanoiTest.java index 41ef3d4c509d..42669eb03bb4 100644 --- a/src/test/java/com/thealgorithms/puzzlesandgames/TowerOfHanoiTest.java +++ b/src/test/java/com/thealgorithms/puzzlesandgames/TowerOfHanoiTest.java @@ -1,10 +1,10 @@ package com.thealgorithms.puzzlesandgames; -import java.util.ArrayList; -import java.util.List; - import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.ArrayList; +import java.util.List; import org.junit.jupiter.api.Test; public class TowerOfHanoiTest { From 03695d938b185e87c1d42fea67f4f11c8b5b9fd2 Mon Sep 17 00:00:00 2001 From: varada610 Date: Wed, 22 Jan 2025 15:50:04 -0800 Subject: [PATCH 15/15] clang fixes --- .../thealgorithms/maths/prime/LiouvilleLambdaFunctionTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/test/java/com/thealgorithms/maths/prime/LiouvilleLambdaFunctionTest.java b/src/test/java/com/thealgorithms/maths/prime/LiouvilleLambdaFunctionTest.java index eafca5a59b65..d32815c0b8a9 100644 --- a/src/test/java/com/thealgorithms/maths/prime/LiouvilleLambdaFunctionTest.java +++ b/src/test/java/com/thealgorithms/maths/prime/LiouvilleLambdaFunctionTest.java @@ -2,6 +2,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; + import com.thealgorithms.maths.Prime.LiouvilleLambdaFunction; import org.junit.jupiter.api.Test;