| // 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); |
| } |