From 6a02c342d1b289238b54618fba2796ca900fd73f Mon Sep 17 00:00:00 2001 From: azv Date: Tue, 18 Dec 2018 09:59:17 +0300 Subject: [PATCH] [Code coverage SketchAPI]: Remove unnecessary code. Add more unit-tests to improve coverage. --- src/SketchAPI/SketchAPI_MacroArc.h | 4 -- src/SketchAPI/SketchAPI_MacroCircle.cpp | 90 ------------------------- src/SketchAPI/SketchAPI_MacroCircle.h | 45 +------------ src/SketchAPI/SketchAPI_Projection.cpp | 4 +- src/SketchAPI/Test/TestSketch.py | 42 +++++++++++- 5 files changed, 43 insertions(+), 142 deletions(-) diff --git a/src/SketchAPI/SketchAPI_MacroArc.h b/src/SketchAPI/SketchAPI_MacroArc.h index 12bf0f98e..37f83ed08 100644 --- a/src/SketchAPI/SketchAPI_MacroArc.h +++ b/src/SketchAPI/SketchAPI_MacroArc.h @@ -89,10 +89,6 @@ public: SKETCHAPI_EXPORT virtual ~SketchAPI_MacroArc(); - void test() { - SketchPlugin_MacroArc::ID(); - } - INTERFACE_12(SketchPlugin_MacroArc::ID(), arcType, SketchPlugin_MacroArc::ARC_TYPE(), ModelAPI_AttributeString, /** Arc type */, diff --git a/src/SketchAPI/SketchAPI_MacroCircle.cpp b/src/SketchAPI/SketchAPI_MacroCircle.cpp index 694b0231f..2d60de425 100644 --- a/src/SketchAPI/SketchAPI_MacroCircle.cpp +++ b/src/SketchAPI/SketchAPI_MacroCircle.cpp @@ -137,93 +137,3 @@ void SketchAPI_MacroCircle::setByThreePoints(const std::shared_ptr& theCenterPoint) -{ - fillAttribute(SketchPlugin_MacroCircle::CIRCLE_TYPE_BY_CENTER_AND_PASSED_POINTS(), mycircleType); - fillAttribute(theCenterPoint, mycenterPoint); - - execute(); -} - -//================================================================================================== -void SketchAPI_MacroCircle::setPassedPoint(double theX, double theY) -{ - fillAttribute(SketchPlugin_MacroCircle::CIRCLE_TYPE_BY_CENTER_AND_PASSED_POINTS(), mycircleType); - fillAttribute(passedPoint(), theX, theY); - - execute(); -} - -//================================================================================================== -void SketchAPI_MacroCircle::setPassedPoint(const std::shared_ptr& thePassedPoint) -{ - fillAttribute(SketchPlugin_MacroCircle::CIRCLE_TYPE_BY_CENTER_AND_PASSED_POINTS(), mycircleType); - fillAttribute(thePassedPoint, mypassedPoint); - - execute(); -} - -//================================================================================================== -void SketchAPI_MacroCircle::setFirstPoint(double theX, double theY) -{ - fillAttribute(SketchPlugin_MacroCircle::CIRCLE_TYPE_BY_THREE_POINTS(), mycircleType); - fillAttribute(firstPoint(), theX, theY); - - execute(); -} - -//================================================================================================== -void SketchAPI_MacroCircle::setFirstPoint(const std::shared_ptr& thePoint) -{ - fillAttribute(SketchPlugin_MacroCircle::CIRCLE_TYPE_BY_THREE_POINTS(), mycircleType); - fillAttribute(thePoint, myfirstPoint); - - execute(); -} - -//================================================================================================== -void SketchAPI_MacroCircle::setSecondPoint(double theX, double theY) -{ - fillAttribute(SketchPlugin_MacroCircle::CIRCLE_TYPE_BY_THREE_POINTS(), mycircleType); - fillAttribute(secondPoint(), theX, theY); - - execute(); -} - -//================================================================================================== -void SketchAPI_MacroCircle::setSecondPoint(const std::shared_ptr& thePoint) -{ - fillAttribute(SketchPlugin_MacroCircle::CIRCLE_TYPE_BY_THREE_POINTS(), mycircleType); - fillAttribute(thePoint, mysecondPoint); - - execute(); -} - -//================================================================================================== -void SketchAPI_MacroCircle::setThirdPoint(double theX, double theY) -{ - fillAttribute(SketchPlugin_MacroCircle::CIRCLE_TYPE_BY_THREE_POINTS(), mycircleType); - fillAttribute(thirdPoint(), theX, theY); - - execute(); -} - -//================================================================================================== -void SketchAPI_MacroCircle::setThirdPoint(const std::shared_ptr& thePoint) -{ - fillAttribute(SketchPlugin_MacroCircle::CIRCLE_TYPE_BY_THREE_POINTS(), mycircleType); - fillAttribute(thePoint, mythirdPoint); - - execute(); -} diff --git a/src/SketchAPI/SketchAPI_MacroCircle.h b/src/SketchAPI/SketchAPI_MacroCircle.h index 39d06daf0..40bd81983 100644 --- a/src/SketchAPI/SketchAPI_MacroCircle.h +++ b/src/SketchAPI/SketchAPI_MacroCircle.h @@ -84,67 +84,24 @@ public: thirdPoint, SketchPlugin_MacroCircle::THIRD_POINT_ID(), GeomDataAPI_Point2D, /** Third point */) +private: /// Set by center and passed points. - SKETCHAPI_EXPORT void setByCenterAndPassedPoints(double theCenterX, double theCenterY, double thePassedX, double thePassedY); /// Set by center and passed points. - SKETCHAPI_EXPORT void setByCenterAndPassedPoints(const std::shared_ptr& theCenterPoint, const std::shared_ptr& thePassedPoint); /// Set by three points. - SKETCHAPI_EXPORT void setByThreePoints(double theX1, double theY1, double theX2, double theY2, double theX3, double theY3); /// Set by three points. - SKETCHAPI_EXPORT void setByThreePoints(const std::shared_ptr& thePoint1, const std::shared_ptr& thePoint2, const std::shared_ptr& thePoint3); - - /// Set center point. - SKETCHAPI_EXPORT - void setCenterPoint(double theX, double theY); - - /// Set center point. - SKETCHAPI_EXPORT - void setCenterPoint(const std::shared_ptr& theCenterPoint); - - /// Set passed point. - SKETCHAPI_EXPORT - void setPassedPoint(double theX, double theY); - - /// Set passed point. - SKETCHAPI_EXPORT - void setPassedPoint(const std::shared_ptr& thePassedPoint); - - /// Set first point. - SKETCHAPI_EXPORT - void setFirstPoint(double theX, double theY); - - /// Set first point. - SKETCHAPI_EXPORT - void setFirstPoint(const std::shared_ptr& thePoint); - - /// Set second point. - SKETCHAPI_EXPORT - void setSecondPoint(double theX, double theY); - - /// Set second point. - SKETCHAPI_EXPORT - void setSecondPoint(const std::shared_ptr& thePoint); - - /// Set third point. - SKETCHAPI_EXPORT - void setThirdPoint(double theX, double theY); - - /// Set third point. - SKETCHAPI_EXPORT - void setThirdPoint(const std::shared_ptr& thePoint); }; /// Pointer on Circle object. diff --git a/src/SketchAPI/SketchAPI_Projection.cpp b/src/SketchAPI/SketchAPI_Projection.cpp index 6d82651e9..8be4c7a23 100644 --- a/src/SketchAPI/SketchAPI_Projection.cpp +++ b/src/SketchAPI/SketchAPI_Projection.cpp @@ -75,9 +75,7 @@ void SketchAPI_Projection::setExternalFeature(const ModelHighAPI_Selection & the void SketchAPI_Projection::setByExternalName(const std::string& theExternalName) { - fillAttribute(ModelHighAPI_Selection("EDGE", theExternalName), external()); - - execute(true); + setExternalFeature(ModelHighAPI_Selection("EDGE", theExternalName)); } void SketchAPI_Projection::setIncludeToResult(bool theKeepResult) diff --git a/src/SketchAPI/Test/TestSketch.py b/src/SketchAPI/Test/TestSketch.py index 8cd95163f..732ef739a 100644 --- a/src/SketchAPI/Test/TestSketch.py +++ b/src/SketchAPI/Test/TestSketch.py @@ -34,6 +34,7 @@ class SketchTestCase(unittest.TestCase): aPartSet = self.session.moduleDocument() self.doc = model.addPart(aPartSet).document() model.addCylinder(self.doc, model.selection("VERTEX", "PartSet/Origin"), model.selection("EDGE", "PartSet/OZ"), 5, 10) + model.addCylinder(self.doc, model.selection("VERTEX", "PartSet/Origin"), model.selection("EDGE", "PartSet/OZ"), 10, 10, 90) self.sketch = model.addSketch(self.doc, model.defaultPlane("XOY")) def tearDown(self): @@ -57,7 +58,7 @@ class SketchTestCase(unittest.TestCase): self.checkPoint(aCircle.center(), point) def test_circle_by_external(self): - """ Test 2. Create point circle by external features + """ Test 2. Create point and circle by external features """ aPoint = self.sketch.addPoint("PartSet/Origin") aCircle = self.sketch.addCircle("[Cylinder_1_1/Face_1][Cylinder_1_1/Face_3]") @@ -141,6 +142,45 @@ class SketchTestCase(unittest.TestCase): self.checkPoint(anArc.center(), aCenter) self.assertAlmostEqual(anArc.radius().value(), aRadius, 6) + def test_arc_by_external(self): + """ Test 7. Create arc by external feature + """ + anArc = self.sketch.addArc(model.selection("EDGE", "[Cylinder_2_1/Face_1][Cylinder_2_1/Face_3]")) + model.do() + point = geom.Pnt2d(0., 0.) + self.checkPoint(anArc.center(), point) + self.assertAlmostEqual(anArc.radius().value(), 10, 6) + + def test_arc_by_name(self): + """ Test 8. Create arc by external feature + """ + anArc = self.sketch.addArc("[Cylinder_2_1/Face_1][Cylinder_2_1/Face_3]") + model.do() + point = geom.Pnt2d(0., 0.) + self.checkPoint(anArc.center(), point) + self.assertAlmostEqual(anArc.radius().value(), 10, 6) + + def test_point_by_intersection(self): + """ Test 9. Create point as intersection with external edge given by a name + """ + self.sketch.addIntersectionPoint("[Cylinder_2_1/Face_1][Cylinder_2_1/Face_4]") + model.do() + aPoint = SketchAPI.SketchAPI_Point(model.lastSubFeature(self.sketch, "SketchPoint")) + + point = geom.Pnt2d(10., 0.) + self.checkPoint(aPoint.coordinates(), point) + + def test_arc_by_projection(self): + """ Test 10. Create arc by projection of external feature + """ + self.sketch.addProjection("[Cylinder_2_1/Face_1][Cylinder_2_1/Face_3]") + model.do() + anArc = SketchAPI.SketchAPI_Arc(model.lastSubFeature(self.sketch, "SketchArc")) + + point = geom.Pnt2d(0., 0.) + self.checkPoint(anArc.center(), point) + self.assertAlmostEqual(anArc.radius().value(), 10, 6) + if __name__ == "__main__": test_program = unittest.main(exit=False) -- 2.39.2