| |
| #[macro_use] extern crate maplit; |
| |
| #[test] |
| #[allow(unused_parens)] |
| fn test_parse() { |
| let mut m = hashmap!{}; |
| m.insert(1, 1); |
| hashmap!{1 => 1}; |
| hashmap!{1 => 1,}; |
| hashmap!{1 + 1 => 1, 2 + 1 => 2}; |
| hashmap!{1 + 1 => 1, 2 + 1 => 2,}; |
| hashmap!{{1 + 2} => 1, (1 + 3) => {0 + 2}}; |
| let m = hashmap!{"a".to_string() => 1 + 2, "b".to_string() => 1 + 3}; |
| assert_eq!(m["a"], 3); |
| assert_eq!(m["b"], 4); |
| let m = hashmap!{"a".to_string() => 1 + 2, "b".to_string() => 1 + 3, }; |
| assert_eq!(m["a"], 3); |
| assert_eq!(m["b"], 4); |
| |
| let mut s = hashset!{}; |
| s.insert(1); |
| hashset!{1}; |
| hashset!{1,}; |
| hashset!{1, 2}; |
| hashset!{1, 2,}; |
| hashset!{1 + 1, 2 + 1}; |
| hashset!{1 + 1, 2 + 1,}; |
| hashset!{{1 + 1}, (2 + 1)}; |
| } |
| |
| #[test] |
| fn hashset() { |
| let mut set = hashset!{}; |
| assert!(set.is_empty()); |
| set.insert(2); |
| let set = hashset!{1}; |
| assert_eq!(set.len(), 1); |
| let set = hashset!{2, 3}; |
| assert_eq!(set.len(), 2); |
| // Test that we can use many elements without hitting the macro recursion limit |
| let set = hashset!{1, |
| 2,3,4,5,6,7,8,9,0,1,2,3,4,5,6, |
| 2,3,4,5,6,7,8,9,0,1,2,3,4,5,6, |
| 2,3,4,5,6,7,8,9,0,1,2,3,4,5,6, |
| 2,3,4,5,6,7,8,9,0,1,2,3,4,5,6, |
| 2,3,4,5,6,7,8,9,0,1,2,3,4,5,6, |
| 2,3,4,5,6,7,8,9,0,1,2,3,4,5,6, |
| 2,3,4,5,6,7,8,9,0,1,2,3,4,5,6, |
| 2,3,4,5,6,7,8,9,0,1,2,3,4,5,6, |
| 2,3,4,5,6,7,8,9,0,1,2,3,4,5,6, |
| 2,3,4,5,6,7,8,9,0,1,2,3,4,5,6, |
| 2,3,4,5,6,7,8,9,0,1,2,3,4,5,6, |
| 2,3,4,5,6,7,8,9,0,1,2,3,4,5,6, |
| 2,3,4,5,6,7,8,9,0,1,2,3,4,5,6, |
| 2,3,4,5,6,7,8,9,0,1,2,3,4,5,6, |
| 2,3,4,5,6,7,8,9,0,1,2,3,4,5,6, |
| 2,3,4,5,6,7,8,9,0,1,2,3,4,5,6, |
| 2,3,4,5,6,7,8,9,0,1,2,3,4,5,6, |
| 2,3,4,5,6,7,8,9,0,1,2,3,4,5,6, |
| 2,3,4,5,6,7,8,9,0,1,2,3,4,5,6, |
| 2,3,4,5,6,7,8,9,0,1,2,3,4,5,6, |
| }; |
| assert_eq!(set.len(), 10); |
| } |