| | |
| |
|
| | #include <gtest/gtest.h> |
| |
|
| | #include <src/App/InitApplication.h> |
| |
|
| | #include "PartTestHelpers.h" |
| |
|
| | |
| | class FeatureFilletTest: public ::testing::Test, public PartTestHelpers::PartTestHelperClass |
| | { |
| | protected: |
| | static void SetUpTestSuite() |
| | { |
| | tests::initApplication(); |
| | } |
| |
|
| | void SetUp() override |
| | { |
| | createTestDoc(); |
| | _boxes[0]->Length.setValue(4); |
| | _boxes[0]->Width.setValue(5); |
| | _boxes[0]->Height.setValue(6); |
| | _boxes[0]->Placement.setValue( |
| | Base::Placement(Base::Vector3d(), Base::Rotation(), Base::Vector3d()) |
| | ); |
| | _boxes[1]->Placement.setValue( |
| | Base::Placement(Base::Vector3d(0, 1, 6), Base::Rotation(), Base::Vector3d()) |
| | ); |
| | _boxes[1]->Length.setValue(1); |
| | _boxes[1]->Width.setValue(2); |
| | _boxes[1]->Height.setValue(3); |
| | _fused = _doc->addObject<Part::Fuse>(); |
| | _fused->Base.setValue(_boxes[0]); |
| | _fused->Tool.setValue(_boxes[1]); |
| | _fused->Refine.setValue(false); |
| | _fused->execute(); |
| | _fillet = _doc->addObject<Part::Fillet>(); |
| | } |
| |
|
| | void TearDown() override |
| | {} |
| |
|
| | Part::Fuse* _fused = nullptr; |
| | Part::Fillet* _fillet = nullptr; |
| | }; |
| |
|
| | |
| | |
| | |
| |
|
| | TEST_F(FeatureFilletTest, testOtherEdges) |
| | { |
| | const double baseVolume = _boxes[0]->Length.getValue() * _boxes[0]->Width.getValue() |
| | * _boxes[0]->Height.getValue() |
| | + _boxes[1]->Length.getValue() * _boxes[1]->Width.getValue() * _boxes[1]->Height.getValue(); |
| | |
| | _fillet->Base.setValue(_fused); |
| | Part::TopoShape ts = _fused->Shape.getValue(); |
| | unsigned long sec = ts.countSubElements("Edge"); |
| | |
| | EXPECT_EQ(sec, 25); |
| | |
| | _fused->Refine.setValue(true); |
| | _fused->execute(); |
| | ts = _fused->Shape.getValue(); |
| | sec = ts.countSubElements("Edge"); |
| | |
| | EXPECT_EQ(sec, 24); |
| |
|
| | |
| | _fillet->Edges.setValues(PartTestHelpers::_getFilletEdges({15, 17}, 0.5, 0.5)); |
| | double fusedVolume = PartTestHelpers::getVolume(_fused->Shape.getValue()); |
| | double filletVolume = PartTestHelpers::getVolume(_fillet->Shape.getValue()); |
| | |
| | EXPECT_DOUBLE_EQ(fusedVolume, baseVolume); |
| | EXPECT_DOUBLE_EQ(filletVolume, 0.0); |
| | |
| | _fillet->execute(); |
| | filletVolume = PartTestHelpers::getVolume(_fillet->Shape.getValue()); |
| | |
| | EXPECT_NEAR(filletVolume, 125.57079, 1e-5); |
| | } |
| |
|
| | TEST_F(FeatureFilletTest, testMostEdges) |
| | { |
| | |
| | _fused->Refine.setValue(true); |
| | |
| | _fillet->Base.setValue(_fused); |
| | _fillet->Edges.setValues( |
| | PartTestHelpers::_getFilletEdges( |
| | {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 18, 19, 20, 22, 23, 24}, |
| | 0.4, |
| | 0.4 |
| | ) |
| | ); |
| | |
| | _fillet->execute(); |
| | double filletVolume = PartTestHelpers::getVolume(_fillet->Shape.getValue()); |
| | |
| | EXPECT_NEAR(filletVolume, 118.38763, 1e-5); |
| | } |
| |
|
| | |
| | |
| |
|
| | TEST_F(FeatureFilletTest, testMustExecute) |
| | { |
| | |
| | EXPECT_TRUE(_fillet->mustExecute()); |
| | |
| | _fillet->Base.setValue(_boxes[0]); |
| | |
| | EXPECT_TRUE(_fillet->mustExecute()); |
| | |
| | _fillet->Edges.setValues(PartTestHelpers::_getFilletEdges({1}, 0.5, 0.5)); |
| | |
| | EXPECT_TRUE(_fillet->mustExecute()); |
| | |
| | _doc->recompute(); |
| | |
| | EXPECT_FALSE(_fillet->mustExecute()); |
| | } |
| |
|
| | TEST_F(FeatureFilletTest, testGetProviderName) |
| | { |
| | |
| | _fillet->execute(); |
| | const char* name = _fillet->getViewProviderName(); |
| | |
| | EXPECT_STREQ(name, "PartGui::ViewProviderFillet"); |
| | } |
| |
|
| | |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | |
| | |
| | |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|