OCC22355 Avoid annoying warnings in NCollection_SparseArray.hxx on 64-bit Linux with...
authorYCY <>
Thu, 19 May 2011 10:53:48 +0000 (10:53 +0000)
committerbugmaster <bugmaster@opencascade.com>
Mon, 5 Mar 2012 15:28:50 +0000 (19:28 +0400)
src/QANCollection/FILES
src/QANCollection/QANCollection3.cxx
src/QANCollection/QANCollection_PerfSparseArray.hxx [new file with mode: 0755]

index f760d02..590efdf 100755 (executable)
@@ -17,3 +17,4 @@ QANCollection_PerfLists.hxx
 QANCollection_PerfMaps.hxx
 QANCollection_PerfTest.hxx
 QANCollectionTest.cxx
+QANCollection_PerfSparseArray.hxx
\ No newline at end of file
index 758c585..982fa18 100755 (executable)
@@ -13,6 +13,8 @@
 
 #include <QANCollection_PerfTest.hxx>
 
+#include <QANCollection_PerfSparseArray.hxx>
+
 IMPLEMENT_HARRAY1(QANCollection_HArray1Perf)
 IMPLEMENT_HARRAY2(QANCollection_HArray2Perf)
 IMPLEMENT_HSET(QANCollection_HSetPerf)
@@ -224,6 +226,20 @@ static Standard_Integer QANColPerfIndexedDataMap(Draw_Interpretor& di, Standard_
   return 0;
 }
 
+//=======================================================================
+//function : QANColCheckSparseArray
+//purpose  : 
+//=======================================================================
+static Standard_Integer QANColCheckSparseArray(Draw_Interpretor& di, Standard_Integer argc, const char ** argv)
+{
+  Standard_Integer Repeat, Size;
+  if ( CheckArguments(di, argc, argv, Repeat, Size) ) {
+    return 1;
+  }
+  CompSparseArray(Repeat,Size);
+  return 0;
+}
+
 void QANCollection::Commands3(Draw_Interpretor& theCommands) {
   char *group = "QANCollection";
 
@@ -241,6 +257,9 @@ void QANCollection::Commands3(Draw_Interpretor& theCommands) {
   theCommands.Add("QANColPerfDoubleMap",      "QANColPerfDoubleMap Repeat Size",      __FILE__, QANColPerfDoubleMap,      group);  
   theCommands.Add("QANColPerfIndexedMap",     "QANColPerfIndexedMap Repeat Size",     __FILE__, QANColPerfIndexedMap,     group);  
   theCommands.Add("QANColPerfIndexedDataMap", "QANColPerfIndexedDataMap Repeat Size", __FILE__, QANColPerfIndexedDataMap, group);  
-
+  
+  theCommands.Add("QANColCheckSparseArray",   "QANColCheckSparseArray Repeat Size",   __FILE__, QANColCheckSparseArray,   group);
+  
   return;
 }
+
diff --git a/src/QANCollection/QANCollection_PerfSparseArray.hxx b/src/QANCollection/QANCollection_PerfSparseArray.hxx
new file mode 100755 (executable)
index 0000000..3aff1dd
--- /dev/null
@@ -0,0 +1,72 @@
+// File:        QANCollection_PerfArrays.hxx
+// Created:     Wed May 15 15:29:20 2002
+// Author:      Alexander KARTOMIN (akm)
+//              <a-kartomin@opencascade.com>
+
+
+#ifndef QANCollection_PerfSparseArray_HeaderFile
+#define QANCollection_PerfSparseArray_HeaderFile
+
+#define PERF_ENABLE_METERS
+#include <DebugTools.h>
+////////////////////////////////#include <Perf_Meter.hxx>
+#include <NCollection_SparseArray.hxx>
+#include <NCollection_SparseArrayBase.hxx>
+
+// ===================== Test perform of SparseArray type ==========================
+void CompSparseArray (const Standard_Integer theRep, const Standard_Integer theSize)
+{
+  Standard_Integer i,j;
+  for (i=0; i<theRep; i++)
+    {
+      PERF_START_METER("NCollection_SparseArray creation")
+
+      NCollection_SparseArray<Standard_Integer> a1(theSize),a2(theSize);
+      
+      PERF_STOP_METER("NCollection_SparseArray creation")
+        
+      PERF_START_METER("NCollection_SparseArray filling")
+      for( j=0;j<theSize;j++ )
+      {
+        Standard_Integer iIndex;
+        Random(iIndex,theSize);
+        a1.SetValue(j,iIndex+1);
+      }
+      
+      PERF_STOP_METER("NCollection_SparseArray filling")
+      
+      PERF_START_METER("NCollection_SparseArray size")
+          Standard_Integer sizeSparseArray=a1.Size();
+      PERF_STOP_METER("NCollection_SparseArray size")
+      
+      PERF_START_METER("NCollection_Array1 Assign")
+        a2.Assign(a1);
+      PERF_STOP_METER("NCollection_Array1 Assign")
+      PERF_START_METER("NCollection_SparseArray HasValue")
+      for (j=0; j<theSize; j++)
+        {
+          Standard_Integer iIndex;
+          Random(iIndex,theSize);
+          a2.HasValue(iIndex+1);
+        }
+      PERF_STOP_METER("NCollection_SparseArray HasValue")
+      PERF_START_METER("NCollection_SparseArray UnsetValue")
+      for (j=0; j<theSize; j++)
+        {
+          Standard_Integer iIndex;
+          Random(iIndex,theSize);
+          a1.UnsetValue(iIndex+1);
+        }
+      PERF_STOP_METER("NCollection_SparseArray UnsetValue")
+      
+      PERF_START_METER("NCollection_SparseArray Clear")
+        a1.Clear();
+        a2.Clear();
+      PERF_STOP_METER("NCollection_SparseArray Clear")
+      
+    }
+
+  PERF_PRINT_ALL_METERS
+}
+
+#endif