v0.9.0
This commit is contained in:
+27
-1
@@ -114,7 +114,7 @@ mod tests {
|
||||
current_temperature: None, control_temperature_source: "device".into(), active_preset: "comfort".into(),
|
||||
manual_preset: None, manual_setpoint: None, manual_override_until: None, local_thermostat_power: None, local_thermostat_resume_at: None, local_thermostat_restore_zone_enabled: None, temporary_quick_thermostat: None,
|
||||
device_manual_override: false, device_manual_override_since: None, device_manual_override_until: None, device_manual_override_fields: Vec::new(), device_manual_override_baseline: None,
|
||||
revision: 1, control_owner: "automation".into(), control_source: "automation".into(), control_since: Some(Utc::now()), control_resume_at: None, control_reason: "test".into(), last_power_change_at: None, last_mode_change_at: None, lockout_until: None, lockout_reason: None,
|
||||
revision: 1, control_owner: "automation".into(), control_source: "automation".into(), control_since: Some(Utc::now()), control_resume_at: None, control_reason: "test".into(), last_power_change_at: None, last_mode_change_at: None, lockout_until: None, lockout_reason: None, compressor_pending_action: None, compressor_pending_since: None, compressor_pending_until: None, compressor_cancelled_action: None,
|
||||
effective_mode: "heat".into(), effective_setpoint: Some(21.0), device_setpoint: None,
|
||||
demand: false, demand_since: None, target_alerted_at: None, last_action_at: None, created_at: Utc::now(), updated_at: Utc::now(),
|
||||
}
|
||||
@@ -690,6 +690,32 @@ mod tests {
|
||||
assert_eq!(gree_outdoor_temperature(&[a, b, c]), Some(12.0));
|
||||
}
|
||||
|
||||
|
||||
#[test]
|
||||
fn compressor_queue_helpers_track_and_clear_pending_intent() {
|
||||
let mut zone = test_zone("device");
|
||||
let until = Utc::now() + chrono::Duration::seconds(180);
|
||||
let action = compressor_action_id("power_on", "cool", 23.04);
|
||||
assert_eq!(action, "power_on:cool:23.0");
|
||||
|
||||
queue_compressor_action(&mut zone, action.clone(), until.clone(), "minimum_off_before_start");
|
||||
assert_eq!(zone.compressor_pending_action.as_deref(), Some(action.as_str()));
|
||||
assert!(zone.compressor_pending_since.is_some());
|
||||
assert_eq!(zone.compressor_pending_until, Some(until.clone()));
|
||||
assert_eq!(zone.lockout_until, Some(until));
|
||||
assert_eq!(zone.lockout_reason.as_deref(), Some("minimum_off_before_start"));
|
||||
|
||||
zone.compressor_cancelled_action = Some(action.clone());
|
||||
clear_compressor_pending(&mut zone, false);
|
||||
assert!(zone.compressor_pending_action.is_none());
|
||||
assert_eq!(zone.compressor_cancelled_action.as_deref(), Some(action.as_str()));
|
||||
|
||||
rearm_compressor_queue(&mut zone);
|
||||
assert!(zone.compressor_cancelled_action.is_none());
|
||||
assert!(zone.lockout_until.is_none());
|
||||
assert!(zone.lockout_reason.is_none());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn outdoor_assist_is_bounded_and_direction_neutral() {
|
||||
let cool = outdoor_assist_offset("cool", Some(36.0), 27.0, 23.0);
|
||||
|
||||
Reference in New Issue
Block a user