micropelt 1.1.8

Micropelt device communication definitions
Documentation
use super::*;

#[test]
fn display() {
    assert_eq!(
        DeviceValue::User(SetValue::FlowTemperature(59.5)).to_string(),
        SetValue::FlowTemperature(59.5).to_string()
    );
}

#[test]
fn partial_equal() {
    assert_eq!(
        DeviceValue::User(SetValue::AmbientTemperature(23.0)),
        DeviceValue::User(SetValue::AmbientTemperature(23.0))
    );
    assert!(
        DeviceValue::User(SetValue::AmbientTemperature(23.0))
            != DeviceValue::User(SetValue::AmbientTemperature(23.5))
    );
    assert!(
        DeviceValue::User(SetValue::AmbientTemperature(23.0))
            != DeviceValue::User(SetValue::FlowTemperature(23.0))
    );
    assert_eq!(
        DeviceValue::DetectingOpeningPoint(26.75),
        DeviceValue::DetectingOpeningPoint(26.75)
    );
    assert_eq!(
        DeviceValue::SlowHarvesting(24.25),
        DeviceValue::SlowHarvesting(24.25)
    );
    assert!(
        DeviceValue::User(SetValue::ValvePosition(25)) != DeviceValue::DetectingOpeningPoint(25.0)
    );
    assert!(
        DeviceValue::User(SetValue::FlowTemperature(25.0)) != DeviceValue::SlowHarvesting(25.0)
    );
    assert!(DeviceValue::DetectingOpeningPoint(25.0) != DeviceValue::SlowHarvesting(25.0));
}

#[test]
fn to_bin() {
    assert_eq!(19, SetValue::ValvePosition(19).value_to_bin().unwrap());
    assert_eq!(98, SetValue::FlowTemperature(49.0).value_to_bin().unwrap());
    assert_eq!(
        39,
        SetValue::AmbientTemperature(19.5).value_to_bin().unwrap()
    );
}

#[test]
fn out_of_range() {
    assert!(SetValue::ValvePosition(101).value_to_bin().is_err());
    assert!(SetValue::FlowTemperature(100.0).value_to_bin().is_err());
    assert!(SetValue::AmbientTemperature(67.5).value_to_bin().is_err());
    assert!(SetValue::AmbientTemperature(-12.0).value_to_bin().is_err());
}

#[test]
fn test_float_point_five_to_bin() {
    assert_eq!(28, float_point_five_to_bin(14.0, 35.0).unwrap());
}