From 013f8226fc1207c01b568986e2c89163a4c78d8f Mon Sep 17 00:00:00 2001 From: Ciaran McCreesh Date: Sun, 20 Mar 2011 20:02:43 +0000 Subject: gtest more --- paludis/util/files.m4 | 2 +- paludis/util/iterator_funcs_TEST.cc | 162 ++++++++++++++++-------------------- 2 files changed, 71 insertions(+), 93 deletions(-) diff --git a/paludis/util/files.m4 b/paludis/util/files.m4 index 2411e28da..31c274344 100644 --- a/paludis/util/files.m4 +++ b/paludis/util/files.m4 @@ -43,7 +43,7 @@ add(`fs_path', `hh', `cc', `fwd', `se', `gtest', `test add(`fs_stat', `hh', `cc', `fwd', `gtest', `testscript') add(`graph', `hh', `cc', `fwd', `impl', `gtest') add(`hashes', `hh', `cc', `gtest') -add(`iterator_funcs', `hh', `test') +add(`iterator_funcs', `hh', `gtest') add(`indirect_iterator', `hh', `fwd', `impl', `gtest') add(`is_file_with_extension', `hh', `cc', `se', `gtest', `testscript') add(`join', `hh', `gtest') diff --git a/paludis/util/iterator_funcs_TEST.cc b/paludis/util/iterator_funcs_TEST.cc index 1cb556e98..970772e5f 100644 --- a/paludis/util/iterator_funcs_TEST.cc +++ b/paludis/util/iterator_funcs_TEST.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2005, 2006, 2007, 2008 Ciaran McCreesh + * Copyright (c) 2005, 2006, 2007, 2008, 2011 Ciaran McCreesh * Copyright (c) 2007 David Leverton * * This file is part of the Paludis package manager. Paludis is free software; @@ -19,102 +19,80 @@ */ #include -#include -#include + #include #include -using namespace test; +#include + using namespace paludis; -namespace test_cases +TEST(Iterator, Next) +{ + std::vector v; + v.push_back(1); + v.push_back(2); + v.push_back(3); + std::vector::iterator iter(v.begin()); + + ASSERT_TRUE(*(next(iter)) == 2); + ASSERT_TRUE(next(next(next(iter))) == v.end()); + ASSERT_TRUE(next(iter, 3) == v.end()); + iter = next(iter); + ASSERT_TRUE(*(next(iter, 1)) == 3); + iter = next(iter); + ASSERT_TRUE(++iter == v.end()); +} + +TEST(Iterator, Previous) +{ + std::vector v; + v.push_back(1); + v.push_back(2); + std::vector::iterator iter(v.end()); + + ASSERT_TRUE(*(previous(iter)) == 2); + ASSERT_TRUE(previous(previous(iter)) == v.begin()); + iter = previous(iter); + ASSERT_TRUE(--iter == v.begin()); +} + +TEST(CappedDistance, Works) { - struct IteratorNextTest : public TestCase - { - IteratorNextTest() : TestCase("iterator next()") { } - - void run() - { - std::vector v; - v.push_back(1); - v.push_back(2); - v.push_back(3); - std::vector::iterator iter(v.begin()); - - TEST_CHECK(*(next(iter)) == 2); - TEST_CHECK(next(next(next(iter))) == v.end()); - TEST_CHECK(next(iter, 3) == v.end()); - iter = next(iter); - TEST_CHECK(*(next(iter, 1)) == 3); - iter = next(iter); - TEST_CHECK(++iter == v.end()); - } - } test_iterator_next; - - /** - * \test Test iterator_utilities previous() - * - */ - struct IteratorpreviousTest : public TestCase - { - IteratorpreviousTest() : TestCase("iterator previous()") { } - - void run() - { - std::vector v; - v.push_back(1); - v.push_back(2); - std::vector::iterator iter(v.end()); - - TEST_CHECK(*(previous(iter)) == 2); - TEST_CHECK(previous(previous(iter)) == v.begin()); - iter = previous(iter); - TEST_CHECK(--iter == v.begin()); - } - } test_iterator_previous; - - struct CappedDistanceTest : TestCase - { - CappedDistanceTest() : TestCase("capped distance") { } - - void run() - { - std::list v; - TEST_CHECK_EQUAL(capped_distance(v.begin(), v.end(), 0), static_cast(0)); - TEST_CHECK_EQUAL(capped_distance(v.begin(), v.end(), 1), static_cast(0)); - TEST_CHECK_EQUAL(capped_distance(v.begin(), v.end(), 3), static_cast(0)); - TEST_CHECK_EQUAL(capped_distance(v.begin(), v.end(), 10), static_cast(0)); - - v.push_back(1); - TEST_CHECK_EQUAL(capped_distance(v.begin(), v.end(), 0), static_cast(0)); - TEST_CHECK_EQUAL(capped_distance(v.begin(), v.end(), 1), static_cast(1)); - TEST_CHECK_EQUAL(capped_distance(v.begin(), v.end(), 3), static_cast(1)); - TEST_CHECK_EQUAL(capped_distance(v.begin(), v.end(), 10), static_cast(1)); - - v.push_back(2); - TEST_CHECK_EQUAL(capped_distance(v.begin(), v.end(), 0), static_cast(0)); - TEST_CHECK_EQUAL(capped_distance(v.begin(), v.end(), 1), static_cast(1)); - TEST_CHECK_EQUAL(capped_distance(v.begin(), v.end(), 3), static_cast(2)); - TEST_CHECK_EQUAL(capped_distance(v.begin(), v.end(), 10), static_cast(2)); - - v.push_back(3); - TEST_CHECK_EQUAL(capped_distance(v.begin(), v.end(), 0), static_cast(0)); - TEST_CHECK_EQUAL(capped_distance(v.begin(), v.end(), 1), static_cast(1)); - TEST_CHECK_EQUAL(capped_distance(v.begin(), v.end(), 3), static_cast(3)); - TEST_CHECK_EQUAL(capped_distance(v.begin(), v.end(), 10), static_cast(3)); - - v.push_back(4); - TEST_CHECK_EQUAL(capped_distance(v.begin(), v.end(), 0), static_cast(0)); - TEST_CHECK_EQUAL(capped_distance(v.begin(), v.end(), 1), static_cast(1)); - TEST_CHECK_EQUAL(capped_distance(v.begin(), v.end(), 3), static_cast(3)); - TEST_CHECK_EQUAL(capped_distance(v.begin(), v.end(), 10), static_cast(4)); - - v.push_back(5); - TEST_CHECK_EQUAL(capped_distance(v.begin(), v.end(), 0), static_cast(0)); - TEST_CHECK_EQUAL(capped_distance(v.begin(), v.end(), 1), static_cast(1)); - TEST_CHECK_EQUAL(capped_distance(v.begin(), v.end(), 3), static_cast(3)); - TEST_CHECK_EQUAL(capped_distance(v.begin(), v.end(), 10), static_cast(5)); - } - } test_capped_distance; + std::list v; + EXPECT_EQ(0, capped_distance(v.begin(), v.end(), 0)); + EXPECT_EQ(0, capped_distance(v.begin(), v.end(), 1)); + EXPECT_EQ(0, capped_distance(v.begin(), v.end(), 3)); + EXPECT_EQ(0, capped_distance(v.begin(), v.end(), 10)); + + v.push_back(1); + EXPECT_EQ(0, capped_distance(v.begin(), v.end(), 0)); + EXPECT_EQ(1, capped_distance(v.begin(), v.end(), 1)); + EXPECT_EQ(1, capped_distance(v.begin(), v.end(), 3)); + EXPECT_EQ(1, capped_distance(v.begin(), v.end(), 10)); + + v.push_back(2); + EXPECT_EQ(0, capped_distance(v.begin(), v.end(), 0)); + EXPECT_EQ(1, capped_distance(v.begin(), v.end(), 1)); + EXPECT_EQ(2, capped_distance(v.begin(), v.end(), 3)); + EXPECT_EQ(2, capped_distance(v.begin(), v.end(), 10)); + + v.push_back(3); + EXPECT_EQ(0, capped_distance(v.begin(), v.end(), 0)); + EXPECT_EQ(1, capped_distance(v.begin(), v.end(), 1)); + EXPECT_EQ(3, capped_distance(v.begin(), v.end(), 3)); + EXPECT_EQ(3, capped_distance(v.begin(), v.end(), 10)); + + v.push_back(4); + EXPECT_EQ(0, capped_distance(v.begin(), v.end(), 0)); + EXPECT_EQ(1, capped_distance(v.begin(), v.end(), 1)); + EXPECT_EQ(3, capped_distance(v.begin(), v.end(), 3)); + EXPECT_EQ(4, capped_distance(v.begin(), v.end(), 10)); + + v.push_back(5); + EXPECT_EQ(0, capped_distance(v.begin(), v.end(), 0)); + EXPECT_EQ(1, capped_distance(v.begin(), v.end(), 1)); + EXPECT_EQ(3, capped_distance(v.begin(), v.end(), 3)); + EXPECT_EQ(5, capped_distance(v.begin(), v.end(), 10)); } -- cgit v1.2.3