Sha256: 743d00e855a14ab01c16a2381d09ae25160a6b2a1ca5fa5eb7b5f87636467ea1

Contents?: true

Size: 1.72 KB

Versions: 32

Compression:

Stored size: 1.72 KB

Contents

require "spec"
require "../src/*"

describe "RunLengthEncoding" do
  it "encode empty string" do
    RunLengthEncoding.encode("").should eq("")
  end

  pending "encode single characters only are encoded without count" do
    RunLengthEncoding.encode("XYZ").should eq("XYZ")
  end

  pending "encode string with no single characters" do
    RunLengthEncoding.encode("AABBBCCCC").should eq("2A3B4C")
  end

  pending "encode single characters mixed with repeated characters" do
    RunLengthEncoding.encode("WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB").should eq("12WB12W3B24WB")
  end

  pending "encode multiple whitespace mixed in string" do
    RunLengthEncoding.encode("  hsqq qww  ").should eq("2 hs2q q2w2 ")
  end

  pending "encode lowercase characters" do
    RunLengthEncoding.encode("aabbbcccc").should eq("2a3b4c")
  end

  pending "decode empty string" do
    RunLengthEncoding.decode("").should eq("")
  end

  pending "decode single characters only" do
    RunLengthEncoding.decode("XYZ").should eq("XYZ")
  end

  pending "decode string with no single characters" do
    RunLengthEncoding.decode("2A3B4C").should eq("AABBBCCCC")
  end

  pending "decode single characters with repeated characters" do
    RunLengthEncoding.decode("12WB12W3B24WB").should eq("WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB")
  end

  pending "decode multiple whitespace mixed in string" do
    RunLengthEncoding.decode("2 hs2q q2w2 ").should eq("  hsqq qww  ")
  end

  pending "decode lower case string" do
    RunLengthEncoding.decode("2a3b4c").should eq("aabbbcccc")
  end

  pending "encode followed by decode gives original string" do
    RunLengthEncoding.decode(RunLengthEncoding.encode("zzz ZZ  zZ")).should eq("zzz ZZ  zZ")
  end
end

Version data entries

32 entries across 32 versions & 1 rubygems

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