From 6a15129f1f166fd4c26ed9c3d0b3f1d0fa827cb4 Mon Sep 17 00:00:00 2001 From: Emily Boudreaux Date: Wed, 5 Mar 2025 16:59:25 -0500 Subject: [PATCH] test(tests/eos): added eos tests --- tests/eos/eosTest.cpp | 70 +++++++++++++++++++++++++++++++++++++++++++ tests/eos/meson.build | 23 ++++++++++++++ tests/meson.build | 1 + 3 files changed, 94 insertions(+) create mode 100644 tests/eos/eosTest.cpp create mode 100644 tests/eos/meson.build diff --git a/tests/eos/eosTest.cpp b/tests/eos/eosTest.cpp new file mode 100644 index 0000000..d9f9317 --- /dev/null +++ b/tests/eos/eosTest.cpp @@ -0,0 +1,70 @@ +#include +#include +#include +#include +#include +#include + +#include "helm.h" + +/** + * @file constTest.cpp + * @brief Unit tests for the const class. + */ + +/** + * @brief Test suite for the const class. + */ +class eosTest : public ::testing::Test {}; + +std::string HELM_FILENAME = std::string(getenv("MESON_SOURCE_ROOT")) + "/assets/eos/helm_table.dat"; +/** + * @test Verify default constructor initializes correctly. + */ +TEST_F(eosTest, constructor) { + using namespace helmholtz; + EXPECT_NO_THROW(HELMTable table = read_helm_table(HELM_FILENAME)); +} + +TEST_F(eosTest, read_helm_table) { + using namespace helmholtz; + HELMTable table = read_helm_table(HELM_FILENAME); + // Capture the << operator output as a string + std::stringstream ss; + ss << table; + EXPECT_EQ(ss.str(), "HELMTable Data:\n imax: 541, jmax: 201\n Temperature Range: [1000, 1e+13]\n Density Range: [1e-12, 1e+15]\n"); +} + +TEST_F(eosTest, get_helm_EOS) { + using namespace helmholtz; + + const int nel=3; + double xmass[nel], aion[nel], zion[nel]; + EOSInput eos1; + + xmass[0] = 0.75; aion[0] = 1.0; zion[0] = 1.0; + xmass[1] = 0.23; aion[1] = 4.0; zion[1] = 2.0; + xmass[2] = 0.02; aion[2] = 12.0; zion[2] = 6.0; + + eos1.T = 1.0e8; + eos1.rho = 1.0e6; + + double asum = 0.0; + double zsum = 0.0; + for (int i=0; i