算法测试用例说明¶
本目录包含 AI 学习教程中核心算法的 pytest 测试用例。
📁 目录结构¶
Text Only
算法/tests/
├── conftest.py # pytest配置和共享fixtures
├── test_basic.py # 基础数据结构测试
├── test_sort.py # 排序算法测试
├── test_search.py # 搜索算法测试
├── test_dp.py # 动态规划测试
└── README.md # 本文件
🚀 快速开始¶
安装依赖¶
运行所有测试¶
运行特定测试文件¶
运行特定测试类或方法¶
Bash
# 运行特定类
pytest test_sort.py::TestQuickSort -v
# 运行特定方法
pytest test_sort.py::TestQuickSort::test_quick_sort_cases -v
📊 测试覆盖¶
test_basic.py - 基础数据结构¶
- 数组操作: 访问、修改、插入、删除、切片
- 链表操作: 创建、遍历、反转、环检测
- 栈操作: push 、 pop 、 peek 、括号匹配
- 队列操作: enqueue 、 dequeue 、 FIFO 特性
- 哈希表操作: 字典、集合操作
- 二叉树操作: 遍历(前/中/后/层序)、深度计算、翻转
test_sort.py - 排序算法¶
- 冒泡排序 (O(n²))
- 选择排序 (O(n²))
- 插入排序 (O(n²))
- 归并排序 (O(n log n))
- 快速排序 (O(n log n))
- 堆排序 (O(n log n))
- 希尔排序 (O(n^1.25))
- 计数排序 (O(n+k))
- 桶排序 (O(n+k))
- 基数排序 (O(d*n))
test_search.py - 搜索算法¶
- 二分搜索: 标准版、递归版
- lower_bound/upper_bound
- 旋转数组搜索
- BFS: 图遍历、最短路径、网格搜索
- DFS: 图遍历、单词搜索
test_dp.py - 动态规划¶
- 斐波那契数列: 递归、记忆化、 DP 、空间优化
- 爬楼梯问题: 基础版、 k 步版
- 最长公共子序列 (LCS)
- 最长递增子序列 (LIS): DP 版、二分优化版
- 0-1 背包问题: 标准版、空间优化版
- 编辑距离
- 最大子数组和 (Kadane 算法)
- 打家劫舍: 线性、环形
- 股票买卖: 单次、多次、 k 次
🏷️ 测试标记¶
📈 代码覆盖率¶
✅ 测试用例规范¶
- 命名规范
- 测试文件:
test_*.py - 测试类:
Test* -
测试方法:
test_* -
测试结构
- 正常输入测试
- 边界条件测试
-
异常输入测试
-
参数化测试
-
使用
@pytest.mark.parametrize减少重复代码 -
文档注释
- 每个测试类和方法都有清晰的文档说明
🔧 常见问题¶
Q: 如何只运行快速测试¶
Q: 如何查看打印输出¶
Q: 如何在测试失败时进入调试¶
Q: 如何并行运行测试¶
📝 添加新测试¶
- 在对应的测试文件中添加新的测试类或方法
- 遵循现有的命名和结构规范
- 添加必要的文档注释
- 运行测试确保通过
作者: AI 学习教程 用途: 为即将读研的大学生提供算法验证工具
⚠️ 核验说明(2026-04-04):本页已按算法测试用例目录的用途重新复核。测试页主要用于验证边界条件、复杂度退化与实现正确性,不应被理解为只有刷题场景才需要这些测试。
最后更新日期: 2026-04-04