Sha256: 42f0d66d016195bfc5d7f2ab7e4e4b367ec47fb8dec3d6daf79ef2f16ecb3b32

Contents?: true

Size: 1.48 KB

Versions: 150

Compression:

Stored size: 1.48 KB

Contents

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

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

150 entries across 150 versions & 1 rubygems

Version Path
trackler-2.2.1.109 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.2.1.108 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.2.1.107 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.2.1.106 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.2.1.105 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.2.1.104 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.2.1.103 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.2.1.102 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.2.1.101 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.2.1.100 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.2.1.99 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.2.1.98 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.2.1.97 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.2.1.96 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.2.1.95 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.2.1.94 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.2.1.93 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.2.1.92 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.2.1.91 tracks/ocaml/exercises/run-length-encoding/test.ml
trackler-2.2.1.90 tracks/ocaml/exercises/run-length-encoding/test.ml