Skip to content
Snippets Groups Projects
Commit f1929d8b authored by Anna Wellmann's avatar Anna Wellmann
Browse files

Add tests for running the bc's in BCKernelManager

parent e8daae03
No related branches found
No related tags found
1 merge request!229Add some more tests to GridScalingManager and BCKernelManager
......@@ -142,11 +142,11 @@ public:
// void setOutflowBoundaryCondition(...); // TODO:
// https://git.rz.tu-bs.de/m.schoenherr/VirtualFluids_dev/-/issues/16
[[nodiscard]] boundaryCondition getVelocityBoundaryConditionPost(bool isGeometryBC = false) const;
[[nodiscard]] boundaryCondition getNoSlipBoundaryConditionPost(bool isGeometryBC = false) const;
[[nodiscard]] boundaryCondition getSlipBoundaryConditionPost(bool isGeometryBC = false) const;
[[nodiscard]] boundaryCondition getPressureBoundaryConditionPre() const;
[[nodiscard]] boundaryCondition getGeometryBoundaryConditionPost() const;
[[nodiscard]] virtual boundaryCondition getVelocityBoundaryConditionPost(bool isGeometryBC = false) const;
[[nodiscard]] virtual boundaryCondition getNoSlipBoundaryConditionPost(bool isGeometryBC = false) const;
[[nodiscard]] virtual boundaryCondition getSlipBoundaryConditionPost(bool isGeometryBC = false) const;
[[nodiscard]] virtual boundaryCondition getPressureBoundaryConditionPre() const;
[[nodiscard]] virtual boundaryCondition getGeometryBoundaryConditionPost() const;
[[nodiscard]] boundaryConditionWithParameter getStressBoundaryConditionPost() const;
......
......@@ -105,10 +105,10 @@ private:
SPtr<Parameter> para;
boundaryCondition pressureBoundaryConditionPre = nullptr;
boundaryCondition velocityBoundaryConditionPost = nullptr;
boundaryCondition noSlipBoundaryConditionPost = nullptr;
boundaryCondition slipBoundaryConditionPost = nullptr;
boundaryCondition pressureBoundaryConditionPre = nullptr;
boundaryCondition geometryBoundaryConditionPost = nullptr;
boundaryConditionWithParameter stressBoundaryConditionPost = nullptr;
};
......
#include <gmock/gmock-function-mocker.h>
#include <gmock/gmock-matchers.h>
#include <gmock/gmock.h>
#include <stdexcept>
......@@ -66,3 +67,40 @@ TEST_F(BCKernelManagerTest_BCsNotSpecified, stressBoundaryConditionPost_NotSpeci
para->getParD(0)->stressBC.numberOfBCnodes = 0;
EXPECT_NO_THROW(BCKernelManager(para, &bcFactory));
}
class BoundaryConditionFactoryMock : public BoundaryConditionFactory
{
public:
mutable uint numberOfCalls = 0;
[[nodiscard]] boundaryCondition getVelocityBoundaryConditionPost(bool) const override
{
return [this](LBMSimulationParameter *, QforBoundaryConditions *) { numberOfCalls++; };
}
};
class BCKernelManagerTest_runBCs : public testing::Test
{
protected:
BoundaryConditionFactoryMock bcFactory;
SPtr<Parameter> para = std::make_shared<Parameter>();
UPtr<BCKernelManager> sut;
void SetUp() override
{
para->initLBMSimulationParameter();
sut = std::make_unique<BCKernelManager>(para, &bcFactory);
}
};
TEST_F(BCKernelManagerTest_runBCs, runVelocityBCKernelPost)
{
para->getParD(0)->velocityBC.numberOfBCnodes = 1;
sut->runVelocityBCKernelPost(0);
EXPECT_THAT(bcFactory.numberOfCalls, testing::Eq(1));
bcFactory.numberOfCalls = 0;
para->getParD(0)->velocityBC.numberOfBCnodes = 0;
sut->runVelocityBCKernelPost(0);
EXPECT_THAT(bcFactory.numberOfCalls, testing::Eq(0));
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment