// SPDX-FileCopyrightText: 2024 Filip Leonarski, Paul Scherrer Institute // SPDX-License-Identifier: GPL-3.0-only #include #include "../common/AutoIncrVector.h" TEST_CASE("AutoIncrVector","[AutoIncrVector]") { AutoIncrVector aiv; REQUIRE(aiv.size() == 0); REQUIRE_NOTHROW(aiv.reserve(500)); REQUIRE_THROWS(aiv.reserve(-5)); REQUIRE_THROWS(aiv[-5] = 1); REQUIRE_NOTHROW(aiv[5] = 1); REQUIRE(aiv.size() == 6); REQUIRE(aiv[4] == 0); REQUIRE(aiv[5] == 1); const auto &ref = aiv; REQUIRE(ref[5] == 1); REQUIRE_THROWS(ref[6]); } TEST_CASE("AutoIncrVector_Fill","[AutoIncrVector]") { AutoIncrVector aiv_i{27}; aiv_i[2] = 1; REQUIRE(aiv_i.size() == 3); REQUIRE(aiv_i[0] == 27); REQUIRE(aiv_i[1] == 27); REQUIRE(aiv_i[2] == 1); AutoIncrVector aiv_f{NAN}; aiv_f[3] = 7; REQUIRE(aiv_f.size() == 4); REQUIRE(aiv_f[3] == 7); REQUIRE(std::isnan(aiv_f[0])); REQUIRE(std::isnan(aiv_f[1])); REQUIRE(std::isnan(aiv_f[2])); }