예제 #1
0
        // make sure auxiliary fields like title & comments can serialise/deserialise
        private void CheckTextFields()
        {
            WriteLine("Checking integrity of text fields");

            var dummyTitle    = "some title";
            var dummyOrigin   = "some origin";
            var dummyComments = new string[] { "comment1", "comment2" };

            var model1 = new Bayesian(CircularFingerprinterClass.ECFP6)
            {
                NoteTitle    = dummyTitle,
                NoteOrigin   = dummyOrigin,
                NoteComments = dummyComments
            };

            Bayesian model2 = null;

            try
            {
                model2 = Bayesian.Deserialise(model1.Serialise());
            }
            catch (IOException ex)
            {
                throw new CDKException("Reserialisation failed", ex);
            }

            if (!dummyTitle.Equals(model1.NoteTitle, StringComparison.Ordinal) ||
                !dummyTitle.Equals(model2.NoteTitle, StringComparison.Ordinal) ||
                !dummyOrigin.Equals(model1.NoteOrigin, StringComparison.Ordinal) ||
                !dummyOrigin.Equals(model2.NoteOrigin, StringComparison.Ordinal))
            {
                throw new CDKException("Note integrity failure for origin");
            }

            var comments1 = model1.NoteComments;
            var comments2 = model2.NoteComments;

            if (comments1.Count != dummyComments.Length ||
                comments2.Count != dummyComments.Length ||
                !comments1[0].Equals(dummyComments[0], StringComparison.Ordinal) ||
                !comments2[0].Equals(dummyComments[0], StringComparison.Ordinal) ||
                !comments1[1].Equals(dummyComments[1], StringComparison.Ordinal) ||
                !comments2[1].Equals(dummyComments[1], StringComparison.Ordinal))
            {
                throw new CDKException("Note integrity failure for origin");
            }
        }