rabukasim / tools /debug /manual_test_patterns.py
trioskosmos's picture
Upload folder using huggingface_hub
463f868 verified
from compiler.patterns.effects import EFFECT_PATTERNS
def _get_pattern(patterns, name):
return next((p for p in patterns if p.name == name), None)
test_cases = [
# Draw patterns
("draw_cards", "カードを2枚引く", True),
("draw_cards", "カードを3枚引く", True),
("draw_one", "引く", True),
("draw_one", "引き入れる", False), # Excluded
# Blade patterns (with verbose regex)
("add_blades", "ブレード+1", True),
("add_blades", "ブレード+2", True),
("add_blades", "ブレード+3", True),
("add_blades", "ブレードスコア場合", False), # Excluded context
# Heart patterns (with verbose regex)
("add_hearts", "ハート+1", True),
("add_hearts", "ハート+2", True),
# Recovery patterns
("recover_member", "控え室から手札に加える", True),
("recover_live", "控え室からライブカードを手札に加える", True),
# Look patterns
("look_deck_top", "デッキの一番上を見る", True),
("look_deck", "デッキを3枚見て", True),
# New patterns (gap coverage)
("recover_from_success_zone", "成功ライブカード置き場から手札に加える", True),
("play_from_hand", "手札からステージに出す", True),
]
failed = False
print("Running manual test_effect_matches...")
for name, text, should_match in test_cases:
pattern = _get_pattern(EFFECT_PATTERNS, name)
if pattern is None:
print(f"ERROR: Pattern '{name}' not found")
failed = True
continue
match = pattern.matches(text)
matched = bool(match)
if matched != should_match:
print(f"FAIL: {name} on '{text}' -> Got {matched}, Expected {should_match}")
failed = True
else:
# print(f"PASS: {name} on '{text}'")
pass
if not failed:
print("ALL TESTS PASSED")
else:
print("SOME TESTS FAILED")