Salome HOME
refs #673: test for export to Telemac
[modules/hydro.git] / src / HYDRO_tests / TestViewer.cxx
index ce1f8eb516db757642b375b903439c573328af30..d6d14bd5404acd0ea9dd40b1d62939673f4d37a4 100644 (file)
@@ -100,7 +100,16 @@ QColor TestViewer::GetColor(int i)
          << QColor(100,100,20) 
          << QColor(10,100,150);
   }
-  return aCV[i];
+  if (i < aCV.size())
+    return aCV[i];
+  else
+  {
+    QColor TestColor = aCV[i % aCV.size()];
+    QColor NewColor((TestColor.red() + i * 41) % 256, 
+      (TestColor.green() + i * 13) % 256, 
+      (TestColor.blue() + i * 23) % 256);
+    return NewColor;
+  }
 }
 
 void TestViewer::show( const Handle(AIS_InteractiveObject)& theObject,
@@ -275,7 +284,21 @@ void TestViewer::select( int theViewX, int theViewY )
   context()->Select();
 }
 
-bool TestViewer::areScriptsEqual( const QString& theBaseName )
+QString GetLine( QFile& theFile, bool isUtf8 )
+{
+  QByteArray aLineData = theFile.readLine();
+  QString aLine;
+  if( isUtf8 )
+    aLine = QString::fromUtf8( aLineData );
+  else
+    aLine = aLineData;
+  return aLine;
+}
+
+bool TestViewer::areScriptsEqual( const QString& theBaseName,
+                                  bool isExpectedUtf8,
+                                  bool isActualUtf8,
+                                  int theLinesToOmit )
 {
   QString anExpectedRefFilePath = qgetenv( "HYDRO_REFERENCE_DATA" );  
   anExpectedRefFilePath += "/" + theBaseName;
@@ -288,15 +311,14 @@ bool TestViewer::areScriptsEqual( const QString& theBaseName )
       !anActual.open  ( QFile::ReadOnly | QFile::Text ) )
     return false;
 
-  const int aLinesToOmit = 20;
-  for( int i=0; i<aLinesToOmit; i++ )
+  for( int i=0; i<theLinesToOmit; i++ )
     anExpected.readLine();
 
   bool isEqual = true;
   while( !anExpected.atEnd() && isEqual )
   {
-    QString anExpectedLine = QString::fromUtf8( anExpected.readLine() );
-    QString anActualLine = anActual.readLine();
+    QString anExpectedLine = GetLine( anExpected, isExpectedUtf8 );
+    QString anActualLine = GetLine( anActual, isActualUtf8 );
     isEqual = anExpectedLine == anActualLine;
   }