-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMatrixTransformation.java
More file actions
126 lines (102 loc) · 2.64 KB
/
MatrixTransformation.java
File metadata and controls
126 lines (102 loc) · 2.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
package practicePrograms.practicePrograms;
//http://techieme.in/matrix-transformation-to-make-rows-and-columns-zero/
import java.util.Arrays;
import org.junit.Assert;
import org.junit.Test;
public class MatrixTransformation {
public static int squareArrayHappyCase[][]={{0,0,0},{0,1,0},{0,0,0}};
public static int rectArrayHappyCase[][]={{0,0},{1,1},{0,0}};
public static int squareArrayZero[][]={{0,0,0},{0,0,0},{0,0,0}};;
public static int rectArrayZero[][]={{0,0},{0,0},{0,0}};
public static int squareArrayOne[][]={{1,1,1},{1,1,1},{1,1,1}};
public static int rectArrayOne[][]={{1,1},{1,1},{1,1}};
public int[][] transformMatrix(int input[][])
{
if(input==null)
return null;
for(int i=0;i<input.length;i++)
{
for(int j=0;j<input[0].length;j++)
{
if(input[i][j]==1)
{
markRow(input,i);
markColumn(input,j);
}
}
}
for(int i=0;i<input.length;i++)
{
for(int j=0;j<input[0].length;j++)
{
if(input[i][j]==2)
input[i][j]=1;
}
}
return input;
}
private void markColumn(int[][] input, int column) {
for(int i=0;i<input.length;i++)
{
input[i][column]=2;
}
}
private void markRow(int[][] input, int row) {
for(int i=0;i<input[0].length;i++)
{
input[row][i]=2;
}
}
@Test
public void test_Null_true()
{
Assert.assertNull(transformMatrix(null));
}
@Test
public void test_SquareArrayEquals_true()
{
int b[][]={{0,1,0},{1,1,1},{0,1,0}};
Assert.assertArrayEquals(transformMatrix(squareArrayHappyCase),b);
}
@Test
public void test_SquareArrayZero_true()
{
int b[][]={{0,0,0},{0,0,0},{0,0,0}};
Assert.assertArrayEquals(b,transformMatrix(squareArrayZero));
}
@Test
public void test_RectArrayZero_true()
{
int b[][]={{0,0},{0,0},{0,0}};
Assert.assertArrayEquals(rectArrayZero,transformMatrix(rectArrayZero));
}
@Test
public void test_SquareArrayOne_true()
{
int b[][]={{1,1,1},{1,1,1},{1,1,1}};
Assert.assertArrayEquals(b,transformMatrix(squareArrayOne));
}
@Test
public void test_RectArrayOne_true()
{
int b[][]={{1,1},{1,1},{1,1}};
Assert.assertArrayEquals(b,transformMatrix(rectArrayOne));
}
@Test
public void test_SquareArrayEquals_false()
{
int b[][]={{0,1,0},{0,1,0},{0,1,1}};
Assert.assertFalse(Arrays.equals(squareArrayHappyCase,b)); //A different way to check inEquality of two arrays
}
public void test_RectArrayEquals_true()
{
int b[][]={{1,1},{1,1},{1,1}};
Assert.assertArrayEquals(rectArrayHappyCase,b);
}
@Test
public void test_RectArrayEquals_false()
{
int b[][]={{1,1},{1,1},{1,0}};
Assert.assertFalse(Arrays.equals(rectArrayHappyCase,b)); //A different way to check inEquality of two arrays
}
}