public void TestRoundtrip() { Molecule molecule = new Molecule(); molecule.AddAtom("C"); molecule.AddAtom("C"); molecule.AddAtom("C"); molecule.AddAtom("C"); molecule.AddSingleBond(0, 1); molecule.AddSingleBond(0, 3); molecule.AddSingleBond(1, 2); molecule.AddSingleBond(2, 3); AtomSignature atomSignature = new AtomSignature(molecule, 0); string signatureString = atomSignature.ToCanonicalString(); ColoredTree tree = AtomSignature.Parse(signatureString); MoleculeBuilder builder = new MoleculeBuilder(); Molecule builtMolecule = builder.FromTree(tree); Assert.AreEqual(molecule.ToString(), builtMolecule.ToString()); // test that this can be done more than once builtMolecule = builder.FromTree(tree); Assert.AreEqual(molecule.ToString(), builtMolecule.ToString()); }