Skip to content

Commit

Permalink
Merge pull request JuliaLang#49 from aawray/ex-etl
Browse files Browse the repository at this point in the history
Add exercise: etl
  • Loading branch information
SaschaMann committed Feb 26, 2017
2 parents 6fa4139 + 0bc81c9 commit 62e0715
Show file tree
Hide file tree
Showing 4 changed files with 60 additions and 0 deletions.
9 changes: 9 additions & 0 deletions config.json
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,15 @@
"filtering"
]
},
{
"slug": "etl",
"difficulty": 2,
"topics": [
"arrays",
"strings",
"sorting"
]
},
{
"slug": "bob",
"difficulty": 2,
Expand Down
4 changes: 4 additions & 0 deletions exercises/etl/etl.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
function transform(input::AbstractArray)

end

11 changes: 11 additions & 0 deletions exercises/etl/example.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
function transform(input::Dict)
output = []
for i = input
for j = map(lowercase, i[2])
pair = (j, i[1])
push!(output, pair)
end
end
Dict(output)
end

36 changes: 36 additions & 0 deletions exercises/etl/runtests.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
using Base.Test

include("etl.jl")

@testset "a single letter" begin
input = Dict(1=>['A'])
output = Dict('a'=>1)
@test transform(input) == output
end

@testset "single score with multiple letters" begin
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 = 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 = 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 62e0715

Please sign in to comment.