diff --git a/exercises/etl/example.jl b/exercises/etl/example.jl index 5b6482fc6c736..61939e8fa911c 100644 --- a/exercises/etl/example.jl +++ b/exercises/etl/example.jl @@ -1,4 +1,4 @@ -function transform(input::AbstractArray) +function transform(input::Dict) output = [] for i = input for j = map(lowercase, i[2]) @@ -6,6 +6,6 @@ function transform(input::AbstractArray) push!(output, pair) end end - sort(output) + Dict(sort(output)) end diff --git a/exercises/etl/runtests.jl b/exercises/etl/runtests.jl index d59a6fb8abc4d..cfc60cbd2b426 100644 --- a/exercises/etl/runtests.jl +++ b/exercises/etl/runtests.jl @@ -1,38 +1,36 @@ using Base.Test -# transforms the set of scrabble data previously indexed by the tile score -# to a set of data indexed by the tile letter include("etl.jl") @testset "a single letter" begin - input = [(1, ["A"])] - output = [("a", 1)] + input = Dict(1=>["A"]) + output = Dict("a"=>1) @test transform(input) == output end @testset "single score with multiple letters" begin - input = [(1, ["A", "E", "I", "O", "U"])] - output = [("a", 1), ("e", 1), ("i", 1), ("o", 1), ("u", 1)] + input = Dict(1=>["A", "E", "I", "O", "U"]) + output = Dict("a"=>1, "e"=>1, "i"=>1, "o"=>1, "u"=>1) @test transform(input) == output end @testset "multiple scores with multiple letters" begin - input = [(1, ["A", "E"]), (2, ["D", "G"])] - output = [("a", 1), ("d", 2), ("e", 1), ("g", 2)] + input = Dict(1=>["A", "E"], 2=>["D", "G"]) + output = Dict("g"=>2, "e"=>1, "a"=>1, "d"=>2) @test transform(input) == output end @testset "multiple scores with differing numbers of letters" begin - input = [(1, [ "A", "E", "I", "O", "U", "L", "N", "R", "S", "T" ]), - (2, [ "D", "G" ]), (3, [ "B", "C", "M", "P" ]), - (4, [ "F", "H", "V", "W", "Y" ]), (5, [ "K" ]), - (8, [ "J", "X" ]), (10, [ "Q", "Z" ])] - output = [("a", 1), ("b", 3), ("c", 3), ("d", 2), ("e", 1), - ("f", 4), ("g", 2), ("h", 4), ("i", 1), ("j", 8), - ("k", 5), ("l", 1), ("m", 3), ("n", 1), ("o", 1), - ("p", 3), ("q", 10), ("r", 1), ("s", 1), ("t", 1), - ("u", 1), ("v", 4), ("w", 4), ("x", 8), ("y", 4), - ("z", 10)] + input = Dict(1=>[ "A", "E", "I", "O", "U", "L", "N", "R", "S", "T" ], + 2=>[ "D", "G" ], 3=>[ "B", "C", "M", "P" ], + 4=>[ "F", "H", "V", "W", "Y" ], 5=>[ "K" ], + 8=>[ "J", "X" ], 10=>[ "Q", "Z" ]) + output = Dict("a"=>1, "b"=>3, "c"=>3, "d"=>2, "e"=>1, + "f"=>4, "g"=>2, "h"=>4, "i"=>1, "j"=>8, + "k"=>5, "l"=>1, "m"=>3, "n"=>1, "o"=>1, + "p"=>3, "q"=>10, "r"=>1, "s"=>1, "t"=>1, + "u"=>1, "v"=>4, "w"=>4, "x"=>8, "y"=>4, + "z"=>10) @test transform(input) == output end