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()); }
public override string SignatureStringForVertex(int vertexIndex, int height) { AtomSignature atomSignature = new AtomSignature(molecule, vertexIndex, height, invariantType); return(atomSignature.ToCanonicalString()); }
public void TestFiveCycle() { Molecule molecule = MoleculeFactory.FiveCycle(); AtomSignature atomSignature = new AtomSignature(molecule, 0); Console.Out.WriteLine(atomSignature.ToCanonicalString()); // Console.Out.WriteLine(atomSignature); }