summaryrefslogtreecommitdiffstats
path: root/libimagutil
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2016-01-18 18:25:43 +0100
committerMatthias Beyer <mail@beyermatthias.de>2016-01-18 19:14:06 +0100
commit6aa9276a0670a19615039514a7add0b9090fedad (patch)
treeb0aeb4f7de004e8504ab12a4edd10d6af92e9d62 /libimagutil
parentbe6a0b8b78f636baaa47489bb502904672fa8329 (diff)
util: Add variant-tests
Diffstat (limited to 'libimagutil')
-rw-r--r--libimagutil/src/variants.rs36
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));
+ }
+
+}
+