示例#1
0
        public void ValidateCopyTo()
        {
            // Get input and expected values from xml
            string expectedSequence = utilityObj.xmlUtil.GetTextValue(
                Constants.DnaDerivedSequenceNode, Constants.ExpectedSequence);
            string alphabetName = utilityObj.xmlUtil.GetTextValue(
                Constants.DnaDerivedSequenceNode, Constants.AlphabetNameNode);
            IAlphabet alphabet = Utility.GetAlphabet(alphabetName);

            // Create derived Sequence
            DerivedSequence seqObj = CreateDerivedSequence(
                alphabet, expectedSequence);

            byte[] array = new byte[expectedSequence.Length];
            seqObj.CopyTo(array, 0, expectedSequence.Length);
            StringBuilder builder = new StringBuilder();

            for (int i = 0; i < expectedSequence.Length; i++)
            {
                builder.Append((char)array[i]);
            }
            string actualValue = builder.ToString();

            Assert.AreEqual(expectedSequence, actualValue);

            //check with a part of the expected seq only
            seqObj.CopyTo(array, 0, 5);
            builder = new StringBuilder();
            for (int i = 0; i < 5; i++)
            {
                builder.Append((char)array[i]);
            }
            actualValue = builder.ToString();
            Assert.AreEqual(expectedSequence.Substring(0, 5), actualValue);
        }
 public void TestDeriveSequenceCopyTo()
 {
     ISequence seq = new Sequence(Alphabets.DNA, "ATCG");
     DerivedSequence derSeq = new DerivedSequence(seq, false, true);
     byte[] array = new byte[2];
     derSeq.CopyTo(array, 1, 2);
     string expectedValue = "AG";
     StringBuilder b = new StringBuilder();
     b.Append((char)array[0]);
     b.Append((char)array[1]);
     string actualValue = b.ToString();
     Assert.AreEqual(expectedValue, actualValue);
 }
示例#3
0
        public void TestDeriveSequenceCopyTo()
        {
            ISequence       seq    = new Sequence(Alphabets.DNA, "ATCG");
            DerivedSequence derSeq = new DerivedSequence(seq, false, true);

            byte[] array = new byte[2];
            derSeq.CopyTo(array, 1, 2);
            string        expectedValue = "AG";
            StringBuilder b             = new StringBuilder();

            b.Append((char)array[0]);
            b.Append((char)array[1]);
            string actualValue = b.ToString();

            Assert.AreEqual(expectedValue, actualValue);
        }
示例#4
0
        public void ValidateDerivedNullCopyTo()
        {
            // Pass protein sequences
            ISequence       seqObj  = new Sequence(Alphabets.Protein, "EEE");
            DerivedSequence deriSeq = new DerivedSequence(seqObj);

            // Pass null value and get the exception required
            try
            {
                deriSeq.CopyTo(null, 0);
                Assert.IsTrue(false);
            }
            catch (ArgumentNullException)
            {
                ApplicationLog.WriteLine(
                    "DerivedSequenceP2TestCases : Successfully validated the null exception for CopyTo() method");
                Console.WriteLine(
                    "DerivedSequenceP2TestCases : Successfully validated the null exception for CopyTo() method");
            }
        }
示例#5
0
        /// <summary>
        /// Creates a dna derived sequence after adding and removing few items from original sequence.
        /// Create a empty array and copy all sequence items derived sequence
        /// and validates it against expected sequence items.
        /// </summary>
        /// <param name="nodeName"></param>
        private void ValidateDerivedSequenceCopyTo(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);
            IAlphabet alphabet = Utility.GetAlphabet(alphabetName);

            // Create derived Sequence
            DerivedSequence derSequence = CreateDerivedSequence(
                alphabet, expectedSequence, addSequence, removeRange);

            ISequenceItem[] sequenceItems = new ISequenceItem[derSequence.Count];
            derSequence.CopyTo(sequenceItems, 0);

            // Validate copy of derived Sequence.
            int index = 0;

            foreach (ISequenceItem item in sequenceItems)
            {
                Assert.AreEqual(derivedSequence[index], item.Symbol);
                index++;
            }

            Console.WriteLine(
                "DerivedSequenceBvtTestCases:Validation of Clone() of derived sequence completed successfully");
            ApplicationLog.WriteLine(
                "DerivedSequenceBvtTestCases:Validation of Clone() of derived sequence completed successfully");
        }
示例#6
0
        public void ValidateDerivedInvalidIndexCopyTo()
        {
            // Pass protein sequences
            ISequence       seqObj     = new Sequence(Alphabets.Protein, "EEE");
            DerivedSequence deriSeqObj = new DerivedSequence(seqObj);

            ISequence tempSeqObj = new Sequence(Alphabets.Protein, "KIE");

            ISequenceItem[] seqItemObj = tempSeqObj.ToArray();

            // Pass invalid index value and get the exception required
            try
            {
                deriSeqObj.CopyTo(seqItemObj, -1);
                Assert.IsTrue(false);
            }
            catch (IndexOutOfRangeException)
            {
                ApplicationLog.WriteLine(
                    "DerivedSequenceP2TestCases : Successfully validated the index out of range exception for CopyTo() method");
                Console.WriteLine(
                    "DerivedSequenceP2TestCases : Successfully validated the index out of range exception for CopyTo() method");
            }
        }
示例#7
0
        public void InvalidateCopyTo()
        {
            // Get input and expected values from xml
            string expectedSequence = utilityObj.xmlUtil.GetTextValue(
                Constants.DnaDerivedSequenceNode, Constants.ExpectedSequence);
            string alphabetName = utilityObj.xmlUtil.GetTextValue(
                Constants.DnaDerivedSequenceNode, Constants.AlphabetNameNode);
            IAlphabet alphabet = Utility.GetAlphabet(alphabetName);

            // Create derived Sequence
            DerivedSequence seqObj = CreateDerivedSequence(
                alphabet, expectedSequence);

            //check with null array
            byte[] array = null;
            try
            {
                seqObj.CopyTo(array, 10, 20);
                Assert.Fail();
            }
            catch (ArgumentNullException anex)
            {
                ApplicationLog.WriteLine("Successfully caught ArgumentNullException : " + anex.Message);
            }

            //check with more than available length
            array = new byte[expectedSequence.Length];
            try
            {
                seqObj.CopyTo(array, 0, expectedSequence.Length + 100);
                Assert.Fail();
            }
            catch (ArgumentException aex)
            {
                ApplicationLog.WriteLine("Successfully caught ArgumentException : " + aex.Message);
            }

            //check with negative start
            array = new byte[expectedSequence.Length];
            try
            {
                seqObj.CopyTo(array, -5, expectedSequence.Length);
                Assert.Fail();
            }
            catch (ArgumentException aex)
            {
                ApplicationLog.WriteLine("Successfully caught ArgumentException : " + aex.Message);
            }

            //check with negative count
            array = new byte[expectedSequence.Length];
            try
            {
                seqObj.CopyTo(array, 0, -5);
                Assert.Fail();
            }
            catch (ArgumentException aex)
            {
                ApplicationLog.WriteLine("Successfully caught ArgumentException : " + aex.Message);
            }
        }