diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2025-08-22 12:47:37 +0200 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2025-08-22 12:47:37 +0200 |
| commit | f23257f15efd68d45dc4b79a09b434d917713a6e (patch) | |
| tree | e56bb13596f9878d4548cb76a0ac7f5272289cce /go | |
| parent | 3e6e9bbc9fdd171b0eeb32ea1e2767a118825bb7 (diff) | |
| download | muhqs-game-f23257f15efd68d45dc4b79a09b434d917713a6e.tar.gz muhqs-game-f23257f15efd68d45dc4b79a09b434d917713a6e.zip | |
remove global test state and boiler plate
Diffstat (limited to 'go')
| -rw-r--r-- | go/game/action_test.go | 28 | ||||
| -rw-r--r-- | go/game/ai_test.go | 42 | ||||
| -rw-r--r-- | go/game/areaEffect_test.go | 6 | ||||
| -rw-r--r-- | go/game/cardImplementations_test.go | 40 | ||||
| -rw-r--r-- | go/game/cardParsing_test.go | 8 | ||||
| -rw-r--r-- | go/game/marks_test.go | 4 | ||||
| -rw-r--r-- | go/game/state_test.go | 12 | ||||
| -rw-r--r-- | go/game/targets_test.go | 6 | ||||
| -rw-r--r-- | go/game/unit_test.go | 11 | ||||
| -rw-r--r-- | go/game/winCondition_test.go | 12 |
10 files changed, 54 insertions, 115 deletions
diff --git a/go/game/action_test.go b/go/game/action_test.go index f72193ad..d00b5d56 100644 --- a/go/game/action_test.go +++ b/go/game/action_test.go @@ -8,17 +8,10 @@ import ( "muhq.space/muhqs-game/go/utils" ) -const PASS_STRING = "muhq\u00A0pass" - -var ( - s *LocalState = NewLocalState() - p *Player = s.AddNewPlayer("muhq", NewDeck()) -) +const PASS_STRING = "p\u00A0pass" func TestUpkeepAction(t *testing.T) { - s := NewLocalState() - p := s.AddNewPlayer("muhq", NewDeck()) - o := s.AddNewPlayer("opponent", NewDeck()) + s, _, p, o := newMockState() m, _ := GetMap("2P-ring-street") s.SetMap(m) @@ -56,6 +49,7 @@ func TestUpkeepAction(t *testing.T) { } func TestMarshalPass(t *testing.T) { + _, _, p, _ := newMockState() exp := PASS_STRING a := NewPassPriority(p) is := string(MarshalAction(a)) @@ -65,6 +59,7 @@ func TestMarshalPass(t *testing.T) { } func TestUnmarshalPass(t *testing.T) { + s, _, _, _ := newMockState() in := PASS_STRING a, err := UnmarshalAction(s, []byte(in)) if err != nil { @@ -75,9 +70,10 @@ func TestUnmarshalPass(t *testing.T) { } } -const PICK_ACTION_STRING = "muhq\u00A0pick\u00A0base/archer:[base/archer, magic/more!]" +const PICK_ACTION_STRING = "p\u00A0pick\u00A0base/archer:[base/archer, magic/more!]" func TestMarshalPickAction(t *testing.T) { + _, _, p, _ := newMockState() exp := PICK_ACTION_STRING poc := NewPileOfCards() c := NewCard("base/archer") @@ -91,6 +87,7 @@ func TestMarshalPickAction(t *testing.T) { } func TestUnmarshalPickAction(t *testing.T) { + s, _, _, _ := newMockState() in := PICK_ACTION_STRING a, err := UnmarshalAction(s, []byte(in)) if err != nil { @@ -119,14 +116,10 @@ symbols: H: house S: street ` - s := NewLocalState() - r := strings.NewReader(mapDef) - m, _ := readMap(r) + s, _, p, o := newMockState() + m, _ := readMap(strings.NewReader(mapDef)) s.SetMap(m) - p := s.AddNewPlayer("player", NewDeck()) - o := s.AddNewPlayer("opponent", NewDeck()) - t1 := s.addNewUnit(NewCard("base/fighter"), Position{0, 0}, o) t2 := s.addNewUnit(NewCard("base/fighter"), Position{0, 1}, o) t3 := s.addNewUnit(NewCard("base/fighter"), Position{0, 2}, o) @@ -195,8 +188,7 @@ symbols: S: street ` s := NewLocalState() - r := strings.NewReader(mapDef) - m, _ := readMap(r) + m, _ := readMap(strings.NewReader(mapDef)) s.SetMap(m) p := s.AddNewPlayer("player", NewDeck()) diff --git a/go/game/ai_test.go b/go/game/ai_test.go index 9a9df154..8a1a03c3 100644 --- a/go/game/ai_test.go +++ b/go/game/ai_test.go @@ -5,8 +5,6 @@ import ( "testing" ) -var player = NewMockPlayer() - func TestGenerateGraph(t *testing.T) { mapDef := `map: |1- HST @@ -18,8 +16,9 @@ symbols: F: farm S: street ` - r := strings.NewReader(mapDef) - m, _ := readMap(r) + + player := NewMockPlayer() + m, _ := readMap(strings.NewReader(mapDef)) a := NewUnit(NewCard("base/archer"), m.TileAt(Position{0, 0}), player) f := NewUnit(NewCard("misc/farmer"), m.TileAt(Position{2, 2}), player) @@ -54,11 +53,11 @@ func TestAngrySquidDiagonal(t *testing.T) { symbols: W: deep water ` - r := strings.NewReader(mapDef) - m, err := readMap(r) + m, err := readMap(strings.NewReader(mapDef)) if m == nil || err != nil { t.Fatal("failed to parse map", m, err) } + player := NewMockPlayer() s := NewUnit(NewCard("kraken/angry_squid"), m.TileAt(Position{5, 0}), player) f := NewUnit(NewCard("misc/farmer"), m.TileAt(Position{6, 5}), player) @@ -80,8 +79,7 @@ func TestClowFish(t *testing.T) { symbols: W: deep water ` - r := strings.NewReader(mapDef) - m, _ := readMap(r) + m, _ := readMap(strings.NewReader(mapDef)) s := NewLocalState() s.SetMap(m) p1 := s.AddNewPlayer("kraken", NewDeck()) @@ -136,8 +134,7 @@ func TestBauernFeind(t *testing.T) { symbols: W: wall ` - r := strings.NewReader(mapDef) - m, _ := readMap(r) + m, _ := readMap(strings.NewReader(mapDef)) s := NewLocalState() s.SetMap(m) p1 := s.AddNewPlayer("tyrant", NewDeck()) @@ -182,8 +179,8 @@ symbols: F: farm S: street ` - r := strings.NewReader(mapDef) - m, _ := readMap(r) + m, _ := readMap(strings.NewReader(mapDef)) + player := NewMockPlayer() a := NewUnit(NewCard("base/archer"), m.TileAt(Position{0, 0}), player) if SuggestUnitAI(a) != "aggressive" { t.Fatal("expected aggressive") @@ -218,8 +215,8 @@ symbols: F: farm S: street ` - r := strings.NewReader(mapDef) - m, _ := readMap(r) + m, _ := readMap(strings.NewReader(mapDef)) + player := NewMockPlayer() k := NewUnit(NewCard("misc/king"), m.TileAt(Position{0, 0}), player) ai := NewUnitAIFromDesc(nil, k, "shy") if ai == nil { @@ -238,12 +235,9 @@ symbols: F: farm S: street ` - s := NewLocalState() - p := s.AddNewPlayer("muhq", NewDeck()) - o := s.AddNewPlayer("opponent", NewDeck()) + s, _, p, o := newMockState() - r := strings.NewReader(mapDef) - m, _ := readMap(r) + m, _ := readMap(strings.NewReader(mapDef)) s.SetMap(m) s.addNewUnit(NewCard("base/knight"), Position{0, 0}, p) @@ -329,14 +323,11 @@ symbols: S: street W: deep water ` - s := NewLocalState() + s, _, p, o := newMockState() m, _ := readMap(strings.NewReader(mapDef)) s.SetMap(m) - p := s.AddNewPlayer("p", NewDeck()) - o := s.AddNewPlayer("o", NewDeck()) - s.addNewUnit(NewCard("base/archer"), Position{1, 3}, p) f1 := s.addNewUnit(NewCard("base/fighter"), Position{1, 1}, o) f2 := s.addNewUnit(NewCard("base/fighter"), Position{1, 0}, o) @@ -373,14 +364,11 @@ func TestAggressiveFlexAttackUnitAI(t *testing.T) { symbols: S: street ` - s := NewLocalState() + s, _, p, o := newMockState() m, _ := readMap(strings.NewReader(mapDef)) s.SetMap(m) - p := s.AddNewPlayer("p", NewDeck()) - o := s.AddNewPlayer("o", NewDeck()) - pm := s.addNewUnit(NewCard("base/pikeman"), Position{0, 0}, p) c := s.addNewUnit(NewCard("base/cavalry"), Position{3, 0}, o) diff --git a/go/game/areaEffect_test.go b/go/game/areaEffect_test.go index 80cbd4c0..949bc592 100644 --- a/go/game/areaEffect_test.go +++ b/go/game/areaEffect_test.go @@ -12,8 +12,7 @@ symbols: H: house ` s := NewLocalState() - r := strings.NewReader(mapDef) - m, _ := readMap(r) + m, _ := readMap(strings.NewReader(mapDef)) s.SetMap(m) p := s.AddNewPlayer("player", NewDeck()) @@ -76,8 +75,7 @@ symbols: H: house ` s := NewLocalState() - r := strings.NewReader(mapDef) - m, _ := readMap(r) + m, _ := readMap(strings.NewReader(mapDef)) s.SetMap(m) p := s.AddNewPlayer("player", NewDeck()) diff --git a/go/game/cardImplementations_test.go b/go/game/cardImplementations_test.go index 96164203..eb3ec567 100644 --- a/go/game/cardImplementations_test.go +++ b/go/game/cardImplementations_test.go @@ -71,14 +71,11 @@ symbols: S: street H: house ` - s := NewLocalState() + s, _, player, opo := newMockState() m, _ := readMap(strings.NewReader(mapDef)) s.SetMap(m) - player := s.AddNewPlayer("p", NewDeck()) - opo := s.AddNewPlayer("o", NewDeck()) - p := s.addNewUnit(NewCard("base/pikeman"), Position{0, 0}, player) c := s.addNewUnit(NewCard("base/cavalry"), Position{0, 2}, opo) prot := s.addNewUnit(NewCard("base/cavalry_archer"), Position{1, 2}, opo) @@ -139,14 +136,11 @@ symbols: S: street H: house ` - s := NewLocalState() + s, _, player, opo := newMockState() m, _ := readMap(strings.NewReader(mapDef)) s.SetMap(m) - player := s.AddNewPlayer("p", NewDeck()) - opo := s.AddNewPlayer("o", NewDeck()) - mis := s.addNewUnit(NewCard("base/missionary"), Position{0, 0}, player) king := s.addNewUnit(NewCard("misc/king"), Position{0, 2}, opo) k := s.addNewUnit(NewCard("base/knight"), Position{2, 0}, opo) @@ -190,19 +184,9 @@ symbols: } func TestMace(t *testing.T) { - s := NewLocalState() - m := newEmpty2x2Map() - s.SetMap(m) - - player := s.AddNewPlayer("p", NewDeck()) - ctrl := newMockPlayerControl(player) - ctrl.actionToSend = NewPassPriority(player) - player.Ctrl = ctrl - - opo := s.AddNewPlayer("o", NewDeck()) - ctrl = newMockPlayerControl(opo) - ctrl.actionToSend = NewPassPriority(opo) - opo.Ctrl = ctrl + s, _, player, opo := newMockState() + player.Ctrl.(*MockPlayerControl).actionToSend = NewPassPriority(player) + opo.Ctrl.(*MockPlayerControl).actionToSend = NewPassPriority(opo) k := s.addNewUnit(NewCard("base/knight"), Position{0, 0}, player) p := s.addNewUnit(NewCard("base/pioneer"), Position{0, 1}, opo) @@ -232,12 +216,7 @@ func TestMace(t *testing.T) { } func TestArmor(t *testing.T) { - s := NewLocalState() - m := newEmpty2x2Map() - s.SetMap(m) - - player := s.AddNewPlayer("p", NewDeck()) - opo := s.AddNewPlayer("o", NewDeck()) + s, _, player, opo := newMockState() a := s.addNewUnit(NewCard("base/archer"), Position{0, 0}, player) p := s.addNewUnit(NewCard("base/pioneer"), Position{0, 1}, opo) @@ -255,12 +234,7 @@ func TestArmor(t *testing.T) { } func TestBanner(t *testing.T) { - s := NewLocalState() - m := newEmpty2x2Map() - s.SetMap(m) - - player := s.AddNewPlayer("p", NewDeck()) - opo := s.AddNewPlayer("o", NewDeck()) + s, _, player, opo := newMockState() s.addNewArtifact(NewCard("equipments/banner"), Position{0, 0}, player) w := s.addNewUnit(NewCard("base/wormtongue"), Position{1, 0}, player) diff --git a/go/game/cardParsing_test.go b/go/game/cardParsing_test.go index adabcbaa..6f003b57 100644 --- a/go/game/cardParsing_test.go +++ b/go/game/cardParsing_test.go @@ -6,9 +6,7 @@ import ( ) func TestCloak(t *testing.T) { - s := NewLocalState() - p := NewMockPlayer() - s.SetMap(newEmpty2x2Map()) + s, _, p, _ := newMockState() a := s.addNewUnit(NewCard("base/archer"), Position{0, 0}, p) c := s.addNewEquipment(NewCard("equipments/cloak"), Position{1, 0}, p) die := NewCard("magic/die!") @@ -29,9 +27,7 @@ func TestCloak(t *testing.T) { } func TestFighter(t *testing.T) { - s := NewLocalState() - p := NewMockPlayer() - s.SetMap(newEmpty2x2Map()) + s, _, p, _ := newMockState() f := s.addNewUnit(NewCard("base/fighter"), Position{0, 0}, p) f.onUpkeep() if f.AvailAttackActions != 2 { diff --git a/go/game/marks_test.go b/go/game/marks_test.go index 368d68b2..6c5204e8 100644 --- a/go/game/marks_test.go +++ b/go/game/marks_test.go @@ -12,12 +12,10 @@ func TestParalysis(t *testing.T) { symbols: H: house ` - s := NewLocalState() + s, _, p, _ := newMockState() m, _ := readMap(strings.NewReader(mapDef)) s.SetMap(m) - p := s.AddNewPlayer("player", NewDeck()) - u := s.addNewUnit(NewCard("base/archer"), Position{0, 0}, p) u.tap() u.adjustMarks(UnitStates.Paralysis, 1) diff --git a/go/game/state_test.go b/go/game/state_test.go index 6a9d6eb8..f770e7fa 100644 --- a/go/game/state_test.go +++ b/go/game/state_test.go @@ -4,16 +4,24 @@ import ( "testing" ) -func TestDeclareActions(t *testing.T) { +// newMockState creates a new LocalState with an empty 2x2 map and two players. +// The players "p" and "o" are initialized with mock player controls. +func newMockState() (*LocalState, *Map, *Player, *Player) { s := NewLocalState() m := newEmpty2x2Map() s.SetMap(m) p := s.AddNewPlayer("p", NewDeck()) - p.Store.AddCard(NewCard("base/sword")) p.Ctrl = newMockPlayerControl(p) + o := s.AddNewPlayer("o", NewDeck()) o.Ctrl = newMockPlayerControl(o) + return s, m, p, o +} + +func TestDeclareActions(t *testing.T) { + s, m, p, o := newMockState() + p.Store.AddCard(NewCard("base/sword")) a := s.addNewUnit(NewCard("base/archer"), Position{0, 0}, p) k := s.addNewUnit(NewCard("base/knight"), Position{1, 1}, o) diff --git a/go/game/targets_test.go b/go/game/targets_test.go index eed94f4f..e4105e8b 100644 --- a/go/game/targets_test.go +++ b/go/game/targets_test.go @@ -20,8 +20,7 @@ symbols: D: docks ` s := NewLocalState() - r := strings.NewReader(mapDef) - m, _ := readMap(r) + m, _ := readMap(strings.NewReader(mapDef)) s.SetMap(m) p := s.AddNewPlayer("player", NewDeck()) @@ -153,8 +152,7 @@ symbols: W: deep water ` s := NewLocalState() - r := strings.NewReader(mapDef) - m, _ := readMap(r) + m, _ := readMap(strings.NewReader(mapDef)) s.SetMap(m) p := s.AddNewPlayer("player", NewDeck()) diff --git a/go/game/unit_test.go b/go/game/unit_test.go index d6ad271c..0efefc3f 100644 --- a/go/game/unit_test.go +++ b/go/game/unit_test.go @@ -18,8 +18,7 @@ symbols: W: deep water ` s := NewLocalState() - r := strings.NewReader(mapDef) - m, _ := readMap(r) + m, _ := readMap(strings.NewReader(mapDef)) s.SetMap(m) p := s.AddNewPlayer("player", NewDeck()) @@ -92,14 +91,10 @@ symbols: S: street W: deep water ` - s := NewLocalState() - r := strings.NewReader(mapDef) - m, _ := readMap(r) + s, _, p, o := newMockState() + m, _ := readMap(strings.NewReader(mapDef)) s.SetMap(m) - p := s.AddNewPlayer("player", NewDeck()) - o := s.AddNewPlayer("opponent", NewDeck()) - a := s.addNewUnit(NewCard("base/archer"), Position{2, 0}, p) for x := range 3 { for y := range 3 { diff --git a/go/game/winCondition_test.go b/go/game/winCondition_test.go index e5fbb655..e6aaed4a 100644 --- a/go/game/winCondition_test.go +++ b/go/game/winCondition_test.go @@ -7,12 +7,9 @@ import ( ) func TestKingGame(t *testing.T) { - s := NewLocalState() - s.SetMap(newEmpty2x2Map()) + s, _, p, o := newMockState() s._map.WinCondition = KingGame - p := s.AddNewPlayer("p", NewDeck()) k1 := s.addNewUnit(NewCard("misc/king"), Position{0, 0}, p) - o := s.AddNewPlayer("o", NewDeck()) k2 := s.addNewUnit(NewCard("misc/king"), Position{1, 1}, o) w := s._map.WinCondition.check(s) @@ -40,13 +37,8 @@ func TestKingGame(t *testing.T) { } func TestConcession(t *testing.T) { - s := NewLocalState() - s.SetMap(newEmpty2x2Map()) - p := s.AddNewPlayer("p", NewDeck()) - p.Ctrl = newMockPlayerControl(p) + s, _, p, o := newMockState() s.addNewUnit(NewCard("misc/king"), Position{0, 0}, p) - o := s.AddNewPlayer("o", NewDeck()) - o.Ctrl = newMockPlayerControl(o) s.addNewUnit(NewCard("misc/king"), Position{1, 1}, o) o.concede() |
