diff --git a/modules/io/tests/test_io_pdb.cc b/modules/io/tests/test_io_pdb.cc index 7aa38875cc8cd0ce013d1cd8977f2e0f9fa22114..8ae918f4f843ad3c1c3edf38b73b47f92311f687 100644 --- a/modules/io/tests/test_io_pdb.cc +++ b/modules/io/tests/test_io_pdb.cc @@ -28,7 +28,8 @@ using namespace ost::io; BOOST_AUTO_TEST_SUITE( io ) -BOOST_AUTO_TEST_CASE(test_io_pdb) + +BOOST_AUTO_TEST_CASE(test_pdb_import_handler) { String fname("testfiles/test_in.pdb"); @@ -46,6 +47,38 @@ BOOST_AUTO_TEST_CASE(test_io_pdb) pdbh.Import(eh,"testfiles/pdb/simple.pdb"); } +BOOST_AUTO_TEST_CASE(atom_record) +{ + String fname("testfiles/pdb/atom.pdb"); + PDBReader reader(fname); + mol::EntityHandle ent=mol::CreateEntity(); + reader.Import(ent); + BOOST_REQUIRE_EQUAL(ent.GetChainCount(), 2); + BOOST_REQUIRE_EQUAL(ent.GetResidueCount(), 2); + BOOST_REQUIRE_EQUAL(ent.GetAtomCount(), 2); + mol::AtomHandle a1=ent.FindChain("A").GetAtomList()[0]; + BOOST_CHECK_EQUAL(a1.GetName(), "N"); + BOOST_CHECK_EQUAL(a1.GetResidue().GetName(), "MET"); + BOOST_CHECK_EQUAL(a1.GetResidue().GetChain().GetName(), "A"); + + BOOST_CHECK_EQUAL(a1.GetPos(), geom::Vec3(16.0, 64.0, 8.0)); + BOOST_CHECK_EQUAL(a1.GetProp().b_factor, 1.0); + BOOST_CHECK_EQUAL(a1.GetProp().occupancy, 0.5); + BOOST_CHECK_EQUAL(a1.GetProp().element, "N"); + BOOST_CHECK_EQUAL(a1.GetProp().is_hetatm, false); + mol::AtomHandle a2=ent.FindChain(" ").GetAtomList()[0]; + BOOST_CHECK_EQUAL(a2.GetName(), "CA"); + BOOST_CHECK_EQUAL(a2.GetResidue().GetName(), "MET"); + BOOST_CHECK_EQUAL(a2.GetResidue().GetChain().GetName(), " "); + + BOOST_CHECK_EQUAL(a2.GetPos(), geom::Vec3(32.0, -128.0, -2.5)); + BOOST_CHECK_EQUAL(a2.GetProp().b_factor, 128.0); + BOOST_CHECK_EQUAL(a2.GetProp().occupancy, 1.0); + BOOST_CHECK_EQUAL(a2.GetProp().element, "C"); + BOOST_CHECK_EQUAL(a2.GetProp().is_hetatm, true); + +} + BOOST_AUTO_TEST_CASE(join_spread_records_on) { String fname("testfiles/pdb/join-spread-records.pdb"); diff --git a/modules/io/tests/testfiles/pdb/atom.pdb b/modules/io/tests/testfiles/pdb/atom.pdb new file mode 100644 index 0000000000000000000000000000000000000000..164bec413cb8055e44cd09615bdf5bf58979f7aa --- /dev/null +++ b/modules/io/tests/testfiles/pdb/atom.pdb @@ -0,0 +1,2 @@ +ATOM 1 N MET A 1 16.000 64.000 8.000 0.50 1.00 N +HETATM 2 CA MET 1 32.000-128.000 -2.500 1.00128.00 C \ No newline at end of file