1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
#include "obtest.h"
#include <openbabel/obconversion.h>
using namespace std;
using namespace OpenBabel;
typedef vector<vector3> vv3;
std::string GetFilename(const std::string &filename)
{
string path = TESTDATADIR + filename;
return path;
}
void testLossOfHydrogen(string filename)
{
string testfile = GetFilename(filename);
ifstream ifs(testfile.c_str());
OBConversion conv(&ifs);
OB_REQUIRE(conv.SetInFormat("sdf"));
OBMol mol;
OB_REQUIRE(conv.Read(&mol));
bool success = true;
int i = 0;
while (success) {
unsigned int Natoms = mol.NumAtoms();
mol.DeleteHydrogens();
mol.AddHydrogens();
unsigned int newNatoms = mol.NumAtoms();
cout << "Mol#" << i << ", Title " << mol.GetTitle() << ", Original atoms vs New atoms: ";
cout << Natoms << " vs " << newNatoms << "\n";
OB_ASSERT( Natoms == newNatoms);
cout << "\n";
success = conv.Read(&mol);
i += 1;
}
}
int main()
{
// Define location of file formats for testing
#ifdef FORMATDIR
char env[BUFF_SIZE];
snprintf(env, BUFF_SIZE, "BABEL_LIBDIR=%s", FORMATDIR);
putenv(env);
#endif
testLossOfHydrogen("implicitH.sdf");
return 0;
}
|