1
exercism fetch julia run-length-encoding

runtests.jl

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using Base.Test

include("run-length-encoding.jl")


# Tests adapted from `problem-specifications//canonical-data.json` @ v1.0.0
# Encode and decode the strings under the given specifications.

@testset "encode strings" begin
    @test encode("") == ""
    @test encode("XYZ") == "XYZ"
    @test encode("AABBBCCCC") == "2A3B4C"
    @test encode("WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB") == "12WB12W3B24WB"
    @test encode("aabbbcccc") == "2a3b4c"
    @test encode("  hsqq qww  ") == "2 hs2q q2w2 "
end

@testset "decode strings" begin
    @test decode("") == ""
    @test decode("XYZ") == "XYZ"
    @test decode("2A3B4C") == "AABBBCCCC"
    @test decode("12WB12W3B24WB") == "WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB"
    @test decode("2a3b4c") == "aabbbcccc"
    @test decode("2 hs2q q2w2 ") == "  hsqq qww  "
end

@testset "encode then decode" begin
    @test decode(encode("zzz ZZ  zZ")) == "zzz ZZ  zZ"
end