/// <summary> /// General method to validate creation of Qualitative sequence. /// <param name="nodeName">xml node name.</param> /// <param name="parameters">Different Qualitative Sequence parameters.</param> /// </summary> void GeneralQualitativeSequence( string nodeName, QualitativeSequenceParameters parameters) { // Gets the actual sequence and the alphabet from the Xml IAlphabet alphabet = Utility.GetAlphabet(this.utilityObj.xmlUtil.GetTextValue( nodeName, Constants.AlphabetNameNode)); FastQFormatType expectedFormatType = Utility.GetFastQFormatType( this.utilityObj.xmlUtil.GetTextValue(nodeName, Constants.FastQFormatType)); QualitativeSequence createdQualitativeSequence = null; string inputSequence = this.utilityObj.xmlUtil.GetTextValue( nodeName, Constants.inputSequenceNode); string expectedSequence = this.utilityObj.xmlUtil.GetTextValue( nodeName, Constants.ExpectedSequenceNode); string expectedSequenceCount = this.utilityObj.xmlUtil.GetTextValue( nodeName, Constants.QSequenceCount); string inputScoreforIUPAC = this.utilityObj.xmlUtil.GetTextValue( nodeName, Constants.MaxScoreNode); string inputQuality = this.utilityObj.xmlUtil.GetTextValue( nodeName, Constants.InputByteArrayNode); byte[] byteArray = Encoding.UTF8.GetBytes(inputQuality); int index = 0; // Create and validate Qualitative Sequence. switch (parameters) { case QualitativeSequenceParameters.Score: createdQualitativeSequence = new QualitativeSequence(alphabet, expectedFormatType, inputSequence, Utility.GetDefaultEncodedQualityScores(expectedFormatType, inputSequence.Length)); // Validate score foreach (byte qualScore in createdQualitativeSequence.GetEncodedQualityScores()) { Assert.AreEqual(qualScore, Convert.ToInt32(inputScoreforIUPAC, (IFormatProvider)null)); } break; case QualitativeSequenceParameters.ByteArray: createdQualitativeSequence = new QualitativeSequence(alphabet, expectedFormatType, Encoding.UTF8.GetBytes(inputSequence), byteArray); // Validate score foreach (byte qualScore in createdQualitativeSequence.GetEncodedQualityScores()) { Assert.AreEqual(qualScore, Convert.ToInt32(byteArray[index], (IFormatProvider)null)); index++; } break; default: break; } // Validate createdSequence qualitative sequence. Assert.IsNotNull(createdQualitativeSequence); Assert.AreEqual(createdQualitativeSequence.Alphabet, alphabet); Assert.AreEqual(createdQualitativeSequence.ConvertToString(), expectedSequence); Assert.AreEqual(createdQualitativeSequence.Count.ToString((IFormatProvider)null), expectedSequenceCount); ApplicationLog.WriteLine(string.Format(null, "Qualitative Sequence P1:Qualitative Sequence {0} is as expected.", createdQualitativeSequence)); ApplicationLog.WriteLine(string.Format(null, "Qualitative Sequence P1:Qualitative Sequence Score {0} is as expected.", createdQualitativeSequence.GetEncodedQualityScores())); Assert.AreEqual(createdQualitativeSequence.FormatType, expectedFormatType); ApplicationLog.WriteLine(string.Format(null, "Qualitative Sequence P1:Qualitative format type {0} is as expected.", createdQualitativeSequence.FormatType)); }
/// <summary> /// General method to validate creation of Qualitative sequence. /// <param name="nodeName">xml node name.</param> /// <param name="parameters">Different Qualitative Sequence parameters.</param> /// </summary> void GeneralQualitativeSequence( string nodeName, QualitativeSequenceParameters parameters) { // Gets the actual sequence and the alphabet from the Xml IAlphabet alphabet = Utility.GetAlphabet(utilityObj.xmlUtil.GetTextValue( nodeName, Constants.AlphabetNameNode)); FastQFormatType expectedFormatType = Utility.GetFastQFormatType( utilityObj.xmlUtil.GetTextValue(nodeName, Constants.FastQFormatType)); QualitativeSequence createdQualitativeSequence = null; string inputSequence = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.inputSequenceNode); string expectedSequence = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.ExpectedSequenceNode); string expectedSequenceCount = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.QSequenceCount); string inputScoreforIUPAC = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.MaxScoreNode); string inputQuality = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.InputByteArrayNode); byte[] byteArray = Encoding.UTF8.GetBytes(inputQuality); int index = 0; // Create and validate Qualitative Sequence. switch (parameters) { case QualitativeSequenceParameters.Score: createdQualitativeSequence = new QualitativeSequence(alphabet, expectedFormatType, inputSequence, Utility.GetDefaultEncodedQualityScores(expectedFormatType, inputSequence.Length)); // Validate score foreach (byte qualScore in createdQualitativeSequence.GetEncodedQualityScores()) { Assert.AreEqual(qualScore, Convert.ToInt32(inputScoreforIUPAC, (IFormatProvider)null)); } break; case QualitativeSequenceParameters.ByteArray: createdQualitativeSequence = new QualitativeSequence(alphabet, expectedFormatType, Encoding.UTF8.GetBytes(inputSequence), byteArray); // Validate score foreach (byte qualScore in createdQualitativeSequence.GetEncodedQualityScores()) { Assert.AreEqual(qualScore, Convert.ToInt32(byteArray[index], (IFormatProvider)null)); index++; } break; default: break; } // Validate createdSequence qualitative sequence. Assert.IsNotNull(createdQualitativeSequence); Assert.AreEqual(createdQualitativeSequence.Alphabet, alphabet); Assert.AreEqual(createdQualitativeSequence.ConvertToString(), expectedSequence); Assert.AreEqual(createdQualitativeSequence.Count.ToString((IFormatProvider)null), expectedSequenceCount); ApplicationLog.WriteLine(string.Format(null, "Qualitative Sequence P1:Qualitative Sequence {0} is as expected.", createdQualitativeSequence)); ApplicationLog.WriteLine(string.Format(null, "Qualitative Sequence P1:Qualitative Sequence Score {0} is as expected.", createdQualitativeSequence.GetEncodedQualityScores())); Assert.AreEqual(createdQualitativeSequence.FormatType, expectedFormatType); ApplicationLog.WriteLine(string.Format(null, "Qualitative Sequence P1:Qualitative format type {0} is as expected.", createdQualitativeSequence.FormatType)); }