Judge / backend /scripts /create_test_fixtures.py
GonzaViss's picture
feat: repo structure, corpus pipeline scripts, and PDF parser
949529a
Raw
History Blame Contribute Delete
2.79 kB
"""
Genera el fixture PDF para tests del parser.
Corre una sola vez: python scripts/create_test_fixtures.py
"""
import pymupdf
from pathlib import Path
OUTPUT = Path(__file__).parent.parent / "tests" / "fixtures" / "rulebook_sample.pdf"
def create_fixture_pdf():
doc = pymupdf.open()
# --- P谩gina 1 ---
page = doc.new_page(width=595, height=842) # A4
# T铆tulo principal (24pt)
page.insert_text((72, 80), "Riftbound Core Rules", fontsize=24, fontname="helv")
# Secci贸n 1 (16pt)
page.insert_text((72, 160), "1. Game Overview", fontsize=16, fontname="helv")
# Cuerpo (10pt)
page.insert_text(
(72, 195),
"Riftbound is a trading card game for two players.",
fontsize=10,
fontname="helv",
)
page.insert_text(
(72, 210),
"Each player builds a deck and competes to reduce the opponent's health to zero.",
fontsize=10,
fontname="helv",
)
# Subsecci贸n 1.1 (13pt)
page.insert_text((72, 250), "1.1 The Golden Rules", fontsize=13, fontname="helv")
page.insert_text(
(72, 275),
"If a card contradicts the rules, the card takes precedence.",
fontsize=10,
fontname="helv",
)
page.insert_text(
(72, 290),
"Impossible instructions are ignored.",
fontsize=10,
fontname="helv",
)
# Subsecci贸n 1.2 (13pt)
page.insert_text((72, 330), "1.2 Starting the Game", fontsize=13, fontname="helv")
page.insert_text(
(72, 355),
"Each player starts with 20 health points.",
fontsize=10,
fontname="helv",
)
page.insert_text(
(72, 370),
"Draw 5 cards to form your opening hand.",
fontsize=10,
fontname="helv",
)
# --- P谩gina 2 ---
page2 = doc.new_page(width=595, height=842)
# Secci贸n 2 (16pt)
page2.insert_text((72, 80), "2. Card Types", fontsize=16, fontname="helv")
page2.insert_text(
(72, 110),
"There are several types of cards in Riftbound.",
fontsize=10,
fontname="helv",
)
# Subsecci贸n 2.1 (13pt)
page2.insert_text((72, 150), "2.1 Champions", fontsize=13, fontname="helv")
page2.insert_text(
(72, 175),
"Champions are your main units. Each player starts with one champion.",
fontsize=10,
fontname="helv",
)
# Subsecci贸n 2.2 (13pt)
page2.insert_text((72, 215), "2.2 Spells", fontsize=13, fontname="helv")
page2.insert_text(
(72, 240),
"Spells are one-time effects played from your hand.",
fontsize=10,
fontname="helv",
)
doc.save(str(OUTPUT))
print(f"Fixture PDF creado: {OUTPUT}")
if __name__ == "__main__":
create_fixture_pdf()