trackler 2.1.0.10 → 2.1.0.11
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.
- checksums.yaml +4 -4
- data/bin/bump-content +3 -3
- data/common/README.md +0 -1
- data/common/exercises/kindergarten-garden/canonical-data.json +124 -0
- data/lib/trackler/version.rb +1 -1
- data/tracks/coq/README.md +8 -6
- data/tracks/haskell/exercises/all-your-base/package.yaml +1 -1
- data/tracks/haskell/exercises/allergies/package.yaml +1 -1
- data/tracks/haskell/exercises/alphametics/package.yaml +1 -1
- data/tracks/haskell/exercises/anagram/package.yaml +1 -1
- data/tracks/haskell/exercises/anagram/test/Tests.hs +2 -2
- data/tracks/haskell/exercises/atbash-cipher/package.yaml +1 -1
- data/tracks/haskell/exercises/bob/package.yaml +1 -1
- data/tracks/haskell/exercises/change/package.yaml +1 -1
- data/tracks/haskell/exercises/change/test/Tests.hs +10 -0
- data/tracks/haskell/exercises/clock/package.yaml +1 -1
- data/tracks/haskell/exercises/connect/package.yaml +1 -1
- data/tracks/haskell/exercises/custom-set/package.yaml +1 -1
- data/tracks/haskell/exercises/difference-of-squares/package.yaml +1 -1
- data/tracks/haskell/exercises/dominoes/package.yaml +1 -1
- data/tracks/haskell/exercises/etl/package.yaml +1 -1
- data/tracks/haskell/exercises/forth/package.yaml +1 -1
- data/tracks/haskell/exercises/grains/package.yaml +1 -1
- data/tracks/haskell/exercises/hamming/package.yaml +1 -1
- data/tracks/haskell/exercises/hello-world/package.yaml +1 -1
- data/tracks/haskell/exercises/kindergarten-garden/package.yaml +1 -1
- data/tracks/haskell/exercises/kindergarten-garden/test/Tests.hs +4 -12
- data/tracks/haskell/exercises/largest-series-product/package.yaml +1 -1
- data/tracks/haskell/exercises/largest-series-product/test/Tests.hs +4 -31
- data/tracks/haskell/exercises/meetup/package.yaml +1 -1
- data/tracks/haskell/exercises/minesweeper/package.yaml +1 -1
- data/tracks/haskell/exercises/nth-prime/package.yaml +1 -1
- data/tracks/haskell/exercises/nucleotide-count/package.yaml +1 -1
- data/tracks/haskell/exercises/ocr-numbers/package.yaml +1 -1
- data/tracks/haskell/exercises/pascals-triangle/package.yaml +1 -1
- data/tracks/haskell/exercises/phone-number/package.yaml +1 -1
- data/tracks/haskell/exercises/pig-latin/package.yaml +1 -1
- data/tracks/haskell/exercises/pov/package.yaml +1 -1
- data/tracks/haskell/exercises/prime-factors/package.yaml +1 -1
- data/tracks/haskell/exercises/queen-attack/package.yaml +1 -1
- data/tracks/haskell/exercises/raindrops/package.yaml +1 -1
- data/tracks/haskell/exercises/rna-transcription/package.yaml +1 -1
- data/tracks/haskell/exercises/robot-simulator/package.yaml +1 -1
- data/tracks/haskell/exercises/run-length-encoding/package.yaml +1 -1
- data/tracks/haskell/exercises/run-length-encoding/test/Tests.hs +16 -0
- data/tracks/haskell/exercises/saddle-points/package.yaml +1 -1
- data/tracks/haskell/exercises/saddle-points/test/Tests.hs +8 -8
- data/tracks/haskell/exercises/say/package.yaml +1 -1
- data/tracks/haskell/exercises/scrabble-score/package.yaml +1 -1
- data/tracks/haskell/exercises/secret-handshake/package.yaml +1 -1
- data/tracks/haskell/exercises/sieve/package.yaml +1 -1
- data/tracks/haskell/exercises/space-age/package.yaml +1 -1
- data/tracks/haskell/exercises/sublist/package.yaml +1 -1
- data/tracks/haskell/exercises/sum-of-multiples/package.yaml +1 -1
- data/tracks/haskell/exercises/word-count/package.yaml +1 -1
- data/tracks/haskell/exercises/wordy/package.yaml +1 -1
- data/tracks/java/exercises/binary-search-tree/src/test/java/BSTTest.java +1 -1
- data/tracks/java/exercises/bracket-push/src/test/java/BracketCheckerTest.java +12 -12
- data/tracks/java/exercises/simple-linked-list/src/test/java/SimpleLinkedListTest.java +6 -6
- data/tracks/javascript/SETUP.md +6 -1
- data/tracks/javascript/exercises/hello-world/HINTS.md +2 -2
- data/tracks/ruby/exercises/phone-number/phone_number_test.rb +1 -1
- data/tracks/ruby/exercises/tournament/.meta/.version +1 -1
- data/tracks/ruby/exercises/tournament/example.rb +1 -1
- data/tracks/ruby/exercises/tournament/tournament_test.rb +118 -21
- data/tracks/ruby/lib/tasks/exercise.rb +1 -1
- data/tracks/ruby/test/tasks/exercise_test.rb +4 -2
- data/tracks/rust/exercises/acronym/Cargo.toml +1 -1
- data/tracks/rust/exercises/all-your-base/Cargo.toml +1 -1
- data/tracks/rust/exercises/allergies/Cargo.toml +1 -1
- data/tracks/rust/exercises/alphametics/Cargo.toml +1 -1
- data/tracks/rust/exercises/atbash-cipher/Cargo.toml +1 -1
- data/tracks/rust/exercises/bowling/Cargo.toml +1 -1
- data/tracks/rust/exercises/bracket-push/Cargo.toml +1 -1
- data/tracks/rust/exercises/custom-set/Cargo.toml +1 -1
- data/tracks/rust/exercises/dominoes/Cargo.toml +1 -1
- data/tracks/rust/exercises/gigasecond/Cargo.toml +1 -1
- data/tracks/rust/exercises/grains/Cargo.toml +1 -1
- data/tracks/rust/exercises/hello-world/Cargo.toml +1 -1
- data/tracks/rust/exercises/largest-series-product/Cargo.toml +1 -1
- data/tracks/rust/exercises/leap/Cargo.toml +1 -1
- data/tracks/rust/exercises/pascals-triangle/Cargo.toml +1 -1
- data/tracks/rust/exercises/queen-attack/Cargo.toml +1 -1
- data/tracks/rust/exercises/react/Cargo.toml +1 -1
- data/tracks/rust/exercises/robot-simulator/Cargo.toml +1 -1
- data/tracks/rust/exercises/roman-numerals/Cargo.toml +1 -1
- data/tracks/rust/exercises/rotational-cipher/Cargo.toml +1 -1
- data/tracks/rust/exercises/run-length-encoding/Cargo.lock +1 -1
- data/tracks/rust/exercises/run-length-encoding/Cargo.toml +1 -1
- data/tracks/rust/exercises/scrabble-score/Cargo.toml +1 -1
- data/tracks/rust/exercises/sieve/Cargo.toml +1 -1
- data/tracks/rust/exercises/space-age/Cargo.toml +1 -1
- data/tracks/rust/exercises/sum-of-multiples/Cargo.toml +1 -1
- data/tracks/rust/exercises/variable-length-quantity/Cargo.toml +1 -1
- data/tracks/rust/exercises/wordy/Cargo.toml +1 -1
- data/tracks/typescript/config.json +6 -1
- data/tracks/typescript/exercises/scrabble-score/package.json +36 -0
- data/tracks/typescript/exercises/scrabble-score/scrabble-score.example.ts +26 -0
- data/tracks/typescript/exercises/scrabble-score/scrabble-score.test.ts +16 -0
- data/tracks/typescript/exercises/scrabble-score/tsconfig.json +21 -0
- data/tracks/typescript/exercises/scrabble-score/tslint.json +127 -0
- data/tracks/typescript/exercises/scrabble-score/yarn.lock +2739 -0
- metadata +9 -10
- data/tracks/coq/exercises/hello-world/example.v +0 -3
- data/tracks/coq/exercises/hello-world/hello-world.v +0 -3
- data/tracks/coq/exercises/rna-transcription/DNA.v +0 -4
- data/tracks/coq/exercises/rna-transcription/example.v +0 -15
- data/tracks/coq/exercises/rna-transcription/rna-transcription.v +0 -5
- data/tracks/coq/exercises/tautology/description.md +0 -1
- data/tracks/coq/exercises/tautology/example.v +0 -4
- data/tracks/coq/exercises/tautology/tautology.v +0 -4
|
@@ -40,6 +40,14 @@ encodeCases =
|
|
|
40
40
|
, input = "WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB"
|
|
41
41
|
, expected = "12WB12W3B24WB"
|
|
42
42
|
}
|
|
43
|
+
, Case { description = "encode whitespace"
|
|
44
|
+
, input = " hsqq qww "
|
|
45
|
+
, expected = "2 hs2q q2w2 "
|
|
46
|
+
}
|
|
47
|
+
, Case { description = "encode lowercase"
|
|
48
|
+
, input = "aabbbcccc"
|
|
49
|
+
, expected = "2a3b4c"
|
|
50
|
+
}
|
|
43
51
|
]
|
|
44
52
|
|
|
45
53
|
decodeCases :: [Case]
|
|
@@ -60,6 +68,14 @@ decodeCases =
|
|
|
60
68
|
, input = "12WB12W3B24WB"
|
|
61
69
|
, expected = "WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB"
|
|
62
70
|
}
|
|
71
|
+
, Case { description = "decode whitespace"
|
|
72
|
+
, input = "2 hs2q q2w2 "
|
|
73
|
+
, expected = " hsqq qww "
|
|
74
|
+
}
|
|
75
|
+
, Case { description = "decode lowercase"
|
|
76
|
+
, input = "2a3b4c"
|
|
77
|
+
, expected = "aabbbcccc"
|
|
78
|
+
}
|
|
63
79
|
]
|
|
64
80
|
|
|
65
81
|
bothCases :: [Case]
|
|
@@ -26,19 +26,19 @@ specs = describe "saddle-points" $
|
|
|
26
26
|
, [5, 3, 2]
|
|
27
27
|
, [6, 6, 7] ], [(1, 0)] )
|
|
28
28
|
|
|
29
|
-
, ( "
|
|
30
|
-
, [1, 2] ], [] )
|
|
29
|
+
, ( "empty matrix has none", [], [] )
|
|
31
30
|
|
|
32
|
-
, ( "
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
, ( "another saddle point", [ [18, 3, 39, 19, 91]
|
|
36
|
-
, [38, 10, 8, 77, 320]
|
|
37
|
-
, [ 3, 4, 8, 6, 7] ], [(2, 2)] )
|
|
31
|
+
, ( "no saddle point", [ [1, 2, 3]
|
|
32
|
+
, [3, 1, 2]
|
|
33
|
+
, [2, 3, 1] ], [] )
|
|
38
34
|
|
|
39
35
|
, ("multiple saddle points", [ [4, 5, 4]
|
|
40
36
|
, [3, 5, 5]
|
|
41
37
|
, [1, 5, 4] ], [ (0, 1)
|
|
42
38
|
, (1, 1)
|
|
43
39
|
, (2, 1) ] )
|
|
40
|
+
, ( "bottom-right corner", [ [8, 7, 9]
|
|
41
|
+
, [6, 7, 6]
|
|
42
|
+
, [3, 2, 5] ], [(2, 2)] )
|
|
43
|
+
|
|
44
44
|
]
|
|
@@ -13,84 +13,84 @@ public final class BracketCheckerTest {
|
|
|
13
13
|
assertTrue(bracketChecker.areBracketsMatchedAndNestedCorrectly());
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
@Ignore
|
|
16
|
+
@Ignore("Remove to run test")
|
|
17
17
|
@Test
|
|
18
18
|
public void testEmptyString() {
|
|
19
19
|
final BracketChecker bracketChecker = new BracketChecker("");
|
|
20
20
|
assertTrue(bracketChecker.areBracketsMatchedAndNestedCorrectly());
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
@Ignore
|
|
23
|
+
@Ignore("Remove to run test")
|
|
24
24
|
@Test
|
|
25
25
|
public void testUnpairedBrackets() {
|
|
26
26
|
final BracketChecker bracketChecker = new BracketChecker("[[");
|
|
27
27
|
assertFalse(bracketChecker.areBracketsMatchedAndNestedCorrectly());
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
@Ignore
|
|
30
|
+
@Ignore("Remove to run test")
|
|
31
31
|
@Test
|
|
32
32
|
public void testIncorrectlyOrderedBrackets() {
|
|
33
33
|
final BracketChecker bracketChecker = new BracketChecker("}{");
|
|
34
34
|
assertFalse(bracketChecker.areBracketsMatchedAndNestedCorrectly());
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
@Ignore
|
|
37
|
+
@Ignore("Remove to run test")
|
|
38
38
|
@Test
|
|
39
39
|
public void testPairedBracketsWithWhitespace() {
|
|
40
40
|
final BracketChecker bracketChecker = new BracketChecker("{ }");
|
|
41
41
|
assertTrue(bracketChecker.areBracketsMatchedAndNestedCorrectly());
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
@Ignore
|
|
44
|
+
@Ignore("Remove to run test")
|
|
45
45
|
@Test
|
|
46
46
|
public void testSimpleNestedBrackets() {
|
|
47
47
|
final BracketChecker bracketChecker = new BracketChecker("{[]}");
|
|
48
48
|
assertTrue(bracketChecker.areBracketsMatchedAndNestedCorrectly());
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
@Ignore
|
|
51
|
+
@Ignore("Remove to run test")
|
|
52
52
|
@Test
|
|
53
53
|
public void testSeveralPairedBrackets() {
|
|
54
54
|
final BracketChecker bracketChecker = new BracketChecker("{}[]");
|
|
55
55
|
assertTrue(bracketChecker.areBracketsMatchedAndNestedCorrectly());
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
@Ignore
|
|
58
|
+
@Ignore("Remove to run test")
|
|
59
59
|
@Test
|
|
60
60
|
public void testPairedAndNestedBrackets() {
|
|
61
61
|
final BracketChecker bracketChecker = new BracketChecker("([{}({}[])])");
|
|
62
62
|
assertTrue(bracketChecker.areBracketsMatchedAndNestedCorrectly());
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
@Ignore
|
|
65
|
+
@Ignore("Remove to run test")
|
|
66
66
|
@Test
|
|
67
67
|
public void testUnopenedClosingBracket() {
|
|
68
68
|
final BracketChecker bracketChecker = new BracketChecker("{[)][]}");
|
|
69
69
|
assertFalse(bracketChecker.areBracketsMatchedAndNestedCorrectly());
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
-
@Ignore
|
|
72
|
+
@Ignore("Remove to run test")
|
|
73
73
|
@Test
|
|
74
74
|
public void testUnpairedAndNestedBracket() {
|
|
75
75
|
final BracketChecker bracketChecker = new BracketChecker("([{])");
|
|
76
76
|
assertFalse(bracketChecker.areBracketsMatchedAndNestedCorrectly());
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
-
@Ignore
|
|
79
|
+
@Ignore("Remove to run test")
|
|
80
80
|
@Test
|
|
81
81
|
public void testPairedAndIncorrectlyNestedBrackets() {
|
|
82
82
|
final BracketChecker bracketChecker = new BracketChecker("[({]})");
|
|
83
83
|
assertFalse(bracketChecker.areBracketsMatchedAndNestedCorrectly());
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
-
@Ignore
|
|
86
|
+
@Ignore("Remove to run test")
|
|
87
87
|
@Test
|
|
88
88
|
public void testValidMathExpression() {
|
|
89
89
|
final BracketChecker bracketChecker = new BracketChecker("(((185 + 223.85) * 15) - 543)/2");
|
|
90
90
|
assertTrue(bracketChecker.areBracketsMatchedAndNestedCorrectly());
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
-
@Ignore
|
|
93
|
+
@Ignore("Remove to run test")
|
|
94
94
|
@Test
|
|
95
95
|
public void testValidComplexLaTeXExpression() {
|
|
96
96
|
final BracketChecker bracketChecker = new BracketChecker(
|
|
@@ -19,7 +19,7 @@ public class SimpleLinkedListTest {
|
|
|
19
19
|
assertThat(list.size(), is(0));
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
@Ignore
|
|
22
|
+
@Ignore("Remove to run test")
|
|
23
23
|
@Test
|
|
24
24
|
public void canCreateFromArray() {
|
|
25
25
|
Integer[] values = new Integer[]{1, 2, 3};
|
|
@@ -27,7 +27,7 @@ public class SimpleLinkedListTest {
|
|
|
27
27
|
assertThat(list.size(), is(3));
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
@Ignore
|
|
30
|
+
@Ignore("Remove to run test")
|
|
31
31
|
@Test
|
|
32
32
|
public void popOnEmptyListWillThrow() {
|
|
33
33
|
thrown.expect(NoSuchElementException.class);
|
|
@@ -35,7 +35,7 @@ public class SimpleLinkedListTest {
|
|
|
35
35
|
list.pop();
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
@Ignore
|
|
38
|
+
@Ignore("Remove to run test")
|
|
39
39
|
@Test
|
|
40
40
|
public void popReturnsLastAddedElement() {
|
|
41
41
|
SimpleLinkedList list = new SimpleLinkedList();
|
|
@@ -47,7 +47,7 @@ public class SimpleLinkedListTest {
|
|
|
47
47
|
assertThat(list.size(), is(0));
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
@Ignore
|
|
50
|
+
@Ignore("Remove to run test")
|
|
51
51
|
@Test
|
|
52
52
|
public void reverseReversesList() {
|
|
53
53
|
SimpleLinkedList list = new SimpleLinkedList();
|
|
@@ -64,7 +64,7 @@ public class SimpleLinkedListTest {
|
|
|
64
64
|
assertThat(list.pop(), is(5));
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
-
@Ignore
|
|
67
|
+
@Ignore("Remove to run test")
|
|
68
68
|
@Test
|
|
69
69
|
public void canReturnListAsArray() {
|
|
70
70
|
SimpleLinkedList list = new SimpleLinkedList();
|
|
@@ -77,7 +77,7 @@ public class SimpleLinkedListTest {
|
|
|
77
77
|
assertEquals(list.asArray(Integer.class), expected);
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
-
@Ignore
|
|
80
|
+
@Ignore("Remove to run test")
|
|
81
81
|
@Test
|
|
82
82
|
public void canReturnEmptyListAsEmptyArray() {
|
|
83
83
|
SimpleLinkedList list = new SimpleLinkedList();
|
data/tracks/javascript/SETUP.md
CHANGED
|
@@ -9,7 +9,12 @@ http://exercism.io/languages/javascript
|
|
|
9
9
|
|
|
10
10
|
Execute the tests with:
|
|
11
11
|
|
|
12
|
-
jasmine .
|
|
12
|
+
jasmine <exercise-name>.spec.js
|
|
13
|
+
|
|
14
|
+
Replace `<exercise-name>` with the name of the current exercise. E.g., to
|
|
15
|
+
test the Hello World exercise:
|
|
16
|
+
|
|
17
|
+
jasmine hello-world.spec.js
|
|
13
18
|
|
|
14
19
|
In many test suites all but the first test have been skipped.
|
|
15
20
|
|
|
@@ -24,7 +24,7 @@ This is the first test:
|
|
|
24
24
|
|
|
25
25
|
Run the test now, with the following command on the command-line:
|
|
26
26
|
|
|
27
|
-
jasmine .
|
|
27
|
+
jasmine hello-world.spec.js
|
|
28
28
|
|
|
29
29
|
The test fails, which makes sense since you've not written any code yet.
|
|
30
30
|
|
|
@@ -76,7 +76,7 @@ Try changing the function in hello-world.js so that it says
|
|
|
76
76
|
|
|
77
77
|
Then run the tests again from the command-line:
|
|
78
78
|
|
|
79
|
-
jasmine .
|
|
79
|
+
jasmine hello-world.spec.js
|
|
80
80
|
|
|
81
81
|
Notice how it changes the failure message.
|
|
82
82
|
|