2023-12-02 17:00:27 +00:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"reflect"
|
|
|
|
"testing"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestParseGame(t *testing.T) {
|
|
|
|
table := []struct {
|
|
|
|
testGame string
|
|
|
|
want Game
|
|
|
|
}{
|
|
|
|
{
|
|
|
|
testGame: "Game1: 10 green, 1 blue, 7red",
|
|
|
|
want: Game{
|
2023-12-02 18:01:53 +00:00
|
|
|
ID: 1,
|
|
|
|
Sets: []Set{{Red: 7, Green: 10, Blue: 1}},
|
2023-12-02 17:00:27 +00:00
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
testGame: "Game 100: 8 green, 6 blue, 20red; 5 blue, 4 red, 13green; 5 green, 1 red",
|
|
|
|
want: Game{
|
|
|
|
ID: 100,
|
|
|
|
Sets: []Set{
|
2023-12-02 18:01:53 +00:00
|
|
|
{Red: 20, Green: 8, Blue: 6},
|
|
|
|
{Red: 4, Green: 13, Blue: 5},
|
|
|
|
{Red: 1, Green: 5, Blue: 0},
|
2023-12-02 17:00:27 +00:00
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
for i := range table {
|
|
|
|
got, err := parseGame(table[i].testGame)
|
|
|
|
if err != nil {
|
|
|
|
t.Fatalf("Error running parseGame(); %v", err)
|
|
|
|
}
|
|
|
|
|
|
|
|
if !reflect.DeepEqual(table[i].want, got) {
|
|
|
|
t.Errorf("unexpected result after parsing the game; want %+v, got %+v", table[i].want, got)
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|