예제 #1
0
        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));
        }
예제 #2
0
        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);
        }