-
Notifications
You must be signed in to change notification settings - Fork 1
/
PercolationTest.java
130 lines (108 loc) · 2.91 KB
/
PercolationTest.java
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
127
128
129
130
/**
* Name: Raj Sahae
* Date: 8/12/2012
* Week 1 Assignment: Percolation
*
* To use this class, run as a JUnit test, for example, from the command line:
* "java org.junit.runner.JUnitCore PercolationTest"
*/
import org.junit.Test;
import org.junit.Before;
import static org.junit.Assert.*;
public class PercolationTest {
private Percolation p;
@Before
public void setUp() {
p = new Percolation(5);
}
@Test
public void testIsOpen() {
p.open(1, 1);
assertTrue(p.isOpen(1, 1));
p.open(3, 4);
assertTrue(p.isOpen(3, 4));
p.open(4, 5);
assertFalse(p.isOpen(5, 4));
}
@Test
public void testIsFull() {
p.open(1, 1);
p.open(2, 1);
p.open(3, 1);
p.open(4, 1);
p.open(5, 1);
assertTrue(p.isFull(1, 1));
assertTrue(p.isFull(2, 1));
assertTrue(p.isFull(3, 1));
assertTrue(p.isFull(4, 1));
assertTrue(p.isFull(5, 1));
assertFalse(p.isFull(1, 2));
assertFalse(p.isFull(2, 3));
assertFalse(p.isFull(4, 5));
assertFalse(p.isFull(1, 3));
assertFalse(p.isFull(1, 5));
}
@Test
public void testPercolates() {
p.open(1, 3);
p.open(2, 3);
p.open(2, 4);
p.open(3, 4);
p.open(4, 4);
p.open(4, 3);
p.open(4, 2);
assertFalse(p.percolates());
p.open(5, 2);
assertTrue(p.percolates());
}
// All methods should throw a java.lang.IndexOutOfBoundsException
// if i or j are outside the bounds.
@Test (expected = IndexOutOfBoundsException.class)
public void testOpenBoundsExceptionZeroRow() {
p.open(0, 3);
}
@Test (expected = IndexOutOfBoundsException.class)
public void testOpenBoundsExceptionOverRow() {
p.open(6, 3);
}
@Test (expected = IndexOutOfBoundsException.class)
public void testOpenBoundsExceptionZeroCol() {
p.open(3, 0);
}
@Test (expected = IndexOutOfBoundsException.class)
public void testOpenBoundsExceptionOverCol() {
p.open(3, 6);
}
@Test (expected = IndexOutOfBoundsException.class)
public void testIsOpenBoundsExceptionZeroRow() {
p.isOpen(0, 3);
}
@Test (expected = IndexOutOfBoundsException.class)
public void testIsOpenBoundsExceptionOverRow() {
p.isOpen(6, 3);
}
@Test (expected = IndexOutOfBoundsException.class)
public void testIsOpenBoundsExceptionZeroCol() {
p.isOpen(3, 0);
}
@Test (expected = IndexOutOfBoundsException.class)
public void testIsOpenBoundsExceptionOverCol() {
p.isOpen(3, 6);
}
@Test (expected = IndexOutOfBoundsException.class)
public void testIsFullBoundsExceptionZeroRow() {
p.isFull(0, 3);
}
@Test (expected = IndexOutOfBoundsException.class)
public void testIsFullBoundsExceptionOverRow() {
p.isFull(6, 3);
}
@Test (expected = IndexOutOfBoundsException.class)
public void testIsFullBoundsExceptionZeroCol() {
p.isFull(3, 0);
}
@Test (expected = IndexOutOfBoundsException.class)
public void testIsFullBoundsExceptionOverCol() {
p.isFull(3, 6);
}
}