OJ 测试数据生成器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_b89a4d0a/oj-data-generator。
技能介绍
解决的问题
给算法题造 OJ 测试数据时,手写 random 输入容易漏边界、格式不一致,也难以覆盖图论、DP、字符串等题型的典型构造。这个技能把题面转成可执行的测试点方案,并用标准程序校验输出,减少手工造数和漏测成本。
工作方式
- 自动分析:从题面提取题型、输入输出格式、数据范围、边界约束;缺失范围会按题型推断并标注。
- 一次性确认:展示完整方案,包括测试点分布、标程思路和交付方式,确认后不再逐步打断。
- cyaron 生成:使用
cyaron v0.7.0+生成1.in到10.in,配合std.py或std.cpp生成对应.out。 - 测试点设计:按
#1最小合法值、#2-3边界构造、#4-6中等随机、#7-8接近上限、#9-10极端规模安排。 - 自动校验:检查文件数量、非空、
UTF-8编码、标程异常或超时;通过--seed可复现。
注意点
默认只交付文件夹,不主动打 ZIP;如需打包,要先确认 flat 或 folder 布局。依赖 cyaron 新版 API,不能回退到普通 random。C++ 标程编译失败时可回退 Python 标程,但标程必须先 AC。
使用场景
- 写排序题标程后,需要覆盖 n=1、m=n、全相等、10^5 规模并产出 1.in~10.in 与 .out。
- Dijkstra 最短路题需要 chain、flower、complete、不连通图等构造,并自动检查标程超时。
- DP 题缺数据范围,需要按题型推断默认值,展示一次性确认方案后生成可复现种子测试数据。
- 字符串题需要空串、回文、最大长度等边界,生成 UTF-8 非空 .in/.out 文件夹交付。
适合人员
- 做算法课程或比赛训练的导师,需要快速给每题生成可验收的 10 组边界测试数据。
- 维护 OJ 题目的管理员,需要把题面、数据范围和图/数组结构转成标准输入输出集。
- 写标程的工程师,需要用 cyaron 造数并依赖标程 AC 与自动校验避免交付坏数据。
- 准备面试算法题的学生,需要覆盖排序、最短路、DP、字符串边界来测自己的解法。