# 简单的算法题测试与数据生成工具 **Repository Path**: changjiang-university_2/simple_algorithm_test_make_item ## Basic Information - **Project Name**: 简单的算法题测试与数据生成工具 - **Description**: 本仓库提供了一套简单的算法测试和测试数据生成工具 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-11-07 - **Last Updated**: 2024-11-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # [简单的算法题测试与数据生成工具 🚀]() 本仓库提供了一套完整的算法测试和数据生成工具集,主要包含 `Alg_Test_Data_Gen` 和 `Answer_Tool` 两个核心模块。 ## ✨ 特性 - 📊 **数据生成** - 支持灵活的测试数据生成规则 - 可自定义测试规则和配置参数 - 动态更新测试规则的能力 - 🔍 **算法测试** - 自动编译并运行解决方案 - 支持多组测试数据评测 - 提供详细的性能分析(时间/内存) ## 📁 目录结构 ``` ├── Alg_Test_Data_Gen/ │ ├── config.py # 数据生成配置 │ ├── create.py # 数据生成主脚本 │ └── stand_solve.cpp # 标准答案 └── Answer_Tool/ ├── config.py # 测试配置 ├── main.py # 测试主脚本 ├── questions # 测试问题文件夹 └── solve.cpp # 待测试解决方案 ``` ## 🚀 使用指南 ### 1、安装依赖和环境 1. **克隆仓库并安装依赖和环境** ```bash git clone https://gitee.com/changjiang-university_2/simple_algorithm_test_make_item.git cd simple_algorithm_test_make_item pip install -r requirements.txt ``` 2. **配置gcc/g++环境** [MinGW-w64的安装详细步骤(c/c++的编译器gcc、g++的windows版,win10、win11真实可用)-CSDN博客](https://blog.csdn.net/qq_44918090/article/details/132190274) ### 2. 数据生成流程 1. **编写算法题标准答案** - 在 `Alg_Test_Data_Gen` 目录下创建 `stand_solve.cpp` - 实现算法题的标准答案代码 2. **配置生成规则** - 编辑 `config.py` 文件 - 设置 `IN_RULE` 输入规则,例如: ```python # 最大公约数DIY规则编写 def update_in_rule(): """ 动态更新全局的 IN_RULE 配置 """ # 将特殊规则赋给Config的IN_RULE # 不规则行数决定变量 -- 可以随意编写数量 IN_CONST = { 'n': random.randint(1, 100000)} #生成一个随机的n值 # 编写规则 IN_RULE = [ [[IN_CONST['n']]], # 第一行规则:先是n,然后是范围[1, 100000] for i in range(IN_CONST['n']): IN_RULE.append([[1,int(2e9)], [1,int(2e9)]]) """ 意思为 第一行输入 n 且范围是[1, 100000] 后面输入n行每行有两个数分别范围是[1,int(2e9)] """ ``` **3. 生成测试数据** ```bash python create.py ``` ### 3. 算法测试流程 1. **准备测试数据** - 将生成的测试数据文件夹放入 `questions` 目录 2. **配置测试参数** - 编辑 `Answer_Tool/config.py` - 设置 `SAMPLE_DATA` 为对应的算法题测试数据文件夹名 ```python class Config: # 解题代码 SOLVE_FILE = "solve.cpp" # 问题测试数据文件夹(前面生成) SAMPLE_DATA = "最大公约数" ``` 3. **编写解题代码** - 在 `Answer_Tool` 目录下 `solve.cpp `上写入你的解题代码 4. **运行测试** - 测试代码的正确性和通过率 ```bash python main.py ``` ## 🔧 配置说明 ### 数据生成配置 (config.py) ```python class Config: SOLVE_FILE = "stand_solve.cpp" PROBLEM_NAME = "最大公约数" IN_NUM = 13 # 测试点数量 IN_RULE = [ [[1, int(1e8)], [1, int(1e8)]] ] IS_DIY = True # 是否使用自定义规则 ``` ### 动态规则生成 如果需要更复杂的输入规则,可以通过 `update_in_rule` 函数动态生成: ```python @staticmethod def update_in_rule(): IN_CONST = { 'n': random.randint(1, 100000) } IN_RULE = [ [[IN_CONST['n']]], # 根据 n 动态生成后续规则 ] Config.IN_RULE = IN_RULE ``` ## 📝 注意事项 - 确保所有依赖库都已正确安装 - 测试数据生成前请仔细检查配置规则 - 建议先使用小规模数据测试配置是否正确 ## 🤝 贡献 欢迎提交 Issue 和 Pull Request 来帮助改进这个工具! ## 📄 许可证 采用MIT许可证,这意味着你可以随意使用、修改、分发这个项目,但请保留我们的版权信息哦!