trackler 2.0.5.5 → 2.0.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/tracks/csharp/config.json +15 -0
  4. data/tracks/csharp/exercises/list-ops/Example.cs +77 -0
  5. data/tracks/csharp/exercises/list-ops/HINTS.md +2 -0
  6. data/tracks/csharp/exercises/list-ops/ListOpsTest.cs +195 -0
  7. data/tracks/csharp/exercises/two-bucket/Example.cs +109 -0
  8. data/tracks/csharp/exercises/two-bucket/TwoBucketTest.cs +71 -0
  9. data/tracks/ecmascript/config.json +13 -30
  10. data/tracks/ecmascript/exercises/all-your-base/all-your-base.spec.js +139 -0
  11. data/tracks/ecmascript/exercises/all-your-base/example.js +55 -0
  12. data/tracks/ecmascript/exercises/all-your-base/gulpfile.js +89 -0
  13. data/tracks/ecmascript/exercises/all-your-base/package.json +28 -0
  14. data/tracks/fsharp/exercises/diffie-hellman/HINTS.md +3 -0
  15. data/tracks/fsharp/exercises/gigasecond/HINTS.md +2 -0
  16. data/tracks/fsharp/exercises/palindrome-products/HINTS.md +2 -0
  17. data/tracks/java/config.json +6 -0
  18. data/tracks/java/docs/INSTALLATION.md +1 -0
  19. data/tracks/java/exercises/custom-set/build.gradle +18 -0
  20. data/tracks/java/exercises/custom-set/src/example/java/CustomSet.java +74 -0
  21. data/tracks/java/exercises/custom-set/src/main/java/.keep +0 -0
  22. data/tracks/java/exercises/custom-set/src/test/java/CustomSetTest.java +505 -0
  23. data/tracks/java/exercises/settings.gradle +1 -0
  24. data/tracks/purescript/config.json +25 -0
  25. data/tracks/purescript/exercises/accumulate/bower.json +16 -0
  26. data/tracks/purescript/exercises/accumulate/examples/src/Accumulate.purs +15 -0
  27. data/tracks/purescript/exercises/accumulate/src/Accumulate.purs +3 -0
  28. data/tracks/purescript/exercises/accumulate/test/Main.purs +41 -0
  29. data/tracks/purescript/exercises/acronym/bower.json +1 -1
  30. data/tracks/purescript/exercises/bob/bower.json +1 -1
  31. data/tracks/purescript/exercises/pangram/bower.json +1 -1
  32. data/tracks/purescript/exercises/raindrops/bower.json +1 -1
  33. data/tracks/purescript/exercises/scrabble-score/bower.json +16 -0
  34. data/tracks/purescript/exercises/scrabble-score/examples/src/ScrabbleScore.purs +47 -0
  35. data/tracks/purescript/exercises/scrabble-score/src/ScrabbleScore.purs +3 -0
  36. data/tracks/purescript/exercises/scrabble-score/test/Main.purs +45 -0
  37. data/tracks/purescript/exercises/triangle/bower.json +19 -0
  38. data/tracks/purescript/exercises/triangle/examples/src/Triangle.purs +40 -0
  39. data/tracks/purescript/exercises/triangle/src/Triangle.purs +4 -0
  40. data/tracks/purescript/exercises/triangle/test/Main.purs +66 -0
  41. data/tracks/ruby/.rubocop.yml +3 -0
  42. data/tracks/ruby/README.md +1 -1
  43. metadata +30 -2
@@ -10,6 +10,7 @@ include 'binary-search-tree'
10
10
  include 'bob'
11
11
  include 'bracket-push'
12
12
  include 'crypto-square'
13
+ include 'custom-set'
13
14
  include 'difference-of-squares'
14
15
  include 'etl'
15
16
  include 'gigasecond'
@@ -40,6 +40,23 @@
40
40
  "chars"
41
41
  ]
42
42
  },
43
+ {
44
+ "slug": "scrabble-score",
45
+ "difficulty": 1,
46
+ "topics": [
47
+ "strings",
48
+ "chars"
49
+ ]
50
+ },
51
+ {
52
+ "slug": "accumulate",
53
+ "difficulty": 1,
54
+ "topics": [
55
+ "recursion",
56
+ "type variables",
57
+ "pattern matching"
58
+ ]
59
+ },
43
60
  {
44
61
  "slug": "acronym",
45
62
  "difficulty": 2,
@@ -47,6 +64,14 @@
47
64
  "strings",
48
65
  "chars"
49
66
  ]
67
+ },
68
+ {
69
+ "slug": "triangle",
70
+ "difficulty": 2,
71
+ "topics": [
72
+ "algebraic data types",
73
+ "type classes"
74
+ ]
50
75
  }
51
76
  ],
52
77
  "deprecated": [
@@ -0,0 +1,16 @@
1
+ {
2
+ "name": "hello-world",
3
+ "ignore": [
4
+ "**/.*",
5
+ "node_modules",
6
+ "bower_components",
7
+ "output"
8
+ ],
9
+ "dependencies": {
10
+ "purescript-prelude": "^2.1.0"
11
+ },
12
+ "devDependencies": {
13
+ "purescript-psci-support": "^2.0.0",
14
+ "purescript-test-unit": "^10.0.1"
15
+ }
16
+ }
@@ -0,0 +1,15 @@
1
+ module Accumulate
2
+ ( accumulate
3
+ ) where
4
+
5
+
6
+ import Data.List (List(Nil), (:), reverse)
7
+
8
+
9
+ accumulate :: forall a b . (a -> b) -> List a -> List b
10
+ accumulate =
11
+ let
12
+ accumulate' acc f Nil = reverse acc
13
+ accumulate' acc f (v:vs) = accumulate' (f v:acc) f vs
14
+ in
15
+ accumulate' Nil
@@ -0,0 +1,3 @@
1
+ module Accumulate
2
+ ( accumulate
3
+ ) where
@@ -0,0 +1,41 @@
1
+ module Test.Main where
2
+
3
+ import Prelude
4
+ import Control.Monad.Eff (Eff)
5
+ import Test.Unit (suite, test)
6
+ import Test.Unit.Main (runTest)
7
+ import Test.Unit.Assert as Assert
8
+ import Data.List (List, fromFoldable)
9
+ import Data.String as String
10
+ import Accumulate (accumulate)
11
+
12
+
13
+ main :: Eff _ Unit
14
+ main = runTest do
15
+ suite "Accumulate.accumulate" do
16
+ test "empty accumulation" $
17
+ let
18
+ emptyList = (fromFoldable [] :: List Int)
19
+ in
20
+ Assert.equal emptyList $
21
+ accumulate square emptyList
22
+
23
+ test "accumulate single square" $
24
+ Assert.equal (fromFoldable [4]) $
25
+ accumulate square (fromFoldable [2])
26
+
27
+ test "accumulate squares" $
28
+ Assert.equal (fromFoldable [1, 4, 9]) $
29
+ accumulate square (fromFoldable [1, 2, 3])
30
+
31
+ test "accumulate upcases" $
32
+ Assert.equal (fromFoldable ["HELLO", "WORLD"]) $
33
+ accumulate String.toUpper (fromFoldable ["hello", "world"])
34
+
35
+ test "accumulate length of strings" $
36
+ Assert.equal (fromFoldable [3, 5, 5, 3, 3]) $
37
+ accumulate String.length (fromFoldable ["the", "quick", "brown", "fox", "etc"])
38
+
39
+
40
+ square :: forall a. (Semiring a) => a -> a
41
+ square x = x * x
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "leap",
2
+ "name": "acronym",
3
3
  "ignore": [
4
4
  "**/.*",
5
5
  "node_modules",
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "hello-world",
2
+ "name": "bob",
3
3
  "ignore": [
4
4
  "**/.*",
5
5
  "node_modules",
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "hello-world",
2
+ "name": "prangram",
3
3
  "ignore": [
4
4
  "**/.*",
5
5
  "node_modules",
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "hello-world",
2
+ "name": "raindrops",
3
3
  "ignore": [
4
4
  "**/.*",
5
5
  "node_modules",
@@ -0,0 +1,16 @@
1
+ {
2
+ "name": "scrabble-score",
3
+ "ignore": [
4
+ "**/.*",
5
+ "node_modules",
6
+ "bower_components",
7
+ "output"
8
+ ],
9
+ "dependencies": {
10
+ "purescript-prelude": "^2.1.0"
11
+ },
12
+ "devDependencies": {
13
+ "purescript-psci-support": "^2.0.0",
14
+ "purescript-test-unit": "^10.0.1"
15
+ }
16
+ }
@@ -0,0 +1,47 @@
1
+ module ScrabbleScore
2
+ ( scoreWord
3
+ ) where
4
+
5
+ import Prelude
6
+ import Data.Char (toLower)
7
+ import Data.String (toCharArray)
8
+ import Data.Foldable (foldl)
9
+
10
+
11
+ scoreWord :: String -> Int
12
+ scoreWord =
13
+ let
14
+ addLetterScore acc =
15
+ add acc <<< scoreChar <<< toLower
16
+ in
17
+ foldl addLetterScore 0 <<< toCharArray
18
+
19
+
20
+ scoreChar :: Char -> Int
21
+ scoreChar 'a' = 1
22
+ scoreChar 'e' = 1
23
+ scoreChar 'i' = 1
24
+ scoreChar 'o' = 1
25
+ scoreChar 'u' = 1
26
+ scoreChar 'l' = 1
27
+ scoreChar 'n' = 1
28
+ scoreChar 'r' = 1
29
+ scoreChar 's' = 1
30
+ scoreChar 't' = 1
31
+ scoreChar 'd' = 2
32
+ scoreChar 'g' = 2
33
+ scoreChar 'b' = 3
34
+ scoreChar 'c' = 3
35
+ scoreChar 'm' = 3
36
+ scoreChar 'p' = 3
37
+ scoreChar 'f' = 4
38
+ scoreChar 'h' = 4
39
+ scoreChar 'v' = 4
40
+ scoreChar 'w' = 4
41
+ scoreChar 'y' = 4
42
+ scoreChar 'k' = 5
43
+ scoreChar 'j' = 8
44
+ scoreChar 'x' = 8
45
+ scoreChar 'q' = 10
46
+ scoreChar 'z' = 10
47
+ scoreChar _ = 0
@@ -0,0 +1,3 @@
1
+ module ScrabbleScore
2
+ ( scoreWord
3
+ ) where
@@ -0,0 +1,45 @@
1
+ module Test.Main where
2
+
3
+ import Prelude
4
+ import Test.Unit.Assert as Assert
5
+ import Control.Monad.Eff (Eff)
6
+ import ScrabbleScore (scoreWord)
7
+ import Test.Unit (suite, test)
8
+ import Test.Unit.Main (runTest)
9
+
10
+
11
+ main :: Eff _ Unit
12
+ main = runTest do
13
+ suite "ScrabbleScore.scoreWord" do
14
+ test "lowercase letter" do
15
+ Assert.equal 1 (scoreWord "a")
16
+
17
+ test "uppercase letter" do
18
+ Assert.equal 1 (scoreWord "A")
19
+
20
+ test "valuable letter" do
21
+ Assert.equal 4 (scoreWord "f")
22
+
23
+ test "short word" do
24
+ Assert.equal 2 (scoreWord "at")
25
+
26
+ test "short, valuable word" do
27
+ Assert.equal 12 (scoreWord "zoo")
28
+
29
+ test "medium word" do
30
+ Assert.equal 6 (scoreWord "street")
31
+
32
+ test "medium, valuable word" do
33
+ Assert.equal 22 (scoreWord "quirky")
34
+
35
+ test "long, mixed-case word" do
36
+ Assert.equal 41 (scoreWord "OxyphenButazone")
37
+
38
+ test "english-like word" do
39
+ Assert.equal 8 (scoreWord "pinata")
40
+
41
+ test "non-english letter is not scored" do
42
+ Assert.equal 7 (scoreWord "piñata")
43
+
44
+ test "empty input" do
45
+ Assert.equal 0 (scoreWord "")
@@ -0,0 +1,19 @@
1
+ {
2
+ "name": "triangle",
3
+ "ignore": [
4
+ "**/.*",
5
+ "node_modules",
6
+ "bower_components",
7
+ "output"
8
+ ],
9
+ "dependencies": {
10
+ "purescript-prelude": "^2.1.0",
11
+ "purescript-console": "^2.0.0",
12
+ "purescript-either": "^2.0.0",
13
+ "purescript-sets": "^2.0.0"
14
+ },
15
+ "devDependencies": {
16
+ "purescript-psci-support": "^2.0.0",
17
+ "purescript-test-unit": "^10.0.1"
18
+ }
19
+ }
@@ -0,0 +1,40 @@
1
+ module Triangle
2
+ ( Triangle(Equilateral, Isosceles, Scalene)
3
+ , triangleKind
4
+ ) where
5
+
6
+ import Prelude
7
+ import Data.Set as Set
8
+ import Data.Either (Either(Left, Right))
9
+ import Data.Generic (class Generic, gShow)
10
+
11
+
12
+ data Triangle
13
+ = Equilateral
14
+ | Isosceles
15
+ | Scalene
16
+
17
+ derive instance eqTriangle :: Eq Triangle
18
+
19
+ derive instance genericTriangle :: Generic Triangle
20
+
21
+ instance showTriangle :: Show Triangle where
22
+ show = gShow
23
+
24
+
25
+ type ErrorMsg = String
26
+
27
+
28
+ triangleKind :: Int -> Int -> Int -> Either ErrorMsg Triangle
29
+ triangleKind x y z
30
+ | x <= 0 || y <= 0 || z <= 0
31
+ = Left "Invalid lengths"
32
+
33
+ | x + y <= z || x + z <= y || y + z <= x
34
+ = Left "Violates inequality"
35
+
36
+ | otherwise
37
+ = case Set.size $ Set.fromFoldable [x, y, z] of
38
+ 1 -> Right Equilateral
39
+ 2 -> Right Isosceles
40
+ _ -> Right Scalene
@@ -0,0 +1,4 @@
1
+ module Triangle
2
+ ( Triangle(Equilateral, Isosceles, Scalene)
3
+ , triangleKind
4
+ ) where
@@ -0,0 +1,66 @@
1
+ module Test.Main where
2
+
3
+ import Prelude
4
+ import Test.Unit.Assert as Assert
5
+ import Control.Monad.Eff (Eff)
6
+ import Data.Either (Either(Left, Right))
7
+ import Test.Unit (suite, test)
8
+ import Test.Unit.Main (runTest)
9
+ import Triangle (triangleKind, Triangle(Equilateral, Isosceles, Scalene))
10
+
11
+
12
+ main :: Eff _ Unit
13
+ main = runTest do
14
+ suite "Triangle.triangleKind" do
15
+ test "equilateral triangles have equal sides" do
16
+ Assert.equal
17
+ (Right Equilateral) $
18
+ triangleKind 2 2 2
19
+ test "larger equilateral triangles also have equal sides" do
20
+ Assert.equal
21
+ (Right Equilateral)
22
+ $ triangleKind 10 10 10
23
+ test "isosceles triangles have last two sides equal" do
24
+ Assert.equal
25
+ (Right Isosceles)
26
+ $ triangleKind 3 4 4
27
+ test "isosceles triangles have first and last sides equal" do
28
+ Assert.equal
29
+ (Right Isosceles)
30
+ $ triangleKind 4 3 4
31
+ test "isosceles triangles have two first sides equal" do
32
+ Assert.equal
33
+ (Right Isosceles)
34
+ $ triangleKind 4 4 3
35
+ test "isosceles triangles have in fact exactly two sides equal" do
36
+ Assert.equal
37
+ (Right Isosceles)
38
+ $ triangleKind 10 10 2
39
+ test "scalene triangles have no equal sides" do
40
+ Assert.equal
41
+ (Right Scalene)
42
+ $ triangleKind 3 4 5
43
+ test "scalene triangles have no equal sides at a larger scale too" do
44
+ Assert.equal
45
+ (Right Scalene)
46
+ $ triangleKind 10 11 12
47
+ test "scalene triangles have no equal sides at a larger scale too 2" do
48
+ Assert.equal
49
+ (Right Scalene)
50
+ $ triangleKind 5 4 2
51
+ test "triangles with no size are illegal" do
52
+ Assert.equal
53
+ (Left "Invalid lengths")
54
+ $ triangleKind 0 0 0
55
+ test "triangles with negative sides are illegal" do
56
+ Assert.equal
57
+ (Left "Invalid lengths")
58
+ $ triangleKind 3 4 (-5)
59
+ test "triangles violating triangle inequality are illegal 1" do
60
+ Assert.equal
61
+ (Left "Violates inequality")
62
+ $ triangleKind 1 1 3
63
+ test "triangles violating triangle inequality are illegal 2" do
64
+ Assert.equal
65
+ (Left "Violates inequality")
66
+ $ triangleKind 7 3 2
@@ -1,3 +1,6 @@
1
+ AllCops:
2
+ TargetRubyVersion: 2.1
3
+
1
4
  # Type 'Lint' (48):
2
5
  Lint/AmbiguousOperator:
3
6
  Description: Checks for ambiguous operators in the first argument of a method invocation
@@ -6,7 +6,7 @@ Exercism Exercises in Ruby
6
6
 
7
7
  ## Setup
8
8
 
9
- You'll need a recent (1.9.3+) version of Ruby, but that's it. Minitest
9
+ You'll need a recent (2.1+) version of Ruby, but that's it. Minitest
10
10
  ships
11
11
  with the language, so you're all set.
12
12
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trackler
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.5.5
4
+ version: 2.0.5.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Katrina Owen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-12-20 00:00:00.000000000 Z
11
+ date: 2016-12-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip
@@ -1349,6 +1349,9 @@ files:
1349
1349
  - tracks/csharp/exercises/leap/LeapTest.cs
1350
1350
  - tracks/csharp/exercises/linked-list/Example.cs
1351
1351
  - tracks/csharp/exercises/linked-list/LinkedListTest.cs
1352
+ - tracks/csharp/exercises/list-ops/Example.cs
1353
+ - tracks/csharp/exercises/list-ops/HINTS.md
1354
+ - tracks/csharp/exercises/list-ops/ListOpsTest.cs
1352
1355
  - tracks/csharp/exercises/luhn/Example.cs
1353
1356
  - tracks/csharp/exercises/luhn/LuhnTest.cs
1354
1357
  - tracks/csharp/exercises/matrix/Example.cs
@@ -1443,6 +1446,8 @@ files:
1443
1446
  - tracks/csharp/exercises/triangle/TriangleTest.cs
1444
1447
  - tracks/csharp/exercises/twelve-days/Example.cs
1445
1448
  - tracks/csharp/exercises/twelve-days/TwelveDaysTest.cs
1449
+ - tracks/csharp/exercises/two-bucket/Example.cs
1450
+ - tracks/csharp/exercises/two-bucket/TwoBucketTest.cs
1446
1451
  - tracks/csharp/exercises/variable-length-quantity/Example.cs
1447
1452
  - tracks/csharp/exercises/variable-length-quantity/VariableLengthQuantityTest.cs
1448
1453
  - tracks/csharp/exercises/word-count/Example.cs
@@ -1525,6 +1530,10 @@ files:
1525
1530
  - tracks/ecmascript/exercises/acronym/example.js
1526
1531
  - tracks/ecmascript/exercises/acronym/gulpfile.js
1527
1532
  - tracks/ecmascript/exercises/acronym/package.json
1533
+ - tracks/ecmascript/exercises/all-your-base/all-your-base.spec.js
1534
+ - tracks/ecmascript/exercises/all-your-base/example.js
1535
+ - tracks/ecmascript/exercises/all-your-base/gulpfile.js
1536
+ - tracks/ecmascript/exercises/all-your-base/package.json
1528
1537
  - tracks/ecmascript/exercises/allergies/allergies.spec.js
1529
1538
  - tracks/ecmascript/exercises/allergies/example.js
1530
1539
  - tracks/ecmascript/exercises/allergies/gulpfile.js
@@ -2425,6 +2434,7 @@ files:
2425
2434
  - tracks/fsharp/exercises/difference-of-squares/HINTS.md
2426
2435
  - tracks/fsharp/exercises/diffie-hellman/DiffieHellmanTest.fs
2427
2436
  - tracks/fsharp/exercises/diffie-hellman/Example.fs
2437
+ - tracks/fsharp/exercises/diffie-hellman/HINTS.md
2428
2438
  - tracks/fsharp/exercises/dominoes/DominoesTest.fs
2429
2439
  - tracks/fsharp/exercises/dominoes/Example.fs
2430
2440
  - tracks/fsharp/exercises/dot-dsl/DotDslTest.fs
@@ -2440,6 +2450,7 @@ files:
2440
2450
  - tracks/fsharp/exercises/forth/ForthTest.fs
2441
2451
  - tracks/fsharp/exercises/gigasecond/Example.fs
2442
2452
  - tracks/fsharp/exercises/gigasecond/GigasecondTest.fs
2453
+ - tracks/fsharp/exercises/gigasecond/HINTS.md
2443
2454
  - tracks/fsharp/exercises/go-counting/Example.fs
2444
2455
  - tracks/fsharp/exercises/go-counting/GoCountingTest.fs
2445
2456
  - tracks/fsharp/exercises/grade-school/Example.fs
@@ -2494,6 +2505,7 @@ files:
2494
2505
  - tracks/fsharp/exercises/ocr-numbers/OcrNumbersTest.fs
2495
2506
  - tracks/fsharp/exercises/paket.references
2496
2507
  - tracks/fsharp/exercises/palindrome-products/Example.fs
2508
+ - tracks/fsharp/exercises/palindrome-products/HINTS.md
2497
2509
  - tracks/fsharp/exercises/palindrome-products/PalindromeTest.fs
2498
2510
  - tracks/fsharp/exercises/pangram/Example.fs
2499
2511
  - tracks/fsharp/exercises/pangram/PangramTest.fs
@@ -3521,6 +3533,10 @@ files:
3521
3533
  - tracks/java/exercises/crypto-square/src/example/java/Crypto.java
3522
3534
  - tracks/java/exercises/crypto-square/src/main/java/.keep
3523
3535
  - tracks/java/exercises/crypto-square/src/test/java/CryptoSquareTest.java
3536
+ - tracks/java/exercises/custom-set/build.gradle
3537
+ - tracks/java/exercises/custom-set/src/example/java/CustomSet.java
3538
+ - tracks/java/exercises/custom-set/src/main/java/.keep
3539
+ - tracks/java/exercises/custom-set/src/test/java/CustomSetTest.java
3524
3540
  - tracks/java/exercises/difference-of-squares/build.gradle
3525
3541
  - tracks/java/exercises/difference-of-squares/src/example/java/Difference.java
3526
3542
  - tracks/java/exercises/difference-of-squares/src/main/java/Difference.java
@@ -5456,6 +5472,10 @@ files:
5456
5472
  - tracks/purescript/docs/LEARNING.md
5457
5473
  - tracks/purescript/docs/RESOURCES.md
5458
5474
  - tracks/purescript/docs/TESTS.md
5475
+ - tracks/purescript/exercises/accumulate/bower.json
5476
+ - tracks/purescript/exercises/accumulate/examples/src/Accumulate.purs
5477
+ - tracks/purescript/exercises/accumulate/src/Accumulate.purs
5478
+ - tracks/purescript/exercises/accumulate/test/Main.purs
5459
5479
  - tracks/purescript/exercises/acronym/bower.json
5460
5480
  - tracks/purescript/exercises/acronym/examples/src/Acronym.purs
5461
5481
  - tracks/purescript/exercises/acronym/src/Acronym.purs
@@ -5480,6 +5500,14 @@ files:
5480
5500
  - tracks/purescript/exercises/raindrops/examples/src/Raindrops.purs
5481
5501
  - tracks/purescript/exercises/raindrops/src/Raindrops.purs
5482
5502
  - tracks/purescript/exercises/raindrops/test/Main.purs
5503
+ - tracks/purescript/exercises/scrabble-score/bower.json
5504
+ - tracks/purescript/exercises/scrabble-score/examples/src/ScrabbleScore.purs
5505
+ - tracks/purescript/exercises/scrabble-score/src/ScrabbleScore.purs
5506
+ - tracks/purescript/exercises/scrabble-score/test/Main.purs
5507
+ - tracks/purescript/exercises/triangle/bower.json
5508
+ - tracks/purescript/exercises/triangle/examples/src/Triangle.purs
5509
+ - tracks/purescript/exercises/triangle/src/Triangle.purs
5510
+ - tracks/purescript/exercises/triangle/test/Main.purs
5483
5511
  - tracks/purescript/img/icon.png
5484
5512
  - tracks/python/.git
5485
5513
  - tracks/python/.gitignore