use epics_base_rs::server::record::Record;
use epics_base_rs::server::records::bi::BiRecord;
use epics_base_rs::server::records::bo::BoRecord;
use epics_base_rs::server::records::busy::BusyRecord;
use epics_base_rs::server::records::mbbi::MbbiRecord;
use epics_base_rs::server::records::mbbi_direct::MbbiDirectRecord;
use epics_base_rs::server::records::mbbo::MbboRecord;
use epics_base_rs::server::records::mbbo_direct::MbboDirectRecord;
use epics_base_rs::types::EpicsValue;
#[test]
fn bi_monitor_gate_only_on_change() {
let mut rec = BiRecord::default();
rec.put_field("RVAL", EpicsValue::Long(1)).unwrap();
rec.process().unwrap();
assert_eq!(rec.monitor_value_changed(), Some(true)); rec.process().unwrap();
assert_eq!(rec.monitor_value_changed(), Some(false)); rec.put_field("RVAL", EpicsValue::Long(0)).unwrap();
rec.process().unwrap();
assert_eq!(rec.monitor_value_changed(), Some(true)); rec.process().unwrap();
assert_eq!(rec.monitor_value_changed(), Some(false)); }
#[test]
fn bo_monitor_gate_only_on_change() {
let mut rec = BoRecord::default();
rec.put_field("VAL", EpicsValue::Enum(1)).unwrap();
rec.process().unwrap();
assert_eq!(rec.monitor_value_changed(), Some(true)); rec.process().unwrap();
assert_eq!(rec.monitor_value_changed(), Some(false)); rec.put_field("VAL", EpicsValue::Enum(0)).unwrap();
rec.process().unwrap();
assert_eq!(rec.monitor_value_changed(), Some(true)); rec.process().unwrap();
assert_eq!(rec.monitor_value_changed(), Some(false)); }
#[test]
fn busy_monitor_gate_only_on_change() {
let mut rec = BusyRecord::default();
rec.put_field("VAL", EpicsValue::Enum(1)).unwrap();
rec.process().unwrap();
assert_eq!(rec.monitor_value_changed(), Some(true)); rec.process().unwrap();
assert_eq!(rec.monitor_value_changed(), Some(false)); rec.put_field("VAL", EpicsValue::Enum(0)).unwrap();
rec.process().unwrap();
assert_eq!(rec.monitor_value_changed(), Some(true)); rec.process().unwrap();
assert_eq!(rec.monitor_value_changed(), Some(false)); }
#[test]
fn mbbi_monitor_gate_only_on_change() {
let mut rec = MbbiRecord::default();
rec.put_field("RVAL", EpicsValue::Long(1)).unwrap();
rec.process().unwrap();
assert_eq!(rec.monitor_value_changed(), Some(true)); rec.process().unwrap();
assert_eq!(rec.monitor_value_changed(), Some(false)); rec.put_field("RVAL", EpicsValue::Long(2)).unwrap();
rec.process().unwrap();
assert_eq!(rec.monitor_value_changed(), Some(true)); rec.process().unwrap();
assert_eq!(rec.monitor_value_changed(), Some(false)); }
#[test]
fn mbbo_monitor_gate_only_on_change() {
let mut rec = MbboRecord::default();
rec.put_field("VAL", EpicsValue::Enum(1)).unwrap();
rec.process().unwrap();
assert_eq!(rec.monitor_value_changed(), Some(true)); rec.process().unwrap();
assert_eq!(rec.monitor_value_changed(), Some(false)); rec.put_field("VAL", EpicsValue::Enum(2)).unwrap();
rec.process().unwrap();
assert_eq!(rec.monitor_value_changed(), Some(true)); rec.process().unwrap();
assert_eq!(rec.monitor_value_changed(), Some(false)); }
#[test]
fn mbbi_direct_monitor_gate_only_on_change() {
let mut rec = MbbiDirectRecord::default();
rec.put_field("RVAL", EpicsValue::Long(1)).unwrap();
rec.process().unwrap();
assert_eq!(rec.monitor_value_changed(), Some(true)); rec.process().unwrap();
assert_eq!(rec.monitor_value_changed(), Some(false)); rec.put_field("RVAL", EpicsValue::Long(5)).unwrap();
rec.process().unwrap();
assert_eq!(rec.monitor_value_changed(), Some(true)); rec.process().unwrap();
assert_eq!(rec.monitor_value_changed(), Some(false)); }
#[test]
fn mbbo_direct_monitor_gate_only_on_change() {
let mut rec = MbboDirectRecord::default();
rec.put_field("VAL", EpicsValue::Long(1)).unwrap();
rec.process().unwrap();
assert_eq!(rec.monitor_value_changed(), Some(true)); rec.process().unwrap();
assert_eq!(rec.monitor_value_changed(), Some(false)); rec.put_field("VAL", EpicsValue::Long(5)).unwrap();
rec.process().unwrap();
assert_eq!(rec.monitor_value_changed(), Some(true)); rec.process().unwrap();
assert_eq!(rec.monitor_value_changed(), Some(false)); }