diff --git a/README.md b/README.md index 44fa7e3..f419906 100644 --- a/README.md +++ b/README.md @@ -505,8 +505,6 @@ possibilities for custom assertions, including examples. [`assertions`]: https://docs.rs/asserting/latest/asserting/assertions/ -[`DefinedOrderProperty`]: https://docs.rs/asserting/latest/asserting/properties/trait.DefinedOrderProperty.html - [`IsEmptyProperty`]: https://docs.rs/asserting/latest/asserting/properties/trait.IsEmptyProperty.html [`LengthProperty`]: https://docs.rs/asserting/latest/asserting/properties/trait.LengthProperty.html diff --git a/src/derived_spec/mod.rs b/src/derived_spec/mod.rs index 9579024..54d6976 100644 --- a/src/derived_spec/mod.rs +++ b/src/derived_spec/mod.rs @@ -30,9 +30,9 @@ use crate::expectations::{ string_contains, string_contains_any_of, string_ends_with, string_starts_with, }; use crate::properties::{ - AdditiveIdentityProperty, CharCountProperty, DecimalProperties, DefinedOrderProperty, - InfinityProperty, IsEmptyProperty, IsNanProperty, LengthProperty, MapProperties, - MultiplicativeIdentityProperty, SignumProperty, + AdditiveIdentityProperty, CharCountProperty, DecimalProperties, InfinityProperty, + IsEmptyProperty, IsNanProperty, LengthProperty, MapProperties, MultiplicativeIdentityProperty, + SignumProperty, }; use crate::spec::{ AdHocRepresentation, And, AssertFailure, CollectFailures, DebugRepresentation, DiffFormat, @@ -1619,9 +1619,7 @@ where impl<'a, O, S, T, E, D> AssertIteratorContainsInOrder for DerivedSpec<'a, O, S, D> where S: IntoIterator, - ::IntoIter: DefinedOrderProperty, E: IntoIterator, - ::IntoIter: DefinedOrderProperty, T: PartialEq<::Item>, D: Represent + Represent<::Item> + Clone, O: DoFail, @@ -1725,7 +1723,6 @@ where impl<'a, O, S, T, D> AssertOrderedElements for DerivedSpec<'a, O, S, D> where S: IntoIterator, - ::IntoIter: DefinedOrderProperty, D: Represent + Clone, O: DoFail + GetFailures, { @@ -1888,7 +1885,6 @@ where impl<'a, O, S, T, U, D> AssertOrderedElementsRef for DerivedSpec<'a, O, S, D> where S: IntoIterator, - ::IntoIter: DefinedOrderProperty, T: ToOwned, D: Represent + Clone, O: DoFail + GetFailures, diff --git a/src/iterator/mod.rs b/src/iterator/mod.rs index 73104f4..818c6ee 100644 --- a/src/iterator/mod.rs +++ b/src/iterator/mod.rs @@ -19,7 +19,6 @@ use crate::expectations::{ iterator_contains_only, iterator_contains_only_once, iterator_contains_sequence, iterator_ends_with, iterator_starts_with, none_satisfies, not, }; -use crate::properties::DefinedOrderProperty; use crate::spec::{ DiffFormat, DisplayRepresentation, Expectation, Expecting, Expression, FailingStrategy, GetFailures, Invertible, PanicOnFail, Represent, Represented, RepresentedBy, Spec, @@ -502,9 +501,7 @@ where impl<'a, S, T, E, D, R> AssertIteratorContainsInOrder for Spec<'a, S, D, R> where S: IntoIterator, - ::IntoIter: DefinedOrderProperty, E: IntoIterator, - ::IntoIter: DefinedOrderProperty, T: PartialEq<::Item>, D: Represent + Represent<::Item> + Clone, R: FailingStrategy, @@ -1161,7 +1158,6 @@ where impl<'a, S, T, D, R> AssertOrderedElements for Spec<'a, S, D, R> where S: IntoIterator, - ::IntoIter: DefinedOrderProperty, D: Represent + Clone, R: FailingStrategy, { @@ -1245,7 +1241,6 @@ where impl<'a, S, T, U, D, R> AssertOrderedElementsRef for Spec<'a, S, D, R> where S: IntoIterator, - ::IntoIter: DefinedOrderProperty, T: 'a + ToOwned, U: Clone, D: Represent + Clone, diff --git a/src/iterator/tests.rs b/src/iterator/tests.rs index d4d2342..abb09a3 100644 --- a/src/iterator/tests.rs +++ b/src/iterator/tests.rs @@ -1115,3 +1115,43 @@ mod extracted_elements_ref { ); } } + +mod derived_iterator { + use super::*; + + #[test] + fn derived_iterator_contains_exactly_elements() { + let subject = ["one", "two", "three", "four", "five"]; + let derived_iter = subject.into_iter().skip(1).take(3); + + assert_that(derived_iter).contains_exactly(["two", "three", "four"]); + } + + #[test] + fn derived_iterator_starts_with_element() { + let subject = ["one", "two", "three", "four", "five"]; + let derived_iter = subject.into_iter().skip(1).take(3); + + assert_that(derived_iter).starts_with(["two"]); + } + + #[test] + fn derived_iterator_ends_with_sequence() { + let subject = ["one", "two", "three", "four", "five"]; + let derived_iter = subject.into_iter().skip(1).take(3); + + assert_that(derived_iter).ends_with(["three", "four"]); + } + + #[test] + fn first_element_of_derived_iterator_with_several_elements() { + let subject = ["one", "two", "three", "four", "five"]; + let derived_iter = subject.into_iter().skip(1).take(3); + + assert_that(derived_iter) + .first_element() + .is_equal_to("two") + .has_length(3) + .starts_with('t'); + } +}