From 595442126488f97669aa48e3636a1fd5eafbb93f Mon Sep 17 00:00:00 2001 From: Stephane Del Pino <stephane.delpino44@gmail.com> Date: Fri, 10 Aug 2018 12:23:34 +0200 Subject: [PATCH] Add unit test for ItemType - cosmetic fix for itemId in 3d (face <-> edge) --- src/mesh/ItemType.hpp | 10 ++++----- tests/CMakeLists.txt | 1 + tests/test_ItemType.cpp | 48 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 54 insertions(+), 5 deletions(-) create mode 100644 tests/test_ItemType.cpp diff --git a/src/mesh/ItemType.hpp b/src/mesh/ItemType.hpp index 1e344f910..d37c02fae 100644 --- a/src/mesh/ItemType.hpp +++ b/src/mesh/ItemType.hpp @@ -51,8 +51,8 @@ struct ItemId<1> i=0; break; } - case ItemType::face: case ItemType::edge: + case ItemType::face: case ItemType::node: { // in 1d, faces, edges and nodes are the same i=1; @@ -73,8 +73,8 @@ struct ItemId<2> i=0; break; } - case ItemType::face: - case ItemType::edge: { + case ItemType::edge: + case ItemType::face: { // in 2d, faces and edges are the same i=1; break; @@ -98,11 +98,11 @@ struct ItemId<3> i=0; break; } - case ItemType::face: { + case ItemType::edge: { i=1; break; } - case ItemType::edge: { + case ItemType::face: { i=2; break; } diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 2c1ac56dc..3b4823f1e 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -4,6 +4,7 @@ set(EXECUTABLE_OUTPUT_PATH ${PASTIS_BINARY_DIR}) add_executable (unit_tests test_main.cpp + test_ItemType.cpp test_PastisAssert.cpp test_RevisionInfo.cpp test_TinyMatrix.cpp diff --git a/tests/test_ItemType.cpp b/tests/test_ItemType.cpp new file mode 100644 index 000000000..7c3996361 --- /dev/null +++ b/tests/test_ItemType.cpp @@ -0,0 +1,48 @@ +#include <catch.hpp> + +#include <ItemType.hpp> + +TEST_CASE("ItemType", "[connectivity]") { + + ItemType node_type = ItemType::node; + ItemType edge_type = ItemType::edge; + ItemType face_type = ItemType::face; + ItemType cell_type = ItemType::cell; + + SECTION("checking for item type differences") { + REQUIRE(((node_type != edge_type) and + (node_type != face_type) and + (node_type != cell_type) and + (edge_type != face_type) and + (edge_type != cell_type) and + (face_type != cell_type))); + } + + SECTION("checking for item type names") { + REQUIRE(itemName(node_type)=="node"); + REQUIRE(itemName(edge_type)=="edge"); + REQUIRE(itemName(face_type)=="face"); + REQUIRE(itemName(cell_type)=="cell"); + } + + SECTION("checking for item ids in 1d") { + REQUIRE(ItemId<1>::itemId(cell_type)==0); + REQUIRE(ItemId<1>::itemId(edge_type)==1); + REQUIRE(ItemId<1>::itemId(face_type)==1); + REQUIRE(ItemId<1>::itemId(node_type)==1); + } + + SECTION("checking for item ids in 2d") { + REQUIRE(ItemId<2>::itemId(cell_type)==0); + REQUIRE(ItemId<2>::itemId(edge_type)==1); + REQUIRE(ItemId<2>::itemId(face_type)==1); + REQUIRE(ItemId<2>::itemId(node_type)==2); + } + + SECTION("checking for item ids in 3d") { + REQUIRE(ItemId<3>::itemId(cell_type)==0); + REQUIRE(ItemId<3>::itemId(edge_type)==1); + REQUIRE(ItemId<3>::itemId(face_type)==2); + REQUIRE(ItemId<3>::itemId(node_type)==3); + } +} -- GitLab