税率换算:最小可复现示例 v1 用途 复现“漏除100”错误,并演示零值数据为什么不能检出该错误。 全部业务规则均为合成教学约定,不对应真实税务规定或生产系统。 文件 requirements.txt:完整输入、校验、计算规则。 cases.csv:23条固定输入与人工推导的预期,作为脚本测试夹具。 check.py:示例实现、故意错误实现与CSV执行器,无第三方依赖。 README.txt:本说明。 运行 安装 Python 3.9 或更高版本,将四个文件保存在同一目录。 进入该目录执行: python check.py 预期:23/23 passed; 0 failed,退出码0。 python check.py --mutant 预期:17/23 passed; 6 failed,退出码1(这是预期检出了故意错误)。 检出错误的用例:T01、T04、T05、T12、T13、T22。 可通过 python check.py --cases 自己的文件.csv 指定其他数据。 CSV建议用文本编辑器修改,避免表格软件把原始异常输入自动转换。 独立复算 T01:13%=13/100=0.13,100×0.13=13.00。 T02、T03:零金额或零税率都使乘积为0,正确与错误实现结果相同。 T04:10%=0.1,0.05×0.1=0.005,ROUND_HALF_UP保留两位为0.01。 T05:0.13%=0.0013,100×0.0013=0.13。 T12:100%=1,100×1=100.00。 T13:1000000×0.13=130000.00。 T22:去除空白后等同T01。 其余为输入校验用例,对照requirements.txt的R2、R3、R4、R6核对错误码。 CSV预期为固定值,不从calculate函数动态生成;修改算法时不要同步重算预期。 复用到自己的系统 1. 先确认真实规则,包括输入13还是0.13、金额含税与否、退款和舍入规则。 2. 按已确认规则独立推导并更新CSV预期,保留来源和版本。 3. 将check.py的calculate替换为实际函数或接口适配,返回(状态码, 税额字符串)。 4. 用相同数据核对真实输出;通过页面执行时,还需补字段路径和观察位置。 5. 增加一个你怀疑的错误算法,检查哪些数据能够区分它。 验证范围 2026-10-08实际执行:正常实现23/23通过;故意错误实现6条失败,退出码1。 这只说明该样例能检出指定错误,不证明完整税务正确、真实接口可用、页面正常, 也不证明所有异常已覆盖。异常用例沿用共同输入校验,因此不能据此声称发现了校验缺陷。