Sha256: 49a0d949eb3c208e0c217776ec8d4d9892665ce877a93014a6cb10f1c26904f2

Contents?: true

Size: 1.48 KB

Versions: 68

Compression:

Stored size: 1.48 KB

Contents

(* Test/exercise version: "1.1.0" *)

open Base
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

68 entries across 68 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.2.1.179 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.2.1.178 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.2.1.177 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.2.1.176 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.2.1.175 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.2.1.174 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.2.1.173 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.2.1.172 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.2.1.171 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.2.1.170 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.2.1.169 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.2.1.167 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.2.1.166 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.2.1.165 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.2.1.164 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.2.1.163 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.2.1.162 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.2.1.161 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.2.1.160 tracks/ocaml/exercises/run-length-encoding/test.ml