diff options
Diffstat (limited to 'Build/source/texk/dvisvgm/dvisvgm-src/tests/VectorIteratorTest.cpp')
-rw-r--r-- | Build/source/texk/dvisvgm/dvisvgm-src/tests/VectorIteratorTest.cpp | 134 |
1 files changed, 0 insertions, 134 deletions
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/tests/VectorIteratorTest.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/tests/VectorIteratorTest.cpp deleted file mode 100644 index 8476c9a9cc1..00000000000 --- a/Build/source/texk/dvisvgm/dvisvgm-src/tests/VectorIteratorTest.cpp +++ /dev/null @@ -1,134 +0,0 @@ -/************************************************************************* -** VectorIteratorTest.cpp ** -** ** -** This file is part of dvisvgm -- a fast DVI to SVG converter ** -** Copyright (C) 2005-2021 Martin Gieseking <martin.gieseking@uos.de> ** -** ** -** This program is free software; you can redistribute it and/or ** -** modify it under the terms of the GNU General Public License as ** -** published by the Free Software Foundation; either version 3 of ** -** the License, or (at your option) any later version. ** -** ** -** This program is distributed in the hope that it will be useful, but ** -** WITHOUT ANY WARRANTY; without even the implied warranty of ** -** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** -** GNU General Public License for more details. ** -** ** -** You should have received a copy of the GNU General Public License ** -** along with this program; if not, see <http://www.gnu.org/licenses/>. ** -*************************************************************************/ - -#include <gtest/gtest.h> -#include "VectorIterator.hpp" - -using namespace std; - - -TEST(VectorIteratorTest, inc) { - vector<int> vec{4,3,2,9,8,7,10}; - VectorIterator<int> it(vec); - EXPECT_TRUE(it.valid()); - EXPECT_EQ(*it++, 4); - EXPECT_EQ(*it, 3); - EXPECT_EQ(*++it, 2); - EXPECT_TRUE(it.valid()); - for (size_t i=2; it.valid(); i++) { - EXPECT_LT(i, vec.size()) << "i=" << i; - EXPECT_EQ(*it, vec[i]) << "*it=" << *it << ", vec[" << i << "]=" << vec[i]; - ++it; - } -} - - -TEST(VectorIteratorTest, addsub) { - vector<int> vec{4,3,2,9,8,7,10}; - VectorIterator<int> it(vec); - EXPECT_EQ(*(it += 4), 8); - EXPECT_EQ(*(it -= 3), 3); - EXPECT_EQ(*(it + 4), 7); - EXPECT_EQ(*(it - 1), 4); -} - - -TEST(VectorIteratorTest, dec) { - vector<int> vec{4,3,2,9,8,7,10}; - VectorIterator<int> it(vec); - it += 6; - EXPECT_EQ(*it, 10); - EXPECT_EQ(*it--, 10); - EXPECT_EQ(*it, 7); - EXPECT_EQ(*--it, 8); - EXPECT_TRUE(it.valid()); - for (size_t i=4; it.valid(); i--) { - EXPECT_LT(i, vec.size()) << "i=" << i; - EXPECT_EQ(*it, vec[i]) << "*it=" << *it << ", vec[" << i << "]=" << vec[i]; - --it; - } -} - - -TEST(VectorIteratorTest, invalidate) { - vector<int> vec{4,3,2,9,8,7,10}; - VectorIterator<int> it(vec); - --it; - EXPECT_FALSE(it.valid()); - ++it; - EXPECT_TRUE(it.valid()); - it += 10; - EXPECT_FALSE(it.valid()); - it -= 10; - EXPECT_TRUE(it.valid()); - it.invalidate(); - EXPECT_FALSE(it.valid()); - it.reset(); - ASSERT_TRUE(it.valid()); - EXPECT_EQ(*it, 4); -} - - -TEST(VectorIteratorTest, compare) { - vector<int> vec{4,3,2,9,8,7,10}; - VectorIterator<int> it1(vec); - VectorIterator<int> it2 = it1 + 1; - EXPECT_NE(it1, it2); - ++it1; - EXPECT_EQ(it1, it2); - EXPECT_LE(it1, it2); - EXPECT_GE(it1, it2); - ++it2; - EXPECT_LT(it1, it2); - EXPECT_GT(it2, it1); -} - - -struct MyPair { - int number; - const char *str; -} -mypair[] = { - {3, "text"}, - {5, "string"} -}; - -TEST(VectorIteratorTest, deref) { - vector<MyPair> vec(mypair, mypair+2); - VectorIterator<MyPair> it(vec); - EXPECT_TRUE(it.valid()); - EXPECT_EQ((*it).number, 3); - EXPECT_EQ((*it).str, mypair[0].str); - EXPECT_EQ(it->number, 3); - EXPECT_EQ(it->str, mypair[0].str); - ++it; - EXPECT_EQ(it->number, 5); - EXPECT_EQ(it->str, mypair[1].str); -} - - -TEST(VectorIteratorTest, fail) { - vector<MyPair> vec(mypair, mypair+2); - VectorIterator<MyPair> it(vec); - --it; - EXPECT_FALSE(it.valid()); - EXPECT_THROW(*it, IteratorException); - EXPECT_THROW(it->number, IteratorException); -} |