Просмотр исходного кода

Merge branch 'exercism/master'

Colin Mullikin 9 лет назад
Родитель
Сommit
4058e9263e

+ 13
- 1
config.json Просмотреть файл

55
     "wordy",
55
     "wordy",
56
     "palindrome-products",
56
     "palindrome-products",
57
     "twelve-days",
57
     "twelve-days",
58
-    "sublist"
58
+    "sublist",
59
+    "rectangles",
60
+    "matrix"
59
   ],
61
   ],
60
   "exercises": [
62
   "exercises": [
61
     {
63
     {
317
       "slug": "sublist",
319
       "slug": "sublist",
318
       "difficulty": 1,
320
       "difficulty": 1,
319
       "topics": []
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
   "deprecated": [
334
   "deprecated": [

+ 17
- 0
exercises/matrix/build.gradle Просмотреть файл

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 Просмотреть файл

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 Просмотреть файл


+ 207
- 0
exercises/matrix/src/test/java/MatrixTest.java Просмотреть файл

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 Просмотреть файл

13
     public void test_monteenth_of_may_2013() {
13
     public void test_monteenth_of_may_2013() {
14
         LocalDate expected = LocalDate.of(2013, 5, 13);
14
         LocalDate expected = LocalDate.of(2013, 5, 13);
15
         Meetup meetup = new Meetup(5, 2013);
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
     @Ignore
19
     @Ignore
21
     public void test_monteenth_of_august_2013() {
21
     public void test_monteenth_of_august_2013() {
22
         LocalDate expected = LocalDate.of(2013, 8, 19);
22
         LocalDate expected = LocalDate.of(2013, 8, 19);
23
         Meetup meetup = new Meetup(8, 2013);
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
     @Ignore
27
     @Ignore
29
     public void test_monteenth_of_september_2013() {
29
     public void test_monteenth_of_september_2013() {
30
         LocalDate expected = LocalDate.of(2013, 9, 16);
30
         LocalDate expected = LocalDate.of(2013, 9, 16);
31
         Meetup meetup = new Meetup(9, 2013);
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
     @Ignore
35
     @Ignore
37
     public void test_tuesteenth_of_march_2013() {
37
     public void test_tuesteenth_of_march_2013() {
38
         LocalDate expected = LocalDate.of(2013, 3, 19);
38
         LocalDate expected = LocalDate.of(2013, 3, 19);
39
         Meetup meetup = new Meetup(3, 2013);
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
     @Ignore
43
     @Ignore
45
     public void test_tuesteenth_of_april_2013() {
45
     public void test_tuesteenth_of_april_2013() {
46
         LocalDate expected = LocalDate.of(2013, 4, 16);
46
         LocalDate expected = LocalDate.of(2013, 4, 16);
47
         Meetup meetup = new Meetup(4, 2013);
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
     @Ignore
51
     @Ignore
53
     public void test_tuesteenth_of_august_2013() {
53
     public void test_tuesteenth_of_august_2013() {
54
         LocalDate expected = LocalDate.of(2013, 8, 13);
54
         LocalDate expected = LocalDate.of(2013, 8, 13);
55
         Meetup meetup = new Meetup(8, 2013);
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
     @Ignore
59
     @Ignore
61
     public void test_wednesteenth_of_january_2013() {
61
     public void test_wednesteenth_of_january_2013() {
62
         LocalDate expected = LocalDate.of(2013, 1, 16);
62
         LocalDate expected = LocalDate.of(2013, 1, 16);
63
         Meetup meetup = new Meetup(1, 2013);
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
     @Ignore
67
     @Ignore
69
     public void test_wednesteenth_of_february_2013() {
69
     public void test_wednesteenth_of_february_2013() {
70
         LocalDate expected = LocalDate.of(2013, 2, 13);
70
         LocalDate expected = LocalDate.of(2013, 2, 13);
71
         Meetup meetup = new Meetup(2, 2013);
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
     @Ignore
75
     @Ignore
77
     public void test_wednesteenth_of_june_2013() {
77
     public void test_wednesteenth_of_june_2013() {
78
         LocalDate expected = LocalDate.of(2013, 6, 19);
78
         LocalDate expected = LocalDate.of(2013, 6, 19);
79
         Meetup meetup = new Meetup(6, 2013);
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
     @Ignore
83
     @Ignore
85
     public void test_thursteenth_of_may_2013() {
85
     public void test_thursteenth_of_may_2013() {
86
         LocalDate expected = LocalDate.of(2013, 5, 16);
86
         LocalDate expected = LocalDate.of(2013, 5, 16);
87
         Meetup meetup = new Meetup(5, 2013);
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
     @Ignore
91
     @Ignore
93
     public void test_thursteenth_of_june_2013() {
93
     public void test_thursteenth_of_june_2013() {
94
         LocalDate expected = LocalDate.of(2013, 6, 13);
94
         LocalDate expected = LocalDate.of(2013, 6, 13);
95
         Meetup meetup = new Meetup(6, 2013);
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
     @Ignore
99
     @Ignore
101
     public void test_thursteenth_of_september_2013() {
101
     public void test_thursteenth_of_september_2013() {
102
         LocalDate expected = LocalDate.of(2013, 9, 19);
102
         LocalDate expected = LocalDate.of(2013, 9, 19);
103
         Meetup meetup = new Meetup(9, 2013);
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
     @Ignore
107
     @Ignore
109
     public void test_friteenth_of_april_2013() {
109
     public void test_friteenth_of_april_2013() {
110
         LocalDate expected = LocalDate.of(2013, 4, 19);
110
         LocalDate expected = LocalDate.of(2013, 4, 19);
111
         Meetup meetup = new Meetup(4, 2013);
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
     @Ignore
115
     @Ignore
117
     public void test_friteenth_of_august_2013() {
117
     public void test_friteenth_of_august_2013() {
118
         LocalDate expected = LocalDate.of(2013, 8, 16);
118
         LocalDate expected = LocalDate.of(2013, 8, 16);
119
         Meetup meetup = new Meetup(8, 2013);
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
     @Ignore
123
     @Ignore
125
     public void test_friteenth_of_september_2013() {
125
     public void test_friteenth_of_september_2013() {
126
         LocalDate expected = LocalDate.of(2013, 9, 13);
126
         LocalDate expected = LocalDate.of(2013, 9, 13);
127
         Meetup meetup = new Meetup(9, 2013);
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
     @Ignore
131
     @Ignore
133
     public void test_saturteenth_of_february_2013() {
133
     public void test_saturteenth_of_february_2013() {
134
         LocalDate expected = LocalDate.of(2013, 2, 16);
134
         LocalDate expected = LocalDate.of(2013, 2, 16);
135
         Meetup meetup = new Meetup(2, 2013);
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
     @Ignore
139
     @Ignore
141
     public void test_saturteenth_of_april_2013() {
141
     public void test_saturteenth_of_april_2013() {
142
         LocalDate expected = LocalDate.of(2013, 4, 13);
142
         LocalDate expected = LocalDate.of(2013, 4, 13);
143
         Meetup meetup = new Meetup(4, 2013);
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
     @Ignore
147
     @Ignore
149
     public void test_saturteenth_of_october_2013() {
149
     public void test_saturteenth_of_october_2013() {
150
         LocalDate expected = LocalDate.of(2013, 10, 19);
150
         LocalDate expected = LocalDate.of(2013, 10, 19);
151
         Meetup meetup = new Meetup(10, 2013);
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
     @Ignore
155
     @Ignore
157
     public void test_sunteenth_of_may_2013() {
157
     public void test_sunteenth_of_may_2013() {
158
         LocalDate expected = LocalDate.of(2013, 5, 19);
158
         LocalDate expected = LocalDate.of(2013, 5, 19);
159
         Meetup meetup = new Meetup(5, 2013);
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
     @Ignore
163
     @Ignore
165
     public void test_sunteenth_of_june_2013() {
165
     public void test_sunteenth_of_june_2013() {
166
         LocalDate expected = LocalDate.of(2013, 6, 16);
166
         LocalDate expected = LocalDate.of(2013, 6, 16);
167
         Meetup meetup = new Meetup(6, 2013);
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
     @Ignore
171
     @Ignore
173
     public void test_sunteenth_of_october_2013() {
173
     public void test_sunteenth_of_october_2013() {
174
         LocalDate expected = LocalDate.of(2013, 10, 13);
174
         LocalDate expected = LocalDate.of(2013, 10, 13);
175
         Meetup meetup = new Meetup(10, 2013);
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
     @Ignore
179
     @Ignore
181
     public void test_first_monday_of_march_2013() {
181
     public void test_first_monday_of_march_2013() {
182
         LocalDate expected = LocalDate.of(2013, 3, 4);
182
         LocalDate expected = LocalDate.of(2013, 3, 4);
183
         Meetup meetup = new Meetup(3, 2013);
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
     @Ignore
187
     @Ignore
189
     public void test_first_monday_of_april_2013() {
189
     public void test_first_monday_of_april_2013() {
190
         LocalDate expected = LocalDate.of(2013, 4, 1);
190
         LocalDate expected = LocalDate.of(2013, 4, 1);
191
         Meetup meetup = new Meetup(4, 2013);
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
     @Ignore
195
     @Ignore
197
     public void test_first_tuesday_of_may_2013() {
197
     public void test_first_tuesday_of_may_2013() {
198
         LocalDate expected = LocalDate.of(2013, 5, 7);
198
         LocalDate expected = LocalDate.of(2013, 5, 7);
199
         Meetup meetup = new Meetup(5, 2013);
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
     @Ignore
203
     @Ignore
205
     public void test_first_tuesday_of_june_2013() {
205
     public void test_first_tuesday_of_june_2013() {
206
         LocalDate expected = LocalDate.of(2013, 6, 4);
206
         LocalDate expected = LocalDate.of(2013, 6, 4);
207
         Meetup meetup = new Meetup(6, 2013);
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
     @Ignore
211
     @Ignore
213
     public void test_first_wednesday_of_july_2013() {
213
     public void test_first_wednesday_of_july_2013() {
214
         LocalDate expected = LocalDate.of(2013, 7, 3);
214
         LocalDate expected = LocalDate.of(2013, 7, 3);
215
         Meetup meetup = new Meetup(7, 2013);
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
     @Ignore
219
     @Ignore
221
     public void test_first_wednesday_of_august_2013() {
221
     public void test_first_wednesday_of_august_2013() {
222
         LocalDate expected = LocalDate.of(2013, 8, 7);
222
         LocalDate expected = LocalDate.of(2013, 8, 7);
223
         Meetup meetup = new Meetup(8, 2013);
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
     @Ignore
227
     @Ignore
229
     public void test_first_thursday_of_september_2013() {
229
     public void test_first_thursday_of_september_2013() {
230
         LocalDate expected = LocalDate.of(2013, 9, 5);
230
         LocalDate expected = LocalDate.of(2013, 9, 5);
231
         Meetup meetup = new Meetup(9, 2013);
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
     @Ignore
235
     @Ignore
237
     public void test_first_thursday_of_october_2013() {
237
     public void test_first_thursday_of_october_2013() {
238
         LocalDate expected = LocalDate.of(2013, 10, 3);
238
         LocalDate expected = LocalDate.of(2013, 10, 3);
239
         Meetup meetup = new Meetup(10, 2013);
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
     @Ignore
243
     @Ignore
245
     public void test_first_friday_of_november_2013() {
245
     public void test_first_friday_of_november_2013() {
246
         LocalDate expected = LocalDate.of(2013, 11, 1);
246
         LocalDate expected = LocalDate.of(2013, 11, 1);
247
         Meetup meetup = new Meetup(11, 2013);
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
     @Ignore
251
     @Ignore
253
     public void test_first_friday_of_december_2013() {
253
     public void test_first_friday_of_december_2013() {
254
         LocalDate expected = LocalDate.of(2013, 12, 6);
254
         LocalDate expected = LocalDate.of(2013, 12, 6);
255
         Meetup meetup = new Meetup(12, 2013);
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
     @Ignore
259
     @Ignore
261
     public void test_first_saturday_of_january_2013() {
261
     public void test_first_saturday_of_january_2013() {
262
         LocalDate expected = LocalDate.of(2013, 1, 5);
262
         LocalDate expected = LocalDate.of(2013, 1, 5);
263
         Meetup meetup = new Meetup(1, 2013);
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
     @Ignore
267
     @Ignore
269
     public void test_first_saturday_of_february_2013() {
269
     public void test_first_saturday_of_february_2013() {
270
         LocalDate expected = LocalDate.of(2013, 2, 2);
270
         LocalDate expected = LocalDate.of(2013, 2, 2);
271
         Meetup meetup = new Meetup(2, 2013);
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
     @Ignore
275
     @Ignore
277
     public void test_first_sunday_of_march_2013() {
277
     public void test_first_sunday_of_march_2013() {
278
         LocalDate expected = LocalDate.of(2013, 3, 3);
278
         LocalDate expected = LocalDate.of(2013, 3, 3);
279
         Meetup meetup = new Meetup(3, 2013);
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
     @Ignore
283
     @Ignore
285
     public void test_first_sunday_of_april_2013() {
285
     public void test_first_sunday_of_april_2013() {
286
         LocalDate expected = LocalDate.of(2013, 4, 7);
286
         LocalDate expected = LocalDate.of(2013, 4, 7);
287
         Meetup meetup = new Meetup(4, 2013);
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
     @Ignore
291
     @Ignore
293
     public void test_second_monday_of_march_2013() {
293
     public void test_second_monday_of_march_2013() {
294
         LocalDate expected = LocalDate.of(2013, 3, 11);
294
         LocalDate expected = LocalDate.of(2013, 3, 11);
295
         Meetup meetup = new Meetup(3, 2013);
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
     @Ignore
299
     @Ignore
301
     public void test_second_monday_of_april_2013() {
301
     public void test_second_monday_of_april_2013() {
302
         LocalDate expected = LocalDate.of(2013, 4, 8);
302
         LocalDate expected = LocalDate.of(2013, 4, 8);
303
         Meetup meetup = new Meetup(4, 2013);
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
     @Ignore
307
     @Ignore
309
     public void test_second_tuesday_of_may_2013() {
309
     public void test_second_tuesday_of_may_2013() {
310
         LocalDate expected = LocalDate.of(2013, 5, 14);
310
         LocalDate expected = LocalDate.of(2013, 5, 14);
311
         Meetup meetup = new Meetup(5, 2013);
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
     @Ignore
315
     @Ignore
317
     public void test_second_tuesday_of_june_2013() {
317
     public void test_second_tuesday_of_june_2013() {
318
         LocalDate expected = LocalDate.of(2013, 6, 11);
318
         LocalDate expected = LocalDate.of(2013, 6, 11);
319
         Meetup meetup = new Meetup(6, 2013);
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
     @Ignore
323
     @Ignore
325
     public void test_second_wednesday_of_july_2013() {
325
     public void test_second_wednesday_of_july_2013() {
326
         LocalDate expected = LocalDate.of(2013, 7, 10);
326
         LocalDate expected = LocalDate.of(2013, 7, 10);
327
         Meetup meetup = new Meetup(7, 2013);
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
     @Ignore
331
     @Ignore
333
     public void test_second_wednesday_of_august_2013() {
333
     public void test_second_wednesday_of_august_2013() {
334
         LocalDate expected = LocalDate.of(2013, 8, 14);
334
         LocalDate expected = LocalDate.of(2013, 8, 14);
335
         Meetup meetup = new Meetup(8, 2013);
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
     @Ignore
339
     @Ignore
341
     public void test_second_thursday_of_september_2013() {
341
     public void test_second_thursday_of_september_2013() {
342
         LocalDate expected = LocalDate.of(2013, 9, 12);
342
         LocalDate expected = LocalDate.of(2013, 9, 12);
343
         Meetup meetup = new Meetup(9, 2013);
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
     @Ignore
347
     @Ignore
349
     public void test_second_thursday_of_october_2013() {
349
     public void test_second_thursday_of_october_2013() {
350
         LocalDate expected = LocalDate.of(2013, 10, 10);
350
         LocalDate expected = LocalDate.of(2013, 10, 10);
351
         Meetup meetup = new Meetup(10, 2013);
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
     @Ignore
355
     @Ignore
357
     public void test_second_friday_of_november_2013() {
357
     public void test_second_friday_of_november_2013() {
358
         LocalDate expected = LocalDate.of(2013, 11, 8);
358
         LocalDate expected = LocalDate.of(2013, 11, 8);
359
         Meetup meetup = new Meetup(11, 2013);
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
     @Ignore
363
     @Ignore
365
     public void test_second_friday_of_december_2013() {
365
     public void test_second_friday_of_december_2013() {
366
         LocalDate expected = LocalDate.of(2013, 12, 13);
366
         LocalDate expected = LocalDate.of(2013, 12, 13);
367
         Meetup meetup = new Meetup(12, 2013);
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
     @Ignore
371
     @Ignore
373
     public void test_second_saturday_of_january_2013() {
373
     public void test_second_saturday_of_january_2013() {
374
         LocalDate expected = LocalDate.of(2013, 1, 12);
374
         LocalDate expected = LocalDate.of(2013, 1, 12);
375
         Meetup meetup = new Meetup(1, 2013);
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
     @Ignore
379
     @Ignore
381
     public void test_second_saturday_of_february_2013() {
381
     public void test_second_saturday_of_february_2013() {
382
         LocalDate expected = LocalDate.of(2013, 2, 9);
382
         LocalDate expected = LocalDate.of(2013, 2, 9);
383
         Meetup meetup = new Meetup(2, 2013);
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
     @Ignore
387
     @Ignore
389
     public void test_second_sunday_of_march_2013() {
389
     public void test_second_sunday_of_march_2013() {
390
         LocalDate expected = LocalDate.of(2013, 3, 10);
390
         LocalDate expected = LocalDate.of(2013, 3, 10);
391
         Meetup meetup = new Meetup(3, 2013);
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
     @Ignore
395
     @Ignore
397
     public void test_second_sunday_of_april_2013() {
397
     public void test_second_sunday_of_april_2013() {
398
         LocalDate expected = LocalDate.of(2013, 4, 14);
398
         LocalDate expected = LocalDate.of(2013, 4, 14);
399
         Meetup meetup = new Meetup(4, 2013);
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
     @Ignore
403
     @Ignore
405
     public void test_third_monday_of_march_2013() {
405
     public void test_third_monday_of_march_2013() {
406
         LocalDate expected = LocalDate.of(2013, 3, 18);
406
         LocalDate expected = LocalDate.of(2013, 3, 18);
407
         Meetup meetup = new Meetup(3, 2013);
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
     @Ignore
411
     @Ignore
413
     public void test_third_monday_of_april_2013() {
413
     public void test_third_monday_of_april_2013() {
414
         LocalDate expected = LocalDate.of(2013, 4, 15);
414
         LocalDate expected = LocalDate.of(2013, 4, 15);
415
         Meetup meetup = new Meetup(4, 2013);
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
     @Ignore
419
     @Ignore
421
     public void test_third_tuesday_of_may_2013() {
421
     public void test_third_tuesday_of_may_2013() {
422
         LocalDate expected = LocalDate.of(2013, 5, 21);
422
         LocalDate expected = LocalDate.of(2013, 5, 21);
423
         Meetup meetup = new Meetup(5, 2013);
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
     @Ignore
427
     @Ignore
429
     public void test_third_tuesday_of_june_2013() {
429
     public void test_third_tuesday_of_june_2013() {
430
         LocalDate expected = LocalDate.of(2013, 6, 18);
430
         LocalDate expected = LocalDate.of(2013, 6, 18);
431
         Meetup meetup = new Meetup(6, 2013);
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
     @Ignore
435
     @Ignore
437
     public void test_third_wednesday_of_july_2013() {
437
     public void test_third_wednesday_of_july_2013() {
438
         LocalDate expected = LocalDate.of(2013, 7, 17);
438
         LocalDate expected = LocalDate.of(2013, 7, 17);
439
         Meetup meetup = new Meetup(7, 2013);
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
     @Ignore
443
     @Ignore
445
     public void test_third_wednesday_of_august_2013() {
445
     public void test_third_wednesday_of_august_2013() {
446
         LocalDate expected = LocalDate.of(2013, 8, 21);
446
         LocalDate expected = LocalDate.of(2013, 8, 21);
447
         Meetup meetup = new Meetup(8, 2013);
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
     @Ignore
451
     @Ignore
453
     public void test_third_thursday_of_september_2013() {
453
     public void test_third_thursday_of_september_2013() {
454
         LocalDate expected = LocalDate.of(2013, 9, 19);
454
         LocalDate expected = LocalDate.of(2013, 9, 19);
455
         Meetup meetup = new Meetup(9, 2013);
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
     @Ignore
459
     @Ignore
461
     public void test_third_thursday_of_october_2013() {
461
     public void test_third_thursday_of_october_2013() {
462
         LocalDate expected = LocalDate.of(2013, 10, 17);
462
         LocalDate expected = LocalDate.of(2013, 10, 17);
463
         Meetup meetup = new Meetup(10, 2013);
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
     @Ignore
467
     @Ignore
469
     public void test_third_friday_of_november_2013() {
469
     public void test_third_friday_of_november_2013() {
470
         LocalDate expected = LocalDate.of(2013, 11, 15);
470
         LocalDate expected = LocalDate.of(2013, 11, 15);
471
         Meetup meetup = new Meetup(11, 2013);
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
     @Ignore
475
     @Ignore
477
     public void test_third_friday_of_december_2013() {
477
     public void test_third_friday_of_december_2013() {
478
         LocalDate expected = LocalDate.of(2013, 12, 20);
478
         LocalDate expected = LocalDate.of(2013, 12, 20);
479
         Meetup meetup = new Meetup(12, 2013);
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
     @Ignore
483
     @Ignore
485
     public void test_third_saturday_of_january_2013() {
485
     public void test_third_saturday_of_january_2013() {
486
         LocalDate expected = LocalDate.of(2013, 1, 19);
486
         LocalDate expected = LocalDate.of(2013, 1, 19);
487
         Meetup meetup = new Meetup(1, 2013);
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
     @Ignore
491
     @Ignore
493
     public void test_third_saturday_of_february_2013() {
493
     public void test_third_saturday_of_february_2013() {
494
         LocalDate expected = LocalDate.of(2013, 2, 16);
494
         LocalDate expected = LocalDate.of(2013, 2, 16);
495
         Meetup meetup = new Meetup(2, 2013);
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
     @Ignore
499
     @Ignore
501
     public void test_third_sunday_of_march_2013() {
501
     public void test_third_sunday_of_march_2013() {
502
         LocalDate expected = LocalDate.of(2013, 3, 17);
502
         LocalDate expected = LocalDate.of(2013, 3, 17);
503
         Meetup meetup = new Meetup(3, 2013);
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
     @Ignore
507
     @Ignore
509
     public void test_third_sunday_of_april_2013() {
509
     public void test_third_sunday_of_april_2013() {
510
         LocalDate expected = LocalDate.of(2013, 4, 21);
510
         LocalDate expected = LocalDate.of(2013, 4, 21);
511
         Meetup meetup = new Meetup(4, 2013);
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
     @Ignore
515
     @Ignore
517
     public void test_fourth_monday_of_march_2013() {
517
     public void test_fourth_monday_of_march_2013() {
518
         LocalDate expected = LocalDate.of(2013, 3, 25);
518
         LocalDate expected = LocalDate.of(2013, 3, 25);
519
         Meetup meetup = new Meetup(3, 2013);
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
     @Ignore
523
     @Ignore
525
     public void test_fourth_monday_of_april_2013() {
525
     public void test_fourth_monday_of_april_2013() {
526
         LocalDate expected = LocalDate.of(2013, 4, 22);
526
         LocalDate expected = LocalDate.of(2013, 4, 22);
527
         Meetup meetup = new Meetup(4, 2013);
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
     @Ignore
531
     @Ignore
533
     public void test_fourth_tuesday_of_may_2013() {
533
     public void test_fourth_tuesday_of_may_2013() {
534
         LocalDate expected = LocalDate.of(2013, 5, 28);
534
         LocalDate expected = LocalDate.of(2013, 5, 28);
535
         Meetup meetup = new Meetup(5, 2013);
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
     @Ignore
539
     @Ignore
541
     public void test_fourth_tuesday_of_june_2013() {
541
     public void test_fourth_tuesday_of_june_2013() {
542
         LocalDate expected = LocalDate.of(2013, 6, 25);
542
         LocalDate expected = LocalDate.of(2013, 6, 25);
543
         Meetup meetup = new Meetup(6, 2013);
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
     @Ignore
547
     @Ignore
549
     public void test_fourth_wednesday_of_july_2013() {
549
     public void test_fourth_wednesday_of_july_2013() {
550
         LocalDate expected = LocalDate.of(2013, 7, 24);
550
         LocalDate expected = LocalDate.of(2013, 7, 24);
551
         Meetup meetup = new Meetup(7, 2013);
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
     @Ignore
555
     @Ignore
557
     public void test_fourth_wednesday_of_august_2013() {
557
     public void test_fourth_wednesday_of_august_2013() {
558
         LocalDate expected = LocalDate.of(2013, 8, 28);
558
         LocalDate expected = LocalDate.of(2013, 8, 28);
559
         Meetup meetup = new Meetup(8, 2013);
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
     @Ignore
563
     @Ignore
565
     public void test_fourth_thursday_of_september_2013() {
565
     public void test_fourth_thursday_of_september_2013() {
566
         LocalDate expected = LocalDate.of(2013, 9, 26);
566
         LocalDate expected = LocalDate.of(2013, 9, 26);
567
         Meetup meetup = new Meetup(9, 2013);
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
     @Ignore
571
     @Ignore
573
     public void test_fourth_thursday_of_october_2013() {
573
     public void test_fourth_thursday_of_october_2013() {
574
         LocalDate expected = LocalDate.of(2013, 10, 24);
574
         LocalDate expected = LocalDate.of(2013, 10, 24);
575
         Meetup meetup = new Meetup(10, 2013);
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
     @Ignore
579
     @Ignore
581
     public void test_fourth_friday_of_november_2013() {
581
     public void test_fourth_friday_of_november_2013() {
582
         LocalDate expected = LocalDate.of(2013, 11, 22);
582
         LocalDate expected = LocalDate.of(2013, 11, 22);
583
         Meetup meetup = new Meetup(11, 2013);
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
     @Ignore
587
     @Ignore
589
     public void test_fourth_friday_of_december_2013() {
589
     public void test_fourth_friday_of_december_2013() {
590
         LocalDate expected = LocalDate.of(2013, 12, 27);
590
         LocalDate expected = LocalDate.of(2013, 12, 27);
591
         Meetup meetup = new Meetup(12, 2013);
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
     @Ignore
595
     @Ignore
597
     public void test_fourth_saturday_of_january_2013() {
597
     public void test_fourth_saturday_of_january_2013() {
598
         LocalDate expected = LocalDate.of(2013, 1, 26);
598
         LocalDate expected = LocalDate.of(2013, 1, 26);
599
         Meetup meetup = new Meetup(1, 2013);
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
     @Ignore
603
     @Ignore
605
     public void test_fourth_saturday_of_february_2013() {
605
     public void test_fourth_saturday_of_february_2013() {
606
         LocalDate expected = LocalDate.of(2013, 2, 23);
606
         LocalDate expected = LocalDate.of(2013, 2, 23);
607
         Meetup meetup = new Meetup(2, 2013);
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
     @Ignore
611
     @Ignore
613
     public void test_fourth_sunday_of_march_2013() {
613
     public void test_fourth_sunday_of_march_2013() {
614
         LocalDate expected = LocalDate.of(2013, 3, 24);
614
         LocalDate expected = LocalDate.of(2013, 3, 24);
615
         Meetup meetup = new Meetup(3, 2013);
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
     @Ignore
619
     @Ignore
621
     public void test_fourth_sunday_of_april_2013() {
621
     public void test_fourth_sunday_of_april_2013() {
622
         LocalDate expected = LocalDate.of(2013, 4, 28);
622
         LocalDate expected = LocalDate.of(2013, 4, 28);
623
         Meetup meetup = new Meetup(4, 2013);
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
     @Ignore
627
     @Ignore
629
     public void test_last_monday_of_march_2013() {
629
     public void test_last_monday_of_march_2013() {
630
         LocalDate expected = LocalDate.of(2013, 3, 25);
630
         LocalDate expected = LocalDate.of(2013, 3, 25);
631
         Meetup meetup = new Meetup(3, 2013);
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
     @Ignore
635
     @Ignore
637
     public void test_last_monday_of_april_2013() {
637
     public void test_last_monday_of_april_2013() {
638
         LocalDate expected = LocalDate.of(2013, 4, 29);
638
         LocalDate expected = LocalDate.of(2013, 4, 29);
639
         Meetup meetup = new Meetup(4, 2013);
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
     @Ignore
643
     @Ignore
645
     public void test_last_tuesday_of_may_2013() {
645
     public void test_last_tuesday_of_may_2013() {
646
         LocalDate expected = LocalDate.of(2013, 5, 28);
646
         LocalDate expected = LocalDate.of(2013, 5, 28);
647
         Meetup meetup = new Meetup(5, 2013);
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
     @Ignore
651
     @Ignore
653
     public void test_last_tuesday_of_june_2013() {
653
     public void test_last_tuesday_of_june_2013() {
654
         LocalDate expected = LocalDate.of(2013, 6, 25);
654
         LocalDate expected = LocalDate.of(2013, 6, 25);
655
         Meetup meetup = new Meetup(6, 2013);
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
     @Ignore
659
     @Ignore
661
     public void test_last_wednesday_of_july_2013() {
661
     public void test_last_wednesday_of_july_2013() {
662
         LocalDate expected = LocalDate.of(2013, 7, 31);
662
         LocalDate expected = LocalDate.of(2013, 7, 31);
663
         Meetup meetup = new Meetup(7, 2013);
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
     @Ignore
667
     @Ignore
669
     public void test_last_wednesday_of_august_2013() {
669
     public void test_last_wednesday_of_august_2013() {
670
         LocalDate expected = LocalDate.of(2013, 8, 28);
670
         LocalDate expected = LocalDate.of(2013, 8, 28);
671
         Meetup meetup = new Meetup(8, 2013);
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
     @Ignore
675
     @Ignore
677
     public void test_last_thursday_of_september_2013() {
677
     public void test_last_thursday_of_september_2013() {
678
         LocalDate expected = LocalDate.of(2013, 9, 26);
678
         LocalDate expected = LocalDate.of(2013, 9, 26);
679
         Meetup meetup = new Meetup(9, 2013);
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
     @Ignore
683
     @Ignore
685
     public void test_last_thursday_of_october_2013() {
685
     public void test_last_thursday_of_october_2013() {
686
         LocalDate expected = LocalDate.of(2013, 10, 31);
686
         LocalDate expected = LocalDate.of(2013, 10, 31);
687
         Meetup meetup = new Meetup(10, 2013);
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
     @Ignore
691
     @Ignore
693
     public void test_last_friday_of_november_2013() {
693
     public void test_last_friday_of_november_2013() {
694
         LocalDate expected = LocalDate.of(2013, 11, 29);
694
         LocalDate expected = LocalDate.of(2013, 11, 29);
695
         Meetup meetup = new Meetup(11, 2013);
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
     @Ignore
699
     @Ignore
701
     public void test_last_friday_of_december_2013() {
701
     public void test_last_friday_of_december_2013() {
702
         LocalDate expected = LocalDate.of(2013, 12, 27);
702
         LocalDate expected = LocalDate.of(2013, 12, 27);
703
         Meetup meetup = new Meetup(12, 2013);
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
     @Ignore
707
     @Ignore
709
     public void test_last_saturday_of_january_2013() {
709
     public void test_last_saturday_of_january_2013() {
710
         LocalDate expected = LocalDate.of(2013, 1, 26);
710
         LocalDate expected = LocalDate.of(2013, 1, 26);
711
         Meetup meetup = new Meetup(1, 2013);
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
     @Ignore
715
     @Ignore
717
     public void test_last_saturday_of_february_2013() {
717
     public void test_last_saturday_of_february_2013() {
718
         LocalDate expected = LocalDate.of(2013, 2, 23);
718
         LocalDate expected = LocalDate.of(2013, 2, 23);
719
         Meetup meetup = new Meetup(2, 2013);
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
     @Ignore
723
     @Ignore
725
     public void test_last_sunday_of_march_2013() {
725
     public void test_last_sunday_of_march_2013() {
726
         LocalDate expected = LocalDate.of(2013, 3, 31);
726
         LocalDate expected = LocalDate.of(2013, 3, 31);
727
         Meetup meetup = new Meetup(3, 2013);
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
     @Ignore
731
     @Ignore
733
     public void test_last_sunday_of_april_2013() {
733
     public void test_last_sunday_of_april_2013() {
734
         LocalDate expected = LocalDate.of(2013, 4, 28);
734
         LocalDate expected = LocalDate.of(2013, 4, 28);
735
         Meetup meetup = new Meetup(4, 2013);
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 Просмотреть файл

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 Просмотреть файл

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 Просмотреть файл

1
+final class RectangleCounter {
2
+
3
+
4
+
5
+}

+ 164
- 0
exercises/rectangles/src/test/java/RectangleCounterTest.java Просмотреть файл

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 Просмотреть файл

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