Sha256: 45f950c10b0161892e71f52140bf32ab875327247dcc37d7709361d09c08ac97

Contents?: true

Size: 1.45 KB

Versions: 45

Compression:

Stored size: 1.45 KB

Contents

open Core.Std
open OUnit2
open Run_length_encoding

let ae exp got _test_ctxt = assert_equal exp got ~printer:Fn.id

let encode_tests = [
   "empty string" >::
     ae "" (encode "");
   "single characters only are encoded without count" >::
     ae "XYZ" (encode "XYZ");
   "string with no single characters" >::
     ae "2A3B4C" (encode "AABBBCCCC");
   "single characters mixed with repeated characters" >::
     ae "12WB12W3B24WB" (encode "WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB");
   "multiple whitespace mixed in string" >::
     ae "2 hs2q q2w2 " (encode "  hsqq qww  ");
   "lowercase characters" >::
     ae "2a3b4c" (encode "aabbbcccc");
]


let decode_tests = [
   "empty string" >::
     ae "" (decode "");
   "single characters only" >::
     ae "XYZ" (decode "XYZ");
   "string with no single characters" >::
     ae "AABBBCCCC" (decode "2A3B4C");
   "single characters with repeated characters" >::
     ae "WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB" (decode "12WB12W3B24WB");
   "multiple whitespace mixed in string" >::
     ae "  hsqq qww  " (decode "2 hs2q q2w2 ");
   "lower case string" >::
     ae "aabbbcccc" (decode "2a3b4c");
]


let encode_and_then_decode_tests = [
   "encode followed by decode gives original string" >::
     ae "zzz ZZ  zZ" (encode "zzz ZZ  zZ" |> decode);
]

let () =
  run_test_tt_main (
    "run length encoding tests" >:::
      List.concat [encode_tests; decode_tests; encode_and_then_decode_tests]
  )

Version data entries

45 entries across 45 versions & 1 rubygems

Version Path
trackler-2.1.0.12 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.1.0.11 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.1.0.10 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.1.0.9 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.1.0.8 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.1.0.7 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.1.0.6 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.1.0.5 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.1.0.4 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.1.0.3 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.1.0.2 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.1.0.1 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.1.0.0 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.0.8.55 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.0.8.54 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.0.8.53 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.0.8.52 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.0.8.51 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.0.8.50 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.0.8.49 tracks/ocaml/exercises/run-length-encoding/test.ml