Sha256: 3601e44cb2c2d702a76490f09be50fb33058fd0bd3467f27c2a93b5ab9a92ae3

Contents?: true

Size: 1.29 KB

Versions: 176

Compression:

Stored size: 1.29 KB

Contents

open Core.Std
open OUnit2

module CMap = Char.Map

(* Assert Int Equals *)
let aie exp got _test_ctxt =
  let printer = Int.to_string in
  assert_equal exp got ~printer
(* Assert Map Equals *)
let ame exp got =
  let printer m = CMap.sexp_of_t Int.sexp_of_t m |> Sexp.to_string_hum ~indent:1 in
  assert_equal exp got ~cmp:(CMap.equal (=)) ~printer

let tests =
  ["empty dna string has no adenine">::
    aie 0 (Nucleotide_count.count "" 'A');
   "empty dna string has no nucleotides">:: (fun _ ->
    let exp = CMap.empty in
    ame exp (Nucleotide_count.nucleotide_counts ""));
   "repetitive cytosine gets counted">::
    aie 5 (Nucleotide_count.count "CCCCC" 'C');
   "repetitive sequence has only guanine">:: (fun _ ->
    let exp = CMap.singleton 'G' 8 in
    ame exp (Nucleotide_count.nucleotide_counts "GGGGGGGG"));
   "counts only thymine">::
    aie 1 (Nucleotide_count.count "GGGGGTAACCCGG" 'T');
   "dna has no uracil">::
    aie 0 (Nucleotide_count.count "GATTACA" 'U');
   "counts all nucleotides">:: (fun _ ->
    let s = "AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC" in
    let exp = CMap.of_alist_exn [('A', 20); ('T', 21); ('C', 12); ('G', 17)] in
    ame exp (Nucleotide_count.nucleotide_counts s))
  ]

let () =
  run_test_tt_main ("nucleotide-counts tests" >::: tests)

Version data entries

176 entries across 176 versions & 1 rubygems

Version Path
trackler-2.1.0.21 tracks/ocaml/exercises/nucleotide-count/test.ml
trackler-2.1.0.20 tracks/ocaml/exercises/nucleotide-count/test.ml
trackler-2.1.0.19 tracks/ocaml/exercises/nucleotide-count/test.ml
trackler-2.1.0.18 tracks/ocaml/exercises/nucleotide-count/test.ml
trackler-2.1.0.17 tracks/ocaml/exercises/nucleotide-count/test.ml
trackler-2.1.0.16 tracks/ocaml/exercises/nucleotide-count/test.ml
trackler-2.1.0.15 tracks/ocaml/exercises/nucleotide-count/test.ml
trackler-2.1.0.14 tracks/ocaml/exercises/nucleotide-count/test.ml
trackler-2.1.0.13 tracks/ocaml/exercises/nucleotide-count/test.ml
trackler-2.1.0.12 tracks/ocaml/exercises/nucleotide-count/test.ml
trackler-2.1.0.11 tracks/ocaml/exercises/nucleotide-count/test.ml
trackler-2.1.0.10 tracks/ocaml/exercises/nucleotide-count/test.ml
trackler-2.1.0.9 tracks/ocaml/exercises/nucleotide-count/test.ml
trackler-2.1.0.8 tracks/ocaml/exercises/nucleotide-count/test.ml
trackler-2.1.0.7 tracks/ocaml/exercises/nucleotide-count/test.ml
trackler-2.1.0.6 tracks/ocaml/exercises/nucleotide-count/test.ml
trackler-2.1.0.5 tracks/ocaml/exercises/nucleotide-count/test.ml
trackler-2.1.0.4 tracks/ocaml/exercises/nucleotide-count/test.ml
trackler-2.1.0.3 tracks/ocaml/exercises/nucleotide-count/test.ml
trackler-2.1.0.2 tracks/ocaml/exercises/nucleotide-count/test.ml