#!/usr/bin/env python3 # -*- coding: utf-8 -*- """保护定值模型(P1)主机侧单元测试运行器(L0.5,纯标准库)。 做什么:用本机 MSVC 离线编译 test/host/prot_set/prot_set_test.c(#include 纳入 生产源文件 App/algo/prot_set.c),验证 Q10 定点模型 / 范围校验 / 整表装载 all-or-nothing / 校验和封存-自检-闭锁(定值校验和)闭环。 用法(仓库根目录): & '.venv\\Scripts\\python.exe' test/host/prot_set/run_unit_test.py 退出码:0=PASS / 1=测试失败 / 2=环境错误。 设计依据:docs/算法/继电保护功能复现规划.md §5(定值参数模型)、§3.4(定值校验和)。 创建日期:2026-10-11 """ import os import sys HERE = os.path.dirname(os.path.abspath(__file__)) ROOT = os.path.dirname(os.path.dirname(os.path.dirname(HERE))) sys.path.insert(0, os.path.join(ROOT, "test", "host", "common")) from unit_test_harness import TestBuild, run_host_unit_test # noqa: E402 BUILD = TestBuild( name="Prot Set Tests", src=os.path.join(HERE, "prot_set_test.c"), include_dirs=[ os.path.join(ROOT, "App", "algo"), HERE, ], summary_marker="=== Prot Set Tests:", ) if __name__ == "__main__": sys.exit(run_host_unit_test(BUILD))