test: Add test to the DocumentKeyAttr slice repr

This commit is contained in:
Clément Renault 2019-01-02 21:48:58 +01:00
parent e6d3840f12
commit 7f5e6c5b6e
No known key found for this signature in database
GPG Key ID: 0151CDAB43460DAE

View File

@ -8,7 +8,7 @@ use crate::database::schema::SchemaAttr;
use crate::DocumentId; use crate::DocumentId;
const DOC_KEY_LEN: usize = 4 + size_of::<u64>(); const DOC_KEY_LEN: usize = 4 + size_of::<u64>();
const DOC_KEY_ATTR_LEN: usize = DOC_KEY_LEN + 1 + size_of::<u32>(); const DOC_KEY_ATTR_LEN: usize = DOC_KEY_LEN + 1 + size_of::<u16>();
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
pub struct DocumentKey([u8; DOC_KEY_LEN]); pub struct DocumentKey([u8; DOC_KEY_LEN]);
@ -126,3 +126,20 @@ impl fmt::Debug for DocumentKeyAttr {
.finish() .finish()
} }
} }
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn keep_as_ref_order() {
for (a, b) in (0..).zip(1..).take(u16::max_value() as usize - 1) {
let id = DocumentId(0);
let a = DocumentKeyAttr::new(id, SchemaAttr(a));
let b = DocumentKeyAttr::new(id, SchemaAttr(b));
assert!(a < b);
assert!(a.as_ref() < b.as_ref());
}
}
}