Ejemplo n.º 1
0
        public void SparseSequenceClone()
        {
            SparseSequence sparseSeq = new SparseSequence(Alphabets.DNA);

            sparseSeq.Count = 50;
            sparseSeq[0]    = Alphabets.DNA.C;
            sparseSeq[5]    = Alphabets.DNA.G;
            sparseSeq[30]   = Alphabets.DNA.C;
            sparseSeq[44]   = Alphabets.DNA.A;
            sparseSeq[45]   = new Nucleotide('A', "Nucleotide A");
            CompoundNucleotide cn = new CompoundNucleotide('M', "Compound");

            cn.Add(new Nucleotide('A', "Item A"), 30);
            cn.Add(new Nucleotide('C', "Item C"), 20);
            sparseSeq[46] = cn;

            Assert.AreEqual(sparseSeq.Count, 50);
            Assert.AreEqual(sparseSeq.Alphabet, Alphabets.DNA);
            Assert.AreSame(sparseSeq[0], Alphabets.DNA.C);
            Assert.AreSame(sparseSeq[5], Alphabets.DNA.G);
            Assert.AreSame(sparseSeq[30], Alphabets.DNA.C);
            Assert.AreSame(sparseSeq[44], Alphabets.DNA.A);
            Assert.AreEqual(sparseSeq[45].Symbol, 'A');
            Assert.AreSame(sparseSeq[46], cn);
            Assert.AreNotSame(sparseSeq[46], Alphabets.DNA.AC);
            for (int i = 0; i < sparseSeq.Count; i++)
            {
                if (i != 0 && i != 5 && i != 30 && i != 44 && i != 45 && i != 46)
                {
                    Assert.IsNull(sparseSeq[i]);
                }
            }

            SparseSequence sparseSeqClone = sparseSeq.Clone();

            Assert.AreEqual(sparseSeqClone.Count, 50);
            Assert.AreEqual(sparseSeqClone.Alphabet, Alphabets.DNA);
            Assert.AreSame(sparseSeqClone[0], Alphabets.DNA.C);
            Assert.AreSame(sparseSeqClone[5], Alphabets.DNA.G);
            Assert.AreSame(sparseSeqClone[30], Alphabets.DNA.C);
            Assert.AreSame(sparseSeqClone[44], Alphabets.DNA.A);
            Assert.AreNotSame(sparseSeqClone[46], cn);
            Assert.AreNotSame(sparseSeqClone[46], Alphabets.DNA.AC);
            Assert.AreEqual(sparseSeqClone[46].Symbol, 'M');
            cn = sparseSeqClone[46] as CompoundNucleotide;
            IList <ISequenceItem> sequenceItems = cn.SequenceItems;

            Assert.AreEqual(sequenceItems.Count, 2);
            Assert.IsTrue(sequenceItems.First(I => I.Symbol == 'A') != null);
            Assert.IsTrue(sequenceItems.First(I => I.Symbol == 'C') != null);

            for (int i = 0; i < sparseSeqClone.Count; i++)
            {
                if (i != 0 && i != 5 && i != 30 && i != 44 && i != 45 && i != 46)
                {
                    Assert.IsNull(sparseSeqClone[i]);
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Creates a sparse sequence and inserts sequence items of alphabet.
        /// Creates copy of sparse sequence object using clone() method.
        /// and Validates if copy of sparse sequence is as expected.
        /// </summary>
        /// <param name="alphabet">alphabet instance.</param>
        private void ValidateSparseSequenceCopy(IAlphabet alphabet)
        {
            SparseSequence sparseSequence = CreateSparseSequence(alphabet, 15);
            SparseSequence sparseSeqCopy  = sparseSequence.Clone();

            // Retrieve all stored sequence items and validate Sparse Sequence
            int retrieveIndex = 15;

            foreach (ISequenceItem item in alphabet)
            {
                // Validate new added items
                Assert.IsTrue(sparseSeqCopy.Contains(item));
                Assert.AreEqual(sparseSeqCopy.IndexOf(item), retrieveIndex);
                Assert.AreEqual(item, sparseSeqCopy[retrieveIndex]);
                Assert.AreEqual(item.Symbol, sparseSeqCopy[retrieveIndex].Symbol);
                retrieveIndex++;
            }

            Console.WriteLine(
                "SparseSequenceBVT: Validation of copy of sparse sequence object is completed");
            ApplicationLog.WriteLine(
                "SparseSequenceBVT:  Validation of copy of sparse sequence object is completed");
        }