xo-arena: + DArenaVector.at unit test
This commit is contained in:
parent
a7f470d94c
commit
63b8ffe002
1 changed files with 42 additions and 0 deletions
|
|
@ -68,6 +68,48 @@ namespace xo {
|
||||||
REQUIRE(vec[1] == 20.0);
|
REQUIRE(vec[1] == 20.0);
|
||||||
REQUIRE(vec[2] == 30.0);
|
REQUIRE(vec[2] == 30.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_CASE("DArenaVector-at-valid", "[arena][DArenaVector]")
|
||||||
|
{
|
||||||
|
ArenaConfig cfg { .name_ = "testarena",
|
||||||
|
.size_ = 4096 };
|
||||||
|
DArenaVector<double> vec = DArenaVector<double>::map(cfg);
|
||||||
|
|
||||||
|
vec.push_back(100.0);
|
||||||
|
vec.push_back(200.0);
|
||||||
|
vec.push_back(300.0);
|
||||||
|
|
||||||
|
REQUIRE(vec.at(0) == 100.0);
|
||||||
|
REQUIRE(vec.at(1) == 200.0);
|
||||||
|
REQUIRE(vec.at(2) == 300.0);
|
||||||
|
|
||||||
|
// test mutability via at()
|
||||||
|
vec.at(1) = 250.0;
|
||||||
|
REQUIRE(vec.at(1) == 250.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_CASE("DArenaVector-at-throws", "[arena][DArenaVector]")
|
||||||
|
{
|
||||||
|
ArenaConfig cfg { .name_ = "testarena",
|
||||||
|
.size_ = 4096 };
|
||||||
|
DArenaVector<double> vec = DArenaVector<double>::map(cfg);
|
||||||
|
|
||||||
|
// empty vector - any index is invalid
|
||||||
|
REQUIRE_THROWS_AS(vec.at(0), std::out_of_range);
|
||||||
|
|
||||||
|
vec.push_back(1.0);
|
||||||
|
vec.push_back(2.0);
|
||||||
|
|
||||||
|
// valid indices work
|
||||||
|
REQUIRE_NOTHROW(vec.at(0));
|
||||||
|
REQUIRE_NOTHROW(vec.at(1));
|
||||||
|
|
||||||
|
// index == size is invalid
|
||||||
|
REQUIRE_THROWS_AS(vec.at(2), std::out_of_range);
|
||||||
|
|
||||||
|
// index > size is invalid
|
||||||
|
REQUIRE_THROWS_AS(vec.at(100), std::out_of_range);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue