Exemplo n.º 1
0
        public void TestAromaticBondType4()
        {
            IAtomContainer benzene = TestMoleculeFactory.MakeBenzene();

            foreach (var atom in benzene.Atoms)
            {
                atom.IsAromatic = true;
            }
            foreach (var bond in benzene.Bonds)
            {
                bond.IsAromatic = true;
            }

            StringWriter   writer    = new StringWriter();
            MDLV2000Writer mdlWriter = new MDLV2000Writer(writer);

            mdlWriter.Write(benzene);
            mdlWriter.Close();
            Assert.IsTrue(writer.ToString().IndexOf("1  2  1  0  0  0  0") != -1);

            writer    = new StringWriter();
            mdlWriter = new MDLV2000Writer(writer);
            var prop = new NameValueCollection
            {
                ["WriteAromaticBondTypes"] = "true"
            };
            PropertiesListener listener = new PropertiesListener(prop);

            mdlWriter.Listeners.Add(listener);
            mdlWriter.CustomizeJob();
            mdlWriter.Write(benzene);
            mdlWriter.Close();
            Assert.IsTrue(writer.ToString().IndexOf("1  2  4  0  0  0  0") != -1);
        }
Exemplo n.º 2
0
        public void TestForce2DCoordinates()
        {
            StringWriter   writer   = new StringWriter();
            IAtomContainer molecule = builder.NewAtomContainer();
            IAtom          atom     = builder.NewAtom("C");

            atom.Point2D = new Vector2(1.0, 2.0);
            atom.Point3D = new Vector3(3.0, 4.0, 5.0);
            molecule.Atoms.Add(atom);

            MDLV2000Writer mdlWriter = new MDLV2000Writer(writer);
            var            prop      = new NameValueCollection
            {
                ["ForceWriteAs2DCoordinates"] = "true"
            };
            PropertiesListener listener = new PropertiesListener(prop);

            mdlWriter.Listeners.Add(listener);
            mdlWriter.CustomizeJob();
            mdlWriter.Write(molecule);
            mdlWriter.Close();
            string output = writer.ToString();

            // the current behavior is that if both 2D and 3D coordinates
            // are available, the 3D is outputed, and the 2D not
            Assert.IsTrue(output.Contains("1.0"));
            Assert.IsTrue(output.Contains("2.0"));
        }