コード例 #1
0
ファイル: unit.cpp プロジェクト: mindis/EWAHBoolArray
bool testCardinalityEWAHBoolArray() {
    cout << "[testing CardinalityEWAHBoolArray] sizeof(uword)=" << sizeof(uword) << endl;
    EWAHBoolArray<uword> b1 = EWAHBoolArray<uword>::bitmapOf(1,1);
    if (b1.numberOfOnes() != 1) {
        return false;
    }
    b1.inplace_logicalnot();
    if (b1.numberOfOnes() != 1) {
        cout<<"b1 "<<b1<<endl;
        return false;
    }

    EWAHBoolArray<uword> b = EWAHBoolArray<uword>::bitmapOf(2,1,100);
    if(b.numberOfOnes() != 2) {
        cout<<"b "<<b<<endl;
        return false;
    }
    EWAHBoolArray<uword> bout;
    b.logicalnot(bout);
    if(bout.numberOfOnes() != 99) {
        cout<<"bout "<<bout<<endl;
        return false;
    }
    b.inplace_logicalnot();
    if(b.numberOfOnes() != 99) {
        cout<<"b neg "<<b<<endl;
        return false;
    }
    return true;
}
コード例 #2
0
ファイル: unit.cpp プロジェクト: mindis/EWAHBoolArray
bool testNot() {
    cout << "[testing Not]" << endl;
    bool isOk = true;
    EWAHBoolArray<uword> bitset;
    for (int i = 0; i <= 184; i++) {
        bitset.set(i);
    }
    if (bitset.numberOfOnes() != 185) {
        isOk = false;
    }

    bitset.inplace_logicalnot();
    if (bitset.numberOfOnes() != 0) {
        isOk = false;
    }
    return isOk;
}
コード例 #3
0
ファイル: unit.cpp プロジェクト: mindis/EWAHBoolArray
bool testNanJiang() {
    cout << "[testing NanJiang] sizeof(uword)=" << sizeof(uword) << endl;
    EWAHBoolArray<uword> b;
    b.set(5);
    if (b.numberOfOnes() != 1)
        return false;
    b.inplace_logicalnot();
    if (b.numberOfOnes() != 5)
        return false;
    BoolArray<uword> b2;
    b2.set(5);
    if (b2.numberOfOnes() != 1)
        return false;
    b2.inplace_logicalnot();
    if (b2.numberOfOnes() != 5)
        return false;
    return true;
}