Przeglądaj źródła

Merge branch 'exercism/master'

Colin Mullikin 9 lat temu
rodzic
commit
4058e9263e

+ 13
- 1
config.json Wyświetl plik

@@ -55,7 +55,9 @@
55 55
     "wordy",
56 56
     "palindrome-products",
57 57
     "twelve-days",
58
-    "sublist"
58
+    "sublist",
59
+    "rectangles",
60
+    "matrix"
59 61
   ],
60 62
   "exercises": [
61 63
     {
@@ -317,6 +319,16 @@
317 319
       "slug": "sublist",
318 320
       "difficulty": 1,
319 321
       "topics": []
322
+    },
323
+    {
324
+      "slug": "rectangles",
325
+      "difficulty": 1,
326
+      "topics": []
327
+    },
328
+    {
329
+      "slug": "matrix",
330
+      "difficulty": 1,
331
+      "topics": []
320 332
     }
321 333
   ],
322 334
   "deprecated": [

+ 17
- 0
exercises/matrix/build.gradle Wyświetl plik

@@ -0,0 +1,17 @@
1
+apply plugin: "java"
2
+apply plugin: "eclipse"
3
+apply plugin: "idea"
4
+
5
+repositories {
6
+    mavenCentral()
7
+}
8
+
9
+dependencies {
10
+    testCompile "junit:junit:4.12"
11
+}
12
+test {
13
+    testLogging {
14
+        exceptionFormat = 'full'
15
+        events = ["passed", "failed", "skipped"]
16
+    }
17
+}

+ 39
- 0
exercises/matrix/src/example/java/Matrix.java Wyświetl plik

@@ -0,0 +1,39 @@
1
+import java.util.regex.Pattern;
2
+
3
+public class Matrix {
4
+    private int[][] matrix;
5
+    private static Pattern spacePattern = Pattern.compile(" ");
6
+    private static Pattern newlinePattern = Pattern.compile("\\n");
7
+
8
+    public Matrix(String matrixAsString) {
9
+        String[] rows = newlinePattern.split(matrixAsString);
10
+        matrix = new int[rows.length][];
11
+        for (int i = 0; i < rows.length; i++) {
12
+            String[] columnValues = spacePattern.split(rows[i]);
13
+            matrix[i] = new int[columnValues.length];
14
+            for (int j = 0; j < columnValues.length; j++) {
15
+                matrix[i][j] = Integer.parseInt(columnValues[j]);
16
+            }
17
+        }
18
+    }
19
+
20
+    public int[] getRow(int rowNumber) {
21
+        return matrix[rowNumber];
22
+    }
23
+
24
+    public int[] getColumn(int columnNumber) {
25
+        int[] column = new int[matrix.length];
26
+        for(int i = 0; i < matrix.length; i++) {
27
+            column[i] = matrix[i][columnNumber];
28
+        }
29
+        return column;
30
+    }
31
+
32
+    public int getRowsCount() {
33
+        return matrix.length;
34
+    }
35
+
36
+    public int getColumnsCount() {
37
+        return matrix[0].length;
38
+    }
39
+}

+ 0
- 0
exercises/matrix/src/main/java/.keep Wyświetl plik


+ 207
- 0
exercises/matrix/src/test/java/MatrixTest.java Wyświetl plik

@@ -0,0 +1,207 @@
1
+import org.junit.Ignore;
2
+import org.junit.Test;
3
+import org.junit.experimental.runners.Enclosed;
4
+import org.junit.runner.RunWith;
5
+import org.junit.runners.Parameterized;
6
+
7
+import java.util.Arrays;
8
+import java.util.Collection;
9
+
10
+import static org.junit.Assert.assertArrayEquals;
11
+import static org.junit.Assert.assertEquals;
12
+
13
+@RunWith(Enclosed.class)
14
+public class MatrixTest {
15
+
16
+    @RunWith(Parameterized.class)
17
+    public static class CountRowsTest {
18
+        private Matrix matrix;
19
+        private int numberOfRows;
20
+
21
+        @Parameterized.Parameters(name = "{index}: expected matrix constructed with string \n\"{0}\" to have {1} row(s).")
22
+        public static Collection<Object[]> data() {
23
+            return Arrays.asList(new Object[][]{
24
+                    {"0", 1},
25
+                    {"0 1", 1},
26
+                    {  "0\n"
27
+                     + "1", 2},
28
+                    {  "0 1\n"
29
+                     + "2 3", 2},
30
+                    {  "0 1 2\n"
31
+                     + "3 4 5\n"
32
+                     + "6 7 8", 3}
33
+            });
34
+        }
35
+
36
+        public CountRowsTest(String matrixAsString, int numberOfRows) {
37
+            this.matrix = new Matrix(matrixAsString);
38
+            this.numberOfRows = numberOfRows;
39
+        }
40
+
41
+        @Test
42
+        public void countRowsTest() {
43
+            assertEquals(numberOfRows, matrix.getRowsCount());
44
+        }
45
+    }
46
+
47
+    @Ignore
48
+    @RunWith(Parameterized.class)
49
+    public static class CountColumnsTest {
50
+        private Matrix matrix;
51
+        private int numberOfColumns;
52
+
53
+        @Parameterized.Parameters(name = "{index}: expected matrix constructed with string \n\"{0}\" to have {1} column(s).")
54
+        public static Collection<Object[]> data() {
55
+            return Arrays.asList(new Object[][]{
56
+                    {"0", 1},
57
+                    {"0 1", 2},
58
+                    {  "0\n"
59
+                     + "1", 1},
60
+                    {  "0 1\n"
61
+                     + "2 3", 2},
62
+                    {  "0 1 2\n"
63
+                     + "3 4 5\n"
64
+                     + "6 7 8", 3}
65
+            });
66
+        }
67
+
68
+        public CountColumnsTest(String matrixAsString, int numberOfColumns) {
69
+            this.matrix = new Matrix(matrixAsString);
70
+            this.numberOfColumns = numberOfColumns;
71
+        }
72
+
73
+        @Test
74
+        public void countColumnsTest() {
75
+            assertEquals(numberOfColumns, matrix.getColumnsCount());
76
+        }
77
+    }
78
+
79
+    @Ignore
80
+    @RunWith(Parameterized.class)
81
+    public static class GetFirstRowTest {
82
+        private Matrix matrix;
83
+        private int[] firstRow;
84
+
85
+        @Parameterized.Parameters(name = "{index}: checking first row of matrix constructed with string \n\"{0}\".")
86
+        public static Collection<Object[]> data() {
87
+            return Arrays.asList(new Object[][]{
88
+                    {"0", new int[] {0}},
89
+                    {"0 1", new int[] {0, 1}},
90
+                    {  "0\n"
91
+                     + "1", new int[] {0}},
92
+                    {  "0 1\n"
93
+                     + "2 3", new int[] {0, 1}},
94
+                    {  "0 1 2\n"
95
+                     + "3 4 5\n"
96
+                     + "6 7 8", new int[] {0, 1, 2}}
97
+            });
98
+        }
99
+
100
+        public GetFirstRowTest(String matrixAsString, int[] firstRow) {
101
+            this.matrix = new Matrix(matrixAsString);
102
+            this.firstRow = firstRow;
103
+        }
104
+
105
+        @Test
106
+        public void getFirstRowTest() {
107
+            assertArrayEquals(firstRow, matrix.getRow(0));
108
+        }
109
+    }
110
+
111
+    @Ignore
112
+    @RunWith(Parameterized.class)
113
+    public static class GetLastRowTest {
114
+        private Matrix matrix;
115
+        private int[] lastRow;
116
+
117
+        @Parameterized.Parameters(name = "{index}: checking last row of matrix constructed with string \n\"{0}\".")
118
+        public static Collection<Object[]> data() {
119
+            return Arrays.asList(new Object[][]{
120
+                    {"0", new int[] {0}},
121
+                    {"0 1", new int[] {0, 1}},
122
+                    {  "0\n"
123
+                     + "1", new int[] {1}},
124
+                    {  "0 1\n"
125
+                     + "2 3", new int[] {2, 3}},
126
+                    {  "0 1 2\n"
127
+                     + "3 4 5\n"
128
+                     + "6 7 8", new int[] {6, 7, 8}}
129
+            });
130
+        }
131
+
132
+        public GetLastRowTest(String matrixAsString, int[] lastRow) {
133
+            this.matrix = new Matrix(matrixAsString);
134
+            this.lastRow = lastRow;
135
+        }
136
+
137
+        @Test
138
+        public void getLastRowTest() {
139
+            assertArrayEquals(lastRow, matrix.getRow(matrix.getRowsCount() - 1));
140
+        }
141
+    }
142
+
143
+    @Ignore
144
+    @RunWith(Parameterized.class)
145
+    public static class GetFirstColumnTest {
146
+        private Matrix matrix;
147
+        private int[] firstColumn;
148
+
149
+        @Parameterized.Parameters(name = "{index}: checking first column of matrix constructed with string \n\"{0}\".")
150
+        public static Collection<Object[]> data() {
151
+            return Arrays.asList(new Object[][]{
152
+                    {"0", new int[] {0}},
153
+                    {"0 1", new int[] {0}},
154
+                    {  "0\n"
155
+                     + "1", new int[] {0, 1}},
156
+                    {  "0 1\n"
157
+                     + "2 3", new int[] {0, 2}},
158
+                    {  "0 1 2\n"
159
+                     + "3 4 5\n"
160
+                     + "6 7 8", new int[] {0, 3, 6}}
161
+            });
162
+        }
163
+
164
+        public GetFirstColumnTest(String matrixAsString, int[] firstColumn) {
165
+            this.matrix = new Matrix(matrixAsString);
166
+            this.firstColumn = firstColumn;
167
+        }
168
+
169
+        @Test
170
+        public void getFirstColumnTest() {
171
+            assertArrayEquals(firstColumn, matrix.getColumn(0));
172
+        }
173
+    }
174
+
175
+
176
+    @Ignore
177
+    @RunWith(Parameterized.class)
178
+    public static class GetLastColumnTest {
179
+        private Matrix matrix;
180
+        private int[] lastColumn;
181
+
182
+        @Parameterized.Parameters(name = "{index}: checking last column of matrix constructed with string \n\"{0}\".")
183
+        public static Collection<Object[]> data() {
184
+            return Arrays.asList(new Object[][]{
185
+                    {"0", new int[] {0}},
186
+                    {"0 1", new int[] {1}},
187
+                    {  "0\n"
188
+                     + "1", new int[] {0, 1}},
189
+                    {  "0 1\n"
190
+                     + "2 3", new int[] {1, 3}},
191
+                    {  "0 1 2\n"
192
+                     + "3 4 5\n"
193
+                     + "6 7 8", new int[] {2, 5, 8}}
194
+            });
195
+        }
196
+
197
+        public GetLastColumnTest(String matrixAsString, int[] lastColumn) {
198
+            this.matrix = new Matrix(matrixAsString);
199
+            this.lastColumn = lastColumn;
200
+        }
201
+
202
+        @Test
203
+        public void getLastColumnTest() {
204
+            assertArrayEquals(lastColumn, matrix.getColumn(matrix.getColumnsCount() - 1));
205
+        }
206
+    }
207
+}

+ 91
- 91
exercises/meetup/src/test/java/MeetupTest.java Wyświetl plik

@@ -13,7 +13,7 @@ public class MeetupTest {
13 13
     public void test_monteenth_of_may_2013() {
14 14
         LocalDate expected = LocalDate.of(2013, 5, 13);
15 15
         Meetup meetup = new Meetup(5, 2013);
16
-        assertEquals(meetup.day(DayOfWeek.MONDAY, MeetupSchedule.TEENTH), expected);
16
+        assertEquals(expected, meetup.day(DayOfWeek.MONDAY, MeetupSchedule.TEENTH));
17 17
     }
18 18
 
19 19
     @Ignore
@@ -21,7 +21,7 @@ public class MeetupTest {
21 21
     public void test_monteenth_of_august_2013() {
22 22
         LocalDate expected = LocalDate.of(2013, 8, 19);
23 23
         Meetup meetup = new Meetup(8, 2013);
24
-        assertEquals(meetup.day(DayOfWeek.MONDAY, MeetupSchedule.TEENTH), expected);
24
+        assertEquals(expected, meetup.day(DayOfWeek.MONDAY, MeetupSchedule.TEENTH));
25 25
     }
26 26
 
27 27
     @Ignore
@@ -29,7 +29,7 @@ public class MeetupTest {
29 29
     public void test_monteenth_of_september_2013() {
30 30
         LocalDate expected = LocalDate.of(2013, 9, 16);
31 31
         Meetup meetup = new Meetup(9, 2013);
32
-        assertEquals(meetup.day(DayOfWeek.MONDAY, MeetupSchedule.TEENTH), expected);
32
+        assertEquals(expected, meetup.day(DayOfWeek.MONDAY, MeetupSchedule.TEENTH));
33 33
     }
34 34
 
35 35
     @Ignore
@@ -37,7 +37,7 @@ public class MeetupTest {
37 37
     public void test_tuesteenth_of_march_2013() {
38 38
         LocalDate expected = LocalDate.of(2013, 3, 19);
39 39
         Meetup meetup = new Meetup(3, 2013);
40
-        assertEquals(meetup.day(DayOfWeek.TUESDAY, MeetupSchedule.TEENTH), expected);
40
+        assertEquals(expected, meetup.day(DayOfWeek.TUESDAY, MeetupSchedule.TEENTH));
41 41
     }
42 42
 
43 43
     @Ignore
@@ -45,7 +45,7 @@ public class MeetupTest {
45 45
     public void test_tuesteenth_of_april_2013() {
46 46
         LocalDate expected = LocalDate.of(2013, 4, 16);
47 47
         Meetup meetup = new Meetup(4, 2013);
48
-        assertEquals(meetup.day(DayOfWeek.TUESDAY, MeetupSchedule.TEENTH), expected);
48
+        assertEquals(expected, meetup.day(DayOfWeek.TUESDAY, MeetupSchedule.TEENTH));
49 49
     }
50 50
 
51 51
     @Ignore
@@ -53,7 +53,7 @@ public class MeetupTest {
53 53
     public void test_tuesteenth_of_august_2013() {
54 54
         LocalDate expected = LocalDate.of(2013, 8, 13);
55 55
         Meetup meetup = new Meetup(8, 2013);
56
-        assertEquals(meetup.day(DayOfWeek.TUESDAY, MeetupSchedule.TEENTH), expected);
56
+        assertEquals(expected, meetup.day(DayOfWeek.TUESDAY, MeetupSchedule.TEENTH));
57 57
     }
58 58
 
59 59
     @Ignore
@@ -61,7 +61,7 @@ public class MeetupTest {
61 61
     public void test_wednesteenth_of_january_2013() {
62 62
         LocalDate expected = LocalDate.of(2013, 1, 16);
63 63
         Meetup meetup = new Meetup(1, 2013);
64
-        assertEquals(meetup.day(DayOfWeek.WEDNESDAY, MeetupSchedule.TEENTH), expected);
64
+        assertEquals(expected, meetup.day(DayOfWeek.WEDNESDAY, MeetupSchedule.TEENTH));
65 65
     }
66 66
 
67 67
     @Ignore
@@ -69,7 +69,7 @@ public class MeetupTest {
69 69
     public void test_wednesteenth_of_february_2013() {
70 70
         LocalDate expected = LocalDate.of(2013, 2, 13);
71 71
         Meetup meetup = new Meetup(2, 2013);
72
-        assertEquals(meetup.day(DayOfWeek.WEDNESDAY, MeetupSchedule.TEENTH), expected);
72
+        assertEquals(expected, meetup.day(DayOfWeek.WEDNESDAY, MeetupSchedule.TEENTH));
73 73
     }
74 74
 
75 75
     @Ignore
@@ -77,7 +77,7 @@ public class MeetupTest {
77 77
     public void test_wednesteenth_of_june_2013() {
78 78
         LocalDate expected = LocalDate.of(2013, 6, 19);
79 79
         Meetup meetup = new Meetup(6, 2013);
80
-        assertEquals(meetup.day(DayOfWeek.WEDNESDAY, MeetupSchedule.TEENTH), expected);
80
+        assertEquals(expected, meetup.day(DayOfWeek.WEDNESDAY, MeetupSchedule.TEENTH));
81 81
     }
82 82
 
83 83
     @Ignore
@@ -85,7 +85,7 @@ public class MeetupTest {
85 85
     public void test_thursteenth_of_may_2013() {
86 86
         LocalDate expected = LocalDate.of(2013, 5, 16);
87 87
         Meetup meetup = new Meetup(5, 2013);
88
-        assertEquals(meetup.day(DayOfWeek.THURSDAY, MeetupSchedule.TEENTH), expected);
88
+        assertEquals(expected, meetup.day(DayOfWeek.THURSDAY, MeetupSchedule.TEENTH));
89 89
     }
90 90
 
91 91
     @Ignore
@@ -93,7 +93,7 @@ public class MeetupTest {
93 93
     public void test_thursteenth_of_june_2013() {
94 94
         LocalDate expected = LocalDate.of(2013, 6, 13);
95 95
         Meetup meetup = new Meetup(6, 2013);
96
-        assertEquals(meetup.day(DayOfWeek.THURSDAY, MeetupSchedule.TEENTH), expected);
96
+        assertEquals(expected, meetup.day(DayOfWeek.THURSDAY, MeetupSchedule.TEENTH));
97 97
     }
98 98
 
99 99
     @Ignore
@@ -101,7 +101,7 @@ public class MeetupTest {
101 101
     public void test_thursteenth_of_september_2013() {
102 102
         LocalDate expected = LocalDate.of(2013, 9, 19);
103 103
         Meetup meetup = new Meetup(9, 2013);
104
-        assertEquals(meetup.day(DayOfWeek.THURSDAY, MeetupSchedule.TEENTH), expected);
104
+        assertEquals(expected, meetup.day(DayOfWeek.THURSDAY, MeetupSchedule.TEENTH));
105 105
     }
106 106
 
107 107
     @Ignore
@@ -109,7 +109,7 @@ public class MeetupTest {
109 109
     public void test_friteenth_of_april_2013() {
110 110
         LocalDate expected = LocalDate.of(2013, 4, 19);
111 111
         Meetup meetup = new Meetup(4, 2013);
112
-        assertEquals(meetup.day(DayOfWeek.FRIDAY, MeetupSchedule.TEENTH), expected);
112
+        assertEquals(expected, meetup.day(DayOfWeek.FRIDAY, MeetupSchedule.TEENTH));
113 113
     }
114 114
 
115 115
     @Ignore
@@ -117,7 +117,7 @@ public class MeetupTest {
117 117
     public void test_friteenth_of_august_2013() {
118 118
         LocalDate expected = LocalDate.of(2013, 8, 16);
119 119
         Meetup meetup = new Meetup(8, 2013);
120
-        assertEquals(meetup.day(DayOfWeek.FRIDAY, MeetupSchedule.TEENTH), expected);
120
+        assertEquals(expected, meetup.day(DayOfWeek.FRIDAY, MeetupSchedule.TEENTH));
121 121
     }
122 122
 
123 123
     @Ignore
@@ -125,7 +125,7 @@ public class MeetupTest {
125 125
     public void test_friteenth_of_september_2013() {
126 126
         LocalDate expected = LocalDate.of(2013, 9, 13);
127 127
         Meetup meetup = new Meetup(9, 2013);
128
-        assertEquals(meetup.day(DayOfWeek.FRIDAY, MeetupSchedule.TEENTH), expected);
128
+        assertEquals(expected, meetup.day(DayOfWeek.FRIDAY, MeetupSchedule.TEENTH));
129 129
     }
130 130
 
131 131
     @Ignore
@@ -133,7 +133,7 @@ public class MeetupTest {
133 133
     public void test_saturteenth_of_february_2013() {
134 134
         LocalDate expected = LocalDate.of(2013, 2, 16);
135 135
         Meetup meetup = new Meetup(2, 2013);
136
-        assertEquals(meetup.day(DayOfWeek.SATURDAY, MeetupSchedule.TEENTH), expected);
136
+        assertEquals(expected, meetup.day(DayOfWeek.SATURDAY, MeetupSchedule.TEENTH));
137 137
     }
138 138
 
139 139
     @Ignore
@@ -141,7 +141,7 @@ public class MeetupTest {
141 141
     public void test_saturteenth_of_april_2013() {
142 142
         LocalDate expected = LocalDate.of(2013, 4, 13);
143 143
         Meetup meetup = new Meetup(4, 2013);
144
-        assertEquals(meetup.day(DayOfWeek.SATURDAY, MeetupSchedule.TEENTH), expected);
144
+        assertEquals(expected, meetup.day(DayOfWeek.SATURDAY, MeetupSchedule.TEENTH));
145 145
     }
146 146
 
147 147
     @Ignore
@@ -149,7 +149,7 @@ public class MeetupTest {
149 149
     public void test_saturteenth_of_october_2013() {
150 150
         LocalDate expected = LocalDate.of(2013, 10, 19);
151 151
         Meetup meetup = new Meetup(10, 2013);
152
-        assertEquals(meetup.day(DayOfWeek.SATURDAY, MeetupSchedule.TEENTH), expected);
152
+        assertEquals(expected, meetup.day(DayOfWeek.SATURDAY, MeetupSchedule.TEENTH));
153 153
     }
154 154
 
155 155
     @Ignore
@@ -157,7 +157,7 @@ public class MeetupTest {
157 157
     public void test_sunteenth_of_may_2013() {
158 158
         LocalDate expected = LocalDate.of(2013, 5, 19);
159 159
         Meetup meetup = new Meetup(5, 2013);
160
-        assertEquals(meetup.day(DayOfWeek.SUNDAY, MeetupSchedule.TEENTH), expected);
160
+        assertEquals(expected, meetup.day(DayOfWeek.SUNDAY, MeetupSchedule.TEENTH));
161 161
     }
162 162
 
163 163
     @Ignore
@@ -165,7 +165,7 @@ public class MeetupTest {
165 165
     public void test_sunteenth_of_june_2013() {
166 166
         LocalDate expected = LocalDate.of(2013, 6, 16);
167 167
         Meetup meetup = new Meetup(6, 2013);
168
-        assertEquals(meetup.day(DayOfWeek.SUNDAY, MeetupSchedule.TEENTH), expected);
168
+        assertEquals(expected, meetup.day(DayOfWeek.SUNDAY, MeetupSchedule.TEENTH));
169 169
     }
170 170
 
171 171
     @Ignore
@@ -173,7 +173,7 @@ public class MeetupTest {
173 173
     public void test_sunteenth_of_october_2013() {
174 174
         LocalDate expected = LocalDate.of(2013, 10, 13);
175 175
         Meetup meetup = new Meetup(10, 2013);
176
-        assertEquals(meetup.day(DayOfWeek.SUNDAY, MeetupSchedule.TEENTH), expected);
176
+        assertEquals(expected, meetup.day(DayOfWeek.SUNDAY, MeetupSchedule.TEENTH));
177 177
     }
178 178
 
179 179
     @Ignore
@@ -181,7 +181,7 @@ public class MeetupTest {
181 181
     public void test_first_monday_of_march_2013() {
182 182
         LocalDate expected = LocalDate.of(2013, 3, 4);
183 183
         Meetup meetup = new Meetup(3, 2013);
184
-        assertEquals(meetup.day(DayOfWeek.MONDAY, MeetupSchedule.FIRST), expected);
184
+        assertEquals(expected, meetup.day(DayOfWeek.MONDAY, MeetupSchedule.FIRST));
185 185
     }
186 186
 
187 187
     @Ignore
@@ -189,7 +189,7 @@ public class MeetupTest {
189 189
     public void test_first_monday_of_april_2013() {
190 190
         LocalDate expected = LocalDate.of(2013, 4, 1);
191 191
         Meetup meetup = new Meetup(4, 2013);
192
-        assertEquals(meetup.day(DayOfWeek.MONDAY, MeetupSchedule.FIRST), expected);
192
+        assertEquals(expected, meetup.day(DayOfWeek.MONDAY, MeetupSchedule.FIRST));
193 193
     }
194 194
 
195 195
     @Ignore
@@ -197,7 +197,7 @@ public class MeetupTest {
197 197
     public void test_first_tuesday_of_may_2013() {
198 198
         LocalDate expected = LocalDate.of(2013, 5, 7);
199 199
         Meetup meetup = new Meetup(5, 2013);
200
-        assertEquals(meetup.day(DayOfWeek.TUESDAY, MeetupSchedule.FIRST), expected);
200
+        assertEquals(expected, meetup.day(DayOfWeek.TUESDAY, MeetupSchedule.FIRST));
201 201
     }
202 202
 
203 203
     @Ignore
@@ -205,7 +205,7 @@ public class MeetupTest {
205 205
     public void test_first_tuesday_of_june_2013() {
206 206
         LocalDate expected = LocalDate.of(2013, 6, 4);
207 207
         Meetup meetup = new Meetup(6, 2013);
208
-        assertEquals(meetup.day(DayOfWeek.TUESDAY, MeetupSchedule.FIRST), expected);
208
+        assertEquals(expected, meetup.day(DayOfWeek.TUESDAY, MeetupSchedule.FIRST));
209 209
     }
210 210
 
211 211
     @Ignore
@@ -213,7 +213,7 @@ public class MeetupTest {
213 213
     public void test_first_wednesday_of_july_2013() {
214 214
         LocalDate expected = LocalDate.of(2013, 7, 3);
215 215
         Meetup meetup = new Meetup(7, 2013);
216
-        assertEquals(meetup.day(DayOfWeek.WEDNESDAY, MeetupSchedule.FIRST), expected);
216
+        assertEquals(expected, meetup.day(DayOfWeek.WEDNESDAY, MeetupSchedule.FIRST));
217 217
     }
218 218
 
219 219
     @Ignore
@@ -221,7 +221,7 @@ public class MeetupTest {
221 221
     public void test_first_wednesday_of_august_2013() {
222 222
         LocalDate expected = LocalDate.of(2013, 8, 7);
223 223
         Meetup meetup = new Meetup(8, 2013);
224
-        assertEquals(meetup.day(DayOfWeek.WEDNESDAY, MeetupSchedule.FIRST), expected);
224
+        assertEquals(expected, meetup.day(DayOfWeek.WEDNESDAY, MeetupSchedule.FIRST));
225 225
     }
226 226
 
227 227
     @Ignore
@@ -229,7 +229,7 @@ public class MeetupTest {
229 229
     public void test_first_thursday_of_september_2013() {
230 230
         LocalDate expected = LocalDate.of(2013, 9, 5);
231 231
         Meetup meetup = new Meetup(9, 2013);
232
-        assertEquals(meetup.day(DayOfWeek.THURSDAY, MeetupSchedule.FIRST), expected);
232
+        assertEquals(expected, meetup.day(DayOfWeek.THURSDAY, MeetupSchedule.FIRST));
233 233
     }
234 234
 
235 235
     @Ignore
@@ -237,7 +237,7 @@ public class MeetupTest {
237 237
     public void test_first_thursday_of_october_2013() {
238 238
         LocalDate expected = LocalDate.of(2013, 10, 3);
239 239
         Meetup meetup = new Meetup(10, 2013);
240
-        assertEquals(meetup.day(DayOfWeek.THURSDAY, MeetupSchedule.FIRST), expected);
240
+        assertEquals(expected, meetup.day(DayOfWeek.THURSDAY, MeetupSchedule.FIRST));
241 241
     }
242 242
 
243 243
     @Ignore
@@ -245,7 +245,7 @@ public class MeetupTest {
245 245
     public void test_first_friday_of_november_2013() {
246 246
         LocalDate expected = LocalDate.of(2013, 11, 1);
247 247
         Meetup meetup = new Meetup(11, 2013);
248
-        assertEquals(meetup.day(DayOfWeek.FRIDAY, MeetupSchedule.FIRST), expected);
248
+        assertEquals(expected, meetup.day(DayOfWeek.FRIDAY, MeetupSchedule.FIRST));
249 249
     }
250 250
 
251 251
     @Ignore
@@ -253,7 +253,7 @@ public class MeetupTest {
253 253
     public void test_first_friday_of_december_2013() {
254 254
         LocalDate expected = LocalDate.of(2013, 12, 6);
255 255
         Meetup meetup = new Meetup(12, 2013);
256
-        assertEquals(meetup.day(DayOfWeek.FRIDAY, MeetupSchedule.FIRST), expected);
256
+        assertEquals(expected, meetup.day(DayOfWeek.FRIDAY, MeetupSchedule.FIRST));
257 257
     }
258 258
 
259 259
     @Ignore
@@ -261,7 +261,7 @@ public class MeetupTest {
261 261
     public void test_first_saturday_of_january_2013() {
262 262
         LocalDate expected = LocalDate.of(2013, 1, 5);
263 263
         Meetup meetup = new Meetup(1, 2013);
264
-        assertEquals(meetup.day(DayOfWeek.SATURDAY, MeetupSchedule.FIRST), expected);
264
+        assertEquals(expected, meetup.day(DayOfWeek.SATURDAY, MeetupSchedule.FIRST));
265 265
     }
266 266
 
267 267
     @Ignore
@@ -269,7 +269,7 @@ public class MeetupTest {
269 269
     public void test_first_saturday_of_february_2013() {
270 270
         LocalDate expected = LocalDate.of(2013, 2, 2);
271 271
         Meetup meetup = new Meetup(2, 2013);
272
-        assertEquals(meetup.day(DayOfWeek.SATURDAY, MeetupSchedule.FIRST), expected);
272
+        assertEquals(expected, meetup.day(DayOfWeek.SATURDAY, MeetupSchedule.FIRST));
273 273
     }
274 274
 
275 275
     @Ignore
@@ -277,7 +277,7 @@ public class MeetupTest {
277 277
     public void test_first_sunday_of_march_2013() {
278 278
         LocalDate expected = LocalDate.of(2013, 3, 3);
279 279
         Meetup meetup = new Meetup(3, 2013);
280
-        assertEquals(meetup.day(DayOfWeek.SUNDAY, MeetupSchedule.FIRST), expected);
280
+        assertEquals(expected, meetup.day(DayOfWeek.SUNDAY, MeetupSchedule.FIRST));
281 281
     }
282 282
 
283 283
     @Ignore
@@ -285,7 +285,7 @@ public class MeetupTest {
285 285
     public void test_first_sunday_of_april_2013() {
286 286
         LocalDate expected = LocalDate.of(2013, 4, 7);
287 287
         Meetup meetup = new Meetup(4, 2013);
288
-        assertEquals(meetup.day(DayOfWeek.SUNDAY, MeetupSchedule.FIRST), expected);
288
+        assertEquals(expected, meetup.day(DayOfWeek.SUNDAY, MeetupSchedule.FIRST));
289 289
     }
290 290
 
291 291
     @Ignore
@@ -293,7 +293,7 @@ public class MeetupTest {
293 293
     public void test_second_monday_of_march_2013() {
294 294
         LocalDate expected = LocalDate.of(2013, 3, 11);
295 295
         Meetup meetup = new Meetup(3, 2013);
296
-        assertEquals(meetup.day(DayOfWeek.MONDAY, MeetupSchedule.SECOND), expected);
296
+        assertEquals(expected, meetup.day(DayOfWeek.MONDAY, MeetupSchedule.SECOND));
297 297
     }
298 298
 
299 299
     @Ignore
@@ -301,7 +301,7 @@ public class MeetupTest {
301 301
     public void test_second_monday_of_april_2013() {
302 302
         LocalDate expected = LocalDate.of(2013, 4, 8);
303 303
         Meetup meetup = new Meetup(4, 2013);
304
-        assertEquals(meetup.day(DayOfWeek.MONDAY, MeetupSchedule.SECOND), expected);
304
+        assertEquals(expected, meetup.day(DayOfWeek.MONDAY, MeetupSchedule.SECOND));
305 305
     }
306 306
 
307 307
     @Ignore
@@ -309,7 +309,7 @@ public class MeetupTest {
309 309
     public void test_second_tuesday_of_may_2013() {
310 310
         LocalDate expected = LocalDate.of(2013, 5, 14);
311 311
         Meetup meetup = new Meetup(5, 2013);
312
-        assertEquals(meetup.day(DayOfWeek.TUESDAY, MeetupSchedule.SECOND), expected);
312
+        assertEquals(expected, meetup.day(DayOfWeek.TUESDAY, MeetupSchedule.SECOND));
313 313
     }
314 314
 
315 315
     @Ignore
@@ -317,7 +317,7 @@ public class MeetupTest {
317 317
     public void test_second_tuesday_of_june_2013() {
318 318
         LocalDate expected = LocalDate.of(2013, 6, 11);
319 319
         Meetup meetup = new Meetup(6, 2013);
320
-        assertEquals(meetup.day(DayOfWeek.TUESDAY, MeetupSchedule.SECOND), expected);
320
+        assertEquals(expected, meetup.day(DayOfWeek.TUESDAY, MeetupSchedule.SECOND));
321 321
     }
322 322
 
323 323
     @Ignore
@@ -325,7 +325,7 @@ public class MeetupTest {
325 325
     public void test_second_wednesday_of_july_2013() {
326 326
         LocalDate expected = LocalDate.of(2013, 7, 10);
327 327
         Meetup meetup = new Meetup(7, 2013);
328
-        assertEquals(meetup.day(DayOfWeek.WEDNESDAY, MeetupSchedule.SECOND), expected);
328
+        assertEquals(expected, meetup.day(DayOfWeek.WEDNESDAY, MeetupSchedule.SECOND));
329 329
     }
330 330
 
331 331
     @Ignore
@@ -333,7 +333,7 @@ public class MeetupTest {
333 333
     public void test_second_wednesday_of_august_2013() {
334 334
         LocalDate expected = LocalDate.of(2013, 8, 14);
335 335
         Meetup meetup = new Meetup(8, 2013);
336
-        assertEquals(meetup.day(DayOfWeek.WEDNESDAY, MeetupSchedule.SECOND), expected);
336
+        assertEquals(expected, meetup.day(DayOfWeek.WEDNESDAY, MeetupSchedule.SECOND));
337 337
     }
338 338
 
339 339
     @Ignore
@@ -341,7 +341,7 @@ public class MeetupTest {
341 341
     public void test_second_thursday_of_september_2013() {
342 342
         LocalDate expected = LocalDate.of(2013, 9, 12);
343 343
         Meetup meetup = new Meetup(9, 2013);
344
-        assertEquals(meetup.day(DayOfWeek.THURSDAY, MeetupSchedule.SECOND), expected);
344
+        assertEquals(expected, meetup.day(DayOfWeek.THURSDAY, MeetupSchedule.SECOND));
345 345
     }
346 346
 
347 347
     @Ignore
@@ -349,7 +349,7 @@ public class MeetupTest {
349 349
     public void test_second_thursday_of_october_2013() {
350 350
         LocalDate expected = LocalDate.of(2013, 10, 10);
351 351
         Meetup meetup = new Meetup(10, 2013);
352
-        assertEquals(meetup.day(DayOfWeek.THURSDAY, MeetupSchedule.SECOND), expected);
352
+        assertEquals(expected, meetup.day(DayOfWeek.THURSDAY, MeetupSchedule.SECOND));
353 353
     }
354 354
 
355 355
     @Ignore
@@ -357,7 +357,7 @@ public class MeetupTest {
357 357
     public void test_second_friday_of_november_2013() {
358 358
         LocalDate expected = LocalDate.of(2013, 11, 8);
359 359
         Meetup meetup = new Meetup(11, 2013);
360
-        assertEquals(meetup.day(DayOfWeek.FRIDAY, MeetupSchedule.SECOND), expected);
360
+        assertEquals(expected, meetup.day(DayOfWeek.FRIDAY, MeetupSchedule.SECOND));
361 361
     }
362 362
 
363 363
     @Ignore
@@ -365,7 +365,7 @@ public class MeetupTest {
365 365
     public void test_second_friday_of_december_2013() {
366 366
         LocalDate expected = LocalDate.of(2013, 12, 13);
367 367
         Meetup meetup = new Meetup(12, 2013);
368
-        assertEquals(meetup.day(DayOfWeek.FRIDAY, MeetupSchedule.SECOND), expected);
368
+        assertEquals(expected, meetup.day(DayOfWeek.FRIDAY, MeetupSchedule.SECOND));
369 369
     }
370 370
 
371 371
     @Ignore
@@ -373,7 +373,7 @@ public class MeetupTest {
373 373
     public void test_second_saturday_of_january_2013() {
374 374
         LocalDate expected = LocalDate.of(2013, 1, 12);
375 375
         Meetup meetup = new Meetup(1, 2013);
376
-        assertEquals(meetup.day(DayOfWeek.SATURDAY, MeetupSchedule.SECOND), expected);
376
+        assertEquals(expected, meetup.day(DayOfWeek.SATURDAY, MeetupSchedule.SECOND));
377 377
     }
378 378
 
379 379
     @Ignore
@@ -381,7 +381,7 @@ public class MeetupTest {
381 381
     public void test_second_saturday_of_february_2013() {
382 382
         LocalDate expected = LocalDate.of(2013, 2, 9);
383 383
         Meetup meetup = new Meetup(2, 2013);
384
-        assertEquals(meetup.day(DayOfWeek.SATURDAY, MeetupSchedule.SECOND), expected);
384
+        assertEquals(expected, meetup.day(DayOfWeek.SATURDAY, MeetupSchedule.SECOND));
385 385
     }
386 386
 
387 387
     @Ignore
@@ -389,7 +389,7 @@ public class MeetupTest {
389 389
     public void test_second_sunday_of_march_2013() {
390 390
         LocalDate expected = LocalDate.of(2013, 3, 10);
391 391
         Meetup meetup = new Meetup(3, 2013);
392
-        assertEquals(meetup.day(DayOfWeek.SUNDAY, MeetupSchedule.SECOND), expected);
392
+        assertEquals(expected, meetup.day(DayOfWeek.SUNDAY, MeetupSchedule.SECOND));
393 393
     }
394 394
 
395 395
     @Ignore
@@ -397,7 +397,7 @@ public class MeetupTest {
397 397
     public void test_second_sunday_of_april_2013() {
398 398
         LocalDate expected = LocalDate.of(2013, 4, 14);
399 399
         Meetup meetup = new Meetup(4, 2013);
400
-        assertEquals(meetup.day(DayOfWeek.SUNDAY, MeetupSchedule.SECOND), expected);
400
+        assertEquals(expected, meetup.day(DayOfWeek.SUNDAY, MeetupSchedule.SECOND));
401 401
     }
402 402
 
403 403
     @Ignore
@@ -405,7 +405,7 @@ public class MeetupTest {
405 405
     public void test_third_monday_of_march_2013() {
406 406
         LocalDate expected = LocalDate.of(2013, 3, 18);
407 407
         Meetup meetup = new Meetup(3, 2013);
408
-        assertEquals(meetup.day(DayOfWeek.MONDAY, MeetupSchedule.THIRD), expected);
408
+        assertEquals(expected, meetup.day(DayOfWeek.MONDAY, MeetupSchedule.THIRD));
409 409
     }
410 410
 
411 411
     @Ignore
@@ -413,7 +413,7 @@ public class MeetupTest {
413 413
     public void test_third_monday_of_april_2013() {
414 414
         LocalDate expected = LocalDate.of(2013, 4, 15);
415 415
         Meetup meetup = new Meetup(4, 2013);
416
-        assertEquals(meetup.day(DayOfWeek.MONDAY, MeetupSchedule.THIRD), expected);
416
+        assertEquals(expected, meetup.day(DayOfWeek.MONDAY, MeetupSchedule.THIRD));
417 417
     }
418 418
 
419 419
     @Ignore
@@ -421,7 +421,7 @@ public class MeetupTest {
421 421
     public void test_third_tuesday_of_may_2013() {
422 422
         LocalDate expected = LocalDate.of(2013, 5, 21);
423 423
         Meetup meetup = new Meetup(5, 2013);
424
-        assertEquals(meetup.day(DayOfWeek.TUESDAY, MeetupSchedule.THIRD), expected);
424
+        assertEquals(expected, meetup.day(DayOfWeek.TUESDAY, MeetupSchedule.THIRD));
425 425
     }
426 426
 
427 427
     @Ignore
@@ -429,7 +429,7 @@ public class MeetupTest {
429 429
     public void test_third_tuesday_of_june_2013() {
430 430
         LocalDate expected = LocalDate.of(2013, 6, 18);
431 431
         Meetup meetup = new Meetup(6, 2013);
432
-        assertEquals(meetup.day(DayOfWeek.TUESDAY, MeetupSchedule.THIRD), expected);
432
+        assertEquals(expected, meetup.day(DayOfWeek.TUESDAY, MeetupSchedule.THIRD));
433 433
     }
434 434
 
435 435
     @Ignore
@@ -437,7 +437,7 @@ public class MeetupTest {
437 437
     public void test_third_wednesday_of_july_2013() {
438 438
         LocalDate expected = LocalDate.of(2013, 7, 17);
439 439
         Meetup meetup = new Meetup(7, 2013);
440
-        assertEquals(meetup.day(DayOfWeek.WEDNESDAY, MeetupSchedule.THIRD), expected);
440
+        assertEquals(expected, meetup.day(DayOfWeek.WEDNESDAY, MeetupSchedule.THIRD));
441 441
     }
442 442
 
443 443
     @Ignore
@@ -445,7 +445,7 @@ public class MeetupTest {
445 445
     public void test_third_wednesday_of_august_2013() {
446 446
         LocalDate expected = LocalDate.of(2013, 8, 21);
447 447
         Meetup meetup = new Meetup(8, 2013);
448
-        assertEquals(meetup.day(DayOfWeek.WEDNESDAY, MeetupSchedule.THIRD), expected);
448
+        assertEquals(expected, meetup.day(DayOfWeek.WEDNESDAY, MeetupSchedule.THIRD));
449 449
     }
450 450
 
451 451
     @Ignore
@@ -453,7 +453,7 @@ public class MeetupTest {
453 453
     public void test_third_thursday_of_september_2013() {
454 454
         LocalDate expected = LocalDate.of(2013, 9, 19);
455 455
         Meetup meetup = new Meetup(9, 2013);
456
-        assertEquals(meetup.day(DayOfWeek.THURSDAY, MeetupSchedule.THIRD), expected);
456
+        assertEquals(expected, meetup.day(DayOfWeek.THURSDAY, MeetupSchedule.THIRD));
457 457
     }
458 458
 
459 459
     @Ignore
@@ -461,7 +461,7 @@ public class MeetupTest {
461 461
     public void test_third_thursday_of_october_2013() {
462 462
         LocalDate expected = LocalDate.of(2013, 10, 17);
463 463
         Meetup meetup = new Meetup(10, 2013);
464
-        assertEquals(meetup.day(DayOfWeek.THURSDAY, MeetupSchedule.THIRD), expected);
464
+        assertEquals(expected, meetup.day(DayOfWeek.THURSDAY, MeetupSchedule.THIRD));
465 465
     }
466 466
 
467 467
     @Ignore
@@ -469,7 +469,7 @@ public class MeetupTest {
469 469
     public void test_third_friday_of_november_2013() {
470 470
         LocalDate expected = LocalDate.of(2013, 11, 15);
471 471
         Meetup meetup = new Meetup(11, 2013);
472
-        assertEquals(meetup.day(DayOfWeek.FRIDAY, MeetupSchedule.THIRD), expected);
472
+        assertEquals(expected, meetup.day(DayOfWeek.FRIDAY, MeetupSchedule.THIRD));
473 473
     }
474 474
 
475 475
     @Ignore
@@ -477,7 +477,7 @@ public class MeetupTest {
477 477
     public void test_third_friday_of_december_2013() {
478 478
         LocalDate expected = LocalDate.of(2013, 12, 20);
479 479
         Meetup meetup = new Meetup(12, 2013);
480
-        assertEquals(meetup.day(DayOfWeek.FRIDAY, MeetupSchedule.THIRD), expected);
480
+        assertEquals(expected, meetup.day(DayOfWeek.FRIDAY, MeetupSchedule.THIRD));
481 481
     }
482 482
 
483 483
     @Ignore
@@ -485,7 +485,7 @@ public class MeetupTest {
485 485
     public void test_third_saturday_of_january_2013() {
486 486
         LocalDate expected = LocalDate.of(2013, 1, 19);
487 487
         Meetup meetup = new Meetup(1, 2013);
488
-        assertEquals(meetup.day(DayOfWeek.SATURDAY, MeetupSchedule.THIRD), expected);
488
+        assertEquals(expected, meetup.day(DayOfWeek.SATURDAY, MeetupSchedule.THIRD));
489 489
     }
490 490
 
491 491
     @Ignore
@@ -493,7 +493,7 @@ public class MeetupTest {
493 493
     public void test_third_saturday_of_february_2013() {
494 494
         LocalDate expected = LocalDate.of(2013, 2, 16);
495 495
         Meetup meetup = new Meetup(2, 2013);
496
-        assertEquals(meetup.day(DayOfWeek.SATURDAY, MeetupSchedule.THIRD), expected);
496
+        assertEquals(expected, meetup.day(DayOfWeek.SATURDAY, MeetupSchedule.THIRD));
497 497
     }
498 498
 
499 499
     @Ignore
@@ -501,7 +501,7 @@ public class MeetupTest {
501 501
     public void test_third_sunday_of_march_2013() {
502 502
         LocalDate expected = LocalDate.of(2013, 3, 17);
503 503
         Meetup meetup = new Meetup(3, 2013);
504
-        assertEquals(meetup.day(DayOfWeek.SUNDAY, MeetupSchedule.THIRD), expected);
504
+        assertEquals(expected, meetup.day(DayOfWeek.SUNDAY, MeetupSchedule.THIRD));
505 505
     }
506 506
 
507 507
     @Ignore
@@ -509,7 +509,7 @@ public class MeetupTest {
509 509
     public void test_third_sunday_of_april_2013() {
510 510
         LocalDate expected = LocalDate.of(2013, 4, 21);
511 511
         Meetup meetup = new Meetup(4, 2013);
512
-        assertEquals(meetup.day(DayOfWeek.SUNDAY, MeetupSchedule.THIRD), expected);
512
+        assertEquals(expected, meetup.day(DayOfWeek.SUNDAY, MeetupSchedule.THIRD));
513 513
     }
514 514
 
515 515
     @Ignore
@@ -517,7 +517,7 @@ public class MeetupTest {
517 517
     public void test_fourth_monday_of_march_2013() {
518 518
         LocalDate expected = LocalDate.of(2013, 3, 25);
519 519
         Meetup meetup = new Meetup(3, 2013);
520
-        assertEquals(meetup.day(DayOfWeek.MONDAY, MeetupSchedule.FOURTH), expected);
520
+        assertEquals(expected, meetup.day(DayOfWeek.MONDAY, MeetupSchedule.FOURTH));
521 521
     }
522 522
 
523 523
     @Ignore
@@ -525,7 +525,7 @@ public class MeetupTest {
525 525
     public void test_fourth_monday_of_april_2013() {
526 526
         LocalDate expected = LocalDate.of(2013, 4, 22);
527 527
         Meetup meetup = new Meetup(4, 2013);
528
-        assertEquals(meetup.day(DayOfWeek.MONDAY, MeetupSchedule.FOURTH), expected);
528
+        assertEquals(expected, meetup.day(DayOfWeek.MONDAY, MeetupSchedule.FOURTH));
529 529
     }
530 530
 
531 531
     @Ignore
@@ -533,7 +533,7 @@ public class MeetupTest {
533 533
     public void test_fourth_tuesday_of_may_2013() {
534 534
         LocalDate expected = LocalDate.of(2013, 5, 28);
535 535
         Meetup meetup = new Meetup(5, 2013);
536
-        assertEquals(meetup.day(DayOfWeek.TUESDAY, MeetupSchedule.FOURTH), expected);
536
+        assertEquals(expected, meetup.day(DayOfWeek.TUESDAY, MeetupSchedule.FOURTH));
537 537
     }
538 538
 
539 539
     @Ignore
@@ -541,7 +541,7 @@ public class MeetupTest {
541 541
     public void test_fourth_tuesday_of_june_2013() {
542 542
         LocalDate expected = LocalDate.of(2013, 6, 25);
543 543
         Meetup meetup = new Meetup(6, 2013);
544
-        assertEquals(meetup.day(DayOfWeek.TUESDAY, MeetupSchedule.FOURTH), expected);
544
+        assertEquals(expected, meetup.day(DayOfWeek.TUESDAY, MeetupSchedule.FOURTH));
545 545
     }
546 546
 
547 547
     @Ignore
@@ -549,7 +549,7 @@ public class MeetupTest {
549 549
     public void test_fourth_wednesday_of_july_2013() {
550 550
         LocalDate expected = LocalDate.of(2013, 7, 24);
551 551
         Meetup meetup = new Meetup(7, 2013);
552
-        assertEquals(meetup.day(DayOfWeek.WEDNESDAY, MeetupSchedule.FOURTH), expected);
552
+        assertEquals(expected, meetup.day(DayOfWeek.WEDNESDAY, MeetupSchedule.FOURTH));
553 553
     }
554 554
 
555 555
     @Ignore
@@ -557,7 +557,7 @@ public class MeetupTest {
557 557
     public void test_fourth_wednesday_of_august_2013() {
558 558
         LocalDate expected = LocalDate.of(2013, 8, 28);
559 559
         Meetup meetup = new Meetup(8, 2013);
560
-        assertEquals(meetup.day(DayOfWeek.WEDNESDAY, MeetupSchedule.FOURTH), expected);
560
+        assertEquals(expected, meetup.day(DayOfWeek.WEDNESDAY, MeetupSchedule.FOURTH));
561 561
     }
562 562
 
563 563
     @Ignore
@@ -565,7 +565,7 @@ public class MeetupTest {
565 565
     public void test_fourth_thursday_of_september_2013() {
566 566
         LocalDate expected = LocalDate.of(2013, 9, 26);
567 567
         Meetup meetup = new Meetup(9, 2013);
568
-        assertEquals(meetup.day(DayOfWeek.THURSDAY, MeetupSchedule.FOURTH), expected);
568
+        assertEquals(expected, meetup.day(DayOfWeek.THURSDAY, MeetupSchedule.FOURTH));
569 569
     }
570 570
 
571 571
     @Ignore
@@ -573,7 +573,7 @@ public class MeetupTest {
573 573
     public void test_fourth_thursday_of_october_2013() {
574 574
         LocalDate expected = LocalDate.of(2013, 10, 24);
575 575
         Meetup meetup = new Meetup(10, 2013);
576
-        assertEquals(meetup.day(DayOfWeek.THURSDAY, MeetupSchedule.FOURTH), expected);
576
+        assertEquals(expected, meetup.day(DayOfWeek.THURSDAY, MeetupSchedule.FOURTH));
577 577
     }
578 578
 
579 579
     @Ignore
@@ -581,7 +581,7 @@ public class MeetupTest {
581 581
     public void test_fourth_friday_of_november_2013() {
582 582
         LocalDate expected = LocalDate.of(2013, 11, 22);
583 583
         Meetup meetup = new Meetup(11, 2013);
584
-        assertEquals(meetup.day(DayOfWeek.FRIDAY, MeetupSchedule.FOURTH), expected);
584
+        assertEquals(expected, meetup.day(DayOfWeek.FRIDAY, MeetupSchedule.FOURTH));
585 585
     }
586 586
 
587 587
     @Ignore
@@ -589,7 +589,7 @@ public class MeetupTest {
589 589
     public void test_fourth_friday_of_december_2013() {
590 590
         LocalDate expected = LocalDate.of(2013, 12, 27);
591 591
         Meetup meetup = new Meetup(12, 2013);
592
-        assertEquals(meetup.day(DayOfWeek.FRIDAY, MeetupSchedule.FOURTH), expected);
592
+        assertEquals(expected, meetup.day(DayOfWeek.FRIDAY, MeetupSchedule.FOURTH));
593 593
     }
594 594
 
595 595
     @Ignore
@@ -597,7 +597,7 @@ public class MeetupTest {
597 597
     public void test_fourth_saturday_of_january_2013() {
598 598
         LocalDate expected = LocalDate.of(2013, 1, 26);
599 599
         Meetup meetup = new Meetup(1, 2013);
600
-        assertEquals(meetup.day(DayOfWeek.SATURDAY, MeetupSchedule.FOURTH), expected);
600
+        assertEquals(expected, meetup.day(DayOfWeek.SATURDAY, MeetupSchedule.FOURTH));
601 601
     }
602 602
 
603 603
     @Ignore
@@ -605,7 +605,7 @@ public class MeetupTest {
605 605
     public void test_fourth_saturday_of_february_2013() {
606 606
         LocalDate expected = LocalDate.of(2013, 2, 23);
607 607
         Meetup meetup = new Meetup(2, 2013);
608
-        assertEquals(meetup.day(DayOfWeek.SATURDAY, MeetupSchedule.FOURTH), expected);
608
+        assertEquals(expected, meetup.day(DayOfWeek.SATURDAY, MeetupSchedule.FOURTH));
609 609
     }
610 610
 
611 611
     @Ignore
@@ -613,7 +613,7 @@ public class MeetupTest {
613 613
     public void test_fourth_sunday_of_march_2013() {
614 614
         LocalDate expected = LocalDate.of(2013, 3, 24);
615 615
         Meetup meetup = new Meetup(3, 2013);
616
-        assertEquals(meetup.day(DayOfWeek.SUNDAY, MeetupSchedule.FOURTH), expected);
616
+        assertEquals(expected, meetup.day(DayOfWeek.SUNDAY, MeetupSchedule.FOURTH));
617 617
     }
618 618
 
619 619
     @Ignore
@@ -621,7 +621,7 @@ public class MeetupTest {
621 621
     public void test_fourth_sunday_of_april_2013() {
622 622
         LocalDate expected = LocalDate.of(2013, 4, 28);
623 623
         Meetup meetup = new Meetup(4, 2013);
624
-        assertEquals(meetup.day(DayOfWeek.SUNDAY, MeetupSchedule.FOURTH), expected);
624
+        assertEquals(expected, meetup.day(DayOfWeek.SUNDAY, MeetupSchedule.FOURTH));
625 625
     }
626 626
 
627 627
     @Ignore
@@ -629,7 +629,7 @@ public class MeetupTest {
629 629
     public void test_last_monday_of_march_2013() {
630 630
         LocalDate expected = LocalDate.of(2013, 3, 25);
631 631
         Meetup meetup = new Meetup(3, 2013);
632
-        assertEquals(meetup.day(DayOfWeek.MONDAY, MeetupSchedule.LAST), expected);
632
+        assertEquals(expected, meetup.day(DayOfWeek.MONDAY, MeetupSchedule.LAST));
633 633
     }
634 634
 
635 635
     @Ignore
@@ -637,7 +637,7 @@ public class MeetupTest {
637 637
     public void test_last_monday_of_april_2013() {
638 638
         LocalDate expected = LocalDate.of(2013, 4, 29);
639 639
         Meetup meetup = new Meetup(4, 2013);
640
-        assertEquals(meetup.day(DayOfWeek.MONDAY, MeetupSchedule.LAST), expected);
640
+        assertEquals(expected, meetup.day(DayOfWeek.MONDAY, MeetupSchedule.LAST));
641 641
     }
642 642
 
643 643
     @Ignore
@@ -645,7 +645,7 @@ public class MeetupTest {
645 645
     public void test_last_tuesday_of_may_2013() {
646 646
         LocalDate expected = LocalDate.of(2013, 5, 28);
647 647
         Meetup meetup = new Meetup(5, 2013);
648
-        assertEquals(meetup.day(DayOfWeek.TUESDAY, MeetupSchedule.LAST), expected);
648
+        assertEquals(expected, meetup.day(DayOfWeek.TUESDAY, MeetupSchedule.LAST));
649 649
     }
650 650
 
651 651
     @Ignore
@@ -653,7 +653,7 @@ public class MeetupTest {
653 653
     public void test_last_tuesday_of_june_2013() {
654 654
         LocalDate expected = LocalDate.of(2013, 6, 25);
655 655
         Meetup meetup = new Meetup(6, 2013);
656
-        assertEquals(meetup.day(DayOfWeek.TUESDAY, MeetupSchedule.LAST), expected);
656
+        assertEquals(expected, meetup.day(DayOfWeek.TUESDAY, MeetupSchedule.LAST));
657 657
     }
658 658
 
659 659
     @Ignore
@@ -661,7 +661,7 @@ public class MeetupTest {
661 661
     public void test_last_wednesday_of_july_2013() {
662 662
         LocalDate expected = LocalDate.of(2013, 7, 31);
663 663
         Meetup meetup = new Meetup(7, 2013);
664
-        assertEquals(meetup.day(DayOfWeek.WEDNESDAY, MeetupSchedule.LAST), expected);
664
+        assertEquals(expected, meetup.day(DayOfWeek.WEDNESDAY, MeetupSchedule.LAST));
665 665
     }
666 666
 
667 667
     @Ignore
@@ -669,7 +669,7 @@ public class MeetupTest {
669 669
     public void test_last_wednesday_of_august_2013() {
670 670
         LocalDate expected = LocalDate.of(2013, 8, 28);
671 671
         Meetup meetup = new Meetup(8, 2013);
672
-        assertEquals(meetup.day(DayOfWeek.WEDNESDAY, MeetupSchedule.LAST), expected);
672
+        assertEquals(expected, meetup.day(DayOfWeek.WEDNESDAY, MeetupSchedule.LAST));
673 673
     }
674 674
 
675 675
     @Ignore
@@ -677,7 +677,7 @@ public class MeetupTest {
677 677
     public void test_last_thursday_of_september_2013() {
678 678
         LocalDate expected = LocalDate.of(2013, 9, 26);
679 679
         Meetup meetup = new Meetup(9, 2013);
680
-        assertEquals(meetup.day(DayOfWeek.THURSDAY, MeetupSchedule.LAST), expected);
680
+        assertEquals(expected, meetup.day(DayOfWeek.THURSDAY, MeetupSchedule.LAST));
681 681
     }
682 682
 
683 683
     @Ignore
@@ -685,7 +685,7 @@ public class MeetupTest {
685 685
     public void test_last_thursday_of_october_2013() {
686 686
         LocalDate expected = LocalDate.of(2013, 10, 31);
687 687
         Meetup meetup = new Meetup(10, 2013);
688
-        assertEquals(meetup.day(DayOfWeek.THURSDAY, MeetupSchedule.LAST), expected);
688
+        assertEquals(expected, meetup.day(DayOfWeek.THURSDAY, MeetupSchedule.LAST));
689 689
     }
690 690
 
691 691
     @Ignore
@@ -693,7 +693,7 @@ public class MeetupTest {
693 693
     public void test_last_friday_of_november_2013() {
694 694
         LocalDate expected = LocalDate.of(2013, 11, 29);
695 695
         Meetup meetup = new Meetup(11, 2013);
696
-        assertEquals(meetup.day(DayOfWeek.FRIDAY, MeetupSchedule.LAST), expected);
696
+        assertEquals(expected, meetup.day(DayOfWeek.FRIDAY, MeetupSchedule.LAST));
697 697
     }
698 698
 
699 699
     @Ignore
@@ -701,7 +701,7 @@ public class MeetupTest {
701 701
     public void test_last_friday_of_december_2013() {
702 702
         LocalDate expected = LocalDate.of(2013, 12, 27);
703 703
         Meetup meetup = new Meetup(12, 2013);
704
-        assertEquals(meetup.day(DayOfWeek.FRIDAY, MeetupSchedule.LAST), expected);
704
+        assertEquals(expected, meetup.day(DayOfWeek.FRIDAY, MeetupSchedule.LAST));
705 705
     }
706 706
 
707 707
     @Ignore
@@ -709,7 +709,7 @@ public class MeetupTest {
709 709
     public void test_last_saturday_of_january_2013() {
710 710
         LocalDate expected = LocalDate.of(2013, 1, 26);
711 711
         Meetup meetup = new Meetup(1, 2013);
712
-        assertEquals(meetup.day(DayOfWeek.SATURDAY, MeetupSchedule.LAST), expected);
712
+        assertEquals(expected, meetup.day(DayOfWeek.SATURDAY, MeetupSchedule.LAST));
713 713
     }
714 714
 
715 715
     @Ignore
@@ -717,7 +717,7 @@ public class MeetupTest {
717 717
     public void test_last_saturday_of_february_2013() {
718 718
         LocalDate expected = LocalDate.of(2013, 2, 23);
719 719
         Meetup meetup = new Meetup(2, 2013);
720
-        assertEquals(meetup.day(DayOfWeek.SATURDAY, MeetupSchedule.LAST), expected);
720
+        assertEquals(expected, meetup.day(DayOfWeek.SATURDAY, MeetupSchedule.LAST));
721 721
     }
722 722
 
723 723
     @Ignore
@@ -725,7 +725,7 @@ public class MeetupTest {
725 725
     public void test_last_sunday_of_march_2013() {
726 726
         LocalDate expected = LocalDate.of(2013, 3, 31);
727 727
         Meetup meetup = new Meetup(3, 2013);
728
-        assertEquals(meetup.day(DayOfWeek.SUNDAY, MeetupSchedule.LAST), expected);
728
+        assertEquals(expected, meetup.day(DayOfWeek.SUNDAY, MeetupSchedule.LAST));
729 729
     }
730 730
 
731 731
     @Ignore
@@ -733,6 +733,6 @@ public class MeetupTest {
733 733
     public void test_last_sunday_of_april_2013() {
734 734
         LocalDate expected = LocalDate.of(2013, 4, 28);
735 735
         Meetup meetup = new Meetup(4, 2013);
736
-        assertEquals(meetup.day(DayOfWeek.SUNDAY, MeetupSchedule.LAST), expected);
736
+        assertEquals(expected, meetup.day(DayOfWeek.SUNDAY, MeetupSchedule.LAST));
737 737
     }
738 738
 }

+ 17
- 0
exercises/rectangles/build.gradle Wyświetl plik

@@ -0,0 +1,17 @@
1
+apply plugin: "java"
2
+apply plugin: "eclipse"
3
+apply plugin: "idea"
4
+
5
+repositories {
6
+  mavenCentral()
7
+}
8
+
9
+dependencies {
10
+  testCompile "junit:junit:4.12"
11
+}
12
+test {
13
+  testLogging {
14
+    exceptionFormat = 'full'
15
+    events = ["passed", "failed", "skipped"]
16
+  }
17
+}

+ 115
- 0
exercises/rectangles/src/example/java/RectangleCounter.java Wyświetl plik

@@ -0,0 +1,115 @@
1
+import static java.util.Arrays.copyOfRange;
2
+import static java.util.Arrays.stream;
3
+
4
+final class RectangleCounter {
5
+
6
+    int countRectangles(final String[] rawGrid) {
7
+        final int nRows = rawGrid.length;
8
+        if (nRows == 0) return 0;
9
+
10
+        final int nCols = rawGrid[0].length();
11
+        if (nCols == 0) return 0;
12
+
13
+        return new Grid(nRows, nCols, rawGrid).countRectangles();
14
+    }
15
+
16
+    private static final class Grid {
17
+
18
+        private enum Entry {
19
+            CORNER,
20
+            HLINE,
21
+            VLINE,
22
+            SPACE;
23
+
24
+            private static Entry fromChar(final char rawGridEntry) {
25
+                switch (rawGridEntry) {
26
+                    case '+': return CORNER;
27
+                    case '-': return HLINE;
28
+                    case '|': return VLINE;
29
+                    case ' ': return SPACE;
30
+                    default:  throw new IllegalStateException("Grid entry " + rawGridEntry + " not recognized.");
31
+                }
32
+            }
33
+        }
34
+
35
+        private int nRows, nCols;
36
+        private final Entry[][] entries;
37
+
38
+        private Grid(final int nRows, final int nCols, final String[] rawGrid) {
39
+            this.nRows = nRows;
40
+            this.nCols = nCols;
41
+            this.entries = new Entry[nRows][nCols];
42
+
43
+            for (int nRow = 0; nRow < nRows; nRow++) {
44
+                for (int nCol = 0; nCol < nCols; nCol++) {
45
+                    entries[nRow][nCol] = Entry.fromChar(rawGrid[nRow].charAt(nCol));
46
+                }
47
+            }
48
+        }
49
+
50
+        private int countRectangles() {
51
+            int result = 0;
52
+
53
+            for (int topRow = 0; topRow < nRows - 1; topRow++) {
54
+
55
+                for (int leftCol = 0; leftCol < nCols - 1; leftCol++) {
56
+
57
+                    // Only check rectangles that lie below/to the right of our current coordinate:
58
+                    for (int bottomRow = topRow + 1; bottomRow < nRows; bottomRow++) {
59
+
60
+                        for (int rightCol = leftCol + 1; rightCol < nCols; rightCol++) {
61
+
62
+                            if (formsRectangle(topRow, bottomRow, leftCol, rightCol)) {
63
+                                result++;
64
+                            }
65
+                        }
66
+                    }
67
+                }
68
+            }
69
+
70
+            return result;
71
+        }
72
+
73
+        private boolean formsRectangle(
74
+                final int topRow,
75
+                final int bottomRow,
76
+                final int leftCol,
77
+                final int rightCol) {
78
+
79
+            return entries[topRow][leftCol].equals(Entry.CORNER)
80
+                    && entries[topRow][rightCol].equals(Entry.CORNER)
81
+                    && entries[bottomRow][leftCol].equals(Entry.CORNER)
82
+                    && entries[bottomRow][rightCol].equals(Entry.CORNER)
83
+                    && isHorizontalLineSegment(topRow, leftCol, rightCol)
84
+                    && isHorizontalLineSegment(bottomRow, leftCol, rightCol)
85
+                    && isVerticalLineSegment(leftCol, topRow, bottomRow)
86
+                    && isVerticalLineSegment(rightCol, topRow, bottomRow);
87
+        }
88
+
89
+        private boolean isHorizontalLineSegment(final int row, final int leftCol, final int rightCol) {
90
+            return stream(copyOfRange(getRow(row), leftCol, rightCol))
91
+                    .allMatch(entry -> entry.equals(Entry.HLINE) || entry.equals(Entry.CORNER));
92
+        }
93
+
94
+        private boolean isVerticalLineSegment(final int col, final int topRow, final int bottomRow) {
95
+            return stream(copyOfRange(getCol(col), topRow, bottomRow))
96
+                    .allMatch(entry -> entry.equals(Entry.VLINE) || entry.equals(Entry.CORNER));
97
+        }
98
+
99
+        private Entry[] getRow(final int number) {
100
+            return entries[number];
101
+        }
102
+
103
+        private Entry[] getCol(final int number) {
104
+            final Entry[] result = new Entry[nRows];
105
+
106
+            for (int nRow = 0; nRow < nRows; nRow++) {
107
+                result[nRow] = entries[nRow][number];
108
+            }
109
+
110
+            return result;
111
+        }
112
+
113
+    }
114
+
115
+}

+ 5
- 0
exercises/rectangles/src/main/java/RectangleCounter.java Wyświetl plik

@@ -0,0 +1,5 @@
1
+final class RectangleCounter {
2
+
3
+
4
+
5
+}

+ 164
- 0
exercises/rectangles/src/test/java/RectangleCounterTest.java Wyświetl plik

@@ -0,0 +1,164 @@
1
+import org.junit.Before;
2
+import org.junit.Ignore;
3
+import org.junit.Test;
4
+
5
+import static org.junit.Assert.assertEquals;
6
+
7
+public final class RectangleCounterTest {
8
+
9
+    private RectangleCounter rectangleCounter;
10
+
11
+    @Before
12
+    public void setUp() {
13
+        rectangleCounter = new RectangleCounter();
14
+    }
15
+
16
+    @Test
17
+    public void testInputWithNoColumnsContainsNoRectangles() {
18
+        String[] inputGrid = new String[]{};
19
+
20
+        assertEquals(0, rectangleCounter.countRectangles(inputGrid));
21
+    }
22
+
23
+    @Ignore
24
+    @Test
25
+    public void testNonTrivialInputWithNoRectangles() {
26
+        String[] inputGrid = new String[]{" "};
27
+
28
+        assertEquals(0, rectangleCounter.countRectangles(inputGrid));
29
+    }
30
+
31
+    @Ignore
32
+    @Test
33
+    public void testInputWithOneRectangle() {
34
+        String[] inputGrid = new String[]{
35
+                "+-+",
36
+                "| |",
37
+                "+-+"
38
+        };
39
+
40
+        assertEquals(1, rectangleCounter.countRectangles(inputGrid));
41
+    }
42
+
43
+    @Ignore
44
+    @Test
45
+    public void testInputWithTwoRectanglesWithoutSharedEdges() {
46
+        String[] inputGrid = new String[]{
47
+                "  +-+",
48
+                "  | |",
49
+                "+-+-+",
50
+                "| |  ",
51
+                "+-+  "
52
+        };
53
+
54
+        assertEquals(2, rectangleCounter.countRectangles(inputGrid));
55
+    }
56
+
57
+    @Ignore
58
+    @Test
59
+    public void testInputWithFiveRectanglesWithSharedEdges() {
60
+        String[] inputGrid = new String[]{
61
+                "  +-+",
62
+                "  | |",
63
+                "+-+-+",
64
+                "| | |",
65
+                "+-+-+"
66
+        };
67
+
68
+        assertEquals(5, rectangleCounter.countRectangles(inputGrid));
69
+    }
70
+
71
+    @Ignore
72
+    @Test
73
+    public void testThatRectangleOfHeightOneIsCounted() {
74
+        String[] inputGrid = new String[]{
75
+                "+--+",
76
+                "+--+"
77
+        };
78
+
79
+        assertEquals(1, rectangleCounter.countRectangles(inputGrid));
80
+    }
81
+
82
+    @Ignore
83
+    @Test
84
+    public void testThatRectangleOfWidthOneIsCounted() {
85
+        String[] inputGrid = new String[]{
86
+                "++",
87
+                "||",
88
+                "++"
89
+        };
90
+
91
+        assertEquals(1, rectangleCounter.countRectangles(inputGrid));
92
+    }
93
+
94
+    @Ignore
95
+    @Test
96
+    public void testThatOneByOneSquareIsCounted() {
97
+        String[] inputGrid = new String[]{
98
+                "++",
99
+                "++"
100
+        };
101
+
102
+        assertEquals(1, rectangleCounter.countRectangles(inputGrid));
103
+    }
104
+
105
+    @Ignore
106
+    @Test
107
+    public void testThatIncompleteRectanglesAreNotCounted() {
108
+        String[] inputGrid = new String[]{
109
+                "  +-+",
110
+                "    |",
111
+                "+-+-+",
112
+                "| | -",
113
+                "+-+-+"
114
+        };
115
+
116
+        assertEquals(1, rectangleCounter.countRectangles(inputGrid));
117
+    }
118
+
119
+    @Ignore
120
+    @Test
121
+    public void testThatRectanglesOfDifferentSizesAreAllCounted() {
122
+        String[] inputGrid = new String[]{
123
+                "+------+----+",
124
+                "|      |    |",
125
+                "+---+--+    |",
126
+                "|   |       |",
127
+                "+---+-------+"
128
+        };
129
+
130
+        assertEquals(3, rectangleCounter.countRectangles(inputGrid));
131
+    }
132
+
133
+    @Ignore
134
+    @Test
135
+    public void testThatIntersectionsWithoutCornerCharacterDoNotCountAsRectangleCorners() {
136
+        String[] inputGrid = new String[]{
137
+                "+------+----+",
138
+                "|      |    |",
139
+                "+------+    |",
140
+                "|   |       |",
141
+                "+---+-------+"
142
+        };
143
+
144
+        assertEquals(2, rectangleCounter.countRectangles(inputGrid));
145
+    }
146
+
147
+    @Ignore
148
+    @Test
149
+    public void testLargeInputWithManyRectangles() {
150
+        String[] inputGrid = new String[]{
151
+                "+---+--+----+",
152
+                "|   +--+----+",
153
+                "+---+--+    |",
154
+                "|   +--+----+",
155
+                "+---+--+--+-+",
156
+                "+---+--+--+-+",
157
+                "+------+  | |",
158
+                "          +-+"
159
+        };
160
+
161
+        assertEquals(60, rectangleCounter.countRectangles(inputGrid));
162
+    }
163
+
164
+}

+ 2
- 1
exercises/settings.gradle Wyświetl plik

@@ -34,6 +34,7 @@ include 'phone-number'
34 34
 include 'pig-latin'
35 35
 include 'queen-attack'
36 36
 include 'raindrops'
37
+include 'rectangles'
37 38
 include 'rna-transcription'
38 39
 include 'robot-name'
39 40
 include 'robot-simulator'
@@ -54,4 +55,4 @@ include 'trinary'
54 55
 include 'word-count'
55 56
 include 'wordy'
56 57
 include 'twelve-days'
57
-
58
+include 'matrix'