How uyo9/tps-single-starter works
TPS is a command-line toolkit and workspace for authoring competitive-programming problems: configure a problem, generate and validate tests, compile and run solutions against them, inspect verdicts, and export a contest package. The tree exposes separate commands for generation, compilation, invocation, stress testing, verification, and statement handling, plus internal helpers and CMS/DOMjudge exporters. The README is empty and most command implementations are unsampled, so the graph shows only wiring supported by the sampled source or clearly separated capabilities indicated by the tree; uncertain command-to-command links are omitted.
Main entry points: gen.sh Generate tests · invoke.py Invocation engine · verify.py Verify problem · CMS.py CMS exporter
Components 25
Problem authoring
- Problem config
pro/problem.json - Subtasks config
pro/subtasks.json - Generation plan
pro/gen/data - Generator
pro/gen/gen.cpp - Generate tests
pro/scripts/gen.sh - Plan parser
pro/scripts/internal/gen_data_parser.py - Generated tests
pro/gen/data
Test and solution execution
- Solutions
pro/solution - Compile solutions
pro/scripts/compile.sh - Invoke solution
pro/scripts/invoke.sh - Invocation engine
pro/scripts/internal/invoke.py - Test runner
pro/scripts/internal/invoke_test.sh - Run tests
pro/scripts/run.sh - Stress testing
pro/scripts/stress.sh - Run logs
pro/scripts/internal
Verification and validation
- Input validator
pro/validator/validator.cpp - Testlib support
pro/validator/testlib.h - Verify problem
pro/scripts/verify.py - Problem statement
pro/statement/index.md - Statement handling
pro/scripts/statement.sh
Contest export
- CMS exporter
pro/scripts/exporters/CMS.py - DOMjudge exporter
pro/scripts/exporters/DOMjudge.py
Other components
- Problem author
- CMS
- DOMjudge
Connections 31
- Problem author → Generate tests: starts generation
- Generate tests → Plan parser: parses plan
- Generate tests → Generator: runs generator
- Generator → Testlib support: uses support
- Generate tests → Generated tests: writes tests
- Generation plan → Plan parser: read by
- Problem author → Compile solutions: starts compilation
- Compile solutions → Solutions: compiles sources
- Problem author → Invoke solution: runs solution
- Invoke solution → Invocation engine: dispatches
- Invocation engine → Test runner: runs each test
- Test runner → Generated tests: reads tests
- Invocation engine → Solutions: selects solution
- Invocation engine → Run logs: reads and writes
- Problem author → Run tests: starts test run
- Problem author → Stress testing: starts stress test
- Problem author → Verify problem: checks package
- Verify problem → Problem config: validates config
- Verify problem → Subtasks config: validates subtasks
- Verify problem → Generation plan: checks plan
- Input validator → Testlib support: uses support
- Problem author → Statement handling: handles statement
- Statement handling → Problem statement: uses statement
- Problem author → CMS exporter: exports package
- CMS exporter → Problem config: reads problem data
- CMS exporter → Subtasks config: reads subtask data
- CMS exporter → CMS: creates package for
- Problem author → DOMjudge exporter: exports package
- DOMjudge exporter → Problem config: reads problem data
- DOMjudge exporter → Subtasks config: reads subtask data
- DOMjudge exporter → DOMjudge: creates package for