test: add GUT test files for core modules (Card, Deck, HandEvaluator, RuleEngine, GameState)

This commit is contained in:
xiaji
2026-05-29 09:15:59 +08:00
parent 3272e3dc0a
commit 5741ba1dc0
5 changed files with 299 additions and 0 deletions

35
tests/test_deck.gd Normal file
View File

@@ -0,0 +1,35 @@
extends GutTest
func test_deck_has_108_cards():
var deck := Deck.create()
assert_eq(deck.remaining(), 108)
func test_deal_reduces_count():
var deck := Deck.create()
var cards := deck.deal(27)
assert_eq(cards.size(), 27)
assert_eq(deck.remaining(), 81)
func test_shuffle_deterministic():
var seed := 12345
var deck1 := Deck.create(seed)
var deck2 := Deck.create(seed)
var hand1 := deck1.deal(108)
var hand2 := deck2.deal(108)
for i in range(108):
assert_eq(hand1[i].card_id, hand2[i].card_id)
func test_deal_empty_deck():
var deck := Deck.create()
deck.deal(108)
var extra := deck.deal(1)
assert_eq(extra.size(), 0)
func test_deck_card_ids_unique():
var deck := Deck.create()
var all_cards := deck.deal(108)
var ids := {}
for c in all_cards:
assert_false(ids.has(c.card_id))
ids[c.card_id] = true
assert_eq(ids.size(), 108)