Test serde implementation.

This commit is contained in:
2018-01-05 21:31:03 +01:00
parent 4ae3c74b26
commit 4bbfba26fe
2 changed files with 23 additions and 1 deletions

View File

@@ -6,6 +6,7 @@ authors = ["logaritmisk <anders.e.olsson@gmail.com>"]
[dependencies]
unreachable = "1.0"
serde = "1.0"
serde_test = "1.0"
[profile.release]
lto = true

View File

@@ -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,
],
);
}
}