diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2016-01-18 18:25:43 +0100 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2016-01-18 19:14:06 +0100 |
commit | 6aa9276a0670a19615039514a7add0b9090fedad (patch) | |
tree | b0aeb4f7de004e8504ab12a4edd10d6af92e9d62 /libimagutil | |
parent | be6a0b8b78f636baaa47489bb502904672fa8329 (diff) |
util: Add variant-tests
Diffstat (limited to 'libimagutil')
-rw-r--r-- | libimagutil/src/variants.rs | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/libimagutil/src/variants.rs b/libimagutil/src/variants.rs index 0ec53830..a57e694d 100644 --- a/libimagutil/src/variants.rs +++ b/libimagutil/src/variants.rs @@ -21,3 +21,39 @@ pub fn generate_variants<A, B, C, F>(base: A, modders: Vec<B>, f: &F) modders.into_iter().map(|m| f(&base, m)).collect() } +#[cfg(test)] +mod test { + + use super::generate_variants; + + #[test] + fn test_variants_simple() { + let base = 1; + let vars = vec![0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; + let res = generate_variants(base, vars, &|base, var| base + var); + + assert!(res.len() == 11, format!("Length is {} instead of 11", res.len())); + assert!(res.iter().all(|i| *i > 0)); + assert!(res == vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) + } + + #[test] + fn test_variants_pathes() { + use std::path::PathBuf; + + let base = PathBuf::from("/"); + let vars = vec!["foo", "bar", "baz"]; + let res = generate_variants(base, vars, &|base, var| { + let mut base = base.clone(); + base.push(var); + base + }); + + assert!(res.len() == 3, format!("Length is {} instead of 3", res.len())); + let eq_vec = vec!["/foo", "/bar", "/baz"]; + let eq = eq_vec.iter().map(PathBuf::from); + assert!(res.into_iter().zip(eq).all(|(orig, equi)| orig == equi)); + } + +} + |