/// <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())); }
/// <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."); }