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)); }
/// <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); }