/// <summary> /// Creates a dna derived sequence after removing few items using RemoveAt() from original sequence. /// Validates it against expected sequence. /// </summary> /// <param name="nodeName">alphabet xml node.</param> private void ValidateDerivedSequenceRemoveAt(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 removeRange = _utilityObj._xmlUtil.GetTextValue( nodeName, Constants.RemoveRange1); string derivedSequence = _utilityObj._xmlUtil.GetTextValue( nodeName, Constants.RemoveDerivedSequence2); IAlphabet alphabet = Utility.GetAlphabet(alphabetName); // Create derived Sequence. Sequence seq = new Sequence(alphabet, expectedSequence); DerivedSequence derSequence = new DerivedSequence(seq); string[] removals = removeRange.Split(','); int position = int.Parse(removals[0], null); int length = int.Parse(removals[1], null); // Remove items for (int index = position; index <= length; index++) { derSequence.RemoveAt(index); } // Validate Derived Sequence Assert.AreEqual(derivedSequence, derSequence.ToString()); Console.WriteLine( "DerivedSequenceBvtTestCases:Validation of RemoveAt() of derived sequence completed successfully"); ApplicationLog.WriteLine( "DerivedSequenceBvtTestCases:Validation of RemoveAt() of derived sequence completed successfully"); }
public void DerivedSequenceClone() { Sequence seq = new Sequence(Alphabets.RNA, "ACUGA"); DerivedSequence derSeq = new DerivedSequence(seq); derSeq.RemoveAt(0); Assert.AreEqual(derSeq.ToString(), "CUGA"); derSeq.RemoveAt(2); Assert.AreEqual(derSeq.ToString(), "CUA"); derSeq.Insert(2, Alphabets.RNA.C); Assert.AreEqual(derSeq.ToString(), "CUCA"); DerivedSequence cloneCopy = derSeq.Clone(); Assert.AreNotSame(derSeq, cloneCopy); Assert.AreNotSame(derSeq.Source, cloneCopy.Source); Assert.AreEqual(derSeq.ToString(), cloneCopy.ToString()); }
public void TestDerivedSequenceWithBinaryFormatter() { Stream stream = null; try { stream = File.Open("DerivedSequence.data", FileMode.Create); BinaryFormatter formatter = new BinaryFormatter(); Sequence seq = new Sequence(Alphabets.RNA, "ACUGA"); DerivedSequence derSeq = new DerivedSequence(seq); derSeq.RemoveAt(0); Assert.AreEqual(derSeq.ToString(), "CUGA"); derSeq.RemoveAt(2); Assert.AreEqual(derSeq.ToString(), "CUA"); derSeq.Insert(2, Alphabets.RNA.C); Assert.AreEqual(derSeq.ToString(), "CUCA"); derSeq.Insert(2, new Nucleotide('C', "Rna")); Assert.AreEqual(derSeq.ToString(), "CUCCA"); formatter.Serialize(stream, derSeq); stream.Seek(0, SeekOrigin.Begin); DerivedSequence deserializedDerSeq = (DerivedSequence)formatter.Deserialize(stream); Assert.AreEqual(deserializedDerSeq.ToString(), derSeq.ToString()); Assert.AreEqual(deserializedDerSeq[2], derSeq[2]); Assert.AreEqual(deserializedDerSeq[2].Symbol, derSeq[2].Symbol); Assert.AreEqual(deserializedDerSeq[2].Name, derSeq[2].Name); } catch (Exception) { Assert.Fail(); } finally { if (stream != null) { stream.Close(); stream = null; } } }
public void ValidateDerivedInvalidRemoveAt() { // Pass protein sequences ISequence seqObj = new Sequence(Alphabets.DNA, "AAGGTT"); DerivedSequence deriSeqObj = new DerivedSequence(seqObj); // Pass invalid index value and get the exception required try { deriSeqObj.RemoveAt(-1); Assert.IsTrue(false); } catch (ArgumentOutOfRangeException) { ApplicationLog.WriteLine( "DerivedSequenceP2TestCases : Successfully validated the exception for RemoveAt() method"); Console.WriteLine( "DerivedSequenceP2TestCases : Successfully validated the exception for RemoveAt() method"); } }
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'); }