public void TestSimpleCarbonOxygenCompound() { string acpString = "O0C1C2 0:1(2),1:2(1)"; IAtomContainer ac = AtomContainerPrinter.FromString(acpString, builder); CheckForCanonicalForm(ac); }
public void TestDisconnectedBondsCarbonCompound() { string acpString = "C0C1C2C3 0:2(1),1:3(2)"; IAtomContainer ac = AtomContainerPrinter.FromString(acpString, builder); CheckForCanonicalForm(ac); }
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); }
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()); }
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()); }
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)); }
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()); }
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); }
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); }
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)); }
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); }
private BondRefinable Refinable(string acpString) { return(new BondRefinable(AtomContainerPrinter.FromString(acpString, builder))); }
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); }
public void CycloButadiene() { Test(AtomContainerPrinter.FromString("C0C1C2C3 0:1(2),1:2(1),2:3(2),0:3(1)", builder), 4); }