Files
rdkit/Code/GraphMol/MolProcessing/processing_tests.cpp
Greg Landrum bb066c43f4 add mol processing API (#7773)
* fix aliasing bug in MultithreadedSDMolSupplier

* update GeneralFileReader to v2 API

* add backwards incompatibility note

* v1 of this

* The helper function needs to be inline

* forgot the tests

* allow non-threadsafe builds

* MultithreadedMolSuppliers can now be destroyed without being used.

This was previously not possible

* add callbacks to the multithreaded readers

* document the new functions

* switch to storing the queues in unique_ptrs

* does not work

* only do those tests when in MT mode

* more generalfilereader cleanup

* tests pass

* passes tests

* extremely basic python wrapper

* better wrapper

* does not work

* tests pass

* test data

* fix failing test on ARM macs

we need to followup on why the wedging is different here

* move some stuff to the cpp file

the idea is to have the windows DLL builds not break

* fix(?) win64 linkage problems

* remove a warning in non-multi-threaded builds

* fix non-multi-threaded work

* well, at least local windows builds work

* remove duplicated code

* refactoring
simplification?

* simplify mutext handling

* review suggestions
2024-09-19 18:42:25 +02:00

52 lines
1.5 KiB
C++

//
// Copyright (C) 2024 Greg Landrum and other RDKit contributors
//
// @@ All Rights Reserved @@
// This file is part of the RDKit.
// The contents are covered by the terms of the BSD license
// which is included in the file license.txt, found at the root
// of the RDKit source tree.
//
#include <catch2/catch_all.hpp>
#include "RDGeneral/test.h"
#include <GraphMol/RDKitBase.h>
#include <GraphMol/MolProcessing/Processing.h>
#include <RDGeneral/RDLog.h>
using namespace RDKit;
TEST_CASE("getFingerprintsForMolsInFile") {
std::string dirName = getenv("RDBASE");
dirName += "/Data/NCI/";
SECTION("SDF") {
std::string fileName = dirName + "first_200.props.sdf";
auto res = MolProcessing::getFingerprintsForMolsInFile<>(fileName);
CHECK(res.size() == 200);
for (auto i = 0u; i < res.size(); ++i) {
INFO(i);
CHECK(res[i]);
}
}
SECTION("SMILES") {
std::string fileName = dirName + "first_5K.smi";
GeneralMolSupplier::SupplierOptions options;
options.titleLine = false;
boost::logging::disable_logs("rdApp.*");
{
auto res =
MolProcessing::getFingerprintsForMolsInFile<>(fileName, options);
CHECK(res.size() == 4999);
}
{
RDKit::GeneralMolSupplier::SupplierOptions options;
options.numWriterThreads = 1;
options.titleLine = false;
auto res = RDKit::MolProcessing::getFingerprintsForMolsInFile<>(fileName,
options);
CHECK(res.size() == 4999);
}
}
}