Example #1
0
        /// <summary>
        /// Validate general segmented sequence methods such as
        /// Add,Clear,replace,copyTo,Remove.
        /// <param name="nodeName">xml node name.</param
        /// <param name="methodName">Method Name</param>
        /// </summary>
        static void ValidateGeneralMethodsOfSegmentedSequence(
            string nodeName, segmentedSequenceParameters methodName)
        {
            // Gets the alphabet from the Xml
            string alphabet = Utility._xmlUtil.GetTextValue(
                nodeName, Constants.AlphabetNameNode);
            string expectedSegSeqCount = Utility._xmlUtil.GetTextValue(
                nodeName, Constants.SegmetedSeqCount);
            string inputSequence1 = Utility._xmlUtil.GetTextValue(
                nodeName, Constants.Sequence1);
            string expectedSegmentedSeqAfterAddingNucleotide = Utility._xmlUtil.GetTextValue(
                nodeName, Constants.ExpectedSeqAfterAdd);
            string expectedSegmentedSeqCountAfterAddingNucleotide = Utility._xmlUtil.GetTextValue(
                nodeName, Constants.ExpectedSequenceCountAfterSeqAdd);
            string inputSequence3 = Utility._xmlUtil.GetTextValue(
                nodeName, Constants.Sequence3);
            int index = 0;
            int j     = 1;

            Sequence          seq          = null;
            SegmentedSequence segmentedSeq = null;

            // create a Isequence.
            seq            = new Sequence(Utility.GetAlphabet(alphabet), inputSequence1);
            seq.IsReadOnly = false;

            // create a Segmented seqeunce
            segmentedSeq = new SegmentedSequence(seq);
            Assert.AreEqual(seq.ToString(), segmentedSeq.ToString());

            switch (methodName)
            {
            case segmentedSequenceParameters.Add:
                // Add all sequence items to the end of the sequence.
                foreach (ISequenceItem item in Utility.GetAlphabet(alphabet))
                {
                    segmentedSeq.Add(item);
                }

                // validate segmented sequence after adding sequence item.
                Assert.AreEqual(segmentedSeq.ToString(),
                                expectedSegmentedSeqAfterAddingNucleotide);
                Assert.AreEqual(segmentedSeq.Count.ToString((IFormatProvider)null),
                                expectedSegmentedSeqCountAfterAddingNucleotide);
                break;

            case segmentedSequenceParameters.Clear:
                // Clear all sequence items in segmented sequence.
                segmentedSeq.Clear();

                // validate segmented sequence after adding sequence item.
                Assert.IsEmpty(segmentedSeq.ToString());
                break;

            case segmentedSequenceParameters.CopyTo:
                // Copy sequence items to array.
                ISequenceItem[] iseqItems = new ISequenceItem[140];
                segmentedSeq.CopyTo(iseqItems, index);
                Assert.IsNotNull(iseqItems);

                // Validate array.
                foreach (ISequenceItem item in Utility.GetAlphabet(alphabet))
                {
                    Assert.AreEqual(iseqItems[index], segmentedSeq[index]);
                    Assert.AreEqual(iseqItems[index], segmentedSeq[index]);
                    Assert.AreEqual(iseqItems[index].Symbol, segmentedSeq[index].Symbol);
                    index++;
                }
                break;

            case segmentedSequenceParameters.Remove:
                //Remove sequence items in segmented sequence.
                foreach (ISequenceItem item in segmentedSeq)
                {
                    segmentedSeq.Remove(segmentedSeq[index]);
                    Assert.AreEqual(segmentedSeq.Count, Convert.ToInt32(expectedSegSeqCount) - j);
                    j++;
                    index++;
                    Console.WriteLine(string.Format(null,
                                                    "Segmented Sequence BVT: Segmented Sequence{0}  is as expected.",
                                                    segmentedSeq.ToString()));
                }
                break;

            case segmentedSequenceParameters.ReplaceChar:
                //Replace each sequence items with different.
                foreach (ISequenceItem item in segmentedSeq)
                {
                    segmentedSeq.Replace(index, inputSequence3[index]);
                    index++;
                }
                // Validate replaced character sequence.
                Assert.AreEqual(segmentedSeq.ToString(), inputSequence3);
                break;

            default:
                break;
            }

            Console.WriteLine(string.Format(null,
                                            "Segmented Sequence BVT: Segmented Sequence{0}  is as expected.",
                                            segmentedSeq.ToString()));
            Console.WriteLine(string.Format(null,
                                            "Segmented Sequence BVT: Segmented Sequence count{0}  is as expected.",
                                            segmentedSeq.Count.ToString()));
        }
Example #2
0
        /// <summary>
        /// General method to validate creation of Segmented sequence.
        /// <param name="nodeName">xml node name.</param>
        /// <param name="methodName">Method Name</param>
        /// </summary>
        static void ValidateSegmentedsequenceCreation(
            string nodeName, segmentedSequenceParameters methodName)
        {
            // Gets the alphabet from the Xml
            string alphabet = Utility._xmlUtil.GetTextValue(
                nodeName, Constants.AlphabetNameNode);
            string expectedSegmentedSeq = Utility._xmlUtil.GetTextValue(
                nodeName, Constants.ExpectedSequence);
            string inputSequence1 = Utility._xmlUtil.GetTextValue(
                nodeName, Constants.Sequence1);
            string inputSequence2 = Utility._xmlUtil.GetTextValue(
                nodeName, Constants.Sequence2);
            string inputSequence3 = Utility._xmlUtil.GetTextValue(
                nodeName, Constants.Sequence3);
            string inputSequence4 = Utility._xmlUtil.GetTextValue(
                nodeName, Constants.Sequence4);
            string inputSequence5 = Utility._xmlUtil.GetTextValue(
                nodeName, Constants.Sequence5);
            string inputSequence6 = Utility._xmlUtil.GetTextValue(
                nodeName, Constants.Sequence6);
            string inputSequence7 = Utility._xmlUtil.GetTextValue(
                nodeName, Constants.Sequence7);
            string expectedSegSeqCount = Utility._xmlUtil.GetTextValue(
                nodeName, Constants.SegmetedSeqCount);
            string expectedSeguencesCount = Utility._xmlUtil.GetTextValue(
                nodeName, Constants.SequencesCount);

            ISequence         seq          = null;
            ISequence         seq1         = null;
            ISequence         seq2         = null;
            ISequence         seq3         = null;
            ISequence         seq4         = null;
            ISequence         seq5         = null;
            ISequence         seq6         = null;
            ISequence         seq7         = null;
            List <ISequence>  seqList      = new List <ISequence>();
            SegmentedSequence segmentedSeq = null;

            // Logs information to the log file
            ApplicationLog.WriteLine(string.Format(null,
                                                   "Segmented Sequence BVT: Sequence {0} is expected.", alphabet));

            // create a Isequence.
            seq1 = new Sequence(Utility.GetAlphabet(alphabet), inputSequence1);
            seq2 = new Sequence(Utility.GetAlphabet(alphabet), inputSequence2);
            seq3 = new Sequence(Utility.GetAlphabet(alphabet), inputSequence3);
            seq4 = new Sequence(Utility.GetAlphabet(alphabet), inputSequence4);
            seq5 = new Sequence(Utility.GetAlphabet(alphabet), inputSequence5);
            seq6 = new Sequence(Utility.GetAlphabet(alphabet), inputSequence6);
            seq7 = new Sequence(Utility.GetAlphabet(alphabet), inputSequence7);

            // Add all sequences to sequence list.
            seqList.Add(seq1);
            seqList.Add(seq2);
            seqList.Add(seq3);
            seqList.Add(seq4);
            seqList.Add(seq5);
            seqList.Add(seq6);
            seqList.Add(seq7);
            switch (methodName)
            {
            case segmentedSequenceParameters.SegmentedsequenceList:
                // create a Segmented sequence with sequence list.
                segmentedSeq = new SegmentedSequence(seqList);

                // validate created segmented sequence list.
                Assert.AreEqual(expectedSegmentedSeq, segmentedSeq.ToString());
                Assert.AreSame(seq1, segmentedSeq.Sequences[0]);
                Assert.AreSame(seq2, segmentedSeq.Sequences[1]);
                Assert.AreSame(seq3, segmentedSeq.Sequences[2]);
                Assert.AreSame(seq4, segmentedSeq.Sequences[3]);
                Assert.AreSame(seq5, segmentedSeq.Sequences[4]);
                Assert.AreSame(seq6, segmentedSeq.Sequences[5]);
                Assert.AreSame(seq7, segmentedSeq.Sequences[6]);
                Console.WriteLine(string.Format(null,
                                                "Segmented Sequence BVT: Segmented Sequence{0}  is as expected.",
                                                segmentedSeq.ToString()));
                break;

            case segmentedSequenceParameters.SegmentedSequence:
                // create a Isequence.
                seq = new Sequence(Utility.GetAlphabet(alphabet), inputSequence1);

                // create a Segmented sequence
                segmentedSeq = new SegmentedSequence(seq);

                // validate expected segmented sequence.
                Assert.AreEqual(seq.ToString(), segmentedSeq.ToString());
                Console.WriteLine(string.Format(null,
                                                "Segmented Sequence BVT: Segmented Sequence{0}  is as expected.",
                                                segmentedSeq.ToString()));
                break;

            case segmentedSequenceParameters.Clone:
                // create a Segmented sequence with sequence list.
                segmentedSeq = new SegmentedSequence(seqList);

                // create a segmented sequences clone.
                SegmentedSequence segSequenceClone = segmentedSeq.Clone();

                // validate Clone sequence.
                Assert.AreEqual(segSequenceClone.ToString(), segmentedSeq.ToString());
                Assert.AreEqual(segSequenceClone.Count, segmentedSeq.Count);
                Assert.AreEqual(segSequenceClone.Sequences.Count, 7);
                Console.WriteLine(string.Format(null,
                                                "Segmented Sequence BVT: Segmented Sequence{0}  is as expected.",
                                                segmentedSeq.ToString()));
                break;

            default:
                break;
            }

            // Validate a created segmented Sequence
            Assert.AreEqual(segmentedSeq.Count.ToString((IFormatProvider)null),
                            expectedSegSeqCount);
            Assert.AreEqual(segmentedSeq.Sequences.Count.ToString((IFormatProvider)null),
                            expectedSeguencesCount);
            Assert.AreSame(Utility.GetAlphabet(alphabet), segmentedSeq.Alphabet);

            // Logs to the NUnit GUI (Console.Out) window
            Console.WriteLine(string.Format(null,
                                            "Segmented Sequence BVT: Segmented Sequence count{0} is as expected.",
                                            segmentedSeq.Sequences.Count.ToString((IFormatProvider)null)));
            Console.WriteLine(string.Format(null,
                                            "Segmented Sequence BVT: Segmented Sequences count{0} is as expected.",
                                            segmentedSeq.Count.ToString((IFormatProvider)null)));

            // Logs to the NUnit GUI (Console.Out) window
            ApplicationLog.WriteLine(
                "Segmented Sequence BVT: Segmented Sequence validation is completed successfully.");
        }