diff --git a/modules/io/tests/test_io_pdb.cc b/modules/io/tests/test_io_pdb.cc index 248c810a32c7980e530ea685ec144bbfa58b5357..982bd2f463e82633b5b1e411b168503f5e481eb6 100644 --- a/modules/io/tests/test_io_pdb.cc +++ b/modules/io/tests/test_io_pdb.cc @@ -565,4 +565,44 @@ BOOST_AUTO_TEST_CASE(anisou_BZDNG_274) BOOST_CHECK_NO_THROW(reader.Import(ent)); } +BOOST_AUTO_TEST_CASE(charmm_rname) +{ + { + PDBWriter writer(String("testfiles/pdb/charmm_rname-out.pdb"), + IOProfile("CHARMM", true, false, false, + false, false, false)); + + mol::EntityHandle ent=mol::CreateEntity(); + mol::XCSEditor edi=ent.EditXCS(); + mol::ChainHandle ch=edi.InsertChain("A"); + mol::ResidueHandle r=edi.AppendResidue(ch, "ALA"); + mol::AtomHandle a=edi.InsertAtom(r, "N", geom::Vec3(32.0, -128.0, -2.5)); + mol::ResidueHandle r2=edi.AppendResidue(ch, "G3AG"); + mol::AtomHandle a2=edi.InsertAtom(r2, "N", geom::Vec3(32.0, -128.0, -2.5)); + writer.Write(ent); + } + BOOST_CHECK(compare_files("testfiles/pdb/charmm_rname.pdb", + "testfiles/pdb/charmm_rname-out.pdb")); +} + +BOOST_AUTO_TEST_CASE(charmm_longcname) +{ + { + PDBWriter writer(String("testfiles/pdb/charmm_longcname-out.pdb"), + IOProfile("CHARMM", true, false, false, + false, false, false)); + + mol::EntityHandle ent=mol::CreateEntity(); + mol::XCSEditor edi=ent.EditXCS(); + mol::ChainHandle ch=edi.InsertChain("PROT"); + mol::ResidueHandle r=edi.AppendResidue(ch, "ALA"); + mol::AtomHandle a=edi.InsertAtom(r, "N", geom::Vec3(32.0, -128.0, -2.5)); + mol::ResidueHandle r2=edi.AppendResidue(ch, "GLY"); + mol::AtomHandle a2=edi.InsertAtom(r2, "N", geom::Vec3(35.0, -99.0, -10.5)); + writer.Write(ent); + } + BOOST_CHECK(compare_files("testfiles/pdb/charmm_longcname.pdb", + "testfiles/pdb/charmm_longcname-out.pdb")); +} + BOOST_AUTO_TEST_SUITE_END()