From 037a6c8af18c366aa13d4f779dc4d206647d1465 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Wed, 6 Oct 2021 11:40:36 -0500 Subject: [PATCH 1/4] docs: Add failure examples --- crates/tree/Cargo.toml | 3 ++ crates/tree/examples/failures.rs | 48 ++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 crates/tree/examples/failures.rs diff --git a/crates/tree/Cargo.toml b/crates/tree/Cargo.toml index 840b32f..94fb9cb 100644 --- a/crates/tree/Cargo.toml +++ b/crates/tree/Cargo.toml @@ -15,3 +15,6 @@ edition = "2018" [dependencies] predicates-core = { version = "1.0", path = "../core" } treeline = "0.1" + +[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..42c6ce6 --- /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); + } +} From 070dc38ff2a9f37d3a40408b4b17eac8db16dec1 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Thu, 7 Oct 2021 13:39:29 -0500 Subject: [PATCH 2/4] chore: Update dependency --- crates/tree/Cargo.toml | 2 +- crates/tree/src/lib.rs | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/tree/Cargo.toml b/crates/tree/Cargo.toml index 94fb9cb..faae97c 100644 --- a/crates/tree/Cargo.toml +++ b/crates/tree/Cargo.toml @@ -14,7 +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/src/lib.rs b/crates/tree/src/lib.rs index d50ef5b..153701d 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![]) }) })); leaves.extend(case.products().map(|item| { let root: Box = Box::new(item.to_string()); - treeline::Tree::new(root, vec![]) + termtree::Tree::new(root, vec![]) })); leaves.extend(case.children().map(|item| convert(item))); From 6c7a9a9a9d0002efcc12ede12c64b4ae2d908a24 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Thu, 7 Oct 2021 13:42:16 -0500 Subject: [PATCH 3/4] fix(tree): Indent items to clarify --- crates/tree/src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/tree/src/lib.rs b/crates/tree/src/lib.rs index 153701d..7d491a2 100644 --- a/crates/tree/src/lib.rs +++ b/crates/tree/src/lib.rs @@ -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()); - termtree::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()); - termtree::Tree::new(root, vec![]) + termtree::Tree::new(root, vec![]).with_multiline(true) })); leaves.extend(case.children().map(|item| convert(item))); From 85cbc521e57c662cc7ae8c229039e699bee5352a Mon Sep 17 00:00:00 2001 From: Ed Page Date: Thu, 7 Oct 2021 13:54:55 -0500 Subject: [PATCH 4/4] style: Make clippy happy --- crates/tree/examples/failures.rs | 2 +- src/function.rs | 4 ++-- src/path/fc.rs | 1 + src/str/adapters.rs | 1 + 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/crates/tree/examples/failures.rs b/crates/tree/examples/failures.rs index 42c6ce6..ffdf386 100644 --- a/crates/tree/examples/failures.rs +++ b/crates/tree/examples/failures.rs @@ -41,7 +41,7 @@ Moon! Goodbye!"; let pred = predicates::str::diff(expected); - if let Some(case) = pred.find_case(false, &actual) { + if let Some(case) = pred.find_case(false, actual) { let tree = case.tree(); println!("{}", tree); } 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 } }