Files
game-cards/tests/quick_test.gd

48 lines
1.4 KiB
GDScript

extends Node
func _ready():
print("=== Guandan Card Game - Core Logic Test ===\n")
var config := RuleConfig.standard()
var deck := Deck.create(42)
print("Deck: %d cards" % deck.remaining())
assert(deck.remaining() == 108, "deck size")
deck = Deck.create(42)
deck.deal(108)
assert(deck.remaining() == 0, "deal all")
var d1 := Deck.create(42)
var d2 := Deck.create(42)
var h1 := d1.deal(27)
var h2 := d2.deal(27)
var deterministic := true
for i in range(27):
if h1[i].card_id != h2[i].card_id: deterministic = false
assert(deterministic, "shuffle deterministic")
var gs := GameState.create(config, 42)
assert(gs.current_rank == 2, "start level 2")
var t := Actions.Team.create_team(0, 0, 2)
assert(t.teammate_of(0) == 2, "teammate")
var l1 := L1BasicAI.new()
var hand: Array = [h1[0]]
var decision := l1.decide(hand, [], 5, config)
assert(decision.type != -2, "L1 AI returns valid result")
var l2 := L2RuleAI.new()
var decision2 := l2.decide(hand, [], 5, config)
assert(decision2.type != -2, "L2 AI returns valid result")
print("\n=== ALL TESTS PASSED ===")
get_tree().quit(0)
func assert(condition: bool, name: String):
if condition:
print(" PASS: %s" % name)
else:
printerr(" FAIL: %s" % name)
get_tree().quit(1)