public void TryToAttachDefinitelyTest() { Molecule mTo, mAttach; mTo = mZero; mAttach = new Molecule(habitat); mAttach.Position = mTo.Position.PointOfAngle(Molecule.TETRAHEDRON_SITE, Math.PI * 5 / 6); TryToAttachDefinitelyTest(mTo, mAttach, 1, BoundType.II); //------ mTo = mAttach; mAttach = new Molecule(habitat); mAttach.Position = mTo.Position.PointOfAngle(Molecule.TETRAHEDRON_SITE, Math.PI); TryToAttachDefinitelyTest(mTo, mAttach, 0, BoundType.I); //------ mTo = mAttach; mAttach = new Molecule(habitat); mAttach.Position = mTo.Position.PointOfAngle(Molecule.TETRAHEDRON_SITE, 3 * Math.PI / 2); TryToAttachDefinitelyTest(mTo, mAttach, 2, BoundType.II); //------ mTo = mAttach; mAttach = new Molecule(habitat); mAttach.Position = mTo.Position.PointOfAngle(Molecule.TETRAHEDRON_SITE, 3 * Math.PI / 2); TryToAttachDefinitelyTest(mTo, mAttach, 1, BoundType.I); //------ mTo = mAttach; mAttach = new Molecule(habitat); mAttach.Position = mTo.Position.PointOfAngle(Molecule.TETRAHEDRON_SITE, 11 * Math.PI / 6); Assert.AreEqual(5, mAttach.Position.TetrahedronPart(mTo.Position)); Assert.AreEqual(0, mTo.FreeBound(mAttach)); TryToAttachDefinitelyTest(mTo, mAttach, 0, BoundType.II); Assert.AreEqual(2, mZero.GetBoundNr(mAttach)); Assert.AreEqual(2, mAttach.GetBoundNr(mZero)); }
public void TryToAttachDefinitelyTest(Molecule mTo, Molecule mAttach, int boundNr_expected, BoundType boudType_expected) { mAttach.TryToAttachDefinitely(mTo); Assert.AreEqual(boundNr_expected, mTo.GetBoundNr(mAttach)); Assert.AreEqual(boundNr_expected, mAttach.GetBoundNr(mTo)); Assert.AreEqual(boudType_expected, mAttach.BoundType); var poz_expected = mTo.BoundPosition(boundNr_expected); AssertExtensions.AreAlmostEqual(poz_expected, mAttach.Position); // Assert.AreEqual(tetraNr_expected, mAttach.Position.TetrahedronPart(mTo.Position)); }