@@ -121,42 +121,45 @@ func Test_newBingoGame(t *testing.T) {
121121 input : []int {7 , 4 , 9 , 5 , 11 , 17 , 23 , 2 , 0 , 14 , 21 , 24 , 10 , 16 , 13 , 6 , 15 , 25 , 12 , 22 , 18 , 20 , 8 , 19 , 3 , 26 , 1 },
122122 boards : []* board {
123123 {
124- numbers : [5 ][5 ]number {
124+ id : 1 ,
125+ numbers : [boardSize ][boardSize ]number {
125126 {number {val : 22 }, number {val : 13 }, number {val : 17 }, number {val : 11 }, number {val : 0 }},
126127 {number {val : 8 }, number {val : 2 }, number {val : 23 }, number {val : 4 }, number {val : 24 }},
127128 {number {val : 21 }, number {val : 9 }, number {val : 14 }, number {val : 16 }, number {val : 7 }},
128129 {number {val : 6 }, number {val : 10 }, number {val : 3 }, number {val : 18 }, number {val : 5 }},
129130 {number {val : 1 }, number {val : 12 }, number {val : 20 }, number {val : 15 }, number {val : 19 }},
130131 },
131132 state : state {
132- verticals : map [ int ]int {},
133- horizontals : map [ int ]int {},
133+ verticals : [ boardSize ]int {},
134+ horizontals : [ boardSize ]int {},
134135 },
135136 },
136137 {
137- numbers : [5 ][5 ]number {
138+ id : 2 ,
139+ numbers : [boardSize ][boardSize ]number {
138140 {number {val : 3 }, number {val : 15 }, number {val : 0 }, number {val : 2 }, number {val : 22 }},
139141 {number {val : 9 }, number {val : 18 }, number {val : 13 }, number {val : 17 }, number {val : 5 }},
140142 {number {val : 19 }, number {val : 8 }, number {val : 7 }, number {val : 25 }, number {val : 23 }},
141143 {number {val : 20 }, number {val : 11 }, number {val : 10 }, number {val : 24 }, number {val : 4 }},
142144 {number {val : 14 }, number {val : 21 }, number {val : 16 }, number {val : 12 }, number {val : 6 }},
143145 },
144146 state : state {
145- verticals : map [ int ]int {},
146- horizontals : map [ int ]int {},
147+ verticals : [ boardSize ]int {},
148+ horizontals : [ boardSize ]int {},
147149 },
148150 },
149151 {
150- numbers : [5 ][5 ]number {
152+ id : 3 ,
153+ numbers : [boardSize ][boardSize ]number {
151154 {number {val : 14 }, number {val : 21 }, number {val : 17 }, number {val : 24 }, number {val : 4 }},
152155 {number {val : 10 }, number {val : 16 }, number {val : 15 }, number {val : 9 }, number {val : 19 }},
153156 {number {val : 18 }, number {val : 8 }, number {val : 23 }, number {val : 26 }, number {val : 20 }},
154157 {number {val : 22 }, number {val : 11 }, number {val : 13 }, number {val : 6 }, number {val : 5 }},
155158 {number {val : 2 }, number {val : 0 }, number {val : 12 }, number {val : 3 }, number {val : 7 }},
156159 },
157160 state : state {
158- verticals : map [ int ]int {},
159- horizontals : map [ int ]int {},
161+ verticals : [ boardSize ]int {},
162+ horizontals : [ boardSize ]int {},
160163 },
161164 },
162165 },
@@ -185,6 +188,7 @@ func Test_bingo_start(t *testing.T) {
185188
186189 type args struct {
187190 ctx context.Context
191+ wr winRule
188192 }
189193
190194 type expected struct {
@@ -201,9 +205,11 @@ func Test_bingo_start(t *testing.T) {
201205 name : "" ,
202206 args : args {
203207 ctx : ctx ,
208+ wr : rule (1 ),
204209 },
205210 expected : expected {
206211 board : & board {
212+ id : 3 ,
207213 numbers : [5 ][5 ]number {
208214 {
209215 number {val : 14 , isMarked : true },
@@ -242,14 +248,14 @@ func Test_bingo_start(t *testing.T) {
242248 },
243249 },
244250 state : state {
245- verticals : map [ int ]int {
251+ verticals : [ boardSize ]int {
246252 0 : 2 ,
247253 1 : 3 ,
248254 2 : 2 ,
249255 3 : 2 ,
250256 4 : 3 ,
251257 },
252- horizontals : map [ int ]int {
258+ horizontals : [ boardSize ]int {
253259 0 : 5 ,
254260 1 : 1 ,
255261 2 : 1 ,
@@ -267,7 +273,7 @@ func Test_bingo_start(t *testing.T) {
267273 t .Run (tt .name , func (t * testing.T ) {
268274 b := bgame
269275
270- gotBoard , gotNum := b .start (tt .args .ctx , rule ( 1 ) )
276+ gotBoard , gotNum := b .start (tt .args .ctx , tt . args . wr )
271277
272278 equalBoards (t , tt .expected .board , gotBoard )
273279 assert .Equal (t , tt .expected .num , gotNum )
@@ -278,13 +284,16 @@ func Test_bingo_start(t *testing.T) {
278284func equalBoards (t testing.TB , expected , got * board ) {
279285 assert .Equal (t , expected .numbers , got .numbers , "numbers" )
280286
287+ assert .Equal (t , expected .id , got .id , "id" )
288+
281289 assert .Equal (t , fmt .Sprint (expected .state .horizontals ), fmt .Sprint (got .state .horizontals ), "horizontals" )
282290
283291 assert .Equal (t , fmt .Sprint (expected .state .verticals ), fmt .Sprint (got .state .verticals ), "verticals" )
284292}
285293
286294func Test_board_sumMarked (t * testing.T ) {
287295 b := board {
296+ id : 0 ,
288297 numbers : [5 ][5 ]number {
289298 {
290299 number {val : 14 , isMarked : true },
@@ -323,14 +332,14 @@ func Test_board_sumMarked(t *testing.T) {
323332 },
324333 },
325334 state : state {
326- verticals : map [ int ]int {
335+ verticals : [ boardSize ]int {
327336 0 : 2 ,
328337 1 : 3 ,
329338 2 : 2 ,
330339 3 : 2 ,
331340 4 : 3 ,
332341 },
333- horizontals : map [ int ]int {
342+ horizontals : [ boardSize ]int {
334343 0 : 5 ,
335344 1 : 1 ,
336345 2 : 1 ,
0 commit comments