| Index: mojo/public/cpp/bindings/tests/iterator_test_util.h
|
| diff --git a/mojo/public/cpp/bindings/tests/iterator_test_util.h b/mojo/public/cpp/bindings/tests/iterator_test_util.h
|
| deleted file mode 100644
|
| index ce525296d6e21ff65a38d90cb0acb6b587897c13..0000000000000000000000000000000000000000
|
| --- a/mojo/public/cpp/bindings/tests/iterator_test_util.h
|
| +++ /dev/null
|
| @@ -1,132 +0,0 @@
|
| -// Copyright 2015 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#ifndef MOJO_PUBLIC_CPP_BINDINGS_TESTS_ITERATOR_TEST_UTIL_H_
|
| -#define MOJO_PUBLIC_CPP_BINDINGS_TESTS_ITERATOR_TEST_UTIL_H_
|
| -
|
| -#include <algorithm>
|
| -#include <vector>
|
| -
|
| -#include "gtest/gtest.h"
|
| -
|
| -namespace mojo {
|
| -namespace test {
|
| -
|
| -template <typename Iterator, typename ValueType>
|
| -void ExpectIteratorValues(Iterator begin,
|
| - Iterator end,
|
| - const std::vector<ValueType>& expected_values) {
|
| - size_t i = 0u;
|
| - for (Iterator it = begin; it != end; ++it, ++i) {
|
| - EXPECT_EQ(*it, expected_values[i]);
|
| - }
|
| - EXPECT_EQ(i, expected_values.size());
|
| -}
|
| -
|
| -// This helper template checks that the specified `Iterator` satisfies the C++
|
| -// BidirectionalIterator concept, as described in:
|
| -// http://en.cppreference.com/w/cpp/concept/BidirectionalIterator.
|
| -//
|
| -// This template will mutate the values in the iterator.
|
| -template <typename Iterator, typename ValueType>
|
| -void ExpectBidiIteratorConcept(Iterator begin,
|
| - Iterator end,
|
| - const std::vector<ValueType>& expected_values) {
|
| - {
|
| - // Default iterator is constructible. Deferencing it is undefined
|
| - // behaviour.
|
| - Iterator default_iter;
|
| - }
|
| -
|
| - // Now we test bidirecionality:
|
| - // Prefix increment.
|
| - Iterator iter1(begin);
|
| - EXPECT_EQ(*iter1, expected_values[0]);
|
| -
|
| - Iterator iter2(begin);
|
| - ++iter2;
|
| -
|
| - EXPECT_NE(iter1, iter2);
|
| - EXPECT_EQ(*iter2, expected_values[1]);
|
| - ++iter1;
|
| - EXPECT_EQ(iter1, iter2);
|
| -
|
| - // Postfix increment.
|
| - Iterator prev_iter2 = iter2++; // element 2
|
| - EXPECT_EQ(*prev_iter2, expected_values[1]);
|
| - EXPECT_EQ(prev_iter2, iter1);
|
| - EXPECT_EQ(*iter2, expected_values[2]);
|
| -
|
| - // Prefix decrement.
|
| - EXPECT_EQ(--iter2, prev_iter2); // element 1
|
| - EXPECT_EQ(--iter1, begin); // element 0
|
| - // Postfix decrement.
|
| - EXPECT_EQ(iter2--, prev_iter2); // element 0
|
| -
|
| - // Equality.
|
| - EXPECT_EQ(iter1, begin);
|
| - EXPECT_NE(++iter2, begin);
|
| -
|
| - // Copy constructible and assignable.
|
| - Iterator iter3 = iter2;
|
| - EXPECT_EQ(iter3, iter2);
|
| - EXPECT_EQ(*iter3, *iter2);
|
| -
|
| - Iterator iter3_cp(iter3);
|
| - EXPECT_EQ(iter3_cp, iter3);
|
| - EXPECT_EQ(*iter3_cp, *iter3);
|
| -
|
| - // Move constructible and assignable.
|
| - Iterator iter3_mv = static_cast<Iterator&&>(iter3);
|
| - Iterator iter3_cp_mv;
|
| - iter3_cp_mv = static_cast<Iterator&&>(iter3_cp);
|
| - EXPECT_EQ(iter3_mv, iter3_cp_mv);
|
| -
|
| - // operator->.
|
| - EXPECT_EQ(*(iter3_mv.operator->()), expected_values[1]);
|
| -
|
| - // Swap two iterators:
|
| - Iterator i1 = begin;
|
| - Iterator i2 = ++begin;
|
| - EXPECT_EQ(*i1, expected_values[0]);
|
| - EXPECT_EQ(*i2, expected_values[1]);
|
| - std::swap(i1, i2);
|
| - EXPECT_EQ(*i1, expected_values[1]);
|
| - EXPECT_EQ(*i2, expected_values[0]);
|
| -}
|
| -
|
| -template <typename Iterator, typename ValueType>
|
| -void ExpectBidiMutableIteratorConcept(
|
| - Iterator begin,
|
| - Iterator end,
|
| - const std::vector<ValueType>& expected_values) {
|
| - Iterator it = begin;
|
| - std::vector<ValueType> values = expected_values;
|
| -
|
| - {
|
| - SCOPED_TRACE("Mutate 1st value.");
|
| - *it = 12;
|
| - values[0] = 12;
|
| - ExpectIteratorValues(begin, end, values);
|
| - }
|
| -
|
| - {
|
| - SCOPED_TRACE("Mutate 2nd value.");
|
| - *++it = 14;
|
| - values[1] = 14;
|
| - ExpectIteratorValues(begin, end, values);
|
| - }
|
| -
|
| - {
|
| - SCOPED_TRACE("Mutate 3rd value.");
|
| - *--it = 22;
|
| - values[0] = 22;
|
| - ExpectIteratorValues(begin, end, values);
|
| - }
|
| -}
|
| -
|
| -} // namespace test
|
| -} // namespace mojo
|
| -
|
| -#endif // MOJO_PUBLIC_CPP_BINDINGS_TESTS_ITERATOR_TEST_UTIL_H_
|
|
|