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); }
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")); }