#include <QANCollection_PerfTest.hxx>
+#include <QANCollection_PerfSparseArray.hxx>
+
IMPLEMENT_HARRAY1(QANCollection_HArray1Perf)
IMPLEMENT_HARRAY2(QANCollection_HArray2Perf)
IMPLEMENT_HSET(QANCollection_HSetPerf)
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";
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;
}
+
--- /dev/null
+// 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