1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| test_cases = [ { 'name': '正常驾驶员', 'bac': 0.00, 'expected': 'PASS', 'dms_features': {'eye_openness_rate': 0.2, 'saccade_latency': 0.22} }, { 'name': '轻微饮酒', 'bac': 0.04, 'expected': 'PASS', 'dms_features': {'eye_openness_rate': 0.18, 'saccade_latency': 0.28} }, { 'name': '醉酒驾驶员', 'bac': 0.10, 'expected': 'FAIL', 'dms_features': {'eye_openness_rate': 0.08, 'saccade_latency': 0.45} } ]
def run_tests(system: HybridAlcoholDetection): for tc in test_cases: spectral_data = simulate_spectral_data(tc['bac']) startup_result = system.startup_check(spectral_data) ongoing_result = system.ongoing_monitor(tc['dms_features']) actual = 'PASS' if startup_result and ongoing_result else 'FAIL' status = '✅' if actual == tc['expected'] else '❌' print(f"{status} {tc['name']}: 预期={tc['expected']}, 实际={actual}")
def simulate_spectral_data(bac: float) -> np.ndarray: """模拟光谱数据""" base = np.array([0.8, 0.85, 0.9, 0.88, 0.82]) base[1] -= bac * 2 return base + np.random.normal(0, 0.02, 5)
|