Ejemplo n.º 1
0
        public void TestPropellane()
        {
            IAtomContainer         propellane = AbstractSignatureTest.MakePropellane();
            SignatureQuotientGraph qGraph     = new SignatureQuotientGraph(propellane);

            CheckParameters(qGraph, 2, 2, 1);
        }
Ejemplo n.º 2
0
        public void TestTwistane()
        {
            IAtomContainer         twistane = AbstractSignatureTest.MakeTwistane();
            SignatureQuotientGraph qGraph   = new SignatureQuotientGraph(twistane);

            CheckParameters(qGraph, 3, 4, 2);
        }
Ejemplo n.º 3
0
        public void TestCuneaneAtHeight2()
        {
            IAtomContainer         cuneane = AbstractSignatureTest.MakeCuneane();
            SignatureQuotientGraph qGraph  = new SignatureQuotientGraph(cuneane, 2);

            CheckParameters(qGraph, 3, 5, 3);
        }
Ejemplo n.º 4
0
        public void TestCubane()
        {
            string         expected = "[C]([C]([C,3]([C,2])[C,1]([C,2]))[C]([C,3][C,0]" + "([C,2]))[C]([C,0][C,1]))";
            IAtomContainer mol      = AbstractSignatureTest.MakeCubane();

            Assert.AreEqual(expected, this.CanonicalStringFromMolecule(mol));
        }
Ejemplo n.º 5
0
        public void TestAromatic()
        {
            IAtomContainer         benzene = AbstractSignatureTest.MakeBenzene();
            SignatureQuotientGraph qGraph  = new SignatureQuotientGraph(benzene);

            CheckParameters(qGraph, 1, 1, 1);
        }
Ejemplo n.º 6
0
        public void TestCubane()
        {
            IAtomContainer         cubane = AbstractSignatureTest.MakeCubane();
            SignatureQuotientGraph qGraph = new SignatureQuotientGraph(cubane);

            CheckParameters(qGraph, 1, 1, 1);
        }
Ejemplo n.º 7
0
        public void MethyleneCyclopropeneTest()
        {
            IAtomContainer mol = builder.NewAtomContainer();

            AbstractSignatureTest.AddCarbons(mol, 4);
            AbstractSignatureTest.AddHydrogens(mol, 1, 2);
            AbstractSignatureTest.AddHydrogens(mol, 2, 1);
            AbstractSignatureTest.AddHydrogens(mol, 3, 1);
            mol.AddBond(mol.Atoms[0], mol.Atoms[1], BondOrder.Double);
            mol.AddBond(mol.Atoms[0], mol.Atoms[2], BondOrder.Single);
            mol.AddBond(mol.Atoms[0], mol.Atoms[3], BondOrder.Single);
            mol.AddBond(mol.Atoms[2], mol.Atoms[3], BondOrder.Double);
            MoleculeSignature molSig = new MoleculeSignature(mol);

            string sigFor2Height1 = molSig.SignatureStringForVertex(2, 1);
            string sigFor3Height1 = molSig.SignatureStringForVertex(3, 1);

            Assert.IsTrue(
                sigFor2Height1.Equals(sigFor3Height1),
                "Height 1 signatures for atoms 2 and 3" + " should be the same");

            string sigFor2Height2 = molSig.SignatureStringForVertex(2, 1);
            string sigFor3Height2 = molSig.SignatureStringForVertex(3, 1);

            Assert.IsTrue(
                sigFor2Height2.Equals(sigFor3Height2),
                "Height 2 signatures for atoms 2 and 3" + " should be the same");
        }
Ejemplo n.º 8
0
        public static IAtomContainer MakePropellane()
        {
            IAtomContainer mol = AbstractSignatureTest.MakePseudoPropellane();

            mol.AddBond(mol.Atoms[0], mol.Atoms[4], BondOrder.Single);
            return(mol);
        }
Ejemplo n.º 9
0
        public static IAtomContainer MakeBridgedCyclobutane()
        {
            IAtomContainer mol = AbstractSignatureTest.MakeCyclobutane();

            mol.AddBond(mol.Atoms[0], mol.Atoms[2], BondOrder.Single);
            return(mol);
        }
Ejemplo n.º 10
0
        public static IAtomContainer MakeSandwich(int ringSize, bool hasMethyl)
        {
            IAtomContainer mol = builder.NewAtomContainer();

            AbstractSignatureTest.AddCarbons(mol, (ringSize * 2));
            mol.Atoms.Add(builder.NewAtom("Fe"));
            int center = ringSize * 2;

            // face A
            for (int i = 0; i < ringSize - 1; i++)
            {
                mol.AddBond(mol.Atoms[i], mol.Atoms[i + 1], BondOrder.Single);
                mol.AddBond(mol.Atoms[i], mol.Atoms[center], BondOrder.Single);
            }
            mol.AddBond(mol.Atoms[ringSize - 1], mol.Atoms[0], BondOrder.Single);
            mol.AddBond(mol.Atoms[ringSize - 1], mol.Atoms[center], BondOrder.Single);

            //        // face B
            for (int i = 0; i < ringSize - 1; i++)
            {
                mol.AddBond(mol.Atoms[ringSize + 1], mol.Atoms[i + ringSize + 1], BondOrder.Single);
                mol.AddBond(mol.Atoms[ringSize + 1], mol.Atoms[center], BondOrder.Single);
            }
            mol.AddBond(mol.Atoms[(2 * ringSize) - 1], mol.Atoms[ringSize], BondOrder.Single);
            mol.AddBond(mol.Atoms[(2 * ringSize) - 1], mol.Atoms[center], BondOrder.Single);

            if (hasMethyl)
            {
                mol.Atoms.Add(builder.NewAtom("C"));
                mol.AddBond(mol.Atoms[0], mol.Atoms.Last(), BondOrder.Single);
            }

            return(mol);
        }
Ejemplo n.º 11
0
        public void TestBenzeneWithDoubleBonds()
        {
            IAtomContainer benzene = builder.NewAtomContainer();

            AbstractSignatureTest.AddCarbons(benzene, 6);
            for (int i = 0; i < 6; i++)
            {
                AbstractSignatureTest.AddHydrogens(benzene, i, 1);
            }
            benzene.AddBond(benzene.Atoms[0], benzene.Atoms[1], BondOrder.Single);
            benzene.AddBond(benzene.Atoms[1], benzene.Atoms[2], BondOrder.Double);
            benzene.AddBond(benzene.Atoms[2], benzene.Atoms[3], BondOrder.Single);
            benzene.AddBond(benzene.Atoms[3], benzene.Atoms[4], BondOrder.Double);
            benzene.AddBond(benzene.Atoms[4], benzene.Atoms[5], BondOrder.Single);
            benzene.AddBond(benzene.Atoms[5], benzene.Atoms[0], BondOrder.Double);

            MoleculeSignature signature       = new MoleculeSignature(benzene);
            string            carbonSignature = signature.SignatureStringForVertex(0);

            for (int i = 1; i < 6; i++)
            {
                string carbonSignatureI = signature.SignatureStringForVertex(i);
                Assert.AreEqual(carbonSignature, carbonSignatureI);
            }
        }
Ejemplo n.º 12
0
        public void TestBridgedCycloButane()
        {
            string         expected  = "[C]([C]([C,0])[C]([C,0])[C,0])";
            IAtomContainer mol       = AbstractSignatureTest.MakeBridgedCyclobutane();
            string         signature = this.CanonicalStringFromMolecule(mol);

            Assert.AreEqual(expected, signature);
        }
Ejemplo n.º 13
0
        public void CycleWheelTest()
        {
            IAtomContainer    mol              = AbstractSignatureTest.MakeCycleWheel(3, 3);
            string            expected         = "[C]([C]([C]([C,2])[C,2])" + "[C]([C]([C,1])[C,1])" + "[C]([C]([C,0])[C,0]))";
            MoleculeSignature molSig           = new MoleculeSignature(mol);
            string            centralSignature = molSig.SignatureStringForVertex(0);

            Assert.AreEqual(expected, centralSignature);
        }
Ejemplo n.º 14
0
        public static IAtomContainer MakeCycleWheel(int ringSize, int ringCount)
        {
            IAtomContainer mol = builder.NewAtomContainer();

            mol.Atoms.Add(builder.NewAtom("C"));
            for (int r = 0; r < ringCount; r++)
            {
                AbstractSignatureTest.AddRing(0, ringSize, mol);
            }
            return(mol);
        }
Ejemplo n.º 15
0
        public void CuneaneCubaneHeightTest()
        {
            IAtomContainer cuneane          = AbstractSignatureTest.MakeCuneane();
            IAtomContainer cubane           = AbstractSignatureTest.MakeCubane();
            int            height           = 1;
            AtomSignature  cuneaneSignature = new AtomSignature(0, height, cuneane);
            AtomSignature  cubaneSignature  = new AtomSignature(0, height, cubane);
            string         cuneaneSigString = cuneaneSignature.ToCanonicalString();
            string         cubaneSigString  = cubaneSignature.ToCanonicalString();

            Assert.AreEqual(cuneaneSigString, cubaneSigString);
        }
Ejemplo n.º 16
0
        public void DodecahedraneHeightTest()
        {
            IAtomContainer dodecahedrane = AbstractSignatureTest.MakeDodecahedrane();

            MoleculeIsCarbon3Regular(dodecahedrane);
            int diameter = 5;

            for (int height = 0; height <= diameter; height++)
            {
                AllEqualAtHeightTest(dodecahedrane, height);
            }
        }
Ejemplo n.º 17
0
        public void TestPropellane()
        {
            string         expectedA = "[C]([C]([C,0])[C]([C,0])[C]([C,0])[C,0])";
            string         expectedB = "[C]([C]([C,2][C,1][C,0])[C,2]([C,1][C,0]))";
            IAtomContainer mol       = AbstractSignatureTest.MakePropellane();
            string         signature = this.CanonicalStringFromMolecule(mol);

            Assert.AreEqual(expectedA, signature);
            string fullExpected  = "2" + expectedA + " + 3" + expectedB;
            string fullSignature = FullStringFromMolecule(mol);

            Assert.AreEqual(fullExpected, fullSignature);
        }
Ejemplo n.º 18
0
        public void TestC7H16Isomers()
        {
            IAtomContainer         c7H16A  = AbstractSignatureTest.MakeC7H16A();
            IAtomContainer         c7H16B  = AbstractSignatureTest.MakeC7H16B();
            IAtomContainer         c7H16C  = AbstractSignatureTest.MakeC7H16C();
            SignatureQuotientGraph qGraphA = new SignatureQuotientGraph(c7H16A, 1);
            SignatureQuotientGraph qGraphB = new SignatureQuotientGraph(c7H16B, 1);
            SignatureQuotientGraph qGraphC = new SignatureQuotientGraph(c7H16C, 1);

            CheckParameters(qGraphA, 4, 7, 1);
            CheckParameters(qGraphB, 4, 5, 0);
            CheckParameters(qGraphC, 4, 7, 1);
        }
Ejemplo n.º 19
0
        public void TtprTest()
        {
            string expected = "[Rh]([P]([C]([C]([C]([C,6]))" + "[C]([C]([C,6])))[C]([C]([C]([C,3]))"
                              + "[C]([C]([C,3])))[C]([C]([C]([C,2]))" + "[C]([C]([C,2]))))[P]([C]([C]([C]([C,7]))"
                              + "[C]([C]([C,7])))[C]([C]([C]([C,4]))" + "[C]([C]([C,4])))[C]([C]([C]([C,1]))"
                              + "[C]([C]([C,1]))))[P]([C]([C]([C]([C,8]))" + "[C]([C]([C,8])))[C]([C]([C]([C,5]))"
                              + "[C]([C]([C,5])))[C]([C]([C]([C,0]))" + "[C]([C]([C,0])))))";
            int               phosphateCount   = 3;
            int               ringCount        = 3;
            IAtomContainer    ttpr             = AbstractSignatureTest.MakeRhLikeStructure(phosphateCount, ringCount);
            MoleculeSignature molSig           = new MoleculeSignature(ttpr);
            string            centralSignature = molSig.SignatureStringForVertex(0);

            Assert.AreEqual(expected, centralSignature);
        }
Ejemplo n.º 20
0
        public void TestCage()
        {
            string expectedA = "[C]([C]([C]([C,4][C,3]([C,1]))[C]([C,5][C,3]))"
                               + "[C]([C,4]([C]([C,2][C,1]))[C]([C,2]([C,0])[C,6]))" + "[C]([C,5]([C]([C,0][C,1]))[C,6]([C,0])))";

            string expectedB = "[C]([C]([C]([C]([C,1]([C,0])[C,4])[C,5])[C,7]"
                               + "([C,4]([C,3])))[C]([C]([C,3]([C,0])[C,6])[C,7])" + "[C]([C,5]([C]([C,2][C,1]))[C,6]([C,2]([C,0]))))";
            IAtomContainer mol       = AbstractSignatureTest.MakeCage();
            string         signature = this.CanonicalStringFromMolecule(mol);

            Assert.AreEqual(expectedA, signature);
            string fullSignature = FullStringFromMolecule(mol);
            string fullExpected  = "8" + expectedA + " + 8" + expectedB;

            Assert.AreEqual(fullExpected, fullSignature);
        }
Ejemplo n.º 21
0
        public void CyclobuteneTest()
        {
            string         expectedA   = "[C]([C]([C,0])=[C]([C,0]))";
            string         expectedB   = "[C]([C]([C,0])[C](=[C,0]))";
            IAtomContainer cyclobutene = builder.NewAtomContainer();

            AbstractSignatureTest.AddCarbons(cyclobutene, 4);
            cyclobutene.AddBond(cyclobutene.Atoms[0], cyclobutene.Atoms[1], BondOrder.Single);
            cyclobutene.AddBond(cyclobutene.Atoms[0], cyclobutene.Atoms[2], BondOrder.Single);
            cyclobutene.AddBond(cyclobutene.Atoms[1], cyclobutene.Atoms[3], BondOrder.Double);
            cyclobutene.AddBond(cyclobutene.Atoms[2], cyclobutene.Atoms[3], BondOrder.Single);
            Assert.AreEqual(expectedA, CanonicalStringFromMolecule(cyclobutene));

            string expectedFullString = "2" + expectedA + " + 2" + expectedB;
            string actualFullString   = FullStringFromMolecule(cyclobutene);

            Assert.AreEqual(expectedFullString, actualFullString);
        }
Ejemplo n.º 22
0
        public void FusedSquareMultipleBondTest()
        {
            IAtomContainer mol      = builder.NewAtomContainer();
            string         expected = "[C]([C]([C,1])[C]([C,0])[C](=[C,1])[C](=[C,0]))";

            AbstractSignatureTest.AddCarbons(mol, 7);
            mol.AddBond(mol.Atoms[0], mol.Atoms[1], BondOrder.Single);
            mol.AddBond(mol.Atoms[0], mol.Atoms[2], BondOrder.Single);
            mol.AddBond(mol.Atoms[0], mol.Atoms[3], BondOrder.Single);
            mol.AddBond(mol.Atoms[0], mol.Atoms[4], BondOrder.Single);
            mol.AddBond(mol.Atoms[1], mol.Atoms[5], BondOrder.Double);
            mol.AddBond(mol.Atoms[2], mol.Atoms[5], BondOrder.Single);
            mol.AddBond(mol.Atoms[3], mol.Atoms[6], BondOrder.Single);
            mol.AddBond(mol.Atoms[4], mol.Atoms[6], BondOrder.Double);
            MoleculeSignature molSig  = new MoleculeSignature(mol);
            string            sigFor0 = molSig.SignatureStringForVertex(0);

            Assert.AreEqual(expected, sigFor0);
        }
Ejemplo n.º 23
0
        public static IAtomContainer MakeC7H16C()
        {
            IAtomContainer mol = builder.NewAtomContainer();

            AbstractSignatureTest.AddCarbons(mol, 7);
            mol.AddBond(mol.Atoms[0], mol.Atoms[2], BondOrder.Single);
            mol.AddBond(mol.Atoms[1], mol.Atoms[2], BondOrder.Single);
            mol.AddBond(mol.Atoms[2], mol.Atoms[3], BondOrder.Single);
            mol.AddBond(mol.Atoms[3], mol.Atoms[4], BondOrder.Single);
            mol.AddBond(mol.Atoms[4], mol.Atoms[5], BondOrder.Single);
            mol.AddBond(mol.Atoms[5], mol.Atoms[6], BondOrder.Single);
            AbstractSignatureTest.AddHydrogens(mol, 0, 3);
            AbstractSignatureTest.AddHydrogens(mol, 1, 3);
            AbstractSignatureTest.AddHydrogens(mol, 2, 1);
            AbstractSignatureTest.AddHydrogens(mol, 3, 2);
            AbstractSignatureTest.AddHydrogens(mol, 4, 2);
            AbstractSignatureTest.AddHydrogens(mol, 5, 2);
            AbstractSignatureTest.AddHydrogens(mol, 6, 3);
            return(mol);
        }
Ejemplo n.º 24
0
        public static IAtomContainer MakeRhLikeStructure(int pCount, int ringCount)
        {
            IAtomContainer ttpr = builder.NewAtomContainer();

            ttpr.Atoms.Add(builder.NewAtom("Rh"));
            for (int i = 1; i <= pCount; i++)
            {
                ttpr.Atoms.Add(builder.NewAtom("P"));
                ttpr.AddBond(ttpr.Atoms[0], ttpr.Atoms[i], BondOrder.Single);
            }

            for (int j = 1; j <= pCount; j++)
            {
                for (int k = 0; k < ringCount; k++)
                {
                    AbstractSignatureTest.AddRing(j, 6, ttpr);
                }
            }

            return(ttpr);
        }