chore: cryptarchia unit tests update (#657)
* test: getters for Branches - derive(PartialEq) for Branch * fix: format code * test: Slot genesis and add * fix: change expect message * test: add ParentMissing error case - derive(PartialEq) only for tests * fix: false positive for ParentMissing * fix: add PartialEq to derive for Branch * fix: unwrap once only * fix: simply create an Id * fix: remove inappropriate meaning * fix: simplify unwrap for branches.get()
This commit is contained in:
parent
e48a26a8b5
commit
91854e2db6
|
@ -21,7 +21,7 @@ pub struct Branches<Id> {
|
||||||
tips: HashSet<Id>,
|
tips: HashSet<Id>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Debug)]
|
#[derive(Clone, Debug, PartialEq)]
|
||||||
pub struct Branch<Id> {
|
pub struct Branch<Id> {
|
||||||
id: Id,
|
id: Id,
|
||||||
parent: Id,
|
parent: Id,
|
||||||
|
@ -131,6 +131,7 @@ where
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, Error)]
|
#[derive(Debug, Clone, Error)]
|
||||||
|
#[cfg_attr(test, derive(PartialEq))]
|
||||||
pub enum Error<Id> {
|
pub enum Error<Id> {
|
||||||
#[error("Parent block: {0:?} is not know to this node")]
|
#[error("Parent block: {0:?} is not know to this node")]
|
||||||
ParentMissing(Id),
|
ParentMissing(Id),
|
||||||
|
@ -220,7 +221,7 @@ where
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
pub mod tests {
|
pub mod tests {
|
||||||
use super::Cryptarchia;
|
use super::{Cryptarchia, Slot};
|
||||||
use crate::Config;
|
use crate::Config;
|
||||||
use std::hash::{DefaultHasher, Hash, Hasher};
|
use std::hash::{DefaultHasher, Hash, Hasher};
|
||||||
|
|
||||||
|
@ -320,4 +321,35 @@ pub mod tests {
|
||||||
res[..8].copy_from_slice(&hash.to_be_bytes());
|
res[..8].copy_from_slice(&hash.to_be_bytes());
|
||||||
res
|
res
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_getters() {
|
||||||
|
let engine = Cryptarchia::from_genesis([0; 32], config());
|
||||||
|
let id_0 = engine.genesis();
|
||||||
|
|
||||||
|
// Get branch directly from HashMap
|
||||||
|
let branch1 = engine.branches.get(&id_0).expect("branch1 should be there");
|
||||||
|
|
||||||
|
let branches = engine.branches();
|
||||||
|
|
||||||
|
// Get branch using getter
|
||||||
|
let branch2 = branches.get(&id_0).expect("branch2 should be there");
|
||||||
|
|
||||||
|
assert_eq!(branch1, branch2);
|
||||||
|
assert_eq!(branch1.id(), branch2.id());
|
||||||
|
assert_eq!(branch1.parent(), branch2.parent());
|
||||||
|
assert_eq!(branch1.slot(), branch2.slot());
|
||||||
|
assert_eq!(branch1.length(), branch2.length());
|
||||||
|
|
||||||
|
let slot = Slot::genesis();
|
||||||
|
|
||||||
|
assert_eq!(slot + 10u64, Slot::from(10));
|
||||||
|
|
||||||
|
let id_100 = [100; 32];
|
||||||
|
|
||||||
|
assert!(
|
||||||
|
branches.get(&id_100).is_none(),
|
||||||
|
"id_100 should not be related to this branch"
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue