mirror of
https://github.com/sigp/lighthouse.git
synced 2026-03-22 14:24:44 +00:00
Add new CompareFields trait and derive
This commit is contained in:
46
eth2/utils/compare_fields/tests/tests.rs
Normal file
46
eth2/utils/compare_fields/tests/tests.rs
Normal file
@@ -0,0 +1,46 @@
|
||||
use compare_fields::{CompareFields, FieldComparison};
|
||||
use compare_fields_derive::CompareFields;
|
||||
|
||||
#[derive(Clone, Debug, CompareFields)]
|
||||
pub struct Simple {
|
||||
a: u64,
|
||||
b: u16,
|
||||
c: Vec<u8>,
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn compare() {
|
||||
let foo = Simple {
|
||||
a: 42,
|
||||
b: 12,
|
||||
c: vec![1, 2],
|
||||
};
|
||||
|
||||
let mut bar = foo.clone();
|
||||
|
||||
let comparisons = foo.compare_fields(&bar);
|
||||
|
||||
assert!(!comparisons.iter().any(|c| c.equal == false));
|
||||
|
||||
assert_eq!(
|
||||
comparisons[0],
|
||||
FieldComparison {
|
||||
equal: true,
|
||||
field_name: "a".to_string(),
|
||||
a: "42".to_string(),
|
||||
b: "42".to_string(),
|
||||
}
|
||||
);
|
||||
|
||||
bar.a = 30;
|
||||
|
||||
assert_eq!(
|
||||
foo.compare_fields(&bar)[0],
|
||||
FieldComparison {
|
||||
equal: false,
|
||||
field_name: "a".to_string(),
|
||||
a: "42".to_string(),
|
||||
b: "30".to_string(),
|
||||
}
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user