diff options
author | Chih-Hung Hsieh <chh@google.com> | 2020-11-09 15:57:01 -0800 |
---|---|---|
committer | Chih-Hung Hsieh <chh@google.com> | 2020-11-09 16:04:03 -0800 |
commit | cdc803b2d8a708561464f3969b9c7ab2ce1ac885 (patch) | |
tree | c1175c3534d94f38d3c79fa5b5adc2fac623b620 /tests/serde.rs | |
parent | 20b03fd894d8d6f04fb417d0d979dc6a12ebbb34 (diff) | |
download | hashbrown-cdc803b2d8a708561464f3969b9c7ab2ce1ac885.tar.gz |
Import hashbrown-0.9.1
* Add Android.bp, OWNERS, METADATA and other 3p package required files.
Bug: 171754295
Test: build all rust crates.
Change-Id: I87e5577f6683f412b22dc79b39fa06e40924fbf8
Diffstat (limited to 'tests/serde.rs')
-rw-r--r-- | tests/serde.rs | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/tests/serde.rs b/tests/serde.rs new file mode 100644 index 0000000..570bf70 --- /dev/null +++ b/tests/serde.rs @@ -0,0 +1,65 @@ +#![cfg(feature = "serde")] + +use core::hash::BuildHasherDefault; +use hashbrown::{HashMap, HashSet}; +use rustc_hash::FxHasher; +use serde_test::{assert_tokens, Token}; + +// We use FxHash for this test because we rely on the ordering +type FxHashMap<K, V> = HashMap<K, V, BuildHasherDefault<FxHasher>>; +type FxHashSet<T> = HashSet<T, BuildHasherDefault<FxHasher>>; + +#[test] +fn map_serde_tokens_empty() { + let map = FxHashMap::<char, u32>::default(); + + assert_tokens(&map, &[Token::Map { len: Some(0) }, Token::MapEnd]); +} + +#[test] +fn map_serde_tokens() { + let mut map = FxHashMap::default(); + map.insert('b', 20); + map.insert('a', 10); + map.insert('c', 30); + + assert_tokens( + &map, + &[ + Token::Map { len: Some(3) }, + Token::Char('a'), + Token::I32(10), + Token::Char('b'), + Token::I32(20), + Token::Char('c'), + Token::I32(30), + Token::MapEnd, + ], + ); +} + +#[test] +fn set_serde_tokens_empty() { + let set = FxHashSet::<u32>::default(); + + assert_tokens(&set, &[Token::Seq { len: Some(0) }, Token::SeqEnd]); +} + +#[test] +fn set_serde_tokens() { + let mut set = FxHashSet::default(); + set.insert(20); + set.insert(10); + set.insert(30); + + assert_tokens( + &set, + &[ + Token::Seq { len: Some(3) }, + Token::I32(20), + Token::I32(10), + Token::I32(30), + Token::SeqEnd, + ], + ); +} |