diff --git a/tests/test_ItemValue.cpp b/tests/test_ItemValue.cpp index ef1451264ea5b5cc0b62b1946aab9c4f36b236e9..53201661dfbfaca685847e03a58c690126cbf92c 100644 --- a/tests/test_ItemValue.cpp +++ b/tests/test_ItemValue.cpp @@ -7,9 +7,6 @@ #include <mesh/Mesh.hpp> #include <utils/Messenger.hpp> -// Instantiate to ensure full coverage is performed -template class ItemValue<int, ItemType::cell>; - // clazy:excludeall=non-pod-global-static TEST_CASE("ItemValue", "[mesh]") @@ -95,6 +92,25 @@ TEST_CASE("ItemValue", "[mesh]") REQUIRE(CellValue<int>{connectivity}.isBuilt()); } + SECTION("set values from array") + { + const Mesh<Connectivity<3>>& mesh_3d = MeshDataBaseForTests::get().cartesianMesh<3>(); + const Connectivity<3>& connectivity = mesh_3d.connectivity(); + + CellValue<size_t> cell_value{connectivity}; + + Array<size_t> values{cell_value.size()}; + for (size_t i = 0; i < values.size(); ++i) { + values[i] = i; + } + + cell_value = values; + + for (CellId i_cell = 0; i_cell < mesh_3d.numberOfCells(); ++i_cell) { + REQUIRE(cell_value[i_cell] == i_cell); + } + } + SECTION("copy") { const Mesh<Connectivity<3>>& mesh_3d = MeshDataBaseForTests::get().cartesianMesh<3>(); @@ -170,6 +186,17 @@ TEST_CASE("ItemValue", "[mesh]") NodeId invalid_node_id = connectivity.numberOfNodes(); REQUIRE_THROWS_AS(node_value[invalid_node_id], AssertError); } + + SECTION("set values from invalid array size") + { + const Mesh<Connectivity<3>>& mesh_3d = MeshDataBaseForTests::get().cartesianMesh<3>(); + const Connectivity<3>& connectivity = mesh_3d.connectivity(); + + CellValue<size_t> cell_value{connectivity}; + + Array<size_t> values{3 + cell_value.size()}; + REQUIRE_THROWS_AS(cell_value = values, AssertError); + } } #endif // NDEBUG }