public void TestImplicitHydrogen() { var ligand1 = new ImplicitHydrogenLigand(molecule, new VisitedAtoms(), molecule.Atoms[1]); var ligand2 = new Ligand(molecule, new VisitedAtoms(), molecule.Atoms[1], molecule.Atoms[3]); var rule = new MassNumberRule(); Assert.AreEqual(-1, rule.Compare(ligand1, ligand2)); Assert.AreEqual(1, rule.Compare(ligand2, ligand1)); }
public void TestCompareIdentity() { var ligand = new Ligand(molecule, new VisitedAtoms(), molecule.Atoms[1], molecule.Atoms[0]); var rule = new MassNumberRule(); Assert.AreEqual(0, rule.Compare(ligand, ligand)); }
public int Compare(ILigand ligand1, ILigand ligand2) { int atomicNumberComp = atomicNumberRule.Compare(ligand1, ligand2); if (atomicNumberComp != 0) { return(atomicNumberComp); } int massNumberComp = massNumberRule.Compare(ligand1, ligand2); if (massNumberComp != 0) { return(massNumberComp); } if (ligand1.LigandAtom.AtomicNumber.Equals(AtomicNumbers.H)) { // both atoms are hydrogens return(0); } return(massNumberComp); }