adapters_unittest.cc 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. // Copyright 2014 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "base/containers/adapters.h"
  5. #include <vector>
  6. #include "testing/gtest/include/gtest/gtest.h"
  7. namespace {
  8. TEST(AdaptersTest, Reversed) {
  9. std::vector<int> v;
  10. v.push_back(3);
  11. v.push_back(2);
  12. v.push_back(1);
  13. int j = 0;
  14. for (int& i : base::Reversed(v)) {
  15. EXPECT_EQ(++j, i);
  16. i += 100;
  17. }
  18. EXPECT_EQ(103, v[0]);
  19. EXPECT_EQ(102, v[1]);
  20. EXPECT_EQ(101, v[2]);
  21. }
  22. TEST(AdaptersTest, ReversedArray) {
  23. int v[3] = {3, 2, 1};
  24. int j = 0;
  25. for (int& i : base::Reversed(v)) {
  26. EXPECT_EQ(++j, i);
  27. i += 100;
  28. }
  29. EXPECT_EQ(103, v[0]);
  30. EXPECT_EQ(102, v[1]);
  31. EXPECT_EQ(101, v[2]);
  32. }
  33. TEST(AdaptersTest, ReversedConst) {
  34. std::vector<int> v;
  35. v.push_back(3);
  36. v.push_back(2);
  37. v.push_back(1);
  38. const std::vector<int>& cv = v;
  39. int j = 0;
  40. for (int i : base::Reversed(cv)) {
  41. EXPECT_EQ(++j, i);
  42. }
  43. }
  44. } // namespace