Beispiel #1
0
        public virtual void TestToArray_Empty()
        {
            BitArray empty = new BitArray(0);

            Assert.IsTrue(Compares.AreDeepEqual(Array.Empty <int>(), JumboCyclicVertexSearch.ToArray(empty)));
        }
Beispiel #2
0
 public virtual void Connected()
 {
     int[][] g = { new[] { 1 }, new[] { 0, 2 }, new[] { 1, 3 }, new[] { 2 } };
     Assert.AreEqual(1, new ConnectedComponents(g).NumberOfComponents);
     Assert.IsTrue(Compares.AreEqual(new int[] { 1, 1, 1, 1 }, new ConnectedComponents(g).GetComponents()));
 }
        public void TestCreate_2D()
        {
            var m_container = new Mock <IAtomContainer>(); var container = m_container.Object;

            m_container.SetupGet(n => n.Atoms.Count).Returns(5);

            var m_c1 = new Mock <IAtom>(); var c1 = m_c1.Object;
            var m_o2 = new Mock <IAtom>(); var o2 = m_o2.Object;
            var m_n3 = new Mock <IAtom>(); var n3 = m_n3.Object;
            var m_c4 = new Mock <IAtom>(); var c4 = m_c4.Object;
            var m_h5 = new Mock <IAtom>(); var h5 = m_h5.Object;

            m_container.SetupGet(n => n.Atoms[0]).Returns(c1);
            m_container.SetupGet(n => n.Atoms[1]).Returns(o2);
            m_container.SetupGet(n => n.Atoms[2]).Returns(n3);
            m_container.SetupGet(n => n.Atoms[3]).Returns(c4);
            m_container.SetupGet(n => n.Atoms[4]).Returns(h5);

            Vector2 p1 = new Vector2(1.23, -0.29);
            Vector2 p2 = new Vector2(-0.30, -0.29);
            Vector2 p3 = new Vector2(2.00, -1.63);
            Vector2 p4 = new Vector2(2.00, 1.03);
            Vector2 p5 = new Vector2(2.32, -0.29);

            m_c1.SetupGet(n => n.Point2D).Returns(p1);
            m_o2.SetupGet(n => n.Point2D).Returns(p2);
            m_n3.SetupGet(n => n.Point2D).Returns(p3);
            m_c4.SetupGet(n => n.Point2D).Returns(p4);
            m_h5.SetupGet(n => n.Point2D).Returns(p5);

            var m_c1c4 = new Mock <IBond>(); var c1c4 = m_c1c4.Object;
            var m_c1o2 = new Mock <IBond>(); var c1o2 = m_c1o2.Object;
            var m_c1n3 = new Mock <IBond>(); var c1n3 = m_c1n3.Object;
            var m_c1h5 = new Mock <IBond>(); var c1h5 = m_c1h5.Object;

            int[][] graph = new int[][] { new[] { 1, 2, 3, 4 }, new[] { 0 }, new[] { 0 }, new[] { 0 }, new[] { 0 } };

            m_container.Setup(n => n.GetConnectedBonds(c1)).Returns(new[] { c1c4, c1o2, c1n3, c1h5 });

            // let's say c1 is a chiral carbon
            m_c1.SetupGet(n => n.Hybridization).Returns(Hybridization.SP3);
            // with a hatch bond from c1 to n3
            m_c1n3.SetupGet(n => n.Stereo).Returns(BondStereo.Down);
            m_c1n3.SetupGet(n => n.Begin).Returns(c1);
            m_c1n3.SetupGet(n => n.End).Returns(n3);
            m_c1o2.SetupGet(n => n.Stereo).Returns(BondStereo.None);
            m_c1o2.SetupGet(n => n.Begin).Returns(c1);
            m_c1o2.SetupGet(n => n.End).Returns(o2);
            m_c1c4.SetupGet(n => n.Stereo).Returns(BondStereo.None);
            m_c1c4.SetupGet(n => n.Begin).Returns(c1);
            m_c1c4.SetupGet(n => n.End).Returns(c4);
            m_c1h5.SetupGet(n => n.Stereo).Returns(BondStereo.None);
            m_c1h5.SetupGet(n => n.Begin).Returns(c1);
            m_c1h5.SetupGet(n => n.End).Returns(h5);

            IStereoEncoder encoder = new GeometricTetrahedralEncoderFactory().Create(container, graph);

            Assert.AreEqual(1, ExtractEncoders(encoder).Count);

            GeometricParity geometricParity = GetGeometricParity(ExtractEncoders(encoder)[0]);

            Assert.IsTrue(geometricParity is Tetrahedral2DParity);

            Assert.IsTrue(Compares.AreDeepEqual(new Vector2[] { p2, p3, p4, p5 }, Coords2D(geometricParity)));
        }
Beispiel #4
0
 public void Bug844()
 {
     Assert.IsTrue(Compares.AreDeepEqual(new int[] { 1, 1 }, SMARTSSearchTest.Match("[*R0]-[$([NRD3][CR]=O)]", "N1(CC)C(=O)CCCC1")));
 }
Beispiel #5
0
 /// <summary>Check the electron contribution is the same as expected.</summary>
 static void Test(IAtomContainer m, params int[] expected)
 {
     AtomContainerManipulator.PercieveAtomTypesAndConfigureAtoms(m);
     Assert.IsTrue(Compares.AreDeepEqual(expected, model.Contribution(m, new RingSearch(m))));
 }
Beispiel #6
0
 public void NestedRecursion()
 {
     Assert.IsTrue(Compares.AreDeepEqual(new int[] { 2, 2 }, SMARTSSearchTest.Match("[$(*C[$(*C)$(**N)])]", "CCCCN")));
     Assert.IsTrue(Compares.AreDeepEqual(new int[] { 1, 1 }, SMARTSSearchTest.Match("[$(*C[$(*C)$(**N)])]", "CCN")));
 }
Beispiel #7
0
 public void RecursiveComponentGrouping()
 {
     Assert.IsTrue(Compares.AreDeepEqual(new int[] { 1, 1 }, SMARTSSearchTest.Match("[O;D1;$(([a,A]).([A,a]))][CH]=O", "OC=O.c1ccccc1")));
     Assert.IsTrue(Compares.AreDeepEqual(new int[] { 0, 0 }, SMARTSSearchTest.Match("[O;D1;$(([a,A]).([A,a]))][CH]=O", "OC=O")));
 }
        public void TestReadParameterSets()
        {
            MMFF94BasedParameterSetReader mmff94bpsr = new MMFF94BasedParameterSetReader();

            mmff94bpsr.ReadParameterSets();
            var parameterSet = mmff94bpsr.GetParamterSet();

            //test atom type
            var       atomtypes = mmff94bpsr.AtomTypes;
            IAtomType atomtype  = atomtypes[0];
            string    sid       = "C";

            Assert.AreEqual(sid, atomtype.AtomTypeName);
            string rootType = "C";

            Assert.AreEqual(rootType, atomtype.Symbol);
            string smaxbond = "4";

            Assert.AreEqual(int.Parse(smaxbond, NumberFormatInfo.InvariantInfo), (int)atomtype.FormalNeighbourCount);
            string satomNr = "6";

            Assert.AreEqual(int.Parse(satomNr, NumberFormatInfo.InvariantInfo), (int)atomtype.AtomicNumber);

            //atom
            //TODO testing

            //bond
            //        string scode = "0";
            string sid1     = "C";
            string sid2     = "C";
            string slen     = "1.508";
            string sk2      = "306.432";
            string sk3      = "-612.865";
            string sk4      = "715.009";
            string sbci     = "0.0000";
            string bondkey  = "bond" + sid1 + ";" + sid2;
            var    bonddata = new List <double>
            {
                (double)(double.Parse(slen, NumberFormatInfo.InvariantInfo)),
                (double)(double.Parse(sk2, NumberFormatInfo.InvariantInfo)),
                (double)(double.Parse(sk3, NumberFormatInfo.InvariantInfo)),
                (double)(double.Parse(sk4, NumberFormatInfo.InvariantInfo)),
                (double)(double.Parse(sbci, NumberFormatInfo.InvariantInfo))
            };

            //strbnd
            //        scode = "0";
            sid1 = "C";
            sid2 = "C";
            string sid3       = "C";
            string value1     = "14.82507";
            string value2     = "14.82507";
            string strbndkey  = "strbnd" + sid1 + ";" + sid2 + ";" + sid3;
            var    strbnddata = new List <double>
            {
                (double)(double.Parse(value1, NumberFormatInfo.InvariantInfo)),
                (double)(double.Parse(value2, NumberFormatInfo.InvariantInfo))
            };

            //angle
            //      scode = "0";
            sid1   = "C=";
            sid2   = "C";
            sid3   = "N";
            value1 = "105.837";
            value2 = "86.1429";
            string value3    = "-34.5494";
            string value4    = "0";
            string anglekey  = "angle" + sid1 + ";" + sid2 + ";" + sid3;
            var    angledata = new List <double>
            {
                (double)(double.Parse(value1, NumberFormatInfo.InvariantInfo)),
                (double)(double.Parse(value2, NumberFormatInfo.InvariantInfo)),
                (double)(double.Parse(value3, NumberFormatInfo.InvariantInfo)),
                (double)(double.Parse(value4, NumberFormatInfo.InvariantInfo))
            };

            //torsion
            //        scode = "0";
            sid1 = "HC";
            sid2 = "C";
            sid3 = "C";
            string sid4 = "HC";

            value1 = "0.142";
            value2 = "0.693";
            value3 = "0.157";
            value4 = "0.000";
            string value5      = "0.000";
            string torsionkey  = "torsion" + ";" + sid1 + ";" + sid2 + ";" + sid3 + ";" + sid4;
            var    torsiondata = new List <double>
            {
                (double)(double.Parse(value1, NumberFormatInfo.InvariantInfo)),
                (double)(double.Parse(value2, NumberFormatInfo.InvariantInfo)),
                (double)(double.Parse(value3, NumberFormatInfo.InvariantInfo)),
                (double)(double.Parse(value4, NumberFormatInfo.InvariantInfo)),
                (double)(double.Parse(value5, NumberFormatInfo.InvariantInfo))
            };

            //opbend
            //      scode = "0";
            sid1   = "O=";
            sid2   = "C=";
            sid3   = "CR4R";
            sid4   = "CR4R";
            value1 = "10.86681780";
            string opbendkey  = "opbend" + ";" + sid1 + ";" + sid2 + ";" + sid3 + ";" + sid4;
            var    opbenddata = new List <double>
            {
                (double)(double.Parse(value1, NumberFormatInfo.InvariantInfo))
            };

            //TODO data lines testing

            foreach (var e in parameterSet)
            {
                if (e.Key.Equals(bondkey))
                {
                    Assert.IsTrue(Compares.AreDeepEqual(bonddata, e.Value));
                }
                else if (e.Key.Equals(strbndkey))
                {
                    Assert.IsTrue(Compares.AreDeepEqual(strbnddata, e.Value));
                }
                else if (e.Key.Equals(anglekey))
                {
                    Assert.IsTrue(Compares.AreDeepEqual(angledata, e.Value));
                }
                else if (e.Key.Equals(torsionkey))
                {
                    Assert.IsTrue(Compares.AreDeepEqual(torsiondata, e.Value));
                }
                else if (e.Key.Equals(opbendkey))
                {
                    Assert.IsTrue(Compares.AreDeepEqual(opbenddata, e.Value));
                }
            }
        }
 static void Assert_AreEqual(object expected, object actual)
 {
     Assert.IsTrue(Compares.AreDeepEqual(expected, actual));
 }
        public void CalculateSummaryEntity_ListOfSimpleObjects_ReturnsRightSummaryEntity(CalculateSummaryEntityUnitTestsTestsModel dataTest)
        {
            var actualResult = dataTest.Input.CalculateSummaryEntity();

            Assert.That(actualResult, Compares.To(dataTest.Expected));
        }
        public void FavorCarbonyl()
        {
            IAtomContainer container = CDK.SmilesParser.ParseSmiles("P([O-])=O");

            Assert.IsTrue(Compares.AreEqual(new long[] { 3, 2, 1 }, InChINumbersTools.GetUSmilesNumbers(container)));
        }
 public void ParseStandard()
 {
     Assert.IsTrue(Compares.AreEqual(
                       new long[] { 3, 2, 1 },
                       InChINumbersTools.ParseUSmilesNumbers("AuxInfo=1/0/N:3,2,1/rA:3OCC/rB:s1;s2;/rC:;;;", Mock(3))));
 }