Download tests/src/Mod/Measure/App/MeasureDistance.cpp from AbdulElahGwaith/FreeCAD: direct link, hf CLI and curl.
- Browser
- Download file 1.91 kB
-
https://huggingface.co/AbdulElahGwaith/FreeCAD/resolve/main/tests/src/Mod/Measure/App/MeasureDistance.cpp
- Command line
-
hf download hf://AbdulElahGwaith/FreeCAD/tests/src/Mod/Measure/App/MeasureDistance.cpp
-
curl -L -o MeasureDistance.cpp https://huggingface.co/AbdulElahGwaith/FreeCAD/resolve/main/tests/src/Mod/Measure/App/MeasureDistance.cpp
1.91 kB
| // SPDX-License-Identifier: LGPL-2.1-or-later | |
| class MeasureDistance: public ::testing::Test | |
| { | |
| protected: | |
| static void SetUpTestSuite() | |
| { | |
| tests::initApplication(); | |
| } | |
| void SetUp() override | |
| { | |
| document = App::GetApplication().newDocument("Measure"); | |
| } | |
| void TearDown() override | |
| { | |
| App::GetApplication().closeDocument(document->getName()); | |
| } | |
| App::Document* getDocument() const | |
| { | |
| return document; | |
| } | |
| TopoDS_Edge makeCircle(const gp_Pnt& pnt) const | |
| { | |
| gp_Circ circle; | |
| circle.SetLocation(pnt); | |
| circle.SetRadius(1.0); | |
| BRepBuilderAPI_MakeEdge mkEdge(circle); | |
| return mkEdge.Edge(); | |
| } | |
| private: | |
| App::Document* document {}; | |
| }; | |
| // NOLINTBEGIN | |
| TEST_F(MeasureDistance, testCircleCircle) | |
| { | |
| App::Document* doc = getDocument(); | |
| auto p1 = doc->addObject<Part::Feature>("Shape1"); | |
| p1->Shape.setValue(makeCircle(gp_Pnt(0.0, 0.0, 0.0))); | |
| auto p2 = doc->addObject<Part::Feature>("Shape2"); | |
| p2->Shape.setValue(makeCircle(gp_Pnt(3.0, 4.0, 0.0))); | |
| auto md = doc->addObject<Measure::MeasureDistance>("Distance"); | |
| md->Element1.setValue(p1, {"Edge1"}); | |
| md->Element2.setValue(p2, {"Edge1"}); | |
| doc->recompute(); | |
| EXPECT_DOUBLE_EQ(md->Distance.getValue(), 5.0); | |
| EXPECT_DOUBLE_EQ(md->DistanceX.getValue(), 3.0); | |
| EXPECT_DOUBLE_EQ(md->DistanceY.getValue(), 4.0); | |
| EXPECT_DOUBLE_EQ(md->DistanceZ.getValue(), 0.0); | |
| EXPECT_EQ(md->Position1.getValue(), Base::Vector3d(0.0, 0.0, 0.0)); | |
| EXPECT_EQ(md->Position2.getValue(), Base::Vector3d(3.0, 4.0, 0.0)); | |
| } | |
| // NOLINTEND | |