public void TestPropellane() { IAtomContainer propellane = AbstractSignatureTest.MakePropellane(); SignatureQuotientGraph qGraph = new SignatureQuotientGraph(propellane); CheckParameters(qGraph, 2, 2, 1); }
public void TestTwistane() { IAtomContainer twistane = AbstractSignatureTest.MakeTwistane(); SignatureQuotientGraph qGraph = new SignatureQuotientGraph(twistane); CheckParameters(qGraph, 3, 4, 2); }
public void TestCuneaneAtHeight2() { IAtomContainer cuneane = AbstractSignatureTest.MakeCuneane(); SignatureQuotientGraph qGraph = new SignatureQuotientGraph(cuneane, 2); CheckParameters(qGraph, 3, 5, 3); }
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)); }
public void TestAromatic() { IAtomContainer benzene = AbstractSignatureTest.MakeBenzene(); SignatureQuotientGraph qGraph = new SignatureQuotientGraph(benzene); CheckParameters(qGraph, 1, 1, 1); }
public void TestCubane() { IAtomContainer cubane = AbstractSignatureTest.MakeCubane(); SignatureQuotientGraph qGraph = new SignatureQuotientGraph(cubane); CheckParameters(qGraph, 1, 1, 1); }
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"); }
public static IAtomContainer MakePropellane() { IAtomContainer mol = AbstractSignatureTest.MakePseudoPropellane(); mol.AddBond(mol.Atoms[0], mol.Atoms[4], BondOrder.Single); return(mol); }
public static IAtomContainer MakeBridgedCyclobutane() { IAtomContainer mol = AbstractSignatureTest.MakeCyclobutane(); mol.AddBond(mol.Atoms[0], mol.Atoms[2], BondOrder.Single); return(mol); }
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); }
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); } }
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); }
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); }
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); }
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); }
public void DodecahedraneHeightTest() { IAtomContainer dodecahedrane = AbstractSignatureTest.MakeDodecahedrane(); MoleculeIsCarbon3Regular(dodecahedrane); int diameter = 5; for (int height = 0; height <= diameter; height++) { AllEqualAtHeightTest(dodecahedrane, height); } }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }