From 2efe13ae51f9184de6ebd34f82e788f5b49fcdf6 Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Mon, 21 Jul 2025 08:34:52 -0400 Subject: add more deck and farm area effect tests --- go/game/areaEffect_test.go | 31 +++++++++++++++++++++++++++++-- go/game/deck_test.go | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 go/game/deck_test.go (limited to 'go') diff --git a/go/game/areaEffect_test.go b/go/game/areaEffect_test.go index 0da2c8ac..30bcb760 100644 --- a/go/game/areaEffect_test.go +++ b/go/game/areaEffect_test.go @@ -16,8 +16,7 @@ symbols: m, _ := readMap(r) s.SetMap(m) - s.AddNewPlayer("player", NewDeck()) - p := s.Players()[0] + p := s.AddNewPlayer("player", NewDeck()) t0_0 := s.Map().TileAt(Position{0, 0}) entered0_0, left0_0 := false, false @@ -68,3 +67,31 @@ symbols: sword := newEquipmentFromPath("base/sword", t0_1, p) s.addPermanent(sword) } + +func TestFarmEffect(t *testing.T) { + mapDef := `map: |1- + FH +symbols: + F: farm + H: house +` + s := NewLocalState() + r := strings.NewReader(mapDef) + m, _ := readMap(r) + s.SetMap(m) + + p := s.AddNewPlayer("player", NewDeck()) + f := s.addNewUnit(NewCard("misc/farmer"), Position{0, 0}, p) + if len(f.FullActions) != 1 { + t.Fatal("farmer has no farm fullaction") + } + + a := NewMoveAction(f) + a.Target().AddSelection(m.TileAt(Position{1, 0})) + + a.resolve(s) + + if len(f.FullActions) != 0 { + t.Fatal("farmer still has farm fullaction") + } +} diff --git a/go/game/deck_test.go b/go/game/deck_test.go new file mode 100644 index 00000000..049f3440 --- /dev/null +++ b/go/game/deck_test.go @@ -0,0 +1,36 @@ +package game + +import ( + "math/rand" + "testing" +) + +func TestDeckDraw(t *testing.T) { + d := NewDeckFromDeckList("1 base/archer") + c := d.DrawOne() + if c.Name != "Archer" { + t.Fatal("Drawn card is not archer") + } + + c = d.DrawOne() + if c != nil { + t.Fatal("Drawed card from empty deck") + } +} + +func TestDeckShuffle(*testing.T) { + d := NewDeckFromCardPaths([]string{"base/archer", "magic/ritual!"}) + d.Shuffle(rand.New(rand.NewSource(1))) +} + +func TestDeckDrawX(t *testing.T) { + poc := NewPileOfCards() + a := NewCard("base/archer") + r := NewCard("magic/ritual!") + poc.AddCards([]*Card{a, r}) + d := NewDeckFrom(poc) + c := d.Draw(2) + if c[0] != a || c[1] != r { + t.Fatal("unexpected cards drawn") + } +} -- cgit v1.2.3