/
vuron
/
adept
Обзор
Документация
Войти
/
vuron
/
adept
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
with_cpu
tests/irange_tests.cpp
50 строк
935 B
kolkir
Refactor loops
08 фев 2025, 13:56
08 фев 2025, 13:56
b73a638
Код
Авторство
О чём код?
#include <adept/irange.hpp> #include "catch.hpp" using namespace adept; TEST_CASE("One value constructor", "[irange]") { std::vector<size_t> m{1, 2, 3, 4, 5}; for (auto i : irange(m.size())) { m[i] += 1; } for (size_t i = 0; i < m.size(); ++i) { REQUIRE(m[i] == i + 2); } } TEST_CASE("Two value constructor", "[irange]") { std::vector<size_t> m{1, 2, 3, 4, 5}; for (auto i : irange(1, 3)) { m[i] += 1; } for (size_t i = 1; i < 3; ++i) { REQUIRE(m[i] == i + 2); } } TEST_CASE("Constructor fail", "[irange]") { REQUIRE_THROWS(irange(3, 1)); REQUIRE_THROWS(irange(1, -5)); } TEST_CASE("Negative pass", "[irange]") { int count = 0; for ([[maybe_unused]] auto i : irange(-3, -1)) { ++count; } REQUIRE(count == 2); } TEST_CASE("Negative to positive pass", "[irange]") { int count = 0; for ([[maybe_unused]] auto i : irange(-3, 1)) { ++count; } REQUIRE(count == 4); }