Sha256: d581f4702151900eba53f8b731f52ff19095730d843776b65b15b64a2a16d09d

Contents?: true

Size: 1.69 KB

Versions: 71

Compression:

Stored size: 1.69 KB

Contents

#if swift(>=3.0)
    import XCTest
#endif

class NucleotideCountTest: XCTestCase {
    func testEmptyDNAStringHasNoAdenosine() {
        let dna = DNA(strand: "")!
        let result = dna.count("A")
        let expected = 0
        XCTAssertEqual(result, expected)
    }

    func testEmptyDNAStringHasNoNucleotides() {
        let dna = DNA(strand: "")!
        let results = dna.counts()
        let expected = ["T": 0, "A": 0, "C": 0, "G": 0]
        XCTAssertEqual(results, expected)
    }

    func testRepetitiveCytidineGetsCounted() {
        let dna = DNA(strand: "CCCCC")!
        let result = dna.count("C")
        let expected = 5
        XCTAssertEqual(result, expected)
    }

    func testRepetitiveSequenceHasOnlyGuanosine() {
        let dna = DNA(strand: "GGGGGGGG")!
        let results = dna.counts()
        let expected = [ "A": 0, "T": 0, "C": 0, "G": 8 ]
        XCTAssertEqual(results, expected)
    }

    func testCountsByThymidine() {
        let dna = DNA(strand: "GGGGGTAACCCGG")!
        let result = dna.count("T")
        let expected = 1
        XCTAssertEqual(result, expected)
    }

    func testCountsANucleotideOnlyOnce() {
        let dna = DNA(strand: "CGATTGGG")!
        let result = dna.count("T")
        let expected = 2
        XCTAssertEqual(result, expected)
    }

    func testValidatesDNA() {
        XCTAssert(DNA(strand: "John") == nil )
    }

    func testCountsAllNucleotides() {
        let longStrand = "AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC"
        let dna = DNA(strand: longStrand)!
        let results = dna.counts()
        let expected = [ "A": 20, "T": 21, "C": 12, "G" : 17 ]
        XCTAssertEqual(results, expected)
    }
}

Version data entries

71 entries across 71 versions & 1 rubygems

Version Path
trackler-2.0.6.15 tracks/swift/exercises/nucleotide-count/NucleotideCountTest.swift
trackler-2.0.6.14 tracks/swift/exercises/nucleotide-count/NucleotideCountTest.swift
trackler-2.0.6.13 tracks/swift/exercises/nucleotide-count/NucleotideCountTest.swift
trackler-2.0.6.12 tracks/swift/exercises/nucleotide-count/NucleotideCountTest.swift
trackler-2.0.6.11 tracks/swift/exercises/nucleotide-count/NucleotideCountTest.swift
trackler-2.0.6.10 tracks/swift/exercises/nucleotide-count/NucleotideCountTest.swift
trackler-2.0.6.9 tracks/swift/exercises/nucleotide-count/NucleotideCountTest.swift
trackler-2.0.6.8 tracks/swift/exercises/nucleotide-count/NucleotideCountTest.swift
trackler-2.0.6.7 tracks/swift/exercises/nucleotide-count/NucleotideCountTest.swift
trackler-2.0.6.6 tracks/swift/exercises/nucleotide-count/NucleotideCountTest.swift
trackler-2.0.6.5 tracks/swift/exercises/nucleotide-count/NucleotideCountTest.swift
trackler-2.0.6.4 tracks/swift/exercises/nucleotide-count/NucleotideCountTest.swift
trackler-2.0.6.3 tracks/swift/exercises/nucleotide-count/NucleotideCountTest.swift
trackler-2.0.6.2 tracks/swift/exercises/nucleotide-count/NucleotideCountTest.swift
trackler-2.0.6.1 tracks/swift/exercises/nucleotide-count/NucleotideCountTest.swift
trackler-2.0.6.0 tracks/swift/exercises/nucleotide-count/NucleotideCountTest.swift
trackler-2.0.5.18 tracks/swift/exercises/nucleotide-count/NucleotideCountTest.swift
trackler-2.0.5.17 tracks/swift/exercises/nucleotide-count/NucleotideCountTest.swift
trackler-2.0.5.16 tracks/swift/exercises/nucleotide-count/NucleotideCountTest.swift
trackler-2.0.5.15 tracks/swift/exercises/nucleotide-count/NucleotideCountTest.swift