Attempt to mollify lint

This commit is contained in:
bgbsww
2023-12-23 07:28:51 -05:00
parent 048aec830b
commit 9e669e4d7a
4 changed files with 173 additions and 11 deletions

View File

@@ -0,0 +1,162 @@
// SPDX-License-Identifier: LGPL-2.1-or-later
#include "gtest/gtest.h"
#include <src/App/InitApplication.h>
#include "PartTestHelpers.h"
std::vector<Part::FilletElement> _getFilletEdges(std::vector<int> edges = {1,2}, double startRadius = 0.3, double endRadius = 0.3) {
std::vector<Part::FilletElement> filletElements;
for ( auto e : edges ) {
Part::FilletElement fe = {e, startRadius, endRadius};
filletElements.push_back(fe);
}
return filletElements;
}
class FeatureFilletTest: public ::testing::Test, public PartTestHelpers::PartTestHelperClass
{
protected:
static void SetUpTestSuite()
{
tests::initApplication();
}
void SetUp() override
{
createTestFile();
_box1obj->Length.setValue(4);
_box1obj->Width.setValue(5);
_box1obj->Height.setValue(6);
_box1obj->Placement.setValue(
Base::Placement(Base::Vector3d(), Base::Rotation(), Base::Vector3d()));
_box2obj->Placement.setValue(
Base::Placement(Base::Vector3d(0, 1, 6), Base::Rotation(), Base::Vector3d()));
_box2obj->Length.setValue(1);
_box2obj->Width.setValue(2);
_box2obj->Height.setValue(3);
_fused = static_cast<Part::Fuse*>(_doc->addObject("Part::Fuse"));
_fused->Base.setValue(_box1obj);
_fused->Tool.setValue(_box2obj);
_fused->execute();
_fillet = static_cast<Part::Fillet*>(_doc->addObject("Part::Fillet"));
}
void TearDown() override
{}
Part::Fuse *_fused;
Part::Fillet* _fillet;
};
TEST_F(FeatureFilletTest, testInner)
{
// Arrange
_fillet->Base.setValue(_fused);
Part::TopoShape rf = _fused->Shape.getValue();
std::vector<const char*> get = rf.getElementTypes();
ASSERT_EQ(get.size(),3);
EXPECT_STREQ(get[0],"Face");
EXPECT_STREQ(get[1],"Edge");
EXPECT_STREQ(get[2],"Vertex");
unsigned long sec = rf.countSubElements("Edge");
EXPECT_EQ(sec,25);
_fused->Refine.setValue(true);
_fused->execute();
rf = _fused->Shape.getValue();
sec = rf.countSubElements("Edge");
EXPECT_EQ(sec,24);
_fillet->Edges.setValues(_getFilletEdges());
// Act
double volume;
volume = PartTestHelpers::getVolume(_fused->Shape.getValue());
EXPECT_DOUBLE_EQ(volume,126.0);
volume = PartTestHelpers::getVolume(_fillet->Shape.getValue());
EXPECT_DOUBLE_EQ(volume,0.0);
_fillet->execute();
volume = PartTestHelpers::getVolume(_fillet->Shape.getValue());
EXPECT_DOUBLE_EQ(volume,125.80944686460914);
}
TEST_F(FeatureFilletTest, testOuter)
{
// Arrange
_fillet->Base.setValue(_fused);
_fillet->Edges.setValues(_getFilletEdges({3,4,5,6,7,8,9,10}));
// Act
_fillet->execute();
Part::TopoShape ts = _fillet->Shape.getValue();
}
// Hmmmm... FeaturePartCommon with insufficent parameters says MustExecute false,
// but FeatureFillet says MustExecute true ... Neither of these should really
// happen, though.
TEST_F(FeatureFilletTest, testMustExecute)
{
// Act
// short mE = _fillet->mustExecute();
// // Assert
// EXPECT_FALSE(mE);
// _fillet->Base.setValue(_box1obj);
// // Assert
// mE = _fillet->mustExecute();
// EXPECT_FALSE(mE);
// // Act
// // _fillet->Edges.setValue(_box2obj);
// // Assert
// mE = _fillet->mustExecute();
// EXPECT_TRUE(mE);
// _doc->recompute();
// mE = _fillet->mustExecute();
// EXPECT_FALSE(mE);
}
TEST_F(FeatureFilletTest, testGetProviderName)
{
// Act
_fillet->execute();
const char* name = _fillet->getViewProviderName();
// Assert
EXPECT_STREQ(name, "PartGui::ViewProviderFillet");
}
// TEST_F(FeatureFilletTest, testHistory)
// {
// // Arrange
// _fillet->Base.setValue(_box1obj);
// _fillet->Tool.setValue(_box2obj);
// // Act and Assert
// std::vector<Part::ShapeHistory> hist = _fillet->History.getValues();
// EXPECT_EQ(hist.size(), 0);
// // This creates the histories classically generated by FreeCAD for comparison
// using MapList = std::map<int, std::vector<int>>;
// using List = std::vector<int>;
// MapList compare1 =
// {{0, List {0}}, {1, List {5}}, {2, List()}, {3, List {2}}, {4, List {3}}, {5, List {1}}};
// MapList compare2 =
// {{0, List {0}}, {1, List {5}}, {2, List {4}}, {3, List()}, {4, List {3}}, {5, List {1}}};
// _fillet->execute();
// hist = _fillet->History.getValues();
// EXPECT_EQ(hist.size(), 2);
// EXPECT_EQ(hist[0].shapeMap, compare1);
// EXPECT_EQ(hist[1].shapeMap, compare2);
// _fillet->Base.setValue(_box2obj);
// _fillet->Tool.setValue(_box1obj);
// _fillet->execute();
// hist = _fillet->History.getValues();
// // std::cout << testing::PrintToString(hist[0]) << testing::PrintToString(hist[1]);
// EXPECT_EQ(hist.size(), 2);
// EXPECT_EQ(hist[1].shapeMap, compare1);
// EXPECT_EQ(hist[0].shapeMap, compare2);
// }

View File

@@ -19,13 +19,13 @@ protected:
void SetUp() override
{
createTestDoc();
_common = static_cast<Part::Common*>(_doc->addObject("Part::Common"));
_common = dynamic_cast<Part::Common*>(_doc->addObject("Part::Common"));
}
void TearDown() override
{}
Part::Common* _common;
Part::Common* _common; // NOLINT Can't be private in a test framework
};
TEST_F(FeaturePartCommonTest, testIntersecting)
@@ -106,7 +106,7 @@ TEST_F(FeaturePartCommonTest, testBarelyIntersecting)
{
// Arrange
_common->Base.setValue(_boxes[0]);
_common->Tool.setValue(_boxes[5]);
_common->Tool.setValue(_boxes[5]); // NOLINT magic number
// Act
_common->execute();
@@ -165,9 +165,9 @@ TEST_F(FeaturePartCommonTest, testHistory)
using MapList = std::map<int, std::vector<int>>;
using List = std::vector<int>;
MapList compare1 =
{{0, List {0}}, {1, List {5}}, {2, List()}, {3, List {2}}, {4, List {3}}, {5, List {1}}};
{{0, List {0}}, {1, List {5}}, {2, List()}, {3, List {2}}, {4, List {3}}, {5, List {1}}}; // NOLINT magic number
MapList compare2 =
{{0, List {0}}, {1, List {5}}, {2, List {4}}, {3, List()}, {4, List {3}}, {5, List {1}}};
{{0, List {0}}, {1, List {5}}, {2, List {4}}, {3, List()}, {4, List {3}}, {5, List {1}}}; // NOLINT magic number
// Act and Assert no histories yet
std::vector<Part::ShapeHistory> hist = _common->History.getValues();

View File

@@ -18,13 +18,13 @@ protected:
void SetUp() override
{
createTestDoc();
_cut = static_cast<Part::Cut*>(_doc->addObject("Part::Cut"));
_cut = dynamic_cast<Part::Cut*>(_doc->addObject("Part::Cut"));
}
void TearDown() override
{}
Part::Cut* _cut;
Part::Cut* _cut; // NOLINT Can't be private in a test framework
};
TEST_F(FeaturePartCutTest, testIntersecting)
@@ -123,7 +123,7 @@ TEST_F(FeaturePartCutTest, testBarelyIntersecting)
{
// Arrange
_cut->Base.setValue(_boxes[0]);
_cut->Tool.setValue(_boxes[5]);
_cut->Tool.setValue(_boxes[5]); // NOLINT magic number
// Act
_cut->execute();

View File

@@ -19,13 +19,13 @@ protected:
void SetUp() override
{
createTestDoc();
_fuse = static_cast<Part::Fuse*>(_doc->addObject("Part::Fuse"));
_fuse = dynamic_cast<Part::Fuse*>(_doc->addObject("Part::Fuse"));
}
void TearDown() override
{}
Part::Fuse* _fuse;
Part::Fuse* _fuse; // NOLINT Can't be private in a test framework
};
TEST_F(FeaturePartFuseTest, testIntersecting)
@@ -124,7 +124,7 @@ TEST_F(FeaturePartFuseTest, testBarelyIntersecting)
{
// Arrange
_fuse->Base.setValue(_boxes[0]);
_fuse->Tool.setValue(_boxes[5]);
_fuse->Tool.setValue(_boxes[5]); // NOLINT magic number
// Act
_fuse->execute();