/// <summary> /// Creates a dna derived sequence after adding few items using Add() from original sequence. /// Validates it against expected sequence. /// </summary> /// <param name="nodeName">alphabet xml node.</param> private void ValidateDerivedSequenceAdd(string nodeName) { // Get input and expected values from xml string expectedSequence = _utilityObj._xmlUtil.GetTextValue( nodeName, Constants.ExpectedSequence); string alphabetName = _utilityObj._xmlUtil.GetTextValue( nodeName, Constants.AlphabetNameNode); string derivedSequence = _utilityObj._xmlUtil.GetTextValue( nodeName, Constants.AddDerivedSequence); string addSequence = _utilityObj._xmlUtil.GetTextValue( nodeName, Constants.AddSequence); IAlphabet alphabet = Utility.GetAlphabet(alphabetName); // Create derived Sequence. Sequence seq = new Sequence(alphabet, expectedSequence); DerivedSequence derSequence = new DerivedSequence(seq); // Add sequence item Sequence addSeq = new Sequence(alphabet, addSequence); foreach (ISequenceItem item in addSeq) { derSequence.Add(item); } // Validate Derived Sequence Assert.AreEqual(derivedSequence, derSequence.ToString()); Console.WriteLine( "DerivedSequenceBvtTestCases:Validation of Add() of derived sequence completed successfully"); ApplicationLog.WriteLine( "DerivedSequenceBvtTestCases:Validation of Add() of derived sequence completed successfully"); }
public void ValidateDerivedValidSequenceRemoveRangeGetUpdatedItems() { // Create sequence item and add the same to the derived sequence and validate on removing ISequence seqObj = new Sequence(Alphabets.DNA, "ACTCT"); ISequence tempObj = new Sequence(Alphabets.DNA, "GGG"); ISequenceItem seqItemObj = tempObj[0]; DerivedSequence deriSeqObj = new DerivedSequence(seqObj); deriSeqObj.Add(seqItemObj); seqItemObj = tempObj[1]; deriSeqObj.Add(seqItemObj); seqItemObj = tempObj[2]; deriSeqObj.Add(seqItemObj); deriSeqObj.RemoveRange(5, 3); IList <IndexedItem <UpdatedSequenceItem> > updateItems = deriSeqObj.GetUpdatedItems(); Assert.AreEqual(0, updateItems.Count); ApplicationLog.WriteLine( "DerivedSequenceP2TestCases : Successfully validated the GetUpdatedItems() method to be zero after remove range"); Console.WriteLine( "DerivedSequenceP2TestCases : Successfully validated the GetUpdatedItems() method to be zero after remove range"); }
public void ValidateDerivedAddNull() { ISequence seqObj = new Sequence(Alphabets.DNA, "AGCT"); DerivedSequence deriSeq = new DerivedSequence(seqObj); // Pass null value and get the exception required try { deriSeq.Add(null); Assert.IsTrue(false); } catch (ArgumentNullException) { ApplicationLog.WriteLine( "DerivedSequenceP2TestCases : Successfully validated the null exception"); Console.WriteLine( "DerivedSequenceP2TestCases : Successfully validated the null exception"); } }
public void ValidateDerivedAddInvalidSeqItem() { ISequence seqObj = new Sequence(Alphabets.DNA, "AGCT"); DerivedSequence deriSeq = new DerivedSequence(seqObj); ISequence proObj = new Sequence(Alphabets.Protein, "EEE"); // Insert invalid item and get Argument exception try { deriSeq.Add(proObj[0]); Assert.IsTrue(false); } catch (ArgumentException) { ApplicationLog.WriteLine( "DerivedSequenceP2TestCases : Successfully validated the argument exception"); Console.WriteLine( "DerivedSequenceP2TestCases : Successfully validated the argument exception"); } }
public void ValidateDerivedClearSeqItem() { // Pass protein sequences ISequence seqObj = new Sequence(Alphabets.Protein, "EEE"); ISequence tempObj = new Sequence(Alphabets.Protein, "KIE"); ISequenceItem seqItemObj = tempObj[0]; DerivedSequence deriSeq = new DerivedSequence(seqObj); // Add a sequence item to the derived sequence object deriSeq.Add(seqItemObj); // Validate if the Derived sequence is updated Assert.AreEqual(string.Concat(seqObj.ToString(), "K"), deriSeq.ToString()); deriSeq.Clear(); // Validate after clearing Assert.AreEqual(seqObj.ToString(), deriSeq.ToString()); ApplicationLog.WriteLine( "DerivedSequenceP2TestCases : Successfully validated the Clear method"); Console.WriteLine( "DerivedSequenceP2TestCases : Successfully validated the Clear method"); }
/// <summary> /// Creates a dna derived sequence after adding and removing few items from original sequence. /// </summary> /// <param name="source"></param> private static DerivedSequence CreateDerivedSequence( IAlphabet alphabet, string source, string addSeq, string removeString) { Sequence seq = new Sequence(alphabet, source); DerivedSequence derSequence = new DerivedSequence(seq); string[] removals = removeString.Split(','); // Add sequence item Sequence addSequence = new Sequence(alphabet, addSeq); foreach (ISequenceItem item in addSequence) { derSequence.Add(item); } // Remove few elements derSequence.RemoveRange(int.Parse(removals[0], null), int.Parse(removals[1], null)); return(derSequence); }
public void TestDerivedSequence() { Sequence seq = new Sequence(Alphabets.RNA, "ACUGUA"); DerivedSequence derSeq = new DerivedSequence(seq); derSeq.Insert(3, Alphabets.DNA.A); derSeq.RemoveAt(2); Assert.AreEqual(derSeq.ToString(), "ACAGUA"); derSeq.Insert(3, Alphabets.DNA.A); Assert.AreEqual(derSeq.ToString(), "ACAAGUA"); derSeq.RemoveAt(2); derSeq.RemoveAt(1); Assert.AreEqual(derSeq.ToString(), "AAGUA"); derSeq.Insert(1, 'C'); Assert.AreEqual(derSeq.ToString(), "ACAGUA"); derSeq.Replace(0, 'C'); Assert.AreEqual(derSeq.ToString(), "CCAGUA"); derSeq.ReplaceRange(1, "UA"); Assert.AreEqual(derSeq.ToString(), "CUAGUA"); derSeq.InsertRange(derSeq.Count, "UUAA"); Assert.AreEqual(derSeq.ToString(), "CUAGUAUUAA"); derSeq.InsertRange(0, "UUAA"); Assert.AreEqual(derSeq.ToString(), "UUAACUAGUAUUAA"); seq = new Sequence(Alphabets.DNA, "ACTGTA"); derSeq = new DerivedSequence(seq); derSeq.RemoveAt(3); derSeq.Insert(3, Alphabets.DNA.A); Assert.AreEqual(derSeq.ToString(), "ACTATA"); derSeq.InsertRange(derSeq.Count, "TTTT"); derSeq.RemoveRange(6, 4); Assert.AreEqual(derSeq.ToString(), "ACTATA"); derSeq.Insert(derSeq.Count, 'T'); Assert.AreEqual(derSeq.ToString(), "ACTATAT"); derSeq.Add(Alphabets.DNA.G); Assert.AreEqual(derSeq.ToString(), "ACTATATG"); Assert.AreEqual(0, derSeq.IndexOf(Alphabets.DNA.A)); Assert.IsTrue(derSeq.Contains(Alphabets.DNA.G)); Assert.IsTrue(derSeq.Remove(Alphabets.DNA.C)); Assert.AreEqual(derSeq.ToString(), "ATATATG"); Assert.IsFalse(derSeq.Contains(Alphabets.DNA.C)); Assert.IsFalse(derSeq.Remove(Alphabets.DNA.C)); Assert.AreEqual(derSeq.Source.ToString(), "ACTGTA"); derSeq.Clear(); Assert.AreEqual(derSeq.Source.ToString(), derSeq.ToString()); Assert.AreEqual(derSeq.Source.ToString(), "ACTGTA"); seq = new Sequence(Alphabets.DNA, "ACTGTA"); derSeq = new DerivedSequence(seq); derSeq.RemoveAt(3); derSeq.Insert(3, Alphabets.DNA.A); IList <IndexedItem <UpdatedSequenceItem> > updatedItems = derSeq.GetUpdatedItems(); Assert.AreEqual(updatedItems.Count, 2); Assert.AreEqual(updatedItems[0].Index, 3); Assert.AreEqual(updatedItems[0].Item.Type, UpdateType.Removed); Assert.AreEqual(updatedItems[1].Index, 4); Assert.AreEqual(updatedItems[1].Item.Type, UpdateType.Inserted); seq = new Sequence(Alphabets.DNA, "ACGTATAT"); derSeq = new DerivedSequence(seq); derSeq.RemoveAt(5); derSeq.RemoveAt(4); derSeq.RemoveAt(3); derSeq.RemoveAt(1); Assert.AreEqual(derSeq.ToString(), "AGAT"); updatedItems = derSeq.GetUpdatedItems(); Assert.AreEqual(updatedItems.Count, 4); Assert.AreEqual(updatedItems[0].Index, 1); Assert.AreEqual(updatedItems[0].Item.Type, UpdateType.Removed); Assert.AreSame(updatedItems[0].Item.SequenceItem, seq[1]); Assert.AreEqual(updatedItems[1].Index, 3); Assert.AreEqual(updatedItems[1].Item.Type, UpdateType.Removed); Assert.AreSame(updatedItems[1].Item.SequenceItem, seq[3]); Assert.AreEqual(updatedItems[2].Index, 4); Assert.AreEqual(updatedItems[2].Item.Type, UpdateType.Removed); Assert.AreSame(updatedItems[2].Item.SequenceItem, seq[4]); Assert.AreEqual(updatedItems[3].Index, 5); Assert.AreEqual(updatedItems[3].Item.Type, UpdateType.Removed); Assert.AreSame(updatedItems[3].Item.SequenceItem, seq[5]); seq = new Sequence(Alphabets.DNA, "ACGTATAT"); derSeq = new DerivedSequence(seq); derSeq.RemoveRange(1, 4); Assert.AreEqual(derSeq.ToString(), "ATAT"); seq = new Sequence(Alphabets.DNA, "ACGTATAT"); derSeq = new DerivedSequence(seq); derSeq.RemoveAt(1); derSeq.RemoveAt(2); derSeq.RemoveAt(5); derSeq.Insert(3, 'A'); updatedItems = derSeq.GetUpdatedItems(); Assert.AreEqual(updatedItems.Count, 4); Assert.AreEqual(updatedItems.Where(R => R.Item.Type == UpdateType.Removed).Count(), 3); Assert.AreEqual(updatedItems.Where(R => R.Item.Type == UpdateType.Inserted).Count(), 1); #region Test - IndexOfNonGap and LastIndexOfNonGap seq = new Sequence(Alphabets.RNA, "--ACUGUA-"); derSeq = new DerivedSequence(seq); Assert.AreEqual(seq.IndexOfNonGap(), 2); Assert.AreEqual(seq.IndexOfNonGap(1), 2); Assert.AreEqual(seq.IndexOfNonGap(4), 4); Assert.AreEqual(seq.IndexOfNonGap(8), -1); Assert.AreEqual(seq.LastIndexOfNonGap(), 7); Assert.AreEqual(seq.LastIndexOfNonGap(seq.Count - 1), 7); Assert.AreEqual(seq.LastIndexOfNonGap(7), 7); Assert.AreEqual(seq.LastIndexOfNonGap(5), 5); Assert.AreEqual(seq.IndexOfNonGap(), derSeq.IndexOfNonGap()); Assert.AreEqual(seq.IndexOfNonGap(1), derSeq.IndexOfNonGap(1)); Assert.AreEqual(seq.IndexOfNonGap(4), derSeq.IndexOfNonGap(4)); Assert.AreEqual(seq.IndexOfNonGap(8), derSeq.IndexOfNonGap(8)); Assert.AreEqual(seq.LastIndexOfNonGap(), derSeq.LastIndexOfNonGap()); Assert.AreEqual(seq.LastIndexOfNonGap(seq.Count - 1), derSeq.LastIndexOfNonGap(derSeq.Count - 1)); Assert.AreEqual(seq.LastIndexOfNonGap(7), derSeq.LastIndexOfNonGap(7)); Assert.AreEqual(seq.LastIndexOfNonGap(5), derSeq.LastIndexOfNonGap(5)); #endregion Test - IndexOfNonGap and LastIndexOfNonGap seq = new Sequence(Alphabets.RNA, "ACUGUA"); derSeq = new DerivedSequence(seq); derSeq.Insert(3, new Nucleotide('A', "RNACHAR")); derSeq.RemoveAt(2); Assert.AreEqual(derSeq.ToString(), "ACAGUA"); CompoundNucleotide cn = new CompoundNucleotide('M', "Compound"); cn.Add(new Nucleotide('A', "Item A"), 30); cn.Add(new Nucleotide('C', "Item C"), 20); derSeq.Insert(3, cn); Assert.AreEqual(derSeq[2].Symbol, 'A'); Assert.AreEqual(derSeq[2].Name, "RNACHAR"); Assert.AreEqual(derSeq[3].Symbol, 'M'); }