mirror of
https://github.com/rdkit/rdkit.git
synced 2026-06-05 22:04:27 +08:00
add tests for the bitmap bitops
This commit is contained in:
@@ -1309,7 +1309,7 @@ void test13BitVectAllOnes() {
|
||||
}
|
||||
}
|
||||
|
||||
void test18BitVectConcatenation() {
|
||||
void test14BitVectConcatenation() {
|
||||
{
|
||||
ExplicitBitVect bv(32, false);
|
||||
ExplicitBitVect bv2(32, true);
|
||||
@@ -1320,6 +1320,51 @@ void test18BitVectConcatenation() {
|
||||
}
|
||||
}
|
||||
|
||||
void test15BitmapOps() {
|
||||
{
|
||||
const unsigned char bv1[5] = {0x1, 0x1, 0x1, 0x1, 0x1};
|
||||
TEST_ASSERT(CalcBitmapPopcount(bv1, 5) == 5);
|
||||
}
|
||||
{
|
||||
const unsigned char bv1[5] = {0x1, 0x1, 0x3, 0x1, 0x1};
|
||||
TEST_ASSERT(CalcBitmapPopcount(bv1, 5) == 6);
|
||||
}
|
||||
{
|
||||
const unsigned char bv1[5] = {0x0, 0x0, 0x0, 0x0, 0x0};
|
||||
TEST_ASSERT(CalcBitmapPopcount(bv1, 5) == 0);
|
||||
}
|
||||
{
|
||||
const unsigned char bv1[5] = {0x1, 0x1, 0x1, 0x1, 0x1};
|
||||
const unsigned char bv2[5] = {0x1, 0x1, 0x1, 0x1, 0x1};
|
||||
TEST_ASSERT(feq(CalcBitmapTanimoto(bv1, bv2, 5), 1.0));
|
||||
}
|
||||
{
|
||||
const unsigned char bv1[5] = {0x1, 0x1, 0x1, 0x1, 0x1};
|
||||
const unsigned char bv2[5] = {0x1, 0x1, 0x1, 0x0, 0x1};
|
||||
TEST_ASSERT(feq(CalcBitmapTanimoto(bv1, bv2, 5), 0.8));
|
||||
}
|
||||
{
|
||||
const unsigned char bv1[5] = {0x1, 0x1, 0x1, 0x1, 0x1};
|
||||
const unsigned char bv2[5] = {0x1, 0x1, 0x1, 0x1, 0x1};
|
||||
TEST_ASSERT(feq(CalcBitmapTversky(bv1, bv2, 5, 1., 1.), 1.0));
|
||||
}
|
||||
{
|
||||
const unsigned char bv1[5] = {0x1, 0x1, 0x1, 0x1, 0x1};
|
||||
const unsigned char bv2[5] = {0x1, 0x1, 0x1, 0x0, 0x1};
|
||||
TEST_ASSERT(feq(CalcBitmapTversky(bv1, bv2, 5, 1., 1.), 0.8));
|
||||
}
|
||||
{
|
||||
const unsigned char bv1[5] = {0x1, 0x1, 0x1, 0x1, 0x1};
|
||||
const unsigned char bv2[5] = {0x1, 0x1, 0x1, 0x1, 0x1};
|
||||
TEST_ASSERT(feq(CalcBitmapDice(bv1, bv2, 5), 1.0));
|
||||
}
|
||||
{
|
||||
const unsigned char bv1[5] = {0x1, 0x1, 0x1, 0x1, 0x1};
|
||||
const unsigned char bv2[5] = {0x1, 0x1, 0x1, 0x0, 0x1};
|
||||
TEST_ASSERT(feq(CalcBitmapDice(bv1, bv2, 5), 8. / 9));
|
||||
}
|
||||
}
|
||||
|
||||
int main() {
|
||||
RDLog::InitLogs();
|
||||
try {
|
||||
@@ -1410,7 +1455,11 @@ int main() {
|
||||
|
||||
BOOST_LOG(rdInfoLog) << " Test Explicit BitVects: Concatenation Operation "
|
||||
"-------------------------------" << std::endl;
|
||||
test18BitVectConcatenation();
|
||||
test14BitVectConcatenation();
|
||||
|
||||
BOOST_LOG(rdInfoLog) << " Test bitmap operations "
|
||||
"-------------------------------" << std::endl;
|
||||
test15BitmapOps();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user