Skip to content

Commit 04ef68b

Browse files
authored
Ch2 Consolidate getting started guides (#144)
* Ch2 Consolidate getting started guides * peaking -> peeking
1 parent ee57b93 commit 04ef68b

File tree

6 files changed

+126
-271
lines changed

6 files changed

+126
-271
lines changed

exercises/chapter2/spago.dhall

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,15 @@
22
Welcome to a Spago project!
33
You can edit this file as you like.
44
-}
5-
{ name =
6-
"my-project"
5+
{ name = "my-project"
76
, dependencies =
8-
[ "console", "effect", "math", "psci-support" ]
9-
, packages =
10-
./packages.dhall
11-
, sources =
12-
[ "src/**/*.purs", "test/**/*.purs" ]
7+
[ "console"
8+
, "effect"
9+
, "lists"
10+
, "math"
11+
, "psci-support"
12+
, "test-unit"
13+
]
14+
, packages = ./packages.dhall
15+
, sources = [ "src/**/*.purs", "test/**/*.purs" ]
1316
}

exercises/chapter2/src/Euler.purs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
module Euler where
2+
3+
import Prelude
4+
import Data.List (range, filter)
5+
import Data.Foldable (sum)
6+
7+
ns n = range 0 (n - 1)
8+
9+
multiples n = filter (\n -> mod n 3 == 0 || mod n 5 == 0) (ns n)
10+
11+
answer n = sum (multiples n)

exercises/chapter2/src/Main.purs

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,8 @@
11
module Main where
22

33
import Prelude
4+
import Euler (answer)
5+
import Effect.Console (log)
46

5-
import Effect.Console (logShow)
6-
import Math (sqrt)
7-
8-
9-
diagonal :: Number -> Number -> Number
10-
diagonal w h = sqrt (w * w + h * h)
11-
12-
main = logShow (diagonal 3.0 4.0)
7+
main = do
8+
log ("The answer is " <> show (answer 1000))

exercises/chapter2/test/Main.purs

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,41 @@
11
module Test.Main where
22

33
import Prelude
4-
4+
import Test.Solutions
55
import Effect (Effect)
6-
import Effect.Class.Console (log)
6+
import Euler (answer)
7+
import Test.Unit (suite, test)
8+
import Test.Unit.Assert as Assert
9+
import Test.Unit.Main (runTest)
710

811
main :: Effect Unit
912
main = do
10-
log "🍝"
11-
log "You should add some tests."
13+
runTest do
14+
suite "Euler - Sum of Multiples" do
15+
test "below 10" do
16+
Assert.equal 23 (answer 10)
17+
test "below 1000" do
18+
Assert.equal 233168 (answer 1000)
19+
20+
{- Move this block comment starting point to enable more tests
21+
suite "diagonal" do
22+
test "3 4 5" do
23+
Assert.equal 5.0 (diagonal 3.0 4.0)
24+
test "5 12 13" do
25+
Assert.equal 13.0 (diagonal 5.0 12.0)
26+
suite "circleArea" do
27+
test "radius 1" do
28+
Assert.equal 3.141592653589793 (circleArea 1.0)
29+
test "radius 3" do
30+
Assert.equal 28.274333882308138 (circleArea 3.0)
31+
suite "circleArea" do
32+
test "radius 1" do
33+
Assert.equal 3.141592653589793 (circleArea 1.0)
34+
test "radius 3" do
35+
Assert.equal 28.274333882308138 (circleArea 3.0)
36+
suite "addE" do
37+
test "1.23" do
38+
Assert.equal 3.948281828459045 (addE "1.23")
39+
test "4.56" do
40+
Assert.equal 7.278281828459045 (addE "4.56")
41+
-}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
module Test.Solutions where
2+
3+
import Prelude

0 commit comments

Comments
 (0)