Test serde implementation.
This commit is contained in:
23
src/lib.rs
23
src/lib.rs
@@ -1,4 +1,5 @@
|
||||
extern crate serde;
|
||||
extern crate serde_test;
|
||||
extern crate unreachable;
|
||||
|
||||
use std::fmt;
|
||||
@@ -9,6 +10,7 @@ use std::collections::HashMap;
|
||||
|
||||
use serde::ser::{self, Serialize};
|
||||
use serde::de::{self, Deserialize, SeqAccess, Visitor};
|
||||
use serde_test::{assert_tokens, Token};
|
||||
|
||||
mod hasher;
|
||||
|
||||
@@ -26,7 +28,7 @@ fn block_bit(x: u64, d: u64) -> (u64, u64) {
|
||||
(x / d, x % d)
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
#[derive(PartialEq, Debug)]
|
||||
pub struct BitSet {
|
||||
blocks: Storage,
|
||||
nbits: usize,
|
||||
@@ -507,4 +509,23 @@ mod tests {
|
||||
assert_eq!(None, iter.next());
|
||||
assert_eq!(None, iter.next());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_ser_de() {
|
||||
let mut set = BitSet::new();
|
||||
set.insert(20);
|
||||
set.insert(10);
|
||||
set.insert(30);
|
||||
|
||||
assert_tokens(
|
||||
&set,
|
||||
&[
|
||||
Token::Seq { len: None },
|
||||
Token::U64(10),
|
||||
Token::U64(20),
|
||||
Token::U64(30),
|
||||
Token::SeqEnd,
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user