diff --git a/modules/mol/base/tests/test_chain.cc b/modules/mol/base/tests/test_chain.cc index ee4d933d0c095766079bb4278774d41d97a74ae3..39ffd35e205cd320cc926af7e4a440f838109b2c 100644 --- a/modules/mol/base/tests/test_chain.cc +++ b/modules/mol/base/tests/test_chain.cc @@ -87,16 +87,38 @@ BOOST_AUTO_TEST_CASE(test_comparison) BOOST_CHECK(cc==ch1); } - BOOST_AUTO_TEST_CASE(throw_invalid_chain_handle) { EntityHandle ent=CreateEntity(); - ChainHandle chain=ent.FindChain("A"); - BOOST_CHECK_THROW(CheckHandleValidity(chain), InvalidHandle); + ChainHandle ch=ent.FindChain("A"); + BOOST_CHECK_THROW(CheckHandleValidity(ch), InvalidHandle); XCSEditor edi=ent.EditXCS(); edi.InsertChain("A"); - chain=ent.FindChain("A"); - BOOST_CHECK_NO_THROW(CheckHandleValidity(chain)); + ch=ent.FindChain("A"); + BOOST_CHECK_NO_THROW(CheckHandleValidity(ch)); + + + EntityHandle eh1 = CreateEntity(); + XCSEditor e1=eh1.EditXCS(); + ChainHandle chain = e1.InsertChain("C"); + ResidueHandle res1 = e1.AppendResidue(chain, "FOO", ResNum(13)); + AtomHandle atom1 = e1.InsertAtom(res1, "X1",geom::Vec3()); + AtomHandle atom2 = e1.InsertAtom(res1, "X2",geom::Vec3()); + ResidueHandle res2 = e1.AppendResidue(chain, "FOO", ResNum(42)); + e1.InsertAtom(res2, "X1",geom::Vec3()); + e1.InsertAtom(res2, "X2",geom::Vec3()); + + EntityHandle eh2=CreateEntity(); + XCSEditor e2=eh2.EditXCS(); + ChainHandle inserted_chain1 = e2.InsertChain("Q",chain); + res1.SetIntProp("amazing",42); + ResidueHandle inserted_residue1 = e2.AppendResidue(inserted_chain1,res1); + BOOST_CHECK(inserted_residue1!=res1); + BOOST_CHECK(eh2.GetResidueCount()==1); + BOOST_CHECK(eh2.GetAtomCount()==0); + BOOST_CHECK(inserted_residue1.HasProp("amazing")); + ResidueHandle inserted_residue2 = e2.AppendResidue(inserted_chain1,res2,true); + BOOST_CHECK(eh2.GetAtomCount()==2); } BOOST_AUTO_TEST_CASE(throw_invalid_chain_view) diff --git a/modules/mol/base/tests/test_entity.cc b/modules/mol/base/tests/test_entity.cc index 47ffcbd73c2a32e749ae40b049a59a58178c6c0e..767b68bb3ba14f55eca9afde0a3158c5fcab06eb 100644 --- a/modules/mol/base/tests/test_entity.cc +++ b/modules/mol/base/tests/test_entity.cc @@ -136,8 +136,24 @@ BOOST_AUTO_TEST_CASE(entity_creator) BOOST_CHECK(eh.GetAtomCount()==2); BOOST_CHECK(eh.GetAtomCount()==chain.GetAtomCount()); - BOOST_CHECK(eh.GetResidueCount()==chain.GetResidueCount()); - + BOOST_CHECK(eh.GetResidueCount()==chain.GetResidueCount()); + + chain.SetIntProp("amazing",42); + EntityHandle eh2 = CreateEntity(); + XCSEditor e2 = eh2.EditXCS(); + ChainHandle inserted_chain=e2.InsertChain("Q",chain); + BOOST_CHECK(eh2.GetChainCount()==1); + BOOST_CHECK(eh2.GetResidueCount()==0); + BOOST_CHECK(eh2.GetAtomCount()==0); + BOOST_CHECK(inserted_chain.HasProp("amazing")); + BOOST_CHECK(eh2.FindChain("Q").IsValid()); + + EntityHandle eh3 = CreateEntity(); + XCSEditor e3 = eh3.EditXCS(); + e3.InsertChain("Q",chain,true); + BOOST_CHECK(eh3.GetResidueCount()==1); + BOOST_CHECK(eh3.GetAtomCount()==2); + EntityVisitor v; eh.Apply(v); }