| // Copyright 2004-present Facebook. All Rights Reserved. |
| |
| #include <c10/util/irange.h> |
| |
| #include <gtest/gtest.h> |
| |
| using namespace ::testing; |
| |
| TEST(irange_test, range_test) { |
| std::vector<int> test_vec; |
| for (const auto i : c10::irange(4, 11)) { |
| test_vec.push_back(i); |
| } |
| const std::vector<int> correct = {{4, 5, 6, 7, 8, 9, 10}}; |
| ASSERT_EQ(test_vec, correct); |
| } |
| |
| TEST(irange_test, end_test) { |
| std::vector<int> test_vec; |
| for (const auto i : c10::irange(5)) { |
| test_vec.push_back(i); |
| } |
| const std::vector<int> correct = {{0, 1, 2, 3, 4}}; |
| ASSERT_EQ(test_vec, correct); |
| } |
| |
| TEST(irange_test, neg_range_test) { |
| std::vector<int> test_vec; |
| for (const auto i : c10::irange(-2, 3)) { |
| test_vec.push_back(i); |
| } |
| const std::vector<int> correct = {{-2, -1, 0, 1, 2}}; |
| ASSERT_EQ(test_vec, correct); |
| } |
| |
| TEST(irange, empty_reverse_range_two_inputs) { |
| std::vector<int> test_vec; |
| for (const auto i : c10::irange(3, -3)) { |
| test_vec.push_back(i); |
| if (i > 20) { // Cap the number of elements we add if something goes wrong |
| break; |
| } |
| } |
| const std::vector<int> correct = {}; |
| ASSERT_EQ(test_vec, correct); |
| } |
| |
| TEST(irange, empty_reverse_range_one_input) { |
| std::vector<int> test_vec; |
| for (const auto i : c10::irange(-3)) { |
| test_vec.push_back(i); |
| if (i > 20) { // Cap the number of elements we add if something goes wrong |
| break; |
| } |
| } |
| const std::vector<int> correct = {}; |
| ASSERT_EQ(test_vec, correct); |
| } |