diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2025-07-21 08:34:52 -0400 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2025-08-20 15:57:26 +0200 |
| commit | 4cfe2d81345bc3807bed3facd9a222dd6e789435 (patch) | |
| tree | 3487b44756767d8df53e6f17c2564c530bca3f19 | |
| parent | 283f53e3e381fad773457a54bc20bf7f61db2c6e (diff) | |
| download | muhqs-game-4cfe2d81345bc3807bed3facd9a222dd6e789435.tar.gz muhqs-game-4cfe2d81345bc3807bed3facd9a222dd6e789435.zip | |
add more deck and farm area effect tests
| -rw-r--r-- | go/game/areaEffect_test.go | 31 | ||||
| -rw-r--r-- | go/game/deck_test.go | 36 |
2 files changed, 65 insertions, 2 deletions
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") + } +} |
