Ejemplo n.º 1
0
        public void TestSimpleCarbonOxygenCompound()
        {
            string         acpString = "O0C1C2 0:1(2),1:2(1)";
            IAtomContainer ac        = AtomContainerPrinter.FromString(acpString, builder);

            CheckForCanonicalForm(ac);
        }
Ejemplo n.º 2
0
        public void TestDisconnectedBondsCarbonCompound()
        {
            string         acpString = "C0C1C2C3 0:2(1),1:3(2)";
            IAtomContainer ac        = AtomContainerPrinter.FromString(acpString, builder);

            CheckForCanonicalForm(ac);
        }
Ejemplo n.º 3
0
        public void TestCyclicCarbonOxygenCompound()
        {
            string         acpString = "O0C1O2C3 0:1(1),0:3(1),1:2(1),2:3(1)";
            IAtomContainer ac        = AtomContainerPrinter.FromString(acpString, builder);

            CheckForCanonicalForm(ac);
        }
Ejemplo n.º 4
0
        public void TestDoubleBondCyclicCarbonCompound()
        {
            string         acpString = "C0C1C2C3 0:1(1),0:3(2),1:2(2),2:3(1)";
            IAtomContainer ac        = AtomContainerPrinter.FromString(acpString, builder);

            CheckForCanonicalForm(ac);
        }
        public void IsCanonical_FalseTest()
        {
            string         acpString             = "C0C1C2O3 0:1(2),0:3(1),1:2(1),2:3(1)";
            IAtomContainer ac                    = AtomContainerPrinter.FromString(acpString, builder);
            AtomDiscretePartitionRefiner refiner = new AtomDiscretePartitionRefiner();

            Assert.IsFalse(refiner.IsCanonical(ac));
        }
        private IAtomContainer Cubene()
        {
            string acpString = "C0C1C2C3C4C5C6C7 0:1(1),0:2(2),0:4(1),1:3(1),"
                               + "1:5(1),2:3(1),2:6(1),3:7(1),"
                               + "4:5(1),4:6(1),5:7(2),6:7(1)";

            return(AtomContainerPrinter.FromString(acpString, builder));
        }
        public void GetVertexCountTest()
        {
            string         acpString             = "C0C1C2C3 0:1(1),0:3(1),1:2(1),2:3(1)";
            IAtomContainer ac                    = AtomContainerPrinter.FromString(acpString, builder);
            AtomDiscretePartitionRefiner refiner = new AtomDiscretePartitionRefiner();

            refiner.Refine(ac);
            Assert.AreEqual(ac.Atoms.Count, refiner.GetVertexCount());
        }
Ejemplo n.º 8
0
        public void GetConnectivityTest()
        {
            string         acpString             = "C0C1C2C3 0:1(1),0:3(1),1:2(1),2:3(1)";
            IAtomContainer ac                    = AtomContainerPrinter.FromString(acpString, builder);
            BondDiscretePartitionRefiner refiner = new BondDiscretePartitionRefiner();

            refiner.Refine(ac);
            Assert.AreEqual(1, refiner.GetConnectivity(0, 1));
        }
        public void GetAutomorphismGroup_StartingPartitionTest()
        {
            Partition      partition             = Partition.FromString("0,1|2,3");
            string         acpString             = "C0C1C2C3 0:1(1),0:3(1),1:2(1),2:3(1)";
            IAtomContainer ac                    = AtomContainerPrinter.FromString(acpString, builder);
            AtomDiscretePartitionRefiner refiner = new AtomDiscretePartitionRefiner();
            PermutationGroup             autG    = refiner.GetAutomorphismGroup(ac, partition);

            Assert.AreEqual(2, autG.Order());
        }
Ejemplo n.º 10
0
        public void GetConnectivity()
        {
            string         acpString = "C0C1C2C3 0:1(1),1:2(2),2:3(3)";
            IAtomContainer ac        = AtomContainerPrinter.FromString(acpString, builder);
            AtomRefinable  refinable = new AtomRefinable(ac);

            Assert.AreEqual(1, refinable.GetConnectivity(0, 1));
            Assert.AreEqual(2, refinable.GetConnectivity(1, 2));
            Assert.AreEqual(3, refinable.GetConnectivity(2, 3));
        }
Ejemplo n.º 11
0
        public void GetBondPartitionTest()
        {
            string         acpString     = "C0C1C2C3O4 0:1(2),0:4(1),1:2(1),2:3(2),3:4(1)";
            IAtomContainer ac            = AtomContainerPrinter.FromString(acpString, builder);
            BondRefinable  refinable     = new BondRefinable(ac);
            Partition      bondPartition = refinable.GetInitialPartition();
            Partition      expected      = Partition.FromString("0,3|1,4|2");

            Assert.AreEqual(expected, bondPartition);
        }
        public void GetAutomorphismGroupTest()
        {
            string         acpString             = "C0C1C2O3 0:1(2),0:2(1),1:3(1),2:3(1)";
            IAtomContainer ac                    = AtomContainerPrinter.FromString(acpString, builder);
            AtomDiscretePartitionRefiner refiner = new AtomDiscretePartitionRefiner();
            PermutationGroup             autG    = refiner.GetAutomorphismGroup(ac);

            Assert.IsNotNull(autG);
            Assert.AreEqual(1, autG.Order());
        }
Ejemplo n.º 13
0
        public void NeighboursInBlockForMultipleBondsIgnoringBondOrders()
        {
            string         acpString = "C0C1C2C3C4 0:1(1),0:2(2),0:3(1),1:4(1),2:4(1),3:4(2)";
            IAtomContainer ac        = AtomContainerPrinter.FromString(acpString, builder);
            AtomRefinable  refinable = new AtomRefinable(ac, false, true);

            IInvariant invariant = refinable.NeighboursInBlock(Set(1, 2), 0);

            Assert.IsTrue(invariant is IntegerInvariant);
            Assert.AreEqual(new IntegerInvariant(2), invariant);
        }
Ejemplo n.º 14
0
        public void NeighboursInBlockForSingleBonds()
        {
            string         acpString = "C0C1C2C3 0:1(1),0:3(1),1:2(1),2:3(1)";
            IAtomContainer ac        = AtomContainerPrinter.FromString(acpString, builder);
            AtomRefinable  refinable = new AtomRefinable(ac);

            IInvariant invariant = refinable.NeighboursInBlock(Set(0, 2), 1);

            Assert.IsTrue(invariant is IntegerInvariant);
            Assert.AreEqual(new IntegerInvariant(2), invariant);
        }
        public void RefineTest()
        {
            string         acpString             = "C0C1O2O3 0:1(1),0:3(1),1:2(1),2:3(1)";
            IAtomContainer ac                    = AtomContainerPrinter.FromString(acpString, builder);
            AtomDiscretePartitionRefiner refiner = new AtomDiscretePartitionRefiner();

            refiner.Refine(ac);
            PermutationGroup autG = refiner.GetAutomorphismGroup();

            Assert.AreEqual(2, autG.Order());
        }
        public void GetAutomorphismPartitionTest()
        {
            string acpString = "C0C1C2C3C4C5C6C7C8C9 0:1(2),1:2(1),2:3(2),3:4(1),"
                               + "4:5(2),5:6(1),6:7(2),7:8(1),8:9(2),5:9(1),0:9(1)";
            IAtomContainer ac = AtomContainerPrinter.FromString(acpString, builder);
            AtomDiscretePartitionRefiner refiner = new AtomDiscretePartitionRefiner();
            Partition autP     = refiner.GetAutomorphismPartition(ac);
            Partition expected = Partition.FromString("0|1|2|3|4|5|6|7|8|9");

            Assert.AreEqual(expected, autP);
        }
Ejemplo n.º 17
0
        public void GetElementPartitionTest()
        {
            string    acpString = "C0N1C2P3C4N5";
            Partition expected  = Partition.FromString("0,2,4|1,5|3");

            IAtomContainer ac        = AtomContainerPrinter.FromString(acpString, builder);
            AtomRefinable  refinable = new AtomRefinable(ac);

            Partition elPartition = refinable.GetInitialPartition();

            Assert.AreEqual(expected, elPartition);
        }
        public void GetConnectivityTest()
        {
            string         acpString             = "C0C1C2C3 0:1(1),0:3(1),1:2(2),2:3(1)";
            IAtomContainer ac                    = AtomContainerPrinter.FromString(acpString, builder);
            AtomDiscretePartitionRefiner refiner = new AtomDiscretePartitionRefiner();

            refiner.Refine(ac);
            IBond bond   = ac.GetBond(ac.Atoms[1], ac.Atoms[2]);
            int   orderN = bond.Order.Numeric();

            Assert.AreEqual(orderN, refiner.GetConnectivity(1, 2));
        }
Ejemplo n.º 19
0
        public void Refine_IgnoreBondOrderTest()
        {
            string         acpString             = "C0C1C2C3 0:1(2),0:3(1),1:2(1),2:3(2)";
            IAtomContainer ac                    = AtomContainerPrinter.FromString(acpString, builder);
            bool           ignoreBondOrder       = true;
            BondDiscretePartitionRefiner refiner = new BondDiscretePartitionRefiner(ignoreBondOrder);

            refiner.Refine(ac);
            PermutationGroup autG = refiner.GetAutomorphismGroup();

            Assert.AreEqual(8, autG.Order());
        }
        public void GetAutomorphismGroup_StartingGroupTest()
        {
            string                       acpString = "C0C1C2C3 0:1(1),0:2(1),1:3(1),2:3(1)";
            IAtomContainer               ac        = AtomContainerPrinter.FromString(acpString, builder);
            Permutation                  flip      = new Permutation(1, 0, 3, 2);
            PermutationGroup             autG      = new PermutationGroup(4, new[] { flip });
            AtomDiscretePartitionRefiner refiner   = new AtomDiscretePartitionRefiner();

            refiner.GetAutomorphismGroup(ac, autG);
            Assert.IsNotNull(autG);
            Assert.AreEqual(8, autG.Order());
        }
        public void ReSetTest()
        {
            string         acpString1            = "C0C1 0:1(1)";
            IAtomContainer ac1                   = AtomContainerPrinter.FromString(acpString1, builder);
            AtomDiscretePartitionRefiner refiner = new AtomDiscretePartitionRefiner();

            refiner.Refine(ac1);
            Assert.AreEqual(refiner.GetConnectivity(0, 1), 1);
            Assert.AreEqual(refiner.GetVertexCount(), 2);

            string         acpString2 = "C0C1C2 0:1(2),1:2(1)";
            IAtomContainer ac2        = AtomContainerPrinter.FromString(acpString2, builder);

            refiner.Refine(ac2);
            Assert.AreEqual(refiner.GetConnectivity(0, 1), 2);
            Assert.AreEqual(refiner.GetVertexCount(), 3);
        }
Ejemplo n.º 22
0
 private BondRefinable Refinable(string acpString)
 {
     return(new BondRefinable(AtomContainerPrinter.FromString(acpString, builder)));
 }
Ejemplo n.º 23
0
 public void NapthaleneB()
 {
     Test(AtomContainerPrinter.FromString("C0C1C2C3C4C5C6C7C8C9 0:1(1),1:2(2),2:3(1),3:4(1),4:5(2),"
                                          + "5:6(1),6:7(2),7:8(1),3:8(2),8:9(1),0:9(2)", CDK.Builder), 4);
 }
Ejemplo n.º 24
0
 public void CycloButadiene()
 {
     Test(AtomContainerPrinter.FromString("C0C1C2C3 0:1(2),1:2(1),2:3(2),0:3(1)", builder), 4);
 }