From e419d20100031ec40207f435bf888bfbfb6b8d10 Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Sun, 1 Oct 2023 02:37:50 +0530 Subject: [PATCH 01/53] Added MirrorOfMatrix.java --- .../thealgorithms/misc/MirrorOfMatrix.java | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java diff --git a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java new file mode 100644 index 000000000000..3522d58d6571 --- /dev/null +++ b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java @@ -0,0 +1,74 @@ +package com.thealgorithms.misc; + +import java.util.Scanner; + +//Problem Statement +/* +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. + +The Original matrix is: | The Mirror matrix is: +1 2 3 | 3 2 1 +4 5 6 | 6 5 4 +7 8 9 | 9 8 7 + +@author - Aman (https://github.com/Aman28801) +*/ + + +public class MirrorOfMatrix { + + //Function Mirror that is used to mirror the Matrix + public static void Mirror(int[][] arr){ + + for(int i=0;i Date: Sun, 1 Oct 2023 02:55:35 +0530 Subject: [PATCH 02/53] Fixing Linting Issue --- .../thealgorithms/misc/MirrorOfMatrix.java | 32 ++++++++----------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java index 3522d58d6571..b95dc957e2de 100644 --- a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java +++ b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java @@ -2,7 +2,7 @@ import java.util.Scanner; -//Problem Statement +// Problem Statement /* 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. @@ -14,26 +14,24 @@ We have given an array of m x n (where m is the number of rows and n is the numb @author - Aman (https://github.com/Aman28801) */ - - public class MirrorOfMatrix { - //Function Mirror that is used to mirror the Matrix + // Function Mirror that is used to mirror the Matrix public static void Mirror(int[][] arr){ - for(int i=0;i Date: Sun, 1 Oct 2023 02:59:45 +0530 Subject: [PATCH 03/53] Fixing Linting Issue --- src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java index b95dc957e2de..d53a1afa8de2 100644 --- a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java +++ b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java @@ -17,12 +17,12 @@ We have given an array of m x n (where m is the number of rows and n is the numb public class MirrorOfMatrix { // Function Mirror that is used to mirror the Matrix - public static void Mirror(int[][] arr){ + public static void Mirror(int[][] arr) { - for(int i = 0; i < arr.length; i++){ + for(int i = 0; i < arr.length; i++) { int li = 0; int hi = arr[i].length - 1; - while(li < hi){ + while(li < hi) { int temp = arr[i][li]; arr[i][li] = arr[i][hi]; arr[i][hi] = temp; From 235fe847611b3c5bbe9f0d2f700c25be14d2e153 Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Sun, 1 Oct 2023 03:01:31 +0530 Subject: [PATCH 04/53] Fixing Linting Issue --- src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java index d53a1afa8de2..e7d10e53bd8b 100644 --- a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java +++ b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java @@ -19,10 +19,10 @@ public class MirrorOfMatrix { // Function Mirror that is used to mirror the Matrix public static void Mirror(int[][] arr) { - for(int i = 0; i < arr.length; i++) { + for (int i = 0; i < arr.length; i++) { int li = 0; int hi = arr[i].length - 1; - while(li < hi) { + while (li < hi) { int temp = arr[i][li]; arr[i][li] = arr[i][hi]; arr[i][hi] = temp; @@ -65,4 +65,4 @@ public static void main(String[] args) { // Calling Function Mirror Mirror(arr); } -} \ No newline at end of file + } \ No newline at end of file From 8ee624b24176409d9c1d62f7992b1bb8992f3eeb Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Sun, 1 Oct 2023 03:02:52 +0530 Subject: [PATCH 05/53] Fixing Linting Issue --- src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java index e7d10e53bd8b..1018c4cff4c7 100644 --- a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java +++ b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java @@ -65,4 +65,4 @@ public static void main(String[] args) { // Calling Function Mirror Mirror(arr); } - } \ No newline at end of file +} \ No newline at end of file From 48c3e4ae3ddf59675b5efee05ec49672c497d127 Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Sun, 1 Oct 2023 03:04:01 +0530 Subject: [PATCH 06/53] Fixing Linting Issue --- src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java index 1018c4cff4c7..e7d10e53bd8b 100644 --- a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java +++ b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java @@ -65,4 +65,4 @@ public static void main(String[] args) { // Calling Function Mirror Mirror(arr); } -} \ No newline at end of file + } \ No newline at end of file From d545e7f38e1dee9efe4219100fa875c99d66212b Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Sun, 1 Oct 2023 03:05:06 +0530 Subject: [PATCH 07/53] Fixing Linting Issue --- src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java index e7d10e53bd8b..7f2a9d9967a6 100644 --- a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java +++ b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java @@ -64,5 +64,4 @@ public static void main(String[] args) { } // Calling Function Mirror Mirror(arr); - } - } \ No newline at end of file + }} \ No newline at end of file From 07229ff245a6588a167050d5e2b0835b253d22d1 Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Sun, 1 Oct 2023 03:11:38 +0530 Subject: [PATCH 08/53] Fixing Linting Issue --- src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java index 7f2a9d9967a6..5c0c4aff489d 100644 --- a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java +++ b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java @@ -40,6 +40,7 @@ public static void Mirror(int[][] arr) { System.out.println(); } } + public static void main(String[] args) { // To take Inputs From the User Scanner sc = new Scanner(System.in); @@ -54,7 +55,7 @@ public static void main(String[] args) { arr[i][j] = sc.nextInt(); } } - // To Print the Original MAtrix + // To Print the Original Matrix System.out.println("The Original matrix is:"); for (int i = 0; i < row; i++) { for (int j = 0; j < column; j++) { @@ -64,4 +65,5 @@ public static void main(String[] args) { } // Calling Function Mirror Mirror(arr); - }} \ No newline at end of file + } +} \ No newline at end of file From 194eff453eea7d5136d15a2a1bacddeedf615234 Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Sun, 1 Oct 2023 03:14:09 +0530 Subject: [PATCH 09/53] Fixing Linting Issue --- src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java index 5c0c4aff489d..8370ca89a6e0 100644 --- a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java +++ b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java @@ -55,7 +55,7 @@ public static void main(String[] args) { arr[i][j] = sc.nextInt(); } } - // To Print the Original Matrix + // To Print the Original MAtrix System.out.println("The Original matrix is:"); for (int i = 0; i < row; i++) { for (int j = 0; j < column; j++) { @@ -66,4 +66,4 @@ public static void main(String[] args) { // Calling Function Mirror Mirror(arr); } -} \ No newline at end of file +} From ae00a9ba923fcfc2022161fbedc748a1de3eaa8e Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Sun, 1 Oct 2023 14:35:11 +0530 Subject: [PATCH 10/53] Changes Done --- src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java index 8370ca89a6e0..4e0088257382 100644 --- a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java +++ b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java @@ -14,10 +14,12 @@ We have given an array of m x n (where m is the number of rows and n is the numb @author - Aman (https://github.com/Aman28801) */ -public class MirrorOfMatrix { +public final class MirrorOfMatrix { + private MirrorOfMatrix() { + } // Function Mirror that is used to mirror the Matrix - public static void Mirror(int[][] arr) { + public static void Mirror(final int[][] arr) { for (int i = 0; i < arr.length; i++) { int li = 0; From 5db82efd76605a544e37529bb62337d680e9e445 Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Sun, 1 Oct 2023 16:47:52 +0530 Subject: [PATCH 11/53] Update src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com> --- .../thealgorithms/misc/MirrorOfMatrix.java | 25 ------------------- 1 file changed, 25 deletions(-) diff --git a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java index 4e0088257382..374c291762c1 100644 --- a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java +++ b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java @@ -43,29 +43,4 @@ public static void Mirror(final int[][] arr) { } } - public static void main(String[] args) { - // To take Inputs From the User - Scanner sc = new Scanner(System.in); - System.out.println("Enter the number of rows in the 2D matrix:"); - int row = sc.nextInt(); - System.out.println("Enter the number of columns in the 2D matrix:"); - int column = sc.nextInt(); - int[][] arr = new int[row][column]; - System.out.println("Enter the elements"); - for (int i = 0; i < row; i++) { - for (int j = 0; j < column; j++) { - arr[i][j] = sc.nextInt(); - } - } - // To Print the Original MAtrix - System.out.println("The Original matrix is:"); - for (int i = 0; i < row; i++) { - for (int j = 0; j < column; j++) { - System.out.print(arr[i][j] + "\t"); - } - System.out.print("\n"); - } - // Calling Function Mirror - Mirror(arr); - } } From 2fd459e1f38452bac8250c33a5cee7c7610ffcd4 Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Sun, 1 Oct 2023 16:49:34 +0530 Subject: [PATCH 12/53] Changes Done --- src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java index 374c291762c1..12d0d2f0a025 100644 --- a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java +++ b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java @@ -42,5 +42,4 @@ public static void Mirror(final int[][] arr) { System.out.println(); } } - } From 2fd36b371211678c7768b07babd54b2a3020afd6 Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Sun, 1 Oct 2023 21:18:24 +0530 Subject: [PATCH 13/53] Added MirrorOfMatrixTest.java --- .../misc/MirrorOfMatrixTest.java | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java diff --git a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java new file mode 100644 index 000000000000..bc724eaa8633 --- /dev/null +++ b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java @@ -0,0 +1,63 @@ +package com.thealgorithms.misc; + + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertArrayEquals; + +public class MirrorOfMatrixTest { + + @Test + public void testMirrorWithEmptyMatrix() { + int[][] arr = new int[0][0]; + MirrorOfMatrix.Mirror(arr); + // Since the matrix is empty, there's nothing to mirror. + // So, the expected result is also an empty matrix. + int[][] expected = new int[0][0]; + assertArrayEquals(expected, arr); + } + + @Test + public void testMirrorWithSingleRowMatrix() { + int[][] arr = { { 1, 2, 3, 4 } }; + MirrorOfMatrix.Mirror(arr); + // The expected result is the reverse of the input row. + int[][] expected = { { 4, 3, 2, 1 } }; + assertArrayEquals(expected, arr); + } + + @Test + public void testMirrorWithMultipleRowMatrix() { + int[][] arr = { + { 1, 2, 3 }, + { 4, 5, 6 }, + { 7, 8, 9 } + }; + MirrorOfMatrix.Mirror(arr); + // The expected result is each row reversed. + int[][] expected = { + { 3, 2, 1 }, + { 6, 5, 4 }, + { 9, 8, 7 } + }; + assertArrayEquals(expected, arr); + } + + @Test + public void testMirrorWithOddLengthRows() { + int[][] arr = { + { 1, 2, 3 }, + { 4, 5, 6, 7 }, + { 8, 9 } + }; + MirrorOfMatrix.Mirror(arr); + // The expected result is each row reversed. + int[][] expected = { + { 3, 2, 1 }, + { 7, 6, 5, 4 }, + { 9, 8 } + }; + assertArrayEquals(expected, arr); + } +} + From e2210359d6997e9f37797ebae3bfaf64e0379b64 Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Sun, 1 Oct 2023 21:22:05 +0530 Subject: [PATCH 14/53] Added MirrorOfMatrixTest.java --- .../misc/MirrorOfMatrixTest.java | 32 ++++--------------- 1 file changed, 7 insertions(+), 25 deletions(-) diff --git a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java index bc724eaa8633..47ee1ca878ff 100644 --- a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java @@ -2,7 +2,6 @@ import org.junit.jupiter.api.Test; - import static org.junit.jupiter.api.Assertions.assertArrayEquals; public class MirrorOfMatrixTest { @@ -19,45 +18,28 @@ public void testMirrorWithEmptyMatrix() { @Test public void testMirrorWithSingleRowMatrix() { - int[][] arr = { { 1, 2, 3, 4 } }; + int[][] arr = {{ 1, 2, 3, 4 }}; MirrorOfMatrix.Mirror(arr); // The expected result is the reverse of the input row. - int[][] expected = { { 4, 3, 2, 1 } }; + int[][] expected = {{ 4, 3, 2, 1 }}; assertArrayEquals(expected, arr); } @Test public void testMirrorWithMultipleRowMatrix() { - int[][] arr = { - { 1, 2, 3 }, - { 4, 5, 6 }, - { 7, 8, 9 } - }; + int[][] arr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; MirrorOfMatrix.Mirror(arr); // The expected result is each row reversed. - int[][] expected = { - { 3, 2, 1 }, - { 6, 5, 4 }, - { 9, 8, 7 } - }; + int[][] expected = {{3, 2, 1}, {6, 5, 4}, {9, 8, 7}}; assertArrayEquals(expected, arr); } @Test public void testMirrorWithOddLengthRows() { - int[][] arr = { - { 1, 2, 3 }, - { 4, 5, 6, 7 }, - { 8, 9 } - }; + int[][] arr = {{1, 2, 3}, {4, 5, 6, 7}, {8, 9}}; MirrorOfMatrix.Mirror(arr); // The expected result is each row reversed. - int[][] expected = { - { 3, 2, 1 }, - { 7, 6, 5, 4 }, - { 9, 8 } - }; + int[][] expected = {{3, 2, 1}, {7, 6, 5, 4}, {9, 8}}; assertArrayEquals(expected, arr); } -} - +} \ No newline at end of file From aabd0aea30284f5bf19bd1110bfe9635f19af459 Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Sun, 1 Oct 2023 21:48:54 +0530 Subject: [PATCH 15/53] Linting Error in Test --- .../java/com/thealgorithms/misc/MirrorOfMatrixTest.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java index 47ee1ca878ff..63ad0576aa16 100644 --- a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java @@ -1,11 +1,9 @@ package com.thealgorithms.misc; - +import static org.junit.jupiter.api.Assertions.assertArrayEquals; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertArrayEquals; public class MirrorOfMatrixTest { - @Test public void testMirrorWithEmptyMatrix() { int[][] arr = new int[0][0]; @@ -18,10 +16,10 @@ public void testMirrorWithEmptyMatrix() { @Test public void testMirrorWithSingleRowMatrix() { - int[][] arr = {{ 1, 2, 3, 4 }}; + int[][] arr = {{1, 2, 3, 4}}; MirrorOfMatrix.Mirror(arr); // The expected result is the reverse of the input row. - int[][] expected = {{ 4, 3, 2, 1 }}; + int[][] expected = {{4, 3, 2, 1}}; assertArrayEquals(expected, arr); } From 09c9547e4b66899dfff3fdefe748a83a1a96c9fd Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Sun, 1 Oct 2023 22:04:24 +0530 Subject: [PATCH 16/53] Linting Error in Test --- .../misc/MirrorOfMatrixTest.java | 69 ++++++++++--------- 1 file changed, 35 insertions(+), 34 deletions(-) diff --git a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java index 63ad0576aa16..ab03cc9e37fc 100644 --- a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java @@ -1,43 +1,44 @@ package com.thealgorithms.misc; + import static org.junit.jupiter.api.Assertions.assertArrayEquals; import org.junit.jupiter.api.Test; public class MirrorOfMatrixTest { - @Test - public void testMirrorWithEmptyMatrix() { - int[][] arr = new int[0][0]; - MirrorOfMatrix.Mirror(arr); - // Since the matrix is empty, there's nothing to mirror. - // So, the expected result is also an empty matrix. - int[][] expected = new int[0][0]; - assertArrayEquals(expected, arr); - } + @Test + public void testMirrorWithEmptyMatrix() { + int[][] arr = new int[0][0]; + MirrorOfMatrix.Mirror(arr); + // Since the matrix is empty, there's nothing to mirror. + // So, the expected result is also an empty matrix. + int[][] expected = new int[0][0]; + assertArrayEquals(expected, arr); + } - @Test - public void testMirrorWithSingleRowMatrix() { - int[][] arr = {{1, 2, 3, 4}}; - MirrorOfMatrix.Mirror(arr); - // The expected result is the reverse of the input row. - int[][] expected = {{4, 3, 2, 1}}; - assertArrayEquals(expected, arr); - } + @Test + public void testMirrorWithSingleRowMatrix() { + int[][] arr = {{1, 2, 3, 4}}; + MirrorOfMatrix.Mirror(arr); + // The expected result is the reverse of the input row. + int[][] expected = {{4, 3, 2, 1}}; + assertArrayEquals(expected, arr); + } - @Test - public void testMirrorWithMultipleRowMatrix() { - int[][] arr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; - MirrorOfMatrix.Mirror(arr); - // The expected result is each row reversed. - int[][] expected = {{3, 2, 1}, {6, 5, 4}, {9, 8, 7}}; - assertArrayEquals(expected, arr); - } + @Test + public void testMirrorWithMultipleRowMatrix() { + int[][] arr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; + MirrorOfMatrix.Mirror(arr); + // The expected result is each row reversed. + int[][] expected = {{3, 2, 1}, {6, 5, 4}, {9, 8, 7}}; + assertArrayEquals(expected, arr); + } - @Test - public void testMirrorWithOddLengthRows() { - int[][] arr = {{1, 2, 3}, {4, 5, 6, 7}, {8, 9}}; - MirrorOfMatrix.Mirror(arr); - // The expected result is each row reversed. - int[][] expected = {{3, 2, 1}, {7, 6, 5, 4}, {9, 8}}; - assertArrayEquals(expected, arr); - } -} \ No newline at end of file + @Test + public void testMirrorWithOddLengthRows() { + int[][] arr = {{1, 2, 3}, {4, 5, 6, 7}, {8, 9}}; + MirrorOfMatrix.Mirror(arr); + // The expected result is each row reversed. + int[][] expected = {{3, 2, 1}, {7, 6, 5, 4}, {9, 8}}; + assertArrayEquals(expected, arr); + } +} From 0135376f8f6e938350155c664f61e028bbc8a89c Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Sun, 1 Oct 2023 22:08:23 +0530 Subject: [PATCH 17/53] Linting Error in Test --- .../misc/MirrorOfMatrixTest.java | 66 +++++++++---------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java index ab03cc9e37fc..99c924c1ecd5 100644 --- a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java @@ -5,40 +5,40 @@ import org.junit.jupiter.api.Test; public class MirrorOfMatrixTest { - @Test - public void testMirrorWithEmptyMatrix() { - int[][] arr = new int[0][0]; - MirrorOfMatrix.Mirror(arr); - // Since the matrix is empty, there's nothing to mirror. - // So, the expected result is also an empty matrix. - int[][] expected = new int[0][0]; - assertArrayEquals(expected, arr); - } + @Test + public void testMirrorWithEmptyMatrix() { + int[][] arr = new int[0][0]; + MirrorOfMatrix.Mirror(arr); + // Since the matrix is empty, there's nothing to mirror. + // So, the expected result is also an empty matrix. + int[][] expected = new int[0][0]; + assertArrayEquals(expected, arr); + } - @Test - public void testMirrorWithSingleRowMatrix() { - int[][] arr = {{1, 2, 3, 4}}; - MirrorOfMatrix.Mirror(arr); - // The expected result is the reverse of the input row. - int[][] expected = {{4, 3, 2, 1}}; - assertArrayEquals(expected, arr); - } + @Test + public void testMirrorWithSingleRowMatrix() { + int[][] arr = {{1, 2, 3, 4}}; + MirrorOfMatrix.Mirror(arr); + // The expected result is the reverse of the input row. + int[][] expected = {{4, 3, 2, 1}}; + assertArrayEquals(expected, arr); + } - @Test - public void testMirrorWithMultipleRowMatrix() { - int[][] arr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; - MirrorOfMatrix.Mirror(arr); - // The expected result is each row reversed. - int[][] expected = {{3, 2, 1}, {6, 5, 4}, {9, 8, 7}}; - assertArrayEquals(expected, arr); - } + @Test + public void testMirrorWithMultipleRowMatrix() { + int[][] arr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; + MirrorOfMatrix.Mirror(arr); + // The expected result is each row reversed. + int[][] expected = {{3, 2, 1}, {6, 5, 4}, {9, 8, 7}}; + assertArrayEquals(expected, arr); + } - @Test - public void testMirrorWithOddLengthRows() { - int[][] arr = {{1, 2, 3}, {4, 5, 6, 7}, {8, 9}}; - MirrorOfMatrix.Mirror(arr); - // The expected result is each row reversed. - int[][] expected = {{3, 2, 1}, {7, 6, 5, 4}, {9, 8}}; - assertArrayEquals(expected, arr); - } + @Test + public void testMirrorWithOddLengthRows() { + int[][] arr = {{1, 2, 3}, {4, 5, 6, 7}, {8, 9}}; + MirrorOfMatrix.Mirror(arr); + // The expected result is each row reversed. + int[][] expected = {{3, 2, 1}, {7, 6, 5, 4}, {9, 8}}; + assertArrayEquals(expected, arr); + } } From 175307be61883d32cbd2530198624f665e5189d8 Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Sun, 1 Oct 2023 22:21:07 +0530 Subject: [PATCH 18/53] trying to fix build error --- src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java index 99c924c1ecd5..3ea89c07a78f 100644 --- a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java @@ -1,10 +1,10 @@ package com.thealgorithms.misc; import static org.junit.jupiter.api.Assertions.assertArrayEquals; - import org.junit.jupiter.api.Test; public class MirrorOfMatrixTest { + @Test public void testMirrorWithEmptyMatrix() { int[][] arr = new int[0][0]; @@ -41,4 +41,4 @@ public void testMirrorWithOddLengthRows() { int[][] expected = {{3, 2, 1}, {7, 6, 5, 4}, {9, 8}}; assertArrayEquals(expected, arr); } -} +} \ No newline at end of file From e81081dc02dd6393d86da5290414d77298eaae3b Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Sun, 1 Oct 2023 22:25:48 +0530 Subject: [PATCH 19/53] trying to fix build error --- .../misc/MirrorOfMatrixTest.java | 43 ++++++++----------- 1 file changed, 17 insertions(+), 26 deletions(-) diff --git a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java index 3ea89c07a78f..8b9169d092a6 100644 --- a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java @@ -7,38 +7,29 @@ public class MirrorOfMatrixTest { @Test public void testMirrorWithEmptyMatrix() { - int[][] arr = new int[0][0]; - MirrorOfMatrix.Mirror(arr); - // Since the matrix is empty, there's nothing to mirror. - // So, the expected result is also an empty matrix. - int[][] expected = new int[0][0]; - assertArrayEquals(expected, arr); + int[][] arr = new int[0][0]; + MirrorOfMatrix.Mirror(arr); + // Since the matrix is empty, there's nothing to mirror. + // So, the expected result is also an empty matrix. + int[][] expected = new int[0][0]; + assertArrayEquals(expected, arr); } @Test public void testMirrorWithSingleRowMatrix() { - int[][] arr = {{1, 2, 3, 4}}; - MirrorOfMatrix.Mirror(arr); - // The expected result is the reverse of the input row. - int[][] expected = {{4, 3, 2, 1}}; - assertArrayEquals(expected, arr); + int[][] arr = {{1, 2, 3, 4}}; + MirrorOfMatrix.Mirror(arr); + // The expected result is the reverse of the input row. + int[][] expected = {{4, 3, 2, 1}}; + assertArrayEquals(expected, arr); } @Test public void testMirrorWithMultipleRowMatrix() { - int[][] arr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; - MirrorOfMatrix.Mirror(arr); - // The expected result is each row reversed. - int[][] expected = {{3, 2, 1}, {6, 5, 4}, {9, 8, 7}}; - assertArrayEquals(expected, arr); + int[][] arr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; + MirrorOfMatrix.Mirror(arr); + // The expected result is each row reversed. + int[][] expected = {{3, 2, 1}, {6, 5, 4}, {9, 8, 7}}; + assertArrayEquals(expected, arr); } - - @Test - public void testMirrorWithOddLengthRows() { - int[][] arr = {{1, 2, 3}, {4, 5, 6, 7}, {8, 9}}; - MirrorOfMatrix.Mirror(arr); - // The expected result is each row reversed. - int[][] expected = {{3, 2, 1}, {7, 6, 5, 4}, {9, 8}}; - assertArrayEquals(expected, arr); - } -} \ No newline at end of file +} From c21b9736f6ad4eeca3fb89693a0f23206ed38eff Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Sun, 1 Oct 2023 22:29:30 +0530 Subject: [PATCH 20/53] final --- .../misc/MirrorOfMatrixTest.java | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java index 8b9169d092a6..97135add1652 100644 --- a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java @@ -7,29 +7,29 @@ public class MirrorOfMatrixTest { @Test public void testMirrorWithEmptyMatrix() { - int[][] arr = new int[0][0]; - MirrorOfMatrix.Mirror(arr); - // Since the matrix is empty, there's nothing to mirror. - // So, the expected result is also an empty matrix. - int[][] expected = new int[0][0]; - assertArrayEquals(expected, arr); + int[][] arr = new int[0][0]; + MirrorOfMatrix.Mirror(arr); + // Since the matrix is empty, there's nothing to mirror. + // So, the expected result is also an empty matrix. + int[][] expected = new int[0][0]; + assertArrayEquals(expected, arr); } @Test public void testMirrorWithSingleRowMatrix() { - int[][] arr = {{1, 2, 3, 4}}; - MirrorOfMatrix.Mirror(arr); - // The expected result is the reverse of the input row. - int[][] expected = {{4, 3, 2, 1}}; - assertArrayEquals(expected, arr); + int[][] arr = {{1, 2, 3, 4}}; + MirrorOfMatrix.Mirror(arr); + // The expected result is the reverse of the input row. + int[][] expected = {{4, 3, 2, 1}}; + assertArrayEquals(expected, arr); } @Test public void testMirrorWithMultipleRowMatrix() { - int[][] arr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; - MirrorOfMatrix.Mirror(arr); - // The expected result is each row reversed. - int[][] expected = {{3, 2, 1}, {6, 5, 4}, {9, 8, 7}}; - assertArrayEquals(expected, arr); + int[][] arr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; + MirrorOfMatrix.Mirror(arr); + // The expected result is each row reversed. + int[][] expected = {{3, 2, 1}, {6, 5, 4}, {9, 8, 7}}; + assertArrayEquals(expected, arr); } } From 6fb4c7862dca8518ae6765673cdf58bbeed95193 Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Sun, 1 Oct 2023 22:30:56 +0530 Subject: [PATCH 21/53] Update src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com> --- src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java index 12d0d2f0a025..3f6e69bc2dbc 100644 --- a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java +++ b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java @@ -18,7 +18,6 @@ We have given an array of m x n (where m is the number of rows and n is the numb public final class MirrorOfMatrix { private MirrorOfMatrix() { } - // Function Mirror that is used to mirror the Matrix public static void Mirror(final int[][] arr) { for (int i = 0; i < arr.length; i++) { From 461e325e048d8688004839b032b1aacdd3eb8404 Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Sun, 1 Oct 2023 22:31:25 +0530 Subject: [PATCH 22/53] Update src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com> --- src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java index 3f6e69bc2dbc..c7ac02bbe345 100644 --- a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java +++ b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java @@ -1,6 +1,5 @@ package com.thealgorithms.misc; -import java.util.Scanner; // Problem Statement /* From 7ba1ab080f7eb4b5e8a5d986a92d20c778322c6f Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Sun, 1 Oct 2023 22:31:44 +0530 Subject: [PATCH 23/53] Update src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com> --- src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java index c7ac02bbe345..e7892088ce1b 100644 --- a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java +++ b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java @@ -31,13 +31,6 @@ public static void Mirror(final int[][] arr) { hi--; } } - // For printing the output of Code OR Mirror Image of Matrix - System.out.println("The Mirror matrix is:"); - for (int[] ints : arr) { - for (int j = 0; j < arr[0].length; j++) { - System.out.print(ints[j] + "\t"); - } - System.out.println(); } } } From e1aeec814c9dd0db889c1f7de5aeb3078ccd15ec Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Sun, 1 Oct 2023 22:32:01 +0530 Subject: [PATCH 24/53] Update src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com> --- src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java index 97135add1652..1f3be40cc630 100644 --- a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java @@ -19,7 +19,6 @@ public void testMirrorWithEmptyMatrix() { public void testMirrorWithSingleRowMatrix() { int[][] arr = {{1, 2, 3, 4}}; MirrorOfMatrix.Mirror(arr); - // The expected result is the reverse of the input row. int[][] expected = {{4, 3, 2, 1}}; assertArrayEquals(expected, arr); } From 45b819612511345af60f0014c70cab31c9438127 Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Sun, 1 Oct 2023 22:32:52 +0530 Subject: [PATCH 25/53] Update src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com> --- src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java index 1f3be40cc630..dd5d7e52c452 100644 --- a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java @@ -27,7 +27,6 @@ public void testMirrorWithSingleRowMatrix() { public void testMirrorWithMultipleRowMatrix() { int[][] arr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; MirrorOfMatrix.Mirror(arr); - // The expected result is each row reversed. int[][] expected = {{3, 2, 1}, {6, 5, 4}, {9, 8, 7}}; assertArrayEquals(expected, arr); } From 6cd2e634d6496f49b162788d805127e215e96bc2 Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Sun, 1 Oct 2023 22:33:05 +0530 Subject: [PATCH 26/53] Update src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com> --- src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java index dd5d7e52c452..812b2807def1 100644 --- a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java @@ -9,8 +9,6 @@ public class MirrorOfMatrixTest { public void testMirrorWithEmptyMatrix() { int[][] arr = new int[0][0]; MirrorOfMatrix.Mirror(arr); - // Since the matrix is empty, there's nothing to mirror. - // So, the expected result is also an empty matrix. int[][] expected = new int[0][0]; assertArrayEquals(expected, arr); } From 18492fd06b35b1f946fe45e0e2ce31c5bd71dbca Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Sun, 1 Oct 2023 22:43:27 +0530 Subject: [PATCH 27/53] Changing Description --- src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java index 12d0d2f0a025..7f66eb8b7cdc 100644 --- a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java +++ b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java @@ -1,5 +1,4 @@ package com.thealgorithms.misc; - import java.util.Scanner; // Problem Statement @@ -7,6 +6,9 @@ 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. +Solution:- +it basically traverse column wise and swap the starting and ending element of each row to get the mirror of 2D array. + The Original matrix is: | The Mirror matrix is: 1 2 3 | 3 2 1 4 5 6 | 6 5 4 @@ -33,7 +35,6 @@ public static void Mirror(final int[][] arr) { hi--; } } - // For printing the output of Code OR Mirror Image of Matrix System.out.println("The Mirror matrix is:"); for (int[] ints : arr) { for (int j = 0; j < arr[0].length; j++) { From 9e65b4bffd542dd4700be0644d095bc9e3e01376 Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Sun, 1 Oct 2023 22:46:48 +0530 Subject: [PATCH 28/53] Final --- src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java index 812b2807def1..d7707c6603a1 100644 --- a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java @@ -1,6 +1,7 @@ package com.thealgorithms.misc; import static org.junit.jupiter.api.Assertions.assertArrayEquals; + import org.junit.jupiter.api.Test; public class MirrorOfMatrixTest { From 956a61435b921b3ebf946d86381598499d34dd4f Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Sun, 1 Oct 2023 22:49:59 +0530 Subject: [PATCH 29/53] Update src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com> --- src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java index 12d0d2f0a025..28ca8aa7a5a0 100644 --- a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java +++ b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java @@ -33,13 +33,6 @@ public static void Mirror(final int[][] arr) { hi--; } } - // For printing the output of Code OR Mirror Image of Matrix - System.out.println("The Mirror matrix is:"); - for (int[] ints : arr) { - for (int j = 0; j < arr[0].length; j++) { - System.out.print(ints[j] + "\t"); - } - System.out.println(); } } } From 10ca4e7a3f41f573d5710b4e83a56aed513de5e6 Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Sun, 1 Oct 2023 22:53:37 +0530 Subject: [PATCH 30/53] Final --- src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java index 28ca8aa7a5a0..82caa6e80e9b 100644 --- a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java +++ b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java @@ -33,6 +33,5 @@ public static void Mirror(final int[][] arr) { hi--; } } - } } } From 6811cadbbfb39219b7208f9cbf6b36e4c6be2812 Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Sun, 1 Oct 2023 23:35:18 +0530 Subject: [PATCH 31/53] Update src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com> --- src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java index 82caa6e80e9b..c272f1cd6c9c 100644 --- a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java +++ b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java @@ -1,6 +1,5 @@ package com.thealgorithms.misc; -import java.util.Scanner; // Problem Statement /* From 32140b729f4b0feb85496fb0583912b8ec56bc98 Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Mon, 2 Oct 2023 02:40:00 +0530 Subject: [PATCH 32/53] Changes --- .../thealgorithms/misc/MirrorOfMatrix.java | 62 ++++++++++++++----- .../misc/MirrorOfMatrixTest.java | 35 +++++------ 2 files changed, 61 insertions(+), 36 deletions(-) diff --git a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java index 82caa6e80e9b..d2f4f439c4ad 100644 --- a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java +++ b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java @@ -1,7 +1,5 @@ package com.thealgorithms.misc; -import java.util.Scanner; - // Problem Statement /* We have given an array of m x n (where m is the number of rows and n is the number of columns). @@ -15,23 +13,53 @@ We have given an array of m x n (where m is the number of rows and n is the numb @author - Aman (https://github.com/Aman28801) */ -public final class MirrorOfMatrix { - private MirrorOfMatrix() { +public class MirrorOfMatrix { + + public static int[][] mirrorMatrix(int[][] originalMatrix) { + if (originalMatrix == null || originalMatrix.length == 0) { + // Handle invalid input + return null; + } + + int numRows = originalMatrix.length; + int numCols = originalMatrix[0].length; + + int[][] mirroredMatrix = new int[numRows][numCols]; + + for (int i = 0; i < numRows; i++) { + for (int j = 0; j < numCols; j++) { + // Copy elements from the original matrix in reverse order + mirroredMatrix[i][j] = originalMatrix[i][numCols - 1 - j]; + } + } + + return mirroredMatrix; + } + + public static void main(String[] args) { + int[][] originalMatrix = { + {1, 2, 3}, + {4, 5, 6}, + {7, 8, 9} + }; + + int[][] mirroredMatrix = mirrorMatrix(originalMatrix); + + // Print the original and mirrored matrices + System.out.println("Original Matrix:"); + printMatrix(originalMatrix); + + System.out.println("\nMirrored Matrix:"); + printMatrix(mirroredMatrix); } - // Function Mirror that is used to mirror the Matrix - public static void Mirror(final int[][] arr) { - - for (int i = 0; i < arr.length; i++) { - int li = 0; - int hi = arr[i].length - 1; - while (li < hi) { - int temp = arr[i][li]; - arr[i][li] = arr[i][hi]; - arr[i][hi] = temp; - - li++; - hi--; + + public static void printMatrix(int[][] matrix) { + for (int[] row : matrix) { + for (int num : row) { + System.out.print(num + " "); } + System.out.println(); } } } + diff --git a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java index d7707c6603a1..315bbe5521a4 100644 --- a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java @@ -7,26 +7,23 @@ public class MirrorOfMatrixTest { @Test - public void testMirrorWithEmptyMatrix() { - int[][] arr = new int[0][0]; - MirrorOfMatrix.Mirror(arr); - int[][] expected = new int[0][0]; - assertArrayEquals(expected, arr); - } + public void testMirrorMatrix() { + int[][] originalMatrix = { + {1, 2, 3}, + {4, 5, 6}, + {7, 8, 9} + }; - @Test - public void testMirrorWithSingleRowMatrix() { - int[][] arr = {{1, 2, 3, 4}}; - MirrorOfMatrix.Mirror(arr); - int[][] expected = {{4, 3, 2, 1}}; - assertArrayEquals(expected, arr); - } + int[][] expectedMirroredMatrix = { + {3, 2, 1}, + {6, 5, 4}, + {9, 8, 7} + }; - @Test - public void testMirrorWithMultipleRowMatrix() { - int[][] arr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; - MirrorOfMatrix.Mirror(arr); - int[][] expected = {{3, 2, 1}, {6, 5, 4}, {9, 8, 7}}; - assertArrayEquals(expected, arr); + int[][] mirroredMatrix = MirrorOfMatrix.mirrorMatrix(originalMatrix); + + // Assert that the mirrored matrix matches the expected result + assertArrayEquals(expectedMirroredMatrix, mirroredMatrix); } } + From 5287008d0a6f34832b1c2603ec8060372fd15b23 Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Mon, 2 Oct 2023 02:43:54 +0530 Subject: [PATCH 33/53] Changes --- .../thealgorithms/misc/MirrorOfMatrix.java | 33 +++++++++++-------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java index 82caa6e80e9b..bff442d58ff1 100644 --- a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java +++ b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java @@ -16,22 +16,27 @@ We have given an array of m x n (where m is the number of rows and n is the numb */ public final class MirrorOfMatrix { - private MirrorOfMatrix() { + private MirrorOfMatrix(){ } - // Function Mirror that is used to mirror the Matrix - public static void Mirror(final int[][] arr) { - - for (int i = 0; i < arr.length; i++) { - int li = 0; - int hi = arr[i].length - 1; - while (li < hi) { - int temp = arr[i][li]; - arr[i][li] = arr[i][hi]; - arr[i][hi] = temp; - - li++; - hi--; + public static int[][] mirrorMatrix(int[][] originalMatrix) { + if (originalMatrix == null || originalMatrix.length == 0) { + // Handle invalid input + return null; + } + + int numRows = originalMatrix.length; + int numCols = originalMatrix[0].length; + + int[][] mirroredMatrix = new int[numRows][numCols]; + + for (int i = 0; i < numRows; i++) { + for (int j = 0; j < numCols; j++) { + // Copy elements from the original matrix in reverse order + mirroredMatrix[i][j] = originalMatrix[i][numCols - 1 - j]; } } + + return mirroredMatrix; } } + From d9066100474703e731b1c57920d30f5457b36205 Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Mon, 2 Oct 2023 02:50:59 +0530 Subject: [PATCH 34/53] Linting Issue --- .../com/thealgorithms/misc/MirrorOfMatrix.java | 5 ++--- .../thealgorithms/misc/MirrorOfMatrixTest.java | 15 +++------------ 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java index bff442d58ff1..5b198580b6f6 100644 --- a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java +++ b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java @@ -16,7 +16,7 @@ We have given an array of m x n (where m is the number of rows and n is the numb */ public final class MirrorOfMatrix { - private MirrorOfMatrix(){ + private MirrorOfMatrix() { } public static int[][] mirrorMatrix(int[][] originalMatrix) { if (originalMatrix == null || originalMatrix.length == 0) { @@ -38,5 +38,4 @@ public static int[][] mirrorMatrix(int[][] originalMatrix) { return mirroredMatrix; } -} - +} \ No newline at end of file diff --git a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java index 315bbe5521a4..01ea27aea659 100644 --- a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java @@ -8,22 +8,13 @@ public class MirrorOfMatrixTest { @Test public void testMirrorMatrix() { - int[][] originalMatrix = { - {1, 2, 3}, - {4, 5, 6}, - {7, 8, 9} - }; + int[][] originalMatrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; - int[][] expectedMirroredMatrix = { - {3, 2, 1}, - {6, 5, 4}, - {9, 8, 7} - }; + int[][] expectedMirroredMatrix = {{3, 2, 1}, {6, 5, 4}, {9, 8, 7}}; int[][] mirroredMatrix = MirrorOfMatrix.mirrorMatrix(originalMatrix); // Assert that the mirrored matrix matches the expected result assertArrayEquals(expectedMirroredMatrix, mirroredMatrix); } -} - +} \ No newline at end of file From a413527c01edef6bc607d635122a28071104c282 Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Mon, 2 Oct 2023 02:55:10 +0530 Subject: [PATCH 35/53] Linting Issue --- src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java | 7 +++---- .../java/com/thealgorithms/misc/MirrorOfMatrixTest.java | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java index 5b198580b6f6..89c2cc41709c 100644 --- a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java +++ b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java @@ -16,11 +16,11 @@ We have given an array of m x n (where m is the number of rows and n is the numb */ public final class MirrorOfMatrix { - private MirrorOfMatrix() { - } + private MirrorOfMatrix() {} + public static int[][] mirrorMatrix(int[][] originalMatrix) { if (originalMatrix == null || originalMatrix.length == 0) { - // Handle invalid input + // Handle invalid input return null; } @@ -35,7 +35,6 @@ public static int[][] mirrorMatrix(int[][] originalMatrix) { mirroredMatrix[i][j] = originalMatrix[i][numCols - 1 - j]; } } - return mirroredMatrix; } } \ No newline at end of file diff --git a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java index 01ea27aea659..51f0b0fa8426 100644 --- a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java @@ -17,4 +17,4 @@ public void testMirrorMatrix() { // Assert that the mirrored matrix matches the expected result assertArrayEquals(expectedMirroredMatrix, mirroredMatrix); } -} \ No newline at end of file +} From 1d6539ed4d0eece05f15c871af767e5d537c96bf Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Mon, 2 Oct 2023 03:09:29 +0530 Subject: [PATCH 36/53] Linting Issue --- src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java index 89c2cc41709c..47e295637bad 100644 --- a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java +++ b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java @@ -16,14 +16,13 @@ We have given an array of m x n (where m is the number of rows and n is the numb */ public final class MirrorOfMatrix { - private MirrorOfMatrix() {} - + private MirrorOfMatrix() { + } public static int[][] mirrorMatrix(int[][] originalMatrix) { if (originalMatrix == null || originalMatrix.length == 0) { - // Handle invalid input + // Handle invalid input return null; } - int numRows = originalMatrix.length; int numCols = originalMatrix[0].length; @@ -37,4 +36,4 @@ public static int[][] mirrorMatrix(int[][] originalMatrix) { } return mirroredMatrix; } -} \ No newline at end of file +} From a13bc455a23475527c87e1cc23e832fd838a00b2 Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Mon, 2 Oct 2023 14:27:15 +0530 Subject: [PATCH 37/53] Changes --- .../thealgorithms/misc/MirrorOfMatrix.java | 2 +- .../misc/MirrorOfMatrixTest.java | 40 +++++++++++++++++-- 2 files changed, 37 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java index 47e295637bad..c3cf34f52e8f 100644 --- a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java +++ b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java @@ -21,7 +21,7 @@ private MirrorOfMatrix() { public static int[][] mirrorMatrix(int[][] originalMatrix) { if (originalMatrix == null || originalMatrix.length == 0) { // Handle invalid input - return null; + return new int[0][0]; } int numRows = originalMatrix.length; int numCols = originalMatrix[0].length; diff --git a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java index 51f0b0fa8426..5288998a8104 100644 --- a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java @@ -8,13 +8,45 @@ public class MirrorOfMatrixTest { @Test public void testMirrorMatrix() { - int[][] originalMatrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; + // Test case 1: Regular matrix + int[][] originalMatrix = { + {1, 2, 3}, + {4, 5, 6}, + {7, 8, 9} + }; - int[][] expectedMirroredMatrix = {{3, 2, 1}, {6, 5, 4}, {9, 8, 7}}; + int[][] expectedMirroredMatrix = { + {3, 2, 1}, + {6, 5, 4}, + {9, 8, 7} + }; int[][] mirroredMatrix = MirrorOfMatrix.mirrorMatrix(originalMatrix); - - // Assert that the mirrored matrix matches the expected result assertArrayEquals(expectedMirroredMatrix, mirroredMatrix); + + // Test case 2: Empty matrix + int[][] emptyMatrix = new int[0][0]; + int[][] mirroredEmptyMatrix = MirrorOfMatrix.mirrorMatrix(emptyMatrix); + assertArrayEquals(emptyMatrix, mirroredEmptyMatrix); + + // Test case 3: Single-row matrix + int[][] singleRowMatrix = {{1, 2, 3}}; + int[][] expectedSingleRowMirroredMatrix = {{3, 2, 1}}; + int[][] mirroredSingleRowMatrix = MirrorOfMatrix.mirrorMatrix(singleRowMatrix); + assertArrayEquals(expectedSingleRowMirroredMatrix, mirroredSingleRowMatrix); + + // Test case 4: Single-column matrix + int[][] singleColumnMatrix = { + {1}, + {2}, + {3} + }; + int[][] expectedSingleColumnMirroredMatrix = { + {1}, + {2}, + {3} + }; + int[][] mirroredSingleColumnMatrix = MirrorOfMatrix.mirrorMatrix(singleColumnMatrix); + assertArrayEquals(expectedSingleColumnMirroredMatrix, mirroredSingleColumnMatrix); } } From 7bfd4dcd61fee19708208c1a844ffad6546f9417 Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Mon, 2 Oct 2023 14:31:09 +0530 Subject: [PATCH 38/53] Fixing Minor Linting Issue --- .../com/thealgorithms/misc/MirrorOfMatrixTest.java | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java index 5288998a8104..c355e6e8b849 100644 --- a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java @@ -36,16 +36,8 @@ public void testMirrorMatrix() { assertArrayEquals(expectedSingleRowMirroredMatrix, mirroredSingleRowMatrix); // Test case 4: Single-column matrix - int[][] singleColumnMatrix = { - {1}, - {2}, - {3} - }; - int[][] expectedSingleColumnMirroredMatrix = { - {1}, - {2}, - {3} - }; + int[][] singleColumnMatrix = {{1}, {2}, {3}}; + int[][] expectedSingleColumnMirroredMatrix = {{1}, {2}, {3}}; int[][] mirroredSingleColumnMatrix = MirrorOfMatrix.mirrorMatrix(singleColumnMatrix); assertArrayEquals(expectedSingleColumnMirroredMatrix, mirroredSingleColumnMatrix); } From 678acebf77eed7add5ee2dd4c2ea8b3ab15c3f37 Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Mon, 2 Oct 2023 14:47:33 +0530 Subject: [PATCH 39/53] Fixing Minor Linting Issue --- .../com/thealgorithms/misc/MirrorOfMatrixTest.java | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java index c355e6e8b849..f851f9381b1d 100644 --- a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java @@ -9,17 +9,9 @@ public class MirrorOfMatrixTest { @Test public void testMirrorMatrix() { // Test case 1: Regular matrix - int[][] originalMatrix = { - {1, 2, 3}, - {4, 5, 6}, - {7, 8, 9} - }; - - int[][] expectedMirroredMatrix = { - {3, 2, 1}, - {6, 5, 4}, - {9, 8, 7} - }; + int[][] originalMatrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; + + int[][] expectedMirroredMatrix = {{3, 2, 1}, {6, 5, 4}, {9, 8, 7}}; int[][] mirroredMatrix = MirrorOfMatrix.mirrorMatrix(originalMatrix); assertArrayEquals(expectedMirroredMatrix, mirroredMatrix); From a6fee93b46e226241f8f5bae4b9d618cb367d610 Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Mon, 2 Oct 2023 14:49:14 +0530 Subject: [PATCH 40/53] Final --- src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java index c3cf34f52e8f..95939da237e4 100644 --- a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java +++ b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java @@ -1,7 +1,5 @@ package com.thealgorithms.misc; -import java.util.Scanner; - // Problem Statement /* We have given an array of m x n (where m is the number of rows and n is the number of columns). From 3b59f160f507750341d70666a66582bd35ad3ebc Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Tue, 3 Oct 2023 01:56:02 +0530 Subject: [PATCH 41/53] Update src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com> --- src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java index 95939da237e4..807df6890cf8 100644 --- a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java +++ b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java @@ -27,10 +27,7 @@ public static int[][] mirrorMatrix(int[][] originalMatrix) { int[][] mirroredMatrix = new int[numRows][numCols]; for (int i = 0; i < numRows; i++) { - for (int j = 0; j < numCols; j++) { - // Copy elements from the original matrix in reverse order - mirroredMatrix[i][j] = originalMatrix[i][numCols - 1 - j]; - } + mirroredMatrix[i] = reverseRow(originalMatrix[i]); } return mirroredMatrix; } From ce3b2885b1fab5023fc00e5ff00423bc78ee4394 Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Tue, 3 Oct 2023 01:59:35 +0530 Subject: [PATCH 42/53] Changes --- .../thealgorithms/misc/MirrorOfMatrix.java | 25 +++-- .../misc/MirrorOfMatrixTest.java | 94 ++++++++++++++----- 2 files changed, 90 insertions(+), 29 deletions(-) diff --git a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java index 95939da237e4..fc19061ce602 100644 --- a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java +++ b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java @@ -14,24 +14,37 @@ We have given an array of m x n (where m is the number of rows and n is the numb */ public final class MirrorOfMatrix { - private MirrorOfMatrix() { + MirrorOfMatrix() { } public static int[][] mirrorMatrix(int[][] originalMatrix) { - if (originalMatrix == null || originalMatrix.length == 0) { + if (originalMatrix == null) { // Handle invalid input + return null; + } + if(originalMatrix.length == 0){ return new int[0][0]; } int numRows = originalMatrix.length; int numCols = originalMatrix[0].length; + for (int i = 1; i < numRows; i++) { + if (originalMatrix[i].length != numCols) { + throw new IllegalArgumentException("Input matrix is not a valid matrix. Rows have different sizes."); + } + } + int[][] mirroredMatrix = new int[numRows][numCols]; for (int i = 0; i < numRows; i++) { - for (int j = 0; j < numCols; j++) { - // Copy elements from the original matrix in reverse order - mirroredMatrix[i][j] = originalMatrix[i][numCols - 1 - j]; - } + 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; + } } diff --git a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java index f851f9381b1d..8712bdc3c228 100644 --- a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java @@ -4,33 +4,81 @@ import org.junit.jupiter.api.Test; -public class MirrorOfMatrixTest { +import static org.junit.jupiter.api.Assertions.*; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +class MirrorOfMatrixTest { + private MirrorOfMatrix MirrorOfMatrix; + + @BeforeEach + void setUp() { + MirrorOfMatrix = new MirrorOfMatrix(); + } @Test - public void testMirrorMatrix() { - // Test case 1: Regular matrix - int[][] originalMatrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; + 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); + assertArrayEquals(expectedMirrorMatrix, mirroredMatrix); + } - int[][] expectedMirroredMatrix = {{3, 2, 1}, {6, 5, 4}, {9, 8, 7}}; + @Test + void testMirrorMatrixEmptyMatrix() { + int[][] originalMatrix = {}; + int[][] expectedMirrorMatrix = {}; + int[][] mirroredMatrix = MirrorOfMatrix.mirrorMatrix(originalMatrix); + assertArrayEquals(expectedMirrorMatrix, mirroredMatrix); + } + @Test + void testMirrorMatrixSingleElementMatrix() { + int[][] originalMatrix = {{42}}; + int[][] expectedMirrorMatrix = {{42}}; int[][] mirroredMatrix = MirrorOfMatrix.mirrorMatrix(originalMatrix); - assertArrayEquals(expectedMirroredMatrix, mirroredMatrix); - - // Test case 2: Empty matrix - int[][] emptyMatrix = new int[0][0]; - int[][] mirroredEmptyMatrix = MirrorOfMatrix.mirrorMatrix(emptyMatrix); - assertArrayEquals(emptyMatrix, mirroredEmptyMatrix); - - // Test case 3: Single-row matrix - int[][] singleRowMatrix = {{1, 2, 3}}; - int[][] expectedSingleRowMirroredMatrix = {{3, 2, 1}}; - int[][] mirroredSingleRowMatrix = MirrorOfMatrix.mirrorMatrix(singleRowMatrix); - assertArrayEquals(expectedSingleRowMirroredMatrix, mirroredSingleRowMatrix); - - // Test case 4: Single-column matrix - int[][] singleColumnMatrix = {{1}, {2}, {3}}; - int[][] expectedSingleColumnMirroredMatrix = {{1}, {2}, {3}}; - int[][] mirroredSingleColumnMatrix = MirrorOfMatrix.mirrorMatrix(singleColumnMatrix); - assertArrayEquals(expectedSingleColumnMirroredMatrix, mirroredSingleColumnMatrix); + assertArrayEquals(expectedMirrorMatrix, mirroredMatrix); + } + + @Test + void testMirrorMatrixOneRowMultipleColumnsMatrix() { + int[][] originalMatrix = {{1, 2, 3, 4}}; + int[][] expectedMirrorMatrix = {{4, 3, 2, 1}}; + int[][] 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); + assertArrayEquals(expectedMirrorMatrix, mirroredMatrix); + } + + @Test + void testMirrorMatrixNullInput() { + int[][] originalMatrix = null; + assertNull(MirrorOfMatrix.mirrorMatrix(originalMatrix)); } } + From 8b3d8d9d68163042942728238ec4b6d32a026b6b Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Tue, 3 Oct 2023 02:09:10 +0530 Subject: [PATCH 43/53] Linting Issue --- .../thealgorithms/misc/MirrorOfMatrix.java | 2 +- .../misc/MirrorOfMatrixTest.java | 118 +++++++----------- 2 files changed, 45 insertions(+), 75 deletions(-) diff --git a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java index fc19061ce602..fbd920715fc4 100644 --- a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java +++ b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java @@ -21,7 +21,7 @@ public static int[][] mirrorMatrix(int[][] originalMatrix) { // Handle invalid input return null; } - if(originalMatrix.length == 0){ + if (originalMatrix.length == 0) { return new int[0][0]; } int numRows = originalMatrix.length; diff --git a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java index 8712bdc3c228..82612355df15 100644 --- a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java @@ -1,84 +1,54 @@ package com.thealgorithms.misc; -import static org.junit.jupiter.api.Assertions.assertArrayEquals; - import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; - class MirrorOfMatrixTest { - private MirrorOfMatrix MirrorOfMatrix; - - @BeforeEach - void setUp() { - MirrorOfMatrix = new MirrorOfMatrix(); - } - - @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); - assertArrayEquals(expectedMirrorMatrix, mirroredMatrix); - } - - @Test - void testMirrorMatrixEmptyMatrix() { - int[][] originalMatrix = {}; - int[][] expectedMirrorMatrix = {}; - int[][] mirroredMatrix = MirrorOfMatrix.mirrorMatrix(originalMatrix); - assertArrayEquals(expectedMirrorMatrix, mirroredMatrix); - } - - @Test - void testMirrorMatrixSingleElementMatrix() { - int[][] originalMatrix = {{42}}; - int[][] expectedMirrorMatrix = {{42}}; - int[][] mirroredMatrix = MirrorOfMatrix.mirrorMatrix(originalMatrix); - assertArrayEquals(expectedMirrorMatrix, mirroredMatrix); - } - - @Test - void testMirrorMatrixOneRowMultipleColumnsMatrix() { - int[][] originalMatrix = {{1, 2, 3, 4}}; - int[][] expectedMirrorMatrix = {{4, 3, 2, 1}}; - int[][] 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); - assertArrayEquals(expectedMirrorMatrix, mirroredMatrix); - } - @Test - void testMirrorMatrixNullInput() { - int[][] originalMatrix = null; - assertNull(MirrorOfMatrix.mirrorMatrix(originalMatrix)); - } + @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 = com.thealgorithms.misc.MirrorOfMatrix.mirrorMatrix(originalMatrix); + assertArrayEquals(expectedMirrorMatrix, mirroredMatrix); + } + @Test + void testMirrorMatrixEmptyMatrix() { + int[][] originalMatrix = {}; + int[][] expectedMirrorMatrix = {}; + int[][] mirroredMatrix = com.thealgorithms.misc.MirrorOfMatrix.mirrorMatrix(originalMatrix); + assertArrayEquals(expectedMirrorMatrix, mirroredMatrix); + } + + @Test + void testMirrorMatrixSingleElementMatrix() { + int[][] originalMatrix = {{42}}; + int[][] expectedMirrorMatrix = {{42}}; + int[][] mirroredMatrix = com.thealgorithms.misc.MirrorOfMatrix.mirrorMatrix(originalMatrix); + assertArrayEquals(expectedMirrorMatrix, mirroredMatrix); + } + + @Test + void testMirrorMatrixOneRowMultipleColumnsMatrix() { + int[][] originalMatrix = {{1, 2, 3, 4}}; + int[][] expectedMirrorMatrix = {{4, 3, 2, 1}}; + int[][] mirroredMatrix = com.thealgorithms.misc.MirrorOfMatrix.mirrorMatrix(originalMatrix); + assertArrayEquals(expectedMirrorMatrix, mirroredMatrix); + } + + @Test + void testMirrorMatrixMultipleRowsOneColumnMatrix() { + int[][] originalMatrix = {{1}, {2}, {3}, {4}}; + int[][] expectedMirrorMatrix = {{1}, {2}, {3}, {4}}; + int[][] mirroredMatrix = com.thealgorithms.misc.MirrorOfMatrix.mirrorMatrix(originalMatrix); + assertArrayEquals(expectedMirrorMatrix, mirroredMatrix); + } + + @Test + void testMirrorMatrixNullInput() { + int[][] originalMatrix = null; + assertNull(com.thealgorithms.misc.MirrorOfMatrix.mirrorMatrix(originalMatrix)); + } } From c099c63b9dcfaf61b0fdfdf22b9632090c22a6c6 Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Tue, 3 Oct 2023 02:12:26 +0530 Subject: [PATCH 44/53] Linting Issue --- .../misc/MirrorOfMatrixTest.java | 90 +++++++++---------- 1 file changed, 44 insertions(+), 46 deletions(-) diff --git a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java index 82612355df15..1795c2c87ea1 100644 --- a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java @@ -3,52 +3,50 @@ import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; - 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 = com.thealgorithms.misc.MirrorOfMatrix.mirrorMatrix(originalMatrix); - assertArrayEquals(expectedMirrorMatrix, mirroredMatrix); - } - @Test - void testMirrorMatrixEmptyMatrix() { - int[][] originalMatrix = {}; - int[][] expectedMirrorMatrix = {}; - int[][] mirroredMatrix = com.thealgorithms.misc.MirrorOfMatrix.mirrorMatrix(originalMatrix); - assertArrayEquals(expectedMirrorMatrix, mirroredMatrix); - } - - @Test - void testMirrorMatrixSingleElementMatrix() { - int[][] originalMatrix = {{42}}; - int[][] expectedMirrorMatrix = {{42}}; - int[][] mirroredMatrix = com.thealgorithms.misc.MirrorOfMatrix.mirrorMatrix(originalMatrix); - assertArrayEquals(expectedMirrorMatrix, mirroredMatrix); - } - - @Test - void testMirrorMatrixOneRowMultipleColumnsMatrix() { - int[][] originalMatrix = {{1, 2, 3, 4}}; - int[][] expectedMirrorMatrix = {{4, 3, 2, 1}}; - int[][] mirroredMatrix = com.thealgorithms.misc.MirrorOfMatrix.mirrorMatrix(originalMatrix); - assertArrayEquals(expectedMirrorMatrix, mirroredMatrix); - } - - @Test - void testMirrorMatrixMultipleRowsOneColumnMatrix() { - int[][] originalMatrix = {{1}, {2}, {3}, {4}}; - int[][] expectedMirrorMatrix = {{1}, {2}, {3}, {4}}; - int[][] mirroredMatrix = com.thealgorithms.misc.MirrorOfMatrix.mirrorMatrix(originalMatrix); - assertArrayEquals(expectedMirrorMatrix, mirroredMatrix); - } - - @Test - void testMirrorMatrixNullInput() { - int[][] originalMatrix = null; - assertNull(com.thealgorithms.misc.MirrorOfMatrix.mirrorMatrix(originalMatrix)); - } + @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 = com.thealgorithms.misc.MirrorOfMatrix.mirrorMatrix(originalMatrix); + assertArrayEquals(expectedMirrorMatrix, mirroredMatrix); + } + @Test + void testMirrorMatrixEmptyMatrix() { + int[][] originalMatrix = {}; + int[][] expectedMirrorMatrix = {}; + int[][] mirroredMatrix = com.thealgorithms.misc.MirrorOfMatrix.mirrorMatrix(originalMatrix); + assertArrayEquals(expectedMirrorMatrix, mirroredMatrix); + } + + @Test + void testMirrorMatrixSingleElementMatrix() { + int[][] originalMatrix = {{42}}; + int[][] expectedMirrorMatrix = {{42}}; + int[][] mirroredMatrix = com.thealgorithms.misc.MirrorOfMatrix.mirrorMatrix(originalMatrix); + assertArrayEquals(expectedMirrorMatrix, mirroredMatrix); + } + + @Test + void testMirrorMatrixOneRowMultipleColumnsMatrix() { + int[][] originalMatrix = {{1, 2, 3, 4}}; + int[][] expectedMirrorMatrix = {{4, 3, 2, 1}}; + int[][] mirroredMatrix = com.thealgorithms.misc.MirrorOfMatrix.mirrorMatrix(originalMatrix); + assertArrayEquals(expectedMirrorMatrix, mirroredMatrix); + } + + @Test + void testMirrorMatrixMultipleRowsOneColumnMatrix() { + int[][] originalMatrix = {{1}, {2}, {3}, {4}}; + int[][] expectedMirrorMatrix = {{1}, {2}, {3}, {4}}; + int[][] mirroredMatrix = com.thealgorithms.misc.MirrorOfMatrix.mirrorMatrix(originalMatrix); + assertArrayEquals(expectedMirrorMatrix, mirroredMatrix); + } + + @Test + void testMirrorMatrixNullInput() { + int[][] originalMatrix = null; + assertNull(com.thealgorithms.misc.MirrorOfMatrix.mirrorMatrix(originalMatrix)); + } } - From 0fd95f06a1f6eece2d68e1022fd3560f2bb21142 Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Tue, 3 Oct 2023 02:13:50 +0530 Subject: [PATCH 45/53] Linting Issue --- src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java index 1795c2c87ea1..a528ba981324 100644 --- a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java @@ -1,8 +1,8 @@ package com.thealgorithms.misc; import org.junit.jupiter.api.Test; - import static org.junit.jupiter.api.Assertions.*; + class MirrorOfMatrixTest { @Test @@ -24,7 +24,7 @@ void testMirrorMatrixEmptyMatrix() { void testMirrorMatrixSingleElementMatrix() { int[][] originalMatrix = {{42}}; int[][] expectedMirrorMatrix = {{42}}; - int[][] mirroredMatrix = com.thealgorithms.misc.MirrorOfMatrix.mirrorMatrix(originalMatrix); + int[][] mirroredMatrix = com.thealgorithms.misc.MirrorOfMatrix.mirrorMatrix(originalMatrix); assertArrayEquals(expectedMirrorMatrix, mirroredMatrix); } From f06d0d0108213707badc26429068ea0d02d30316 Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Tue, 3 Oct 2023 02:15:12 +0530 Subject: [PATCH 46/53] Linting Issue --- src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java index a528ba981324..128f9ac3f939 100644 --- a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java @@ -1,8 +1,9 @@ package com.thealgorithms.misc; -import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Test; + class MirrorOfMatrixTest { @Test From 8351fa577c852d263e731689cd82c7123fa744cd Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Tue, 3 Oct 2023 16:22:15 +0530 Subject: [PATCH 47/53] Update src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com> --- src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java index fbd920715fc4..0854e381480b 100644 --- a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java +++ b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java @@ -14,7 +14,7 @@ We have given an array of m x n (where m is the number of rows and n is the numb */ public final class MirrorOfMatrix { - MirrorOfMatrix() { + private MirrorOfMatrix() { } public static int[][] mirrorMatrix(int[][] originalMatrix) { if (originalMatrix == null) { From 6e7c00f4023f19a525dadc7acbafeb4c7ce28bb8 Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Tue, 3 Oct 2023 16:23:33 +0530 Subject: [PATCH 48/53] Update src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com> --- src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java index 0854e381480b..e5fb9079d819 100644 --- a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java +++ b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java @@ -29,7 +29,7 @@ public static int[][] mirrorMatrix(int[][] originalMatrix) { for (int i = 1; i < numRows; i++) { if (originalMatrix[i].length != numCols) { - throw new IllegalArgumentException("Input matrix is not a valid matrix. Rows have different sizes."); + throw new IllegalArgumentException("The input is not a matrix."); } } From ab0458d784d55cdb4e8955a9fefea069ff44d468 Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Tue, 3 Oct 2023 16:26:35 +0530 Subject: [PATCH 49/53] Update src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com> --- src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java index e5fb9079d819..094c68674cfd 100644 --- a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java +++ b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java @@ -28,7 +28,7 @@ public static int[][] mirrorMatrix(int[][] originalMatrix) { int numCols = originalMatrix[0].length; for (int i = 1; i < numRows; i++) { - if (originalMatrix[i].length != numCols) { + if (originalMatrix[i].length != originalMatrix[0].length) { throw new IllegalArgumentException("The input is not a matrix."); } } From e1cef6f7049c156e9cb816c876bbf1fba6cea2a7 Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Tue, 3 Oct 2023 17:39:17 +0530 Subject: [PATCH 50/53] Changes --- .../com/thealgorithms/misc/MirrorOfMatrix.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java index 094c68674cfd..7ae2031517a7 100644 --- a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java +++ b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java @@ -24,15 +24,12 @@ public static int[][] mirrorMatrix(int[][] originalMatrix) { if (originalMatrix.length == 0) { return new int[0][0]; } + + checkInput(originalMatrix); + int numRows = originalMatrix.length; int numCols = originalMatrix[0].length; - for (int i = 1; i < numRows; i++) { - if (originalMatrix[i].length != originalMatrix[0].length) { - throw new IllegalArgumentException("The input is not a matrix."); - } - } - int[][] mirroredMatrix = new int[numRows][numCols]; for (int i = 0; i < numRows; i++) { @@ -47,4 +44,13 @@ private static int[] reverseRow(final int[] inRow) { } return res; } + + private static void checkInput(int[][] matrix) { + // Check if all rows have the same number of columns + for (int i = 1; i < matrix[0].length; i++) { + if (matrix[i].length != matrix[0].length) { + throw new IllegalArgumentException("The input is not a matrix."); + } + } + } } From 7cadb1dcd52de4fafa03a10893ecf01af3575e9a Mon Sep 17 00:00:00 2001 From: Aman <84791435+Aman28801@users.noreply.github.com> Date: Tue, 3 Oct 2023 17:43:53 +0530 Subject: [PATCH 51/53] Changes --- .../java/com/thealgorithms/misc/MirrorOfMatrixTest.java | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java index 128f9ac3f939..b293d98ca1cf 100644 --- a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java @@ -29,14 +29,6 @@ void testMirrorMatrixSingleElementMatrix() { assertArrayEquals(expectedMirrorMatrix, mirroredMatrix); } - @Test - void testMirrorMatrixOneRowMultipleColumnsMatrix() { - int[][] originalMatrix = {{1, 2, 3, 4}}; - int[][] expectedMirrorMatrix = {{4, 3, 2, 1}}; - int[][] mirroredMatrix = com.thealgorithms.misc.MirrorOfMatrix.mirrorMatrix(originalMatrix); - assertArrayEquals(expectedMirrorMatrix, mirroredMatrix); - } - @Test void testMirrorMatrixMultipleRowsOneColumnMatrix() { int[][] originalMatrix = {{1}, {2}, {3}, {4}}; From ec8e9f820129f8ddf2af6022c8fda7bdb77f2931 Mon Sep 17 00:00:00 2001 From: vil02 Date: Tue, 3 Oct 2023 18:31:40 +0200 Subject: [PATCH 52/53] fix: use proper size in `checkInput` --- .../java/com/thealgorithms/misc/MirrorOfMatrix.java | 3 ++- .../com/thealgorithms/misc/MirrorOfMatrixTest.java | 10 +++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java index 7ae2031517a7..5b0e15dc39f6 100644 --- a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java +++ b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java @@ -16,6 +16,7 @@ We have given an array of m x n (where m is the number of rows and n is the numb public final class MirrorOfMatrix { private MirrorOfMatrix() { } + public static int[][] mirrorMatrix(int[][] originalMatrix) { if (originalMatrix == null) { // Handle invalid input @@ -47,7 +48,7 @@ private static int[] reverseRow(final int[] inRow) { private static void checkInput(int[][] matrix) { // Check if all rows have the same number of columns - for (int i = 1; i < matrix[0].length; i++) { + 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/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java index b293d98ca1cf..003197e44083 100644 --- a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java @@ -1,6 +1,8 @@ package com.thealgorithms.misc; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertArrayEquals; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertThrows; import org.junit.jupiter.api.Test; @@ -13,6 +15,7 @@ void testMirrorMatrixRegularMatrix() { int[][] mirroredMatrix = com.thealgorithms.misc.MirrorOfMatrix.mirrorMatrix(originalMatrix); assertArrayEquals(expectedMirrorMatrix, mirroredMatrix); } + @Test void testMirrorMatrixEmptyMatrix() { int[][] originalMatrix = {}; @@ -42,4 +45,9 @@ void testMirrorMatrixNullInput() { int[][] originalMatrix = null; assertNull(com.thealgorithms.misc.MirrorOfMatrix.mirrorMatrix(originalMatrix)); } + + @Test + void testMirrotMarixThrows() { + assertThrows(IllegalArgumentException.class, () -> MirrorOfMatrix.mirrorMatrix(new int[][] {{1}, {2, 3}})); + } } From 22f735a8df6a27235748b3f5f2411c69f44ab347 Mon Sep 17 00:00:00 2001 From: vil02 Date: Tue, 3 Oct 2023 18:37:08 +0200 Subject: [PATCH 53/53] style: basic linting --- .../java/com/thealgorithms/misc/MirrorOfMatrix.java | 4 ++-- .../com/thealgorithms/misc/MirrorOfMatrixTest.java | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java index 5b0e15dc39f6..89dfce3fe049 100644 --- a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java +++ b/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java @@ -17,7 +17,7 @@ public final class MirrorOfMatrix { private MirrorOfMatrix() { } - public static int[][] mirrorMatrix(int[][] originalMatrix) { + public static int[][] mirrorMatrix(final int[][] originalMatrix) { if (originalMatrix == null) { // Handle invalid input return null; @@ -46,7 +46,7 @@ private static int[] reverseRow(final int[] inRow) { return res; } - private static void checkInput(int[][] matrix) { + 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) { diff --git a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java index 003197e44083..0da0cf0f804a 100644 --- a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java @@ -12,7 +12,7 @@ class MirrorOfMatrixTest { 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 = com.thealgorithms.misc.MirrorOfMatrix.mirrorMatrix(originalMatrix); + int[][] mirroredMatrix = MirrorOfMatrix.mirrorMatrix(originalMatrix); assertArrayEquals(expectedMirrorMatrix, mirroredMatrix); } @@ -20,7 +20,7 @@ void testMirrorMatrixRegularMatrix() { void testMirrorMatrixEmptyMatrix() { int[][] originalMatrix = {}; int[][] expectedMirrorMatrix = {}; - int[][] mirroredMatrix = com.thealgorithms.misc.MirrorOfMatrix.mirrorMatrix(originalMatrix); + int[][] mirroredMatrix = MirrorOfMatrix.mirrorMatrix(originalMatrix); assertArrayEquals(expectedMirrorMatrix, mirroredMatrix); } @@ -28,7 +28,7 @@ void testMirrorMatrixEmptyMatrix() { void testMirrorMatrixSingleElementMatrix() { int[][] originalMatrix = {{42}}; int[][] expectedMirrorMatrix = {{42}}; - int[][] mirroredMatrix = com.thealgorithms.misc.MirrorOfMatrix.mirrorMatrix(originalMatrix); + int[][] mirroredMatrix = MirrorOfMatrix.mirrorMatrix(originalMatrix); assertArrayEquals(expectedMirrorMatrix, mirroredMatrix); } @@ -36,14 +36,14 @@ void testMirrorMatrixSingleElementMatrix() { void testMirrorMatrixMultipleRowsOneColumnMatrix() { int[][] originalMatrix = {{1}, {2}, {3}, {4}}; int[][] expectedMirrorMatrix = {{1}, {2}, {3}, {4}}; - int[][] mirroredMatrix = com.thealgorithms.misc.MirrorOfMatrix.mirrorMatrix(originalMatrix); + int[][] mirroredMatrix = MirrorOfMatrix.mirrorMatrix(originalMatrix); assertArrayEquals(expectedMirrorMatrix, mirroredMatrix); } @Test void testMirrorMatrixNullInput() { int[][] originalMatrix = null; - assertNull(com.thealgorithms.misc.MirrorOfMatrix.mirrorMatrix(originalMatrix)); + assertNull(MirrorOfMatrix.mirrorMatrix(originalMatrix)); } @Test