Files
SERiF/tests/meshIO/meshIOTest.cpp

37 lines
954 B
C++

#include <gtest/gtest.h>
#include "meshIO.h"
#include <string>
#include "mfem.hpp"
std::string EXAMPLE_FILENAME = std::string(getenv("MESON_SOURCE_ROOT")) + "/src/resources/mesh/sphere.msh";
double ComputeMeshVolume(mfem::Mesh &mesh)
{
double totalVolume = 0.0;
for (int i = 0; i < mesh.GetNE(); i++) // Loop over all elements
{
totalVolume += mesh.GetElementVolume(i);
}
return totalVolume;
}
class meshIOTest : public ::testing::Test {};
TEST_F(meshIOTest, DefaultConstructor) {
EXPECT_NO_THROW(MeshIO meshIO(EXAMPLE_FILENAME));
}
TEST_F(meshIOTest, IsLoaded) {
MeshIO meshIO(EXAMPLE_FILENAME);
EXPECT_EQ(meshIO.IsLoaded(), true);
}
TEST_F(meshIOTest, GetMesh) {
MeshIO meshIO(EXAMPLE_FILENAME);
mfem::Mesh& mesh = meshIO.GetMesh();
EXPECT_EQ(mesh.GetNE(), 670);
EXPECT_EQ(mesh.GetNV(), 201);
double volume = ComputeMeshVolume(mesh);
EXPECT_DOUBLE_EQ(volume, 3.9357596288315868);
}