コード例 #1
0
        public void GcContentTests()
        {
            // Arrange
            var fasta = new Fasta();
            const int entryCount = 3;
            var highestGcRatio = 0m;
            const decimal expectedGcRatio = 60.919540m;
            var highestFastaLabel = "";
            const string expectedFastaLabel = "Rosalind_0808";

            // Act
            var entries = fasta.ReadEntries(@"Data\GC\GC_SampleDataSet.txt");
            foreach (var entry in entries)
            {
                var ratio = entry.Dna.CalculateGcRatio();
                if (ratio > highestGcRatio)
                {
                    highestGcRatio = ratio;
                    highestFastaLabel = entry.Label;
                }
            }

            highestGcRatio = Math.Round(highestGcRatio * 100, 6);

            // Assert
            Assert.That(entryCount, Is.EqualTo(entries.Count));
            Assert.That(expectedGcRatio, Is.EqualTo(highestGcRatio));
            Assert.That(expectedFastaLabel, Is.EqualTo(highestFastaLabel));
        }
コード例 #2
0
        /// <summary>
        /// Solves the GC problem (http://rosalind.info/problems/gc/).
        /// </summary>
        private static void SolveGc()
        {
            var fasta = new Fasta();
            var entries = fasta.ReadEntries(@"Data\GC\rosalind_gc.txt");
            var highestGCRatio = 0m;
            var highestFastaLabel = "";

            foreach (var entry in entries)
            {
                var ratio = entry.Dna.CalculateGcRatio();
                if (ratio > highestGCRatio)
                {
                    highestGCRatio = ratio;
                    highestFastaLabel = entry.Label;
                }
            }

            highestGCRatio = Math.Round(highestGCRatio*100, 6);

            var result = String.Format("{0}\n{1}%", highestFastaLabel, highestGCRatio).Replace(',', '.');
            SaveResult(@"Results\rosalind_gc_results.txt", result);
        }