From 84d324c5fe6e96bb99318d35afb277d78f85f96d Mon Sep 17 00:00:00 2001 From: azv Date: Thu, 6 Dec 2018 10:29:41 +0300 Subject: [PATCH] [Code coverage FeaturesPlugin]: Minor improvements to increase coverage --- src/FeaturesPlugin/FeaturesPlugin_Boolean.cpp | 14 ----------- src/FeaturesPlugin/FeaturesPlugin_Boolean.h | 2 -- .../Test/TestMultiTranslation_Part.py | 25 +++++++++++++------ src/FeaturesPlugin/Test/TestSymmetry_Part.py | 16 ++++++------ src/PythonAPI/model/tests/tests.py | 2 +- 5 files changed, 26 insertions(+), 33 deletions(-) diff --git a/src/FeaturesPlugin/FeaturesPlugin_Boolean.cpp b/src/FeaturesPlugin/FeaturesPlugin_Boolean.cpp index 81848ff11..e9e3cbf9f 100644 --- a/src/FeaturesPlugin/FeaturesPlugin_Boolean.cpp +++ b/src/FeaturesPlugin/FeaturesPlugin_Boolean.cpp @@ -63,20 +63,6 @@ void FeaturesPlugin_Boolean::initAttributes() ModelAPI_Session::get()->validators()->registerNotObligatory(getKind(), TOOL_LIST_ID()); } -//================================================================================================= -std::shared_ptr FeaturesPlugin_Boolean::getShape(const std::string& theAttrName) -{ - std::shared_ptr aObjRef = std::dynamic_pointer_cast< - ModelAPI_AttributeReference>(data()->attribute(theAttrName)); - if (aObjRef) { - std::shared_ptr aConstr = std::dynamic_pointer_cast< - ModelAPI_ResultBody>(aObjRef->value()); - if (aConstr) - return aConstr->shape(); - } - return std::shared_ptr(); -} - //================================================================================================= FeaturesPlugin_Boolean::OperationType FeaturesPlugin_Boolean::operationType() { diff --git a/src/FeaturesPlugin/FeaturesPlugin_Boolean.h b/src/FeaturesPlugin/FeaturesPlugin_Boolean.h index 618f9e18e..70aaad591 100644 --- a/src/FeaturesPlugin/FeaturesPlugin_Boolean.h +++ b/src/FeaturesPlugin/FeaturesPlugin_Boolean.h @@ -67,8 +67,6 @@ protected: /// Use plugin manager for features creation. FeaturesPlugin_Boolean(const OperationType theOperationType); - std::shared_ptr getShape(const std::string& theAttrName); - /// Load Naming data structure of the feature to the document void loadNamingDS(std::shared_ptr theResultBody, const std::shared_ptr theBaseShape, diff --git a/src/FeaturesPlugin/Test/TestMultiTranslation_Part.py b/src/FeaturesPlugin/Test/TestMultiTranslation_Part.py index 024087c28..634aa47d3 100644 --- a/src/FeaturesPlugin/Test/TestMultiTranslation_Part.py +++ b/src/FeaturesPlugin/Test/TestMultiTranslation_Part.py @@ -26,15 +26,24 @@ Part_1 = model.addPart(partSet) Part_1_doc = Part_1.document() Box_1 = model.addBox(Part_1_doc, 10, 10, 10) model.do() -LinearCopy_1 = model.addMultiTranslation(partSet, [model.selection("COMPOUND", "Part_1/")], model.selection("EDGE", "OX"), 20, 2, model.selection("EDGE", "OY"), 20, 2) +LinearCopy_1 = model.addMultiTranslation(partSet, [model.selection("COMPOUND", "Part_1/")], model.selection("EDGE", "OZ"), 20, 2) +LinearCopy_2 = model.addMultiTranslation(partSet, [model.selection("COMPOUND", "LinearCopy_1/")], model.selection("EDGE", "OX"), 20, 2, model.selection("EDGE", "OY"), 20, 2) model.end() from GeomAPI import GeomAPI_Shape -model.testNbResults(LinearCopy_1, 4) -model.testNbSubResults(LinearCopy_1, [0, 0, 0, 0]) -model.testNbSubShapes(LinearCopy_1, GeomAPI_Shape.SOLID, [1, 1, 1, 1]) -model.testNbSubShapes(LinearCopy_1, GeomAPI_Shape.FACE, [6, 6, 6, 6]) -model.testNbSubShapes(LinearCopy_1, GeomAPI_Shape.EDGE, [24, 24, 24, 24]) -model.testNbSubShapes(LinearCopy_1, GeomAPI_Shape.VERTEX, [48, 48, 48, 48]) -model.testResultsVolumes(LinearCopy_1, [1000, 1000, 1000, 1000]) +model.testNbResults(LinearCopy_1, 2) +model.testNbSubResults(LinearCopy_1, [0, 0]) +model.testNbSubShapes(LinearCopy_1, GeomAPI_Shape.SOLID, [1, 1]) +model.testNbSubShapes(LinearCopy_1, GeomAPI_Shape.FACE, [6, 6]) +model.testNbSubShapes(LinearCopy_1, GeomAPI_Shape.EDGE, [24, 24]) +model.testNbSubShapes(LinearCopy_1, GeomAPI_Shape.VERTEX, [48, 48]) +model.testResultsVolumes(LinearCopy_1, [1000, 1000]) + +model.testNbResults(LinearCopy_2, 4) +model.testNbSubResults(LinearCopy_2, [0, 0, 0, 0]) +model.testNbSubShapes(LinearCopy_2, GeomAPI_Shape.SOLID, [1, 1, 1, 1]) +model.testNbSubShapes(LinearCopy_2, GeomAPI_Shape.FACE, [6, 6, 6, 6]) +model.testNbSubShapes(LinearCopy_2, GeomAPI_Shape.EDGE, [24, 24, 24, 24]) +model.testNbSubShapes(LinearCopy_2, GeomAPI_Shape.VERTEX, [48, 48, 48, 48]) +model.testResultsVolumes(LinearCopy_2, [1000, 1000, 1000, 1000]) diff --git a/src/FeaturesPlugin/Test/TestSymmetry_Part.py b/src/FeaturesPlugin/Test/TestSymmetry_Part.py index c8801f19f..c0db1e382 100644 --- a/src/FeaturesPlugin/Test/TestSymmetry_Part.py +++ b/src/FeaturesPlugin/Test/TestSymmetry_Part.py @@ -28,15 +28,15 @@ Box_1 = model.addBox(Part_1_doc, 10, 10, 10) model.do() Symmetry_1 = model.addSymmetry(partSet, [model.selection("COMPOUND", "Part_1/")], model.selection("VERTEX", "Part_1/[Box_1_1/Back][Box_1_1/Left][Box_1_1/Bottom]"), False) Symmetry_2 = model.addSymmetry(partSet, [model.selection("COMPOUND", "Symmetry_1/")], model.selection("EDGE", "Symmetry_1/[Box_1_1/Back][Box_1_1/Left]"), False) -Symmetry_3 = model.addSymmetry(partSet, [model.selection("COMPOUND", "Symmetry_2/")], model.selection("FACE", "Symmetry_2/Box_1_1/Bottom"), False) +Symmetry_3 = model.addSymmetry(partSet, [model.selection("COMPOUND", "Symmetry_2/")], model.selection("FACE", "Symmetry_2/Box_1_1/Bottom"), True) model.end() from GeomAPI import GeomAPI_Shape -model.testNbResults(Symmetry_3, 1) -model.testNbSubResults(Symmetry_3, [0]) -model.testNbSubShapes(Symmetry_3, GeomAPI_Shape.SOLID, [1]) -model.testNbSubShapes(Symmetry_3, GeomAPI_Shape.FACE, [6]) -model.testNbSubShapes(Symmetry_3, GeomAPI_Shape.EDGE, [24]) -model.testNbSubShapes(Symmetry_3, GeomAPI_Shape.VERTEX, [48]) -model.testResultsVolumes(Symmetry_3, [1000]) +model.testNbResults(Symmetry_3, 2) +model.testNbSubResults(Symmetry_3, [0, 0]) +model.testNbSubShapes(Symmetry_3, GeomAPI_Shape.SOLID, [1, 1]) +model.testNbSubShapes(Symmetry_3, GeomAPI_Shape.FACE, [6, 6]) +model.testNbSubShapes(Symmetry_3, GeomAPI_Shape.EDGE, [24, 24]) +model.testNbSubShapes(Symmetry_3, GeomAPI_Shape.VERTEX, [48, 48]) +model.testResultsVolumes(Symmetry_3, [-1000, 1000]) diff --git a/src/PythonAPI/model/tests/tests.py b/src/PythonAPI/model/tests/tests.py index ea60df69f..f888453dd 100644 --- a/src/PythonAPI/model/tests/tests.py +++ b/src/PythonAPI/model/tests/tests.py @@ -130,7 +130,7 @@ def testResultsVolumes(theFeature, theExpectedResultsVolumes, theNbSignificantDi aResultVolumeStr = "{:0.27f}".format(aResultVolume).lstrip("0").lstrip(".").lstrip("0") anExpectedResultVolume = theExpectedResultsVolumes[anIndex] anExpectedResultVolumeStr = "{:0.27f}".format(anExpectedResultVolume).lstrip("0").lstrip(".").lstrip("0") - assert math.fabs(aResultVolume - anExpectedResultVolume) < aTolerance * anExpectedResultVolume, "Volume of result[{}]: {:0.27f}. Expected: {:0.27f}. The first {} significant digits not equal.".format(anIndex, aResultVolume, anExpectedResultVolume, theNbSignificantDigits) + assert math.fabs(aResultVolume - anExpectedResultVolume) < aTolerance * math.fabs(anExpectedResultVolume), "Volume of result[{}]: {:0.27f}. Expected: {:0.27f}. The first {} significant digits not equal.".format(anIndex, aResultVolume, anExpectedResultVolume, theNbSignificantDigits) def testHaveNamingFaces(theFeature, theModel, thePartDoc) : """ Tests if all faces of result have a name -- 2.39.2