public void ValidateDerivedIndexOfNull() { Sequence seqObj = new Sequence(Alphabets.Protein, "KIE"); // Valid index of validation DerivedSequence deriSeq = new DerivedSequence(seqObj); Assert.AreEqual(-1, deriSeq.IndexOf(null)); ApplicationLog.WriteLine( "DerivedSequenceP2TestCases : Successfully validated IndexOf() method with null values"); Console.WriteLine( "DerivedSequenceP2TestCases : Successfully validated the IndexOf() method with null values"); }
/// <summary> /// Creates a dna derived sequence after adding and removing few items from original sequence. /// Validates derived sequence index matches expected index of items using IndexOf(). /// </summary> /// <param name="nodeName">alphabet xml node.</param> private void ValidateDerivedSequenceIndexOf(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.RemoveRange); string addSequence = _utilityObj._xmlUtil.GetTextValue( nodeName, Constants.AddSequence); string derivedSequence = _utilityObj._xmlUtil.GetTextValue( nodeName, Constants.DerivedSequence); string indexOfSequence = _utilityObj._xmlUtil.GetTextValue( nodeName, Constants.IndexOfSequence); IAlphabet alphabet = Utility.GetAlphabet(alphabetName); // Create derived Sequence DerivedSequence derSequence = CreateDerivedSequence( alphabet, expectedSequence, addSequence, removeRange); // Validate IndexOf() derived Sequence. Assert.AreEqual(derivedSequence, derSequence.ToString()); Sequence sequence = new Sequence(alphabet, addSequence); string[] indices = indexOfSequence.Split(','); int index = 0; foreach (ISequenceItem item in sequence) { int position = derSequence.IndexOf(item); Assert.AreEqual(position.ToString((IFormatProvider)null), indices[index]); index++; } Console.WriteLine( "DerivedSequenceBvtTestCases:Validation of IndexOf() method of derived sequence completed successfully"); ApplicationLog.WriteLine( "DerivedSequenceBvtTestCases:Validation of IndexOf() method of derived sequence completed successfully"); }
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'); }