v0.13.1
This commit is contained in:
1 parent
236540e0f0
commit
9b4fafdfa6
14 files changed
+262
-62
No files matched your search
@@ -233,6 +233,60 @@ mod tests {
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn regulator_zone_event_dedup_ignores_only_updated_at_heartbeat() {
|
||||
let zone = test_zone("device");
|
||||
let mut heartbeat = zone.clone();
|
||||
heartbeat.updated_at = zone.updated_at.clone() + chrono::Duration::seconds(5);
|
||||
assert_eq!(
|
||||
zone_event_semantic_value(&zone).unwrap(),
|
||||
zone_event_semantic_value(&heartbeat).unwrap()
|
||||
);
|
||||
|
||||
heartbeat.device_temperature = Some(24.5);
|
||||
assert_ne!(
|
||||
zone_event_semantic_value(&zone).unwrap(),
|
||||
zone_event_semantic_value(&heartbeat).unwrap()
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn regulator_zone_plan_invalidation_tracks_only_plan_inputs() {
|
||||
let zone = test_zone("combined");
|
||||
let mut diagnostics_only = zone.clone();
|
||||
diagnostics_only.device_temperature = Some(24.0);
|
||||
diagnostics_only.external_temperature = Some(23.0);
|
||||
diagnostics_only.last_action_at = Some(Utc::now());
|
||||
assert!(!zone_runtime_change_affects_control_plan(&zone, &diagnostics_only));
|
||||
|
||||
let mut temperature_changed = zone.clone();
|
||||
temperature_changed.current_temperature = Some(23.5);
|
||||
assert!(zone_runtime_change_affects_control_plan(&zone, &temperature_changed));
|
||||
|
||||
let mut demand_changed = zone.clone();
|
||||
demand_changed.demand = !zone.demand;
|
||||
assert!(zone_runtime_change_affects_control_plan(&zone, &demand_changed));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn device_poll_heartbeat_does_not_invalidate_control_plan() {
|
||||
let device = Device::simulated_default();
|
||||
let mut heartbeat = device.clone();
|
||||
heartbeat.last_seen = Some(Utc::now() + chrono::Duration::seconds(15));
|
||||
heartbeat.updated_at = Utc::now() + chrono::Duration::seconds(15);
|
||||
heartbeat.response_time_ms = Some(42);
|
||||
heartbeat.current_temperature = Some(25.1);
|
||||
assert!(!device_runtime_change_affects_control_plan(&device, &heartbeat));
|
||||
|
||||
let mut power_changed = device.clone();
|
||||
power_changed.power = !device.power;
|
||||
assert!(device_runtime_change_affects_control_plan(&device, &power_changed));
|
||||
|
||||
let mut health_changed = device.clone();
|
||||
health_changed.communication_failures = 1;
|
||||
assert!(device_runtime_change_affects_control_plan(&device, &health_changed));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn zone_can_use_separate_heating_and_cooling_hysteresis() {
|
||||
let mut zone = test_zone("device");
|
||||
|
||||
Reference in new issue
Block a user