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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
| class DADSSLabTest: """DADSS实验室测试""" def test_accuracy(self): """ 准确性测试 测试条件: - 湿气体呼吸模拟器 - BAC范围:0.00-0.20% - 温度:-40°C 到 +85°C - 干扰:灰尘、震动、运动 """ test_cases = [ {'bac': 0.00, 'expected': 'pass'}, {'bac': 0.05, 'expected': 'warn'}, {'bac': 0.08, 'expected': 'fail'}, {'bac': 0.15, 'expected': 'fail'}, ] results = [] for case in test_cases: breath = self._simulate_breath(case['bac']) measured_bac = self.sensor.measure_bac(breath) decision = 'fail' if measured_bac >= 0.08 else 'pass' results.append({ 'target': case['bac'], 'measured': measured_bac, 'decision': decision, 'expected': case['expected'], 'pass': decision == case['expected'] }) return results def test_interference(self): """ 干扰测试 测试场景: - 乘客饮酒(驾驶员未饮酒) - 车内酒精喷雾(清洁剂) - 香水/古龙水干扰 - 高湿度环境 """ interference_tests = [ {'scenario': 'passenger_drinking', 'driver_bac': 0.00}, {'scenario': 'alcohol_spray', 'driver_bac': 0.00}, {'scenario': 'perfume', 'driver_bac': 0.00}, {'scenario': 'high_humidity', 'driver_bac': 0.05}, ] results = [] for test in interference_tests: breath = self._simulate_interference(test) measured = self.sensor.measure_bac(breath) error = abs(measured - test['driver_bac']) results.append({ 'scenario': test['scenario'], 'true_bac': test['driver_bac'], 'measured': measured, 'error': error, 'pass': error < 0.01 }) return results
|