Beispiel #1
0
        public void TestCalculateCharges_IAtomContainer()
        {
            double[] testResult = { 0.07915, -0.25264, 0.05783, 0.05783, 0.05783 };

            var peoe = new GasteigerMarsiliPartialCharges();

            var molecule = builder.NewAtomContainer();

            molecule.Atoms.Add(builder.NewAtom("C"));
            molecule.Atoms.Add(builder.NewAtom("F"));
            molecule.AddBond(molecule.Atoms[0], molecule.Atoms[1], BondOrder.Single);

            AddExplicitHydrogens(molecule);
            AtomContainerManipulator.PercieveAtomTypesAndConfigureAtoms(molecule);
            CDK.LonePairElectronChecker.Saturate(molecule);

            peoe.CalculateCharges(molecule);
            for (int i = 0; i < molecule.Atoms.Count; i++)
            {
                Assert.AreEqual(testResult[i], molecule.Atoms[i].Charge.Value, 0.01);
            }
        }
        public void TestUndefinedPartialCharge()
        {
            var filename = "NCDK.Data.MDL.burden_undefined.sdf";
            var ins      = ResourceLoader.GetAsStream(filename);
            var reader   = new MDLV2000Reader(ins);
            var content  = reader.Read(builder.NewChemFile());

            reader.Close();
            var cList = ChemFileManipulator.GetAllAtomContainers(content);
            var ac    = cList.First();

            Assert.IsNotNull(ac);
            AddExplicitHydrogens(ac);
            AtomContainerManipulator.PercieveAtomTypesAndConfigureAtoms(ac);
            Aromaticity.CDKLegacy.Apply(ac);

            AddExplicitHydrogens(ac);
            AtomContainerManipulator.PercieveAtomTypesAndConfigureAtoms(ac);
            CDK.LonePairElectronChecker.Saturate(ac);

            var peoe = new GasteigerMarsiliPartialCharges();

            peoe.CalculateCharges(ac);
        }