36 lines
936 B
GDScript3
36 lines
936 B
GDScript3
|
|
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)
|