mirror of
https://github.com/catchorg/Catch2.git
synced 2024-11-22 13:26:10 +01:00
Cleanup vector matchers
Once again, added doxygen comments and removed the inner-most namespace.
This commit is contained in:
parent
904c47a634
commit
ca5af2e85b
@ -16,13 +16,14 @@
|
||||
namespace Catch {
|
||||
namespace Matchers {
|
||||
|
||||
namespace Vector {
|
||||
template<typename T>
|
||||
struct ContainsElementMatcher final : MatcherBase<std::vector<T>> {
|
||||
|
||||
ContainsElementMatcher(T const &comparator) : m_comparator( comparator) {}
|
||||
ContainsElementMatcher(T const& comparator):
|
||||
m_comparator(comparator)
|
||||
{}
|
||||
|
||||
bool match(std::vector<T> const &v) const override {
|
||||
bool match(std::vector<T> const& v) const override {
|
||||
for (auto const& el : v) {
|
||||
if (el == m_comparator) {
|
||||
return true;
|
||||
@ -41,9 +42,11 @@ namespace Matchers {
|
||||
template<typename T>
|
||||
struct ContainsMatcher final : MatcherBase<std::vector<T>> {
|
||||
|
||||
ContainsMatcher(std::vector<T> const &comparator) : m_comparator( comparator ) {}
|
||||
ContainsMatcher(std::vector<T> const& comparator):
|
||||
m_comparator(comparator)
|
||||
{}
|
||||
|
||||
bool match(std::vector<T> const &v) const override {
|
||||
bool match(std::vector<T> const& v) const override {
|
||||
// !TBD: see note in EqualsMatcher
|
||||
if (m_comparator.size() > v.size())
|
||||
return false;
|
||||
@ -146,34 +149,39 @@ namespace Matchers {
|
||||
std::vector<T> const& m_target;
|
||||
};
|
||||
|
||||
} // namespace Vector
|
||||
|
||||
// The following functions create the actual matcher objects.
|
||||
// This allows the types to be inferred
|
||||
|
||||
|
||||
//! Creates a matcher that matches vectors that contain all elements in `comparator`
|
||||
template<typename T>
|
||||
Vector::ContainsMatcher<T> Contains( std::vector<T> const& comparator ) {
|
||||
return Vector::ContainsMatcher<T>( comparator );
|
||||
ContainsMatcher<T> Contains( std::vector<T> const& comparator ) {
|
||||
return ContainsMatcher<T>( comparator );
|
||||
}
|
||||
|
||||
//! Creates a matcher that matches vectors that contain `comparator` as an element
|
||||
template<typename T>
|
||||
Vector::ContainsElementMatcher<T> VectorContains( T const& comparator ) {
|
||||
return Vector::ContainsElementMatcher<T>( comparator );
|
||||
ContainsElementMatcher<T> VectorContains( T const& comparator ) {
|
||||
return ContainsElementMatcher<T>( comparator );
|
||||
}
|
||||
|
||||
//! Creates a matcher that matches vectors that are exactly equal to `comparator`
|
||||
template<typename T>
|
||||
Vector::EqualsMatcher<T> Equals( std::vector<T> const& comparator ) {
|
||||
return Vector::EqualsMatcher<T>( comparator );
|
||||
EqualsMatcher<T> Equals( std::vector<T> const& comparator ) {
|
||||
return EqualsMatcher<T>( comparator );
|
||||
}
|
||||
|
||||
//! Creates a matcher that matches vectors that `comparator` as an element
|
||||
template<typename T>
|
||||
Vector::ApproxMatcher<T> Approx( std::vector<T> const& comparator ) {
|
||||
return Vector::ApproxMatcher<T>( comparator );
|
||||
ApproxMatcher<T> Approx( std::vector<T> const& comparator ) {
|
||||
return ApproxMatcher<T>( comparator );
|
||||
}
|
||||
|
||||
//! Creates a matcher that matches vectors that is equal to `target` modulo permutation
|
||||
template<typename T>
|
||||
Vector::UnorderedEqualsMatcher<T> UnorderedEquals(std::vector<T> const& target) {
|
||||
return Vector::UnorderedEqualsMatcher<T>(target);
|
||||
UnorderedEqualsMatcher<T> UnorderedEquals(std::vector<T> const& target) {
|
||||
return UnorderedEqualsMatcher<T>(target);
|
||||
}
|
||||
|
||||
} // namespace Matchers
|
||||
|
Loading…
Reference in New Issue
Block a user