#![cfg(feature = "model103")]
use sunspec::{
models::model103::{Model103, St},
Model,
};
#[test]
fn test_model103() {
#[rustfmt::skip]
let data = [
0, 0, 0, 0, 65534, 3965, 3953, 3963, 2288, 2284, 2285, 65535, 0, 0, 4998, 65534, 0, 0, 0, 0, 0, 0, 60, 8980, 0, 0, 0, 16, 65535, 0, 0, 32768, 3927, 32768, 32768, 65534, 2, 0, 65535, 65535, 65535, 65535, 0, 0, 65535, 65535, 65535, 65535, 0, 0, ];
let model = Model103::parse(&data).unwrap();
assert_eq!(model.a, 0);
assert_eq!(model.aph_a, 0);
assert_eq!(model.aph_b, 0);
assert_eq!(model.aph_c, 0);
assert_eq!(model.a_sf, -2);
assert_eq!(model.pp_vph_ab, Some(3965));
assert_eq!(model.pp_vph_bc, Some(3953));
assert_eq!(model.pp_vph_ca, Some(3963));
assert_eq!(model.ph_vph_a, 2288);
assert_eq!(model.ph_vph_b, 2284);
assert_eq!(model.ph_vph_c, 2285);
assert_eq!(model.v_sf, -1);
assert_eq!(model.w, 0);
assert_eq!(model.w_sf, 0);
assert_eq!(model.hz, 4998);
assert_eq!(model.hz_sf, -2);
assert_eq!(model.va, Some(0));
assert_eq!(model.va_sf, Some(0));
assert_eq!(model.v_ar, Some(0));
assert_eq!(model.v_ar_sf, Some(0));
assert_eq!(model.pf, Some(0));
assert_eq!(model.pf_sf, Some(0));
assert_eq!(model.wh, 3_941_140);
assert_eq!(model.wh_sf, 0);
assert_eq!(model.dca, Some(0));
assert_eq!(model.dca_sf, Some(0));
assert_eq!(model.dcv, Some(16));
assert_eq!(model.dcv_sf, Some(-1));
assert_eq!(model.dcw, Some(0));
assert_eq!(model.dcw_sf, Some(0));
assert_eq!(model.tmp_cab, i16::MIN);
assert_eq!(model.tmp_snk, Some(3927));
assert_eq!(model.tmp_trns, None);
assert_eq!(model.tmp_ot, None);
assert_eq!(model.tmp_sf, -2);
assert_eq!(model.st, St::Sleeping);
assert_eq!(model.st_vnd, Some(0));
assert_eq!(model.evt1.bits(), u32::MAX);
assert_eq!(model.evt2.bits(), u32::MAX);
assert_eq!(model.evt_vnd1.map(|value| value.bits()), Some(0));
assert_eq!(model.evt_vnd2, None);
assert_eq!(model.evt_vnd3, None);
assert_eq!(model.evt_vnd4.map(|value| value.bits()), Some(0));
}