Forked from
ogs / ogs
933 commits behind the upstream repository.
-
Dmitri Naumov authoredDmitri Naumov authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
TestQtPrjInterface.cpp 2.94 KiB
/**
* \file
* \copyright
* Copyright (c) 2012-2024, OpenGeoSys Community (http://www.opengeosys.org)
* Distributed under a Modified BSD License.
* See accompanying file LICENSE.txt or
* http://www.opengeosys.org/project/license
*
*
*/
#include <gtest/gtest.h>
#include <cstdio>
#include "Applications/DataHolderLib/BoundaryCondition.h"
#include "Applications/DataHolderLib/Project.h"
#include "Applications/DataHolderLib/SourceTerm.h"
#include "Applications/FileIO/XmlIO/Qt/XmlPrjInterface.h"
#include "GeoLib/GEOObjects.h"
#include "InfoLib/TestInfo.h"
TEST(TestQtPrjInterface, QtXmlPrjReader)
{
struct TestParams
{
std::string const file_name;
std::size_t n_geo;
std::size_t n_mesh;
std::size_t n_bc;
std::size_t n_st;
};
std::vector<TestParams> test_files;
std::string name =
TestInfoLib::TestInfo::data_path +
"/Elliptic/nonuniform_bc_SteadyStateDiffusion/neumann_nonuniform.prj";
test_files.push_back({name, 0, 3, 2, 0});
name =
TestInfoLib::TestInfo::data_path +
"/Elliptic/nonuniform_bc_SteadyStateDiffusion/neumann_nonuniform.prj";
test_files.push_back({name, 0, 3, 2, 0});
for (auto& test_file : test_files)
{
DataHolderLib::Project project;
FileIO::XmlPrjInterface xml(project);
int result = xml.readFile(test_file.file_name);
EXPECT_EQ(1, result);
auto const geo_names = project.getGEOObjects().getGeometryNames();
EXPECT_EQ(test_file.n_geo, geo_names.size());
EXPECT_EQ(test_file.n_mesh, project.getMeshObjects().size());
std::vector<std::unique_ptr<DataHolderLib::BoundaryCondition>> const&
bcs = project.getBoundaryConditions();
EXPECT_EQ(test_file.n_bc, bcs.size());
for (auto& bc : bcs)
{
EXPECT_FALSE(bc->getProcessVarName().empty());
EXPECT_FALSE(bc->getParamName().empty());
EXPECT_FALSE(
DataHolderLib::BoundaryCondition::ConditionType::NONE ==
bc->getType());
EXPECT_FALSE(bc->getBaseObjName().empty());
if (bc->getBaseObjType() == DataHolderLib::BaseObjType::GEOMETRY)
{
EXPECT_FALSE(bc->getObjName().empty());
}
}
std::vector<std::unique_ptr<DataHolderLib::SourceTerm>> const& sts =
project.getSourceTerms();
EXPECT_EQ(test_file.n_st, sts.size());
for (auto& st : sts)
{
EXPECT_FALSE(st->getProcessVarName().empty());
EXPECT_FALSE(st->getParamName().empty());
EXPECT_FALSE(DataHolderLib::SourceTerm::ConditionType::NONE ==
st->getType());
EXPECT_FALSE(st->getBaseObjName().empty());
if (st->getBaseObjType() == DataHolderLib::BaseObjType::GEOMETRY)
{
EXPECT_FALSE(st->getObjName().empty());
}
}
}
}