public virtual void TestGetLonePairCount_Molecule() { IAtomContainer acetone = (IAtomContainer)NewChemObject(); IAtom c1 = acetone.Builder.NewAtom("C"); IAtom c2 = acetone.Builder.NewAtom("C"); IAtom o = acetone.Builder.NewAtom("O"); IAtom c3 = acetone.Builder.NewAtom("C"); acetone.Atoms.Add(c1); acetone.Atoms.Add(c2); acetone.Atoms.Add(c3); acetone.Atoms.Add(o); IBond b1 = acetone.Builder.NewBond(c1, c2, BondOrder.Single); IBond b2 = acetone.Builder.NewBond(c1, o, BondOrder.Double); IBond b3 = acetone.Builder.NewBond(c1, c3, BondOrder.Single); acetone.Bonds.Add(b1); acetone.Bonds.Add(b2); acetone.Bonds.Add(b3); // add lone pairs on oxygen ILonePair lp1 = acetone.Builder.NewLonePair(o); ILonePair lp2 = acetone.Builder.NewLonePair(o); acetone.LonePairs.Add(lp1); acetone.LonePairs.Add(lp2); Assert.AreEqual(2, acetone.LonePairs.Count); }
public void TestMatchAgainstItself() { var m_bond1 = new Mock <ILonePair>(); ILonePair bond1 = m_bond1.Object; string result = LonePairDiff.Diff(bond1, bond1); AssertZeroLength(result); }
public void TestNewLonePair_IAtom() { IChemObjectBuilder builder = RootObject.Builder; ILonePair lonePair = builder.NewLonePair(builder.NewAtom()); Assert.IsNotNull(lonePair); }
public override void TestClone() { ILonePair lp = (ILonePair)NewChemObject(); object clone = lp.Clone(); Assert.IsTrue(clone is ILonePair); }
public virtual void TestContains_IAtom() { ILonePair lp = (ILonePair)NewChemObject(); IAtom atom = lp.Builder.NewAtom("N"); lp.Atom = atom; Assert.IsTrue(lp.Contains(atom)); }
public virtual void TestSetAtom_IAtom() { ILonePair lp = (ILonePair)NewChemObject(); IAtom atom = lp.Builder.NewAtom("N"); lp.Atom = atom; Assert.AreEqual(atom, lp.Atom); }
public override void TestGetElectronCount() { ILonePair lp = (ILonePair)NewChemObject(); Assert.AreEqual(2, lp.ElectronCount.Value); lp = lp.Builder.NewLonePair(lp.Builder.NewAtom("N")); Assert.AreEqual(2, lp.ElectronCount.Value); }
public override void TestToString() { ILonePair lp = (ILonePair)NewChemObject(); string description = lp.ToString(); for (int i = 0; i < description.Length; i++) { Assert.IsTrue(description[i] != '\n'); Assert.IsTrue(description[i] != '\r'); } }
public virtual void TestClone_IAtom() { ILonePair lp = (ILonePair)NewChemObject(); IAtom atom = lp.Builder.NewAtom("N"); lp.Atom = atom; // test cloning of atom ILonePair clone = (ILonePair)lp.Clone(); Assert.AreNotSame(atom, clone.Atom); }
public void TestDifference() { var m_carbon = new Mock <IAtom>(); IAtom carbon = m_carbon.Object; var m_oxygen = new Mock <IAtom>(); IAtom oxygen = m_oxygen.Object; m_carbon.SetupGet(n => n.Symbol).Returns("C"); m_oxygen.SetupGet(n => n.Symbol).Returns("O"); var m_bond1 = new Mock <ILonePair>(); ILonePair bond1 = m_bond1.Object; var m_bond2 = new Mock <ILonePair>(); ILonePair bond2 = m_bond2.Object; m_bond1.SetupGet(n => n.Atom).Returns(carbon); m_bond2.SetupGet(n => n.Atom).Returns(oxygen); IDifference difference = LonePairDiff.Difference(bond1, bond2); Assert.IsNotNull(difference); }
/// <summary> /// Compare two <see cref="IChemObject"/> classes and return the difference as an <see cref="IDifference"/>. /// </summary> /// <param name="first">the first of the two classes to compare</param> /// <param name="second">the second of the two classes to compare</param> /// <returns>an <see cref="IDifference"/> representation of the difference between the first and second <see cref="IChemObject"/>.</returns> public static IDifference Difference(IChemObject first, IChemObject second) { if (!(first is ILonePair && second is ILonePair)) { return(null); } ILonePair firstB = (ILonePair)first; ILonePair secondB = (ILonePair)second; IDifferenceList totalDiff = new ChemObjectDifference("LonePairDiff"); totalDiff.AddChild(AtomDiff.Difference(firstB.Atom, secondB.Atom)); totalDiff.AddChild(ElectronContainerDiff.Difference(first, second)); if (totalDiff.ChildCount() > 0) { return(totalDiff); } else { return(null); } }
public void TestDiff() { var m_carbon = new Mock <IAtom>(); IAtom carbon = m_carbon.Object; var m_oxygen = new Mock <IAtom>(); IAtom oxygen = m_oxygen.Object; m_carbon.SetupGet(n => n.Symbol).Returns("C"); m_oxygen.SetupGet(n => n.Symbol).Returns("O"); var m_bond1 = new Mock <ILonePair>(); ILonePair bond1 = m_bond1.Object; var m_bond2 = new Mock <ILonePair>(); ILonePair bond2 = m_bond2.Object; m_bond1.SetupGet(n => n.Atom).Returns(carbon); m_bond2.SetupGet(n => n.Atom).Returns(oxygen); string result = LonePairDiff.Diff(bond1, bond2); Assert.IsNotNull(result); Assert.AreNotSame(0, result.Length); AssertContains(result, "LonePairDiff"); AssertContains(result, "AtomDiff"); AssertContains(result, "C/O"); }
public static bool replaceAtomByAtom(IAtomContainer container, IAtom atom, IAtom newAtom) { if (!container.contains(atom)) { // it should complain return(false); } else { container.setAtomAt(container.getAtomNumber(atom), newAtom); IElectronContainer[] electronContainers = container.ElectronContainers; for (int i = 0; i < electronContainers.Length; i++) { if (electronContainers[i] is IBond) { IBond bond = (IBond)electronContainers[i]; if (bond.contains(atom)) { for (int j = 0; j < bond.AtomCount; j++) { if (atom.Equals(bond.getAtomAt(j))) { bond.setAtomAt(newAtom, j); } } } } else if (electronContainers[i] is ILonePair) { ILonePair lonePair = (ILonePair)electronContainers[i]; if (atom.Equals(lonePair.Atom)) { lonePair.Atom = newAtom; } } } return(true); } }
public bool Contains(ILonePair lonePair) => false;