Skip to content

Commit

Permalink
Fix exercise etl: change type of io data to Dict
Browse files Browse the repository at this point in the history
  • Loading branch information
Andrey Makarov committed Feb 23, 2017
1 parent a4e7725 commit 7c3687d
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 20 deletions.
4 changes: 2 additions & 2 deletions exercises/etl/example.jl
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
function transform(input::AbstractArray)
function transform(input::Dict)
output = []
for i = input
for j = map(lowercase, i[2])
pair = (j, i[1])
push!(output, pair)
end
end
sort(output)
Dict(sort(output))
end

34 changes: 16 additions & 18 deletions exercises/etl/runtests.jl
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 7c3687d

Please sign in to comment.