forked from JuliaLang/julia
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add exercise: raindrops (JuliaLang#20)
- Loading branch information
1 parent
5d93fc2
commit 4c48dc6
Showing
4 changed files
with
100 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
# If the number has 3 as a factor, output 'Pling'. | ||
# If the number has 5 as a factor, output 'Plang'. | ||
# If the number has 7 as a factor, output 'Plong'. | ||
# If the number does not have 3, 5, or 7 as a factor, just pass the number's digits straight through. | ||
|
||
function raindrops(number::Int) | ||
drops = [] | ||
number % 3 == 0 && push!(drops, "Pling") | ||
number % 5 == 0 && push!(drops, "Plang") | ||
number % 7 == 0 && push!(drops, "Plong") | ||
if size(drops, 1) == 0 | ||
repr(number) | ||
else | ||
join(drops) | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
function raindrops(number::Int) | ||
|
||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
using Base.Test | ||
|
||
include("raindrops.jl") | ||
|
||
@testset "detect numbers" begin | ||
@testset "the sound for 1 is 1" begin | ||
@test raindrops(1) == "1" | ||
end | ||
@testset "2 to the power 3 does not make a raindrop sound as 3 is the exponent not the base" begin | ||
@test raindrops(8) == "8" | ||
end | ||
@testset "the sound for 52 is 52" begin | ||
@test raindrops(52) == "52" | ||
end | ||
end | ||
|
||
@testset "detect pling" begin | ||
@testset "the sound for 3 is Pling" begin | ||
@test raindrops(3) == "Pling" | ||
end | ||
@testset "the sound for 6 is Pling as it has a factor 3" begin | ||
@test raindrops(6) == "Pling" | ||
end | ||
@testset "the sound for 9 is Pling as it has a factor 3" begin | ||
@test raindrops(9) == "Pling" | ||
end | ||
@testset "the sound for 27 is Pling as it has a factor 3" begin | ||
@test raindrops(27) == "Pling" | ||
end | ||
end | ||
|
||
@testset "detect plang" begin | ||
@testset "the sound for 5 is Plang" begin | ||
@test raindrops(5) == "Plang" | ||
end | ||
@testset "the sound for 10 is Plang as it has a factor 5" begin | ||
@test raindrops(10) == "Plang" | ||
end | ||
@testset "the sound for 25 is Plang as it has a factor 5" begin | ||
@test raindrops(25) == "Plang" | ||
end | ||
@testset "the sound for 3125 is Plang as it has a factor 5" begin | ||
@test raindrops(3125) == "Plang" | ||
end | ||
end | ||
|
||
@testset "detect plong" begin | ||
@testset "the sound for 7 is Plong" begin | ||
@test raindrops(7) == "Plong" | ||
end | ||
@testset "the sound for 14 is Plong as it has a factor of 7" begin | ||
@test raindrops(14) == "Plong" | ||
end | ||
@testset "the sound for 49 is Plong as it has a factor 7" begin | ||
@test raindrops(49) == "Plong" | ||
end | ||
end | ||
|
||
@testset "detect multiple sounds" begin | ||
@testset "the sound for 15 is PlingPlang as it has factors 3 and 5" begin | ||
@test raindrops(15) == "PlingPlang" | ||
end | ||
@testset "the sound for 21 is PlingPlong as it has factors 3 and 7" begin | ||
@test raindrops(21) == "PlingPlong" | ||
end | ||
@testset "the sound for 35 is PlangPlong as it has factors 5 and 7" begin | ||
@test raindrops(35) == "PlangPlong" | ||
end | ||
@testset "the sound for 105 is PlingPlangPlong as it has factors 3, 5 and 7" begin | ||
@test raindrops(105) == "PlingPlangPlong" | ||
end | ||
end |