Salome HOME
[Code coverage FeaturesPlugin]: Minor improvements to increase coverage
authorazv <azv@opencascade.com>
Thu, 6 Dec 2018 07:29:41 +0000 (10:29 +0300)
committerazv <azv@opencascade.com>
Thu, 6 Dec 2018 07:29:41 +0000 (10:29 +0300)
src/FeaturesPlugin/FeaturesPlugin_Boolean.cpp
src/FeaturesPlugin/FeaturesPlugin_Boolean.h
src/FeaturesPlugin/Test/TestMultiTranslation_Part.py
src/FeaturesPlugin/Test/TestSymmetry_Part.py
src/PythonAPI/model/tests/tests.py

index 81848ff1131d9df47f0b2f6dd7d560bccc71243f..e9e3cbf9f5ed8cbe34d657b4b886bcad4a2bbc73 100644 (file)
@@ -63,20 +63,6 @@ void FeaturesPlugin_Boolean::initAttributes()
   ModelAPI_Session::get()->validators()->registerNotObligatory(getKind(), TOOL_LIST_ID());
 }
 
-//=================================================================================================
-std::shared_ptr<GeomAPI_Shape> FeaturesPlugin_Boolean::getShape(const std::string& theAttrName)
-{
-  std::shared_ptr<ModelAPI_AttributeReference> aObjRef = std::dynamic_pointer_cast<
-      ModelAPI_AttributeReference>(data()->attribute(theAttrName));
-  if (aObjRef) {
-    std::shared_ptr<ModelAPI_ResultBody> aConstr = std::dynamic_pointer_cast<
-        ModelAPI_ResultBody>(aObjRef->value());
-    if (aConstr)
-      return aConstr->shape();
-  }
-  return std::shared_ptr<GeomAPI_Shape>();
-}
-
 //=================================================================================================
 FeaturesPlugin_Boolean::OperationType FeaturesPlugin_Boolean::operationType()
 {
index 618f9e18e9688f168f6e7b4700a4ee4cc492078a..70aaad5915eb0e52b9d6c9a880b0518b90091de4 100644 (file)
@@ -67,8 +67,6 @@ protected:
   /// Use plugin manager for features creation.
   FeaturesPlugin_Boolean(const OperationType theOperationType);
 
-  std::shared_ptr<GeomAPI_Shape> getShape(const std::string& theAttrName);
-
   /// Load Naming data structure of the feature to the document
   void loadNamingDS(std::shared_ptr<ModelAPI_ResultBody> theResultBody,
                     const std::shared_ptr<GeomAPI_Shape> theBaseShape,
index 024087c281ba9bb2b774a17a95f52c86fff82643..634aa47d30fd410b4444e788c42e677b5655c67d 100644 (file)
@@ -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])
index c8801f19fea35ca894efcb5b8d5ef66b35ca92d1..c0db1e3824cba4c5a0f84bad26993efffbae25ca 100644 (file)
@@ -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])
index ea60df69f808207f5444c40400f59ce937651f64..f888453dd67830271a9915d73aa2fac00386f9b1 100644 (file)
@@ -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