Пример #1
0
        public void TestGetAllAtomContainers_IRingSet()
        {
            IRingSet rs = builder.NewRingSet();

            rs.Add(builder.NewRing());
            rs.Add(builder.NewRing());
            var list = RingSetManipulator.GetAllAtomContainers(rs);

            Assert.AreEqual(2, list.Count());
        }
Пример #2
0
        /// <summary>
        /// Puts all rings of a ringSet in a single atomContainer
        /// </summary>
        /// <param name="ringSet">The ringSet to use</param>
        /// <returns>The produced atomContainer</returns>
        public static IAtomContainer GetAllInOneContainer(IRingSet ringSet)
        {
            IAtomContainer resultContainer          = ringSet.Builder.NewAtomContainer();
            IEnumerator <IAtomContainer> containers = RingSetManipulator.GetAllAtomContainers(ringSet).GetEnumerator();

            while (containers.MoveNext())
            {
                resultContainer.Add(containers.Current);
            }
            return(resultContainer);
        }
Пример #3
0
        public void TestSort_IRingSet()
        {
            RingSetManipulator.Sort(ringset);
            Assert.AreEqual(4, ringset.Count);
            int currentSize = ringset[0].Atoms.Count;

            for (int i = 1; i < ringset.Count; ++i)
            {
                Assert.IsTrue(ringset[i].Atoms.Count >= currentSize);
                currentSize = ringset[i].Atoms.Count;
            }
        }
Пример #4
0
        public void TestGetLargestRingSetListIRingSet()
        {
            var list = new List <IRingSet> {
                ringset
            };
            var mol = TestMoleculeFactory.MakeBiphenyl();

            var arf     = new AllRingsFinder();
            var ringSet = arf.FindAllRings(mol);

            list.Add(ringSet);
            Assert.AreEqual(2, RingSetManipulator.GetLargestRingSet(list).Count);
        }
Пример #5
0
        public void TestGetBondCount()
        {
            IAtomContainer mol     = TestMoleculeFactory.MakeAdenine();
            AllRingsFinder arf     = new AllRingsFinder();
            IRingSet       ringSet = arf.FindAllRings(mol);

            Assert.AreEqual(3, ringSet.Count);
            Assert.AreEqual(20, RingSetManipulator.GetBondCount(ringSet));

            mol     = TestMoleculeFactory.MakeBiphenyl();
            ringSet = arf.FindAllRings(mol);
            Assert.AreEqual(2, ringSet.Count);
            Assert.AreEqual(12, RingSetManipulator.GetBondCount(ringSet));
        }
Пример #6
0
        public void TestGetAtomCount_IRingSet()
        {
            IRingSet rs  = builder.NewRingSet();
            IRing    ac1 = builder.NewRing();

            ac1.Atoms.Add(builder.NewAtom("O"));
            rs.Add(ac1);
            IRing ac2 = builder.NewRing();

            ac2.Atoms.Add(builder.NewAtom("C"));
            ac2.Atoms.Add(builder.NewAtom("C"));
            ac2.AddBond(ac2.Atoms[0], ac2.Atoms[1], BondOrder.Double);
            rs.Add(ac2);
            Assert.AreEqual(3, RingSetManipulator.GetAtomCount(rs));
            Assert.AreEqual(1, RingSetManipulator.GetBondCount(rs));
        }
Пример #7
0
        /// <summary>
        /// Returns the largest (number of atoms) ring set in a molecule
        /// </summary>
        /// <param name="ringSystems">RingSystems of a molecule</param>
        /// <returns>The largestRingSet</returns>
        public static IRingSet GetLargestRingSet(IEnumerable <IRingSet> ringSystems)
        {
            IRingSet       largestRingSet = null;
            int            atomNumber     = 0;
            IAtomContainer container      = null;

            foreach (var ringSystem in ringSystems)
            {
                container = RingSetManipulator.GetAllInOneContainer(ringSystem);
                if (atomNumber < container.Atoms.Count)
                {
                    atomNumber     = container.Atoms.Count;
                    largestRingSet = ringSystem;
                }
            }
            return(largestRingSet);
        }
Пример #8
0
        public void TestRingAlreadyInSet_IRing_IRingSet()
        {
            IRing r1 = builder.NewRing(5, "C");
            IRing r2 = builder.NewRing(3, "C");

            IRingSet rs = builder.NewRingSet();

            Assert.IsFalse(RingSetManipulator.RingAlreadyInSet(r1, rs));
            Assert.IsFalse(RingSetManipulator.RingAlreadyInSet(r2, rs));

            rs.Add(r1);
            Assert.IsTrue(RingSetManipulator.RingAlreadyInSet(r1, rs));
            Assert.IsFalse(RingSetManipulator.RingAlreadyInSet(r2, rs));

            rs.Add(r2);
            Assert.IsTrue(RingSetManipulator.RingAlreadyInSet(r1, rs));
            Assert.IsTrue(RingSetManipulator.RingAlreadyInSet(r2, rs));
        }
Пример #9
0
        public void MarkAromatic()
        {
            IAtomContainer mol = TestMoleculeFactory.MakeBiphenyl();

            AtomContainerManipulator.PercieveAtomTypesAndConfigureAtoms(mol);
            Aromaticity.CDKLegacy.Apply(mol);

            AllRingsFinder arf     = new AllRingsFinder();
            IRingSet       ringSet = arf.FindAllRings(mol);

            Assert.AreEqual(2, ringSet.Count);

            RingSetManipulator.MarkAromaticRings(ringSet);
            for (int i = 0; i < ringSet.Count; i++)
            {
                IRing ring = (IRing)ringSet[i];
                Assert.IsTrue(ring.IsAromatic);
            }
        }
Пример #10
0
        public void TestGetAllInOneContainer_IRingSet()
        {
            IAtomContainer ac = RingSetManipulator.GetAllInOneContainer(ringset);

            Assert.AreEqual(10, ac.Atoms.Count);
        }
Пример #11
0
        public void TestGetMostComplexRing_IRingSet()
        {
            IRing ring = RingSetManipulator.GetMostComplexRing(ringset);

            Assert.AreEqual(ring3, ring);
        }
Пример #12
0
        public void TestGetHeaviestRing_IRingSet_IBond()
        {
            IRing ring = RingSetManipulator.GetHeaviestRing(ringset, bondRing2Ring3);

            Assert.AreEqual(ring2, ring);
        }
Пример #13
0
 public void TestIsSameRing_IRingSet_IAtom_IAtom()
 {
     Assert.IsTrue(RingSetManipulator.IsSameRing(ringset, ring1Atom1, ring1Atom3));
     Assert.IsFalse(RingSetManipulator.IsSameRing(ringset, ring1Atom1, ring2Atom3));
 }