diff --git a/crates/tree/Cargo.toml b/crates/tree/Cargo.toml index 840b32f..faae97c 100644 --- a/crates/tree/Cargo.toml +++ b/crates/tree/Cargo.toml @@ -14,4 +14,7 @@ edition = "2018" [dependencies] predicates-core = { version = "1.0", path = "../core" } -treeline = "0.1" +termtree = "0.2" + +[dev-dependencies] +predicates = { version = "2.0", path = "../.." } diff --git a/crates/tree/examples/failures.rs b/crates/tree/examples/failures.rs new file mode 100644 index 0000000..ffdf386 --- /dev/null +++ b/crates/tree/examples/failures.rs @@ -0,0 +1,48 @@ +use predicates::prelude::*; +use predicates_tree::CaseTreeExt; + +fn main() { + let expected = 10; + let actual = 15; + let pred = predicates::ord::eq(expected); + if let Some(case) = pred.find_case(false, &actual) { + let tree = case.tree(); + println!("{}", tree); + } + + let expected = [1, 2, 3]; + let actual = 15; + let pred = predicates::iter::in_iter(expected); + if let Some(case) = pred.find_case(false, &actual) { + let tree = case.tree(); + println!("{}", tree); + } + + let expected = "Hello +World! + +Goodbye!"; + let actual = "Hello +Moon! + +Goodbye!"; + let pred = predicates::ord::eq(expected); + if let Some(case) = pred.find_case(false, &actual) { + let tree = case.tree(); + println!("{}", tree); + } + + let expected = "Hello +World! + +Goodbye!"; + let actual = "Hello +Moon! + +Goodbye!"; + let pred = predicates::str::diff(expected); + if let Some(case) = pred.find_case(false, actual) { + let tree = case.tree(); + println!("{}", tree); + } +} diff --git a/crates/tree/src/lib.rs b/crates/tree/src/lib.rs index d50ef5b..7d491a2 100644 --- a/crates/tree/src/lib.rs +++ b/crates/tree/src/lib.rs @@ -24,7 +24,7 @@ impl<'a> CaseTreeExt for reflection::Case<'a> { } } -type CaseTreeInner = treeline::Tree>; +type CaseTreeInner = termtree::Tree>; fn convert(case: &reflection::Case<'_>) -> CaseTreeInner { let mut leaves: Vec = vec![]; @@ -32,13 +32,13 @@ fn convert(case: &reflection::Case<'_>) -> CaseTreeInner { leaves.extend(case.predicate().iter().flat_map(|pred| { pred.parameters().map(|item| { let root: Box = Box::new(item.to_string()); - treeline::Tree::new(root, vec![]) + termtree::Tree::new(root, vec![]).with_multiline(true) }) })); leaves.extend(case.products().map(|item| { let root: Box = Box::new(item.to_string()); - treeline::Tree::new(root, vec![]) + termtree::Tree::new(root, vec![]).with_multiline(true) })); leaves.extend(case.children().map(|item| convert(item))); diff --git a/src/function.rs b/src/function.rs index fb0323f..b7ca667 100644 --- a/src/function.rs +++ b/src/function.rs @@ -137,6 +137,6 @@ where #[test] fn str_function() { let f = function(|x: &str| x == "hello"); - assert!(f.eval(&"hello")); - assert!(!f.eval(&"goodbye")); + assert!(f.eval("hello")); + assert!(!f.eval("goodbye")); } diff --git a/src/path/fc.rs b/src/path/fc.rs index dbef015..9317168 100644 --- a/src/path/fc.rs +++ b/src/path/fc.rs @@ -106,6 +106,7 @@ where /// assert_eq!(true, predicate_fn.eval(Path::new("./tests/hello_world"))); /// assert_eq!(false, predicate_fn.eval(Path::new("./tests/empty_file"))); /// ``` + #[allow(clippy::wrong_self_convention)] fn from_file_path(self) -> FileContentPredicate { FileContentPredicate { p: self } } diff --git a/src/str/adapters.rs b/src/str/adapters.rs index f295410..b6f4d51 100644 --- a/src/str/adapters.rs +++ b/src/str/adapters.rs @@ -175,6 +175,7 @@ where /// let variable: &[u8] = b""; /// assert_eq!(false, predicate_fn.eval(variable)); /// ``` + #[allow(clippy::wrong_self_convention)] fn from_utf8(self) -> Utf8Predicate { Utf8Predicate { p: self } }