public void SnCl2() { var factory = new Abbreviations(); var mol = Smi("Cl[Sn]Cl"); var sgroups = factory.Generate(mol); Assert.AreEqual(1, sgroups.Count); Assert.AreEqual("SnCl2", sgroups[0].Subscript); }
public void HOOH() { var factory = new Abbreviations(); var mol = Smi("OO"); var sgroups = factory.Generate(mol); Assert.AreEqual(1, sgroups.Count); Assert.AreEqual("HOOH", sgroups[0].Subscript); }
public void PhenylShouldNotMatchBenzene() { var factory = new Abbreviations { "*c1ccccc1 Ph" }; var mol = Smi("c1ccccc1"); var sgroups = factory.Generate(mol); Assert.AreEqual(0, sgroups.Count); }
public void HclSaltOfEdci() { var factory = new Abbreviations { "CCN=C=NCCCN(C)C EDCI" }; var mol = Smi("CCN=C=NCCCN(C)C.Cl"); var sgroups = factory.Generate(mol); Assert.AreEqual(1, sgroups.Count); Assert.AreEqual("EDCI·HCl", sgroups[0].Subscript); }
public void PotassiumCarbonate() { var mol = Smi("[K+].[O-]C(=O)[O-].[K+]"); var factory = new Abbreviations { "[K+].[O-]C(=O)[O-].[K+] K2CO3" }; var sgroups = factory.Generate(mol); Assert.AreEqual(1, sgroups.Count); Assert.AreEqual("K2CO3", sgroups[0].Subscript); Assert.AreEqual(6, sgroups[0].Atoms.Count); }
public void SO3minusFromHeteroCollapseNone() { var factory = new Abbreviations { "*S(=O)(=O)[O-] SO3-" }; var mol = Smi("c1ccccc1N(S(=O)(=O)[O-])S(=O)(=O)[O-]"); var sgroups = factory.Generate(mol); Assert.AreEqual(2, sgroups.Count); Assert.AreEqual("SO3-", sgroups[0].Subscript); Assert.AreEqual("SO3-", sgroups[1].Subscript); }
public void NBocFromHeteroCollapseExplicitH() { var factory = new Abbreviations { "*C(=O)OC(C)(C)C Boc" }; var mol = Smi("c1cc2ccccc2ccn1C(=O)OC(C)(C)C"); var sgroups = factory.Generate(mol); Assert.AreEqual(1, sgroups.Count); Assert.AreEqual("NBoc", sgroups[0].Subscript); Assert.AreEqual(2, sgroups[0].Bonds.Count); Assert.AreEqual(8, sgroups[0].Atoms.Count); }
public void IPrFromHeteroCollapse() { var factory = new Abbreviations { "*C(C)C iPr" }; var mol = Smi("[CH3:27][CH:19]([CH3:28])[C:20]1=[N:26][C:23](=[CH:22][S:21]1)[C:24](=[O:25])O"); var sgroups = factory.Generate(mol); Assert.AreEqual(1, sgroups.Count); Assert.AreEqual("iPr", sgroups[0].Subscript); Assert.AreEqual(1, sgroups[0].Bonds.Count); Assert.AreEqual(3, sgroups[0].Atoms.Count); }
public void AbbreviationsHavePriority() { var factory = new Abbreviations { "*CCC Pr", "*CC Et" }; var mol = Smi("c1ccccc1CCC"); var sgroups = factory.Generate(mol); Assert.AreEqual(1, sgroups.Count); Assert.AreEqual("Pr", sgroups[0].Subscript); }
public void PhenylShouldMatchKekuleForm() { var factory = new Abbreviations { "*c1ccccc1 Ph" }; var mol = Smi("CCCCC1=CC=CC=C1"); var sgroups = factory.Generate(mol); Assert.AreEqual(1, sgroups.Count); Assert.AreEqual("Ph", sgroups[0].Subscript); Assert.AreEqual(6, sgroups[0].Atoms.Count); Assert.AreEqual(1, sgroups[0].Bonds.Count); }
public void PhenylShouldAbbreviateExplicitHydrogens() { var factory = new Abbreviations { "*c1ccccc1 Ph" }; var mol = Smi("CCCCc1ccc([H])cc1"); var sgroups = factory.Generate(mol); Assert.AreEqual(1, sgroups.Count); Assert.AreEqual("Ph", sgroups[0].Subscript); Assert.AreEqual(7, sgroups[0].Atoms.Count); Assert.AreEqual(1, sgroups[0].Bonds.Count); }
public void DcmAndTfaNoSingleFrag() { var factory = new Abbreviations(); var mol = Smi("ClCCl.FC(F)(F)C(=O)O"); factory.Add("ClCCl DCM"); factory.Add("FC(F)(F)C(=O)O TFA"); factory.ContractToSingleLabel = false; var sgroups = factory.Generate(mol); Assert.AreEqual(1, sgroups.Count); Assert.AreEqual("DCM", sgroups[0].Subscript); }
public void TFASaltDisconnected() { Abbreviations factory = new Abbreviations(); IAtomContainer mol = Smi("c1ccccc1c1ccccc1.FC(F)(F)C(=O)O"); factory.Add("*C(F)(F)F CF3"); factory.Add("*C(=O)O CO2H"); factory.Add("FC(F)(F)C(=O)O TFA"); var sgroups = factory.Generate(mol); Assert.AreEqual(1, sgroups.Count); Assert.AreEqual("TFA", sgroups[0].Subscript); }
public void AvoidAmbiguity() { var smi = "C1CCCCC1=NC(C)C"; var factory = new Abbreviations { "*C(C)C iPr" }; var mol = Smi(smi); var sgroups = factory.Generate(mol); Assert.AreEqual(1, sgroups.Count); Assert.AreEqual("iPr", sgroups[0].Subscript); }
public void MultipleDisconnectedAbbreviations2() { var smi = "ClCCl.Cl[Pd]Cl.[Fe+2].c1ccc(P([c-]2cccc2)c2ccccc2)cc1.c1ccc(P([c-]2cccc2)c2ccccc2)cc1"; var factory = new Abbreviations { "Cl[Pd]Cl.[Fe+2].c1ccc(P([c-]2cccc2)c2ccccc2)cc1.c1ccc(P([c-]2cccc2)c2ccccc2)cc1 Pd(dppf)Cl2", "Cl[Pd]Cl PdCl2" }; var mol = Smi(smi); var sgroups = factory.Generate(mol); Assert.AreEqual(1, sgroups.Count); Assert.AreEqual("Pd(dppf)Cl2", sgroups[0].Subscript); }
public void DontOverwriteExistingSgroups() { var factory = new Abbreviations { "*CCC Bu" }; var mol = Smi("c1ccccc1CCC"); var sgroup = new Sgroup(); sgroup.Atoms.Add(mol.Atoms[6]); sgroup.Atoms.Add(mol.Atoms[7]); sgroup.Atoms.Add(mol.Atoms[8]); sgroup.Type = SgroupType.CtabAbbreviation; sgroup.Subscript = "n-Bu"; mol.SetCtabSgroups(new[] { sgroup }); var sgroups = factory.Generate(mol); Assert.AreEqual(0, sgroups.Count); }
public void TFASaltConnected() { var factory = new Abbreviations(); var mol = Smi("FC(F)(F)C(=O)O"); factory.Add("*C(F)(F)F CF3"); factory.Add("*C(=O)O CO2H"); factory.Add("FC(F)(F)C(=O)O TFA"); var sgroups = factory.Generate(mol); Assert.AreEqual(2, sgroups.Count); for (int i = 0; i < 2; i++) { var sgroup = sgroups[i]; Assert.IsTrue(sgroup.Subscript.Contains("CF3") || sgroup.Subscript.Contains("CO2H")); } Assert.AreNotEqual(sgroups[0].Subscript, sgroups[1].Subscript); }
public void NitroGroups() { var factory = new Abbreviations { "*N(=O)(=O) NO2", "*[N+]([O-])(=O) NO2" }; var mol = Smi("O=N(=O)CCCC[N+]([O-])=O"); var sgroups = factory.Generate(mol); Assert.AreEqual(2, sgroups.Count); Assert.AreEqual("NO2", sgroups[0].Subscript); Assert.AreEqual(3, sgroups[0].Atoms.Count); Assert.AreEqual(1, sgroups[0].Bonds.Count); Assert.AreEqual("NO2", sgroups[1].Subscript); Assert.AreEqual(3, sgroups[1].Atoms.Count); Assert.AreEqual(1, sgroups[1].Bonds.Count); }
public void Phenyl() { var factory = new Abbreviations { "*c1ccccc1 Ph" }; var mol = Smi("CCCCCCC(c1ccccc1)(c1ccccc1)c1ccccc1"); var sgroups = factory.Generate(mol); Assert.AreEqual(3, sgroups.Count); Assert.AreEqual("Ph", sgroups[0].Subscript); Assert.AreEqual(6, sgroups[0].Atoms.Count); Assert.AreEqual(1, sgroups[0].Bonds.Count); Assert.AreEqual("Ph", sgroups[1].Subscript); Assert.AreEqual(6, sgroups[1].Atoms.Count); Assert.AreEqual(1, sgroups[1].Bonds.Count); Assert.AreEqual("Ph", sgroups[2].Subscript); Assert.AreEqual(6, sgroups[2].Atoms.Count); Assert.AreEqual(1, sgroups[2].Bonds.Count); }