Exemplo n.º 1
0
// Compare images:
bool KOFilter::imageCompare(const QString &dir1File, const QString &dir2File)
{
    // Check src file:
    QFileInfo fi1(dir1File);

    // Check dst file:
    QFileInfo fi2(dir2File);

    // Check files:
    if (!fi1.exists() || !fi2.exists())
        return false;

    QImage img1(dir1File);
    QImage img2(dir2File);
    if (img1.size() != img2.size())
        return false;

    for (int j=0; j<img1.height(); j++)
        for (int i=0; i<img1.width(); i++)
        {
            QRgb color1 = img1.pixel(i, j);
            QRgb color2 = img2.pixel(i, j);
            if (color1 != color2)
                return false;
        }

    return true;
}
Exemplo n.º 2
0
int main( void )
{

  // Create objects and give value to their propertiess
  TestObject obj1, obj2, obj3, obj4;

  obj1.attr1 = 3.4f;
  obj1.attr2 = 4;
  obj1.getProperty( "property3" ).set( 2.3f );
  obj1.getProperty( "property4" ).set( 4 );

  obj2.attr1 = 3.2f;
  obj2.attr2 = 10;
  obj2["property3"].set( 3.4f );
  obj2.getProperty( "property4" ).set( 10 );

  obj3.attr1 = 1.4f;
  obj3.attr2 = 3;
  obj3.getProperty( "property3" ).set( 4.5f );
  obj3.getProperty( "property4" ).set( 3 );

  obj4.attr1 = 4.1f;
  obj4.attr2 = 5;
  obj4.getProperty( "property3" ).set( 5.6f );
  obj4.getProperty( "property4" ).set( 5 );

  // Label objects
  obj1.label( ) = "Object 1";
  obj2.label( ) = "Object 2";
  obj3.label( ) = "Object 3";
  obj4.label( ) = "Object 4";

  fires::Objects objects;

  {
    objects.addList( { &obj1, &obj2, &obj3, &obj4 } );
    fires::FilterSet fs0;
    fires::FilterSetConfig fsc0;
    fires::FilterMinValue< float > ff10( 5.0f );

    fsc0.filters( ).push_back( std::make_pair( "property3", &ff10 ));
    fs0.eval( objects, fsc0 );
    printObjects( objects );
  }
  {
    objects.addList( { &obj1, &obj2, &obj3, &obj4 } );
    fires::FilterSet fs0;
    fires::FilterSetConfig fsc0;
    fires::FilterMaxValue< float > ff10( 5.0f );

    fsc0.filters( ).push_back( std::make_pair( "property3", &ff10 ));
    fs0.eval( objects, fsc0 );
    printObjects( objects );
  }

  objects.clearAdds( { &obj1, &obj2, &obj3, &obj4 } );

  fires::FilterSet fs;
  fires::FilterSetConfig fsc;
  fires::FilterScalarRange< float > ff1( 3.0f, 5.0f );
  fires::FilterScalarRange< int > fi1( 0, 9 );

  printObjects( objects );

  fsc.filters( ).push_back( std::make_pair( "property3", &ff1 ));
  fs.eval( objects, fsc );
  printObjects( objects );

  ff1.rangeInclusion( ) = fires::FilterRange::OUTSIDE_RANGE;
  fs.eval( objects, fsc );
  printObjects( objects );

  objects.clearAdds( { &obj1, &obj2, &obj3, &obj4 } );

  fsc.filters( ).push_back( std::make_pair( "property4", &fi1 ));
  fs.eval( objects, fsc );
  printObjects( objects );

  objects.clear( );
  objects.add( &obj1 );
  objects.add( &obj2 );
  objects.add( &obj3 );
  objects.add( &obj4 );

  ff1.rangeInclusion( ) = fires::FilterRange::INSIDE_RANGE;
  fsc.filterPropertyLabel( ) = std::string( "fires::filter" );
  fs.eval( objects, fsc );
  printObjects( objects, "fires::filter" );

  ff1.rangeInclusion( ) = fires::FilterRange::OUTSIDE_RANGE;
  fs.eval( objects, fsc );
  printObjects( objects, "fires::filter" );

}
Exemplo n.º 3
0
int main() {
  X<A1> xa;
  fi1();
}
Exemplo n.º 4
0
Task::ReportResult GTest_hmmCompare::report() {

    QFileInfo fi1(env->getVar("COMMON_DATA_DIR")+"/"+file1Name);
    QString url1 = fi1.absoluteFilePath();
    IOAdapterFactory* iof1 = AppContext::getIOAdapterRegistry()->getIOAdapterFactoryById(IOAdapterUtils::url2io(url1));
    QScopedPointer<IOAdapter> io1(iof1->createIOAdapter());
    //QFile file1(fi1.absoluteFilePath());
    QFileInfo fi2(env->getVar("TEMP_DATA_DIR")+"/"+file2Name);
    QString url2 = fi2.absoluteFilePath();
    IOAdapterFactory* iof2 = AppContext::getIOAdapterRegistry()->getIOAdapterFactoryById(IOAdapterUtils::url2io(url2));
    QScopedPointer<IOAdapter> io2(iof2->createIOAdapter());
    fi2.absoluteDir().mkdir(fi2.absoluteDir().absolutePath()); // ???
    //QFile file2(fi2.absoluteFilePath());

    if(!io1->open(url1, IOAdapterMode_Read)){
        stateInfo.setError(  QString("File opening error \"%1\", description: ").arg(url1) );//+file1.errorString() );
        return ReportResult_Finished;
    }
    //file2.open(QIODevice::ReadOnly|QIODevice::Text);
    if(!io2->open(url2, IOAdapterMode_Read)){
        stateInfo.setError(  QString("File opening error \"%1\", description: ").arg(url2) );//+file2.errorString() );
        return ReportResult_Finished;
    }

    static int READ_BUFF_SIZE = 4096;

    qint64 len1, len2, line1 = 0, line2 = 0;
    QByteArray readBuffer1(READ_BUFF_SIZE, '\0'), readBuffer2(READ_BUFF_SIZE, '\0');
    char* cbuff1 = readBuffer1.data();
    char* cbuff2 = readBuffer2.data();
    QRegExp rx("CKSUM ");

    bool ok = false;
    while ( (len1 = io1->readUntil(cbuff1, READ_BUFF_SIZE, TextUtils::LINE_BREAKS, IOAdapter::Term_Include)) > 0 ) {
        line1++;
        if ((ok = rx.indexIn(QString(QByteArray(cbuff1, len1))) !=-1)) {
            break;
        }
    }
    if(!ok){
        stateInfo.setError(  QString("can't find CKSUM in file \"%1\"").arg(url1) );
        return ReportResult_Finished;
    }

    ok = false;
    while ( (len2 = io2->readUntil(cbuff2, READ_BUFF_SIZE, TextUtils::LINE_BREAKS, IOAdapter::Term_Include)) > 0 ) {
        line2++;
        if ((ok = rx.indexIn(QString(QByteArray(cbuff2, len2))) !=-1)) {
            break;
        }
    }
    if(!ok){
        stateInfo.setError(  QString("can't find CKSUM in file \"%1\"").arg(url2) );
        return ReportResult_Finished;
    }

    do{
        len1 = io1->readUntil(cbuff1, READ_BUFF_SIZE, TextUtils::LINE_BREAKS, IOAdapter::Term_Include);
        len2 = io2->readUntil(cbuff2, READ_BUFF_SIZE, TextUtils::LINE_BREAKS, IOAdapter::Term_Include);
        if(len1 == 0 && 0 != len2){
            stateInfo.setError(  QString("hmm-compare: files not equal, desc: files length mismatch") );
            return ReportResult_Finished;
        }
        line1++;line2++;
        QString s1 = QString::fromLatin1(cbuff1, len1).trimmed();
        QString s2 = QString::fromLatin1(cbuff2, len2).trimmed();

        if(s1 != s2)
        {
            stateInfo.setError( QString("hmm-compare: files not equal, desc: file1, line %1 \"%2\", expected file2, line %3 \"%4\"")
                .arg(line1).arg(s1).arg(line2).arg(s2) );
            return ReportResult_Finished;
        }

    } while(len1 > 0);

    return ReportResult_Finished;
}