public void TestCompare_Null_Null()
        {
            // Instantiate the comparator
            IComparer <IAtomContainer> comparator = new AtomContainerComparator <IAtomContainer>();

            // Assert.assert correct comparison
            Assert.AreEqual(0, comparator.Compare(null, null), "null <-> null");
        }
        public void TestCompare_IAtomContainer_Null()
        {
            IChemObjectBuilder builder = ChemObjectBuilder.Instance;
            IRing cycloPentane         = builder.NewRing(5, "C");

            // Instantiate the comparator
            IComparer <IAtomContainer> comparator = new AtomContainerComparator <IAtomContainer>();

            // Assert.assert correct comparison
            Assert.AreEqual(-1, comparator.Compare(cycloPentane, null), "cycloPentane <-> null");
        }
        public void TestCompare_RingSize()
        {
            // Create some IAtomContainers
            IChemObjectBuilder builder = ChemObjectBuilder.Instance;
            IRing cycloPentane         = builder.NewRing(5, "C");
            IRing cycloHexane          = builder.NewRing(6, "C");

            // Instantiate the comparator
            IComparer <IAtomContainer> comparator = new AtomContainerComparator <IAtomContainer>();

            Assert.AreEqual(-1, comparator.Compare(cycloPentane, cycloHexane), "cycloPentane <-> cycloHexane");
            Assert.AreEqual(0, comparator.Compare(cycloPentane, cycloPentane), "cycloPentane <-> cycloPentane");
            Assert.AreEqual(1, comparator.Compare(cycloHexane, cycloPentane), "cycloHexane <-> cycloPentane");
        }
        public void TestCompare_Ring_NonRing2()
        {
            // Create some IAtomContainers
            IChemObjectBuilder builder        = ChemObjectBuilder.Instance;
            IAtomContainer     hexaneNitrogen = builder.NewRing(6, "N");

            hexaneNitrogen.Bonds.RemoveAt(0);
            IRing cycloHexaneNitrogen = builder.NewRing(6, "N");

            // Instantiate the comparator
            IComparer <IAtomContainer> comparator = new AtomContainerComparator <IAtomContainer>();

            Assert.AreEqual(-1, comparator.Compare(hexaneNitrogen, cycloHexaneNitrogen), "hexaneNitrogen <-> cycloHexaneNitrogen");
            Assert.AreEqual(0, comparator.Compare(hexaneNitrogen, hexaneNitrogen), "hexaneNitrogen <-> hexaneNitrogen");
            Assert.AreEqual(1, comparator.Compare(cycloHexaneNitrogen, hexaneNitrogen), "cycloHexaneNitrogen <-> hexaneNitrogen");
        }
        public void TestCompare_Atom_PseudoAtom()
        {
            // Instantiate the comparator
            IComparer <IAtomContainer> comparator = new AtomContainerComparator <IAtomContainer>();

            IAtomContainer atomContainer1 = new AtomContainer();

            atomContainer1.Atoms.Add(new Atom("C"));

            IAtomContainer atomContainer2 = new AtomContainer();

            atomContainer2.Atoms.Add(new PseudoAtom("*"));

            Assert.AreEqual(1,
                            comparator.Compare(atomContainer1, atomContainer2),
                            atomContainer1 + " <-> " + atomContainer2);
        }
        public void TestCompare_BondOrder()
        {
            // Create some IAtomContainers
            IChemObjectBuilder builder = ChemObjectBuilder.Instance;
            IRing cycloHexaneNitrogen  = builder.NewRing(6, "N");
            IRing cycloHexeneNitrogen  = builder.NewRing(6, "N");

            cycloHexeneNitrogen.Bonds[0].Order = BondOrder.Double;

            // Instantiate the comparator
            IComparer <IAtomContainer> comparator = new AtomContainerComparator <IAtomContainer>();

            Assert.AreEqual(-1,
                            comparator.Compare(cycloHexaneNitrogen, cycloHexeneNitrogen), "cycloHexaneNitrogen <-> cycloHexeneNitrogen");
            Assert.AreEqual(0,
                            comparator.Compare(cycloHexaneNitrogen, cycloHexaneNitrogen), "cycloHexaneNitrogen <-> cycloHexaneNitrogen");
            Assert.AreEqual(0,
                            comparator.Compare(cycloHexeneNitrogen, cycloHexeneNitrogen), "cycloHexeneNitrogen <-> cycloHexeneNitrogen");
            Assert.AreEqual(1,
                            comparator.Compare(cycloHexeneNitrogen, cycloHexaneNitrogen), "cycloHexeneNitrogen <-> cycloHexaneNitrogen");
        }