Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <vector>
- #include <gtest/gtest.h>
- std::size_t const testSize = 10*1000*1000;
- typedef unsigned long long TestElement;
- typedef std::vector<TestElement> TestVector;
- typedef TestVector::iterator Iterator;
- TEST(VectorIteratorSpeedTest, calibrationTest)
- {
- TestVector testVector(testSize);
- TestElement &value = testVector.front();
- TestElement &sum = testVector.back();
- value = 0;
- sum = 0;
- for (std::size_t i = 0; i < testSize; ++i) {
- sum += ++value;
- }
- EXPECT_EQ(static_cast<TestElement>(testSize + 1) * testSize / 2, sum);
- }
- TEST(VectorIteratorSpeedTest, indexTest)
- {
- TestVector testVector(testSize);
- TestElement value = 0;
- for (std::size_t i = 0; i < testSize; ++i) {
- testVector[i] = ++value;
- }
- TestElement sum = 0;
- for (std::size_t i = 0; i < testSize; ++i) {
- sum += testVector[i];
- }
- EXPECT_EQ(static_cast<TestElement>(testSize + 1) * testSize / 2, sum);
- }
- TEST(VectorIteratorSpeedTest, iteratorTest)
- {
- TestVector testVector(testSize);
- Iterator end = testVector.end();
- TestElement value = 0;
- for (Iterator it = testVector.begin(); it != end; ++it) {
- *it = ++value;
- }
- TestElement sum = 0;
- for (Iterator it = testVector.begin(); it != end; ++it) {
- sum += *it;
- }
- EXPECT_EQ(static_cast<TestElement>(testSize + 1) * testSize / 2, sum);
- }
- TEST(VectorIteratorSpeedTest, indexAtTest)
- {
- TestVector testVector(testSize);
- TestElement value = 0;
- for (std::size_t i = 0; i < testSize; ++i) {
- testVector.at(i) = ++value;
- }
- TestElement sum = 0;
- for (std::size_t i = 0; i < testSize; ++i) {
- sum += testVector.at(i);
- }
- EXPECT_EQ(static_cast<TestElement>(testSize + 1) * testSize / 2, sum);
- }
- int main(int argc, char **argv)
- {
- ::testing::InitGoogleTest(&argc, argv);
- return RUN_ALL_TESTS();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement