Skip to content

Commit e30e726

Browse files
Merge pull request #243 from ricemery/allergies
Allergies - use object instead of an instance - refs #242. Add Allerg…
2 parents 29079be + 147a25c commit e30e726

File tree

4 files changed

+29
-19
lines changed

4 files changed

+29
-19
lines changed

config.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,9 @@
173173
"slug": "allergies",
174174
"difficulty": 1,
175175
"topics": [
176+
"Lists",
177+
"Enumerations",
178+
"Filtering"
176179
]
177180
},
178181
{

exercises/allergies/example.scala

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import Allergen.Allergen
22

3-
class Allergies {
3+
object Allergies {
44
private lazy val allergenList = Allergen.values
55

66
def isAllergicTo(allergen: Allergen, score: Int): Boolean =
@@ -10,10 +10,6 @@ class Allergies {
1010
allergenList.filter(a => isAllergicTo(a, score)).toList
1111
}
1212

13-
object Allergies {
14-
def apply() = new Allergies
15-
}
16-
1713
object Allergen extends Enumeration {
1814
type Allergen = Value
1915

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import Allergen.Allergen
2+
3+
object Allergies {
4+
def isAllergicTo(allergen: Allergen, score: Int): Boolean = ???
5+
6+
def allergies(score: Int): List[Allergen] = ???
7+
}
8+
9+
object Allergen extends Enumeration {
10+
type Allergen = ???
11+
}

exercises/allergies/src/test/scala/AllergiesTest.scala

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,67 +2,67 @@ import org.scalatest.{Matchers, FlatSpec}
22

33
class AllergiesTest extends FlatSpec with Matchers {
44
it should "handle no allergies means not allergic" in {
5-
Allergies().isAllergicTo(Allergen.Peanuts, 0) should equal (false)
6-
Allergies().isAllergicTo(Allergen.Cats, 0) should equal (false)
7-
Allergies().isAllergicTo(Allergen.Strawberries, 0) should equal (false)
5+
Allergies.isAllergicTo(Allergen.Peanuts, 0) should equal (false)
6+
Allergies.isAllergicTo(Allergen.Cats, 0) should equal (false)
7+
Allergies.isAllergicTo(Allergen.Strawberries, 0) should equal (false)
88
}
99

1010
it should "handle is allergic to eggs" in {
1111
pending
12-
Allergies().isAllergicTo(Allergen.Eggs, 1) should equal (true)
12+
Allergies.isAllergicTo(Allergen.Eggs, 1) should equal (true)
1313
}
1414

1515
it should "handle is allergic to eggs in addition to other stuff" in {
1616
pending
17-
Allergies().isAllergicTo(Allergen.Eggs, 5) should equal (true)
17+
Allergies.isAllergicTo(Allergen.Eggs, 5) should equal (true)
1818
}
1919

2020
it should "handle no allergies" in {
2121
pending
22-
Allergies().allergies(0) should equal (List())
22+
Allergies.allergies(0) should equal (List())
2323
}
2424

2525
it should "handle allergic to just eggs" in {
2626
pending
27-
Allergies().allergies(1) should equal (List(Allergen.Eggs))
27+
Allergies.allergies(1) should equal (List(Allergen.Eggs))
2828
}
2929

3030
it should "handle allergic to just peanuts" in {
3131
pending
32-
Allergies().allergies(2) should equal (List(Allergen.Peanuts))
32+
Allergies.allergies(2) should equal (List(Allergen.Peanuts))
3333
}
3434

3535
it should "handle allergic to just strawberries" in {
3636
pending
37-
Allergies().allergies(8) should equal (List(Allergen.Strawberries))
37+
Allergies.allergies(8) should equal (List(Allergen.Strawberries))
3838
}
3939

4040
it should "handle allergic to eggs and peanuts" in {
4141
pending
42-
Allergies().allergies(3) should equal (List(Allergen.Eggs, Allergen.Peanuts))
42+
Allergies.allergies(3) should equal (List(Allergen.Eggs, Allergen.Peanuts))
4343
}
4444

4545
it should "handle allergic to more than eggs but not peanuts" in {
4646
pending
47-
Allergies().allergies(5) should equal (List(Allergen.Eggs, Allergen.Shellfish))
47+
Allergies.allergies(5) should equal (List(Allergen.Eggs, Allergen.Shellfish))
4848
}
4949

5050
it should "handle allergic to lots of stuff" in {
5151
pending
52-
Allergies().allergies(248) should equal (List(Allergen.Strawberries, Allergen.Tomatoes,
52+
Allergies.allergies(248) should equal (List(Allergen.Strawberries, Allergen.Tomatoes,
5353
Allergen.Chocolate, Allergen.Pollen, Allergen.Cats))
5454
}
5555

5656
it should "handle allergic to everything" in {
5757
pending
58-
Allergies().allergies(255) should equal (List(Allergen.Eggs, Allergen.Peanuts,
58+
Allergies.allergies(255) should equal (List(Allergen.Eggs, Allergen.Peanuts,
5959
Allergen.Shellfish, Allergen.Strawberries, Allergen.Tomatoes,
6060
Allergen.Chocolate, Allergen.Pollen, Allergen.Cats))
6161
}
6262

6363
it should "ignore non allergen score parts" in {
6464
pending
65-
Allergies().allergies(509) should equal (List(Allergen.Eggs,
65+
Allergies.allergies(509) should equal (List(Allergen.Eggs,
6666
Allergen.Shellfish, Allergen.Strawberries, Allergen.Tomatoes,
6767
Allergen.Chocolate, Allergen.Pollen, Allergen.Cats))
6868
}

0 commit comments

Comments
 (0)