trackler 2.2.1.170 → 2.2.1.171

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 (64) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/problem-specifications/exercises/simple-cipher/canonical-data.json +5 -4
  4. data/tracks/cfml/config.json +1 -0
  5. data/tracks/coffeescript/config.json +43 -87
  6. data/tracks/coffeescript/config/maintainers.json +8 -2
  7. data/tracks/common-lisp/config.json +1 -0
  8. data/tracks/coq/config.json +7 -15
  9. data/tracks/coq/config/maintainers.json +5 -5
  10. data/tracks/crystal/config.json +51 -99
  11. data/tracks/crystal/config/maintainers.json +8 -8
  12. data/tracks/d/config.json +58 -60
  13. data/tracks/d/config/maintainers.json +8 -8
  14. data/tracks/delphi/config.json +12 -0
  15. data/tracks/delphi/exercises/isbn-verifier/uTestISBNVerifier.pas +30 -3
  16. data/tracks/delphi/exercises/word-count/README.md +39 -0
  17. data/tracks/delphi/exercises/word-count/WordCount.dpr +60 -0
  18. data/tracks/delphi/exercises/word-count/uWordCountExample.pas +67 -0
  19. data/tracks/delphi/exercises/word-count/uWordCountTests.pas +247 -0
  20. data/tracks/elisp/config.json +1 -0
  21. data/tracks/erlang/config.json +1 -1
  22. data/tracks/fortran/config.json +16 -32
  23. data/tracks/fortran/config/maintainers.json +5 -5
  24. data/tracks/go/config.json +1 -0
  25. data/tracks/go/exercises/bank-account/bank_account_test.go +3 -3
  26. data/tracks/go/exercises/parallel-letter-frequency/parallel_letter_frequency_test.go +17 -1
  27. data/tracks/groovy/config.json +89 -89
  28. data/tracks/groovy/config/maintainers.json +6 -6
  29. data/tracks/haxe/config.json +17 -17
  30. data/tracks/haxe/config/maintainers.json +1 -1
  31. data/tracks/java/scripts/insert-ignores.sh +33 -11
  32. data/tracks/julia/config.json +1 -0
  33. data/tracks/lua/config.json +1 -0
  34. data/tracks/lua/docs/ABOUT.md +7 -3
  35. data/tracks/nim/config.json +14 -2
  36. data/tracks/nim/exercises/sum-of-multiples/README.md +15 -0
  37. data/tracks/nim/exercises/sum-of-multiples/example.nim +6 -0
  38. data/tracks/nim/exercises/sum-of-multiples/sum_of_multiples_test.nim +44 -0
  39. data/tracks/objective-c/config.json +1 -0
  40. data/tracks/ocaml/config.json +1 -0
  41. data/tracks/perl5/config.json +138 -258
  42. data/tracks/perl5/config/maintainers.json +8 -8
  43. data/tracks/pharo/.travis.yml +1 -1
  44. data/tracks/pharo/config.json +3 -4
  45. data/tracks/pharo/config/maintainers.json +1 -1
  46. data/tracks/pharo/exercises/.keep +0 -0
  47. data/tracks/php/config.json +191 -211
  48. data/tracks/php/config/maintainers.json +11 -11
  49. data/tracks/plsql/config.json +49 -49
  50. data/tracks/plsql/config/maintainers.json +5 -5
  51. data/tracks/pony/config.json +27 -26
  52. data/tracks/pony/config/maintainers.json +5 -5
  53. data/tracks/prolog/config.json +1 -0
  54. data/tracks/purescript/config.json +49 -51
  55. data/tracks/purescript/config/maintainers.json +11 -11
  56. data/tracks/racket/config.json +1 -0
  57. data/tracks/scala/config.json +1 -0
  58. data/tracks/scheme/config.json +1 -0
  59. data/tracks/swift/config.json +1 -0
  60. data/tracks/typescript/config.json +1 -0
  61. data/tracks/vbnet/config.json +16 -32
  62. data/tracks/vbnet/config/maintainers.json +5 -5
  63. data/tracks/vimscript/config.json +1 -0
  64. metadata +10 -2
@@ -1,25 +1,25 @@
1
1
  {
2
+ "docs_url": "https://github.com/exercism/docs/blob/master/maintaining-a-track/maintainer-configuration.md",
2
3
  "maintainers": [
3
4
  {
4
5
  "github_username": "bmulvihill",
5
- "show_on_website": false,
6
6
  "alumnus": false,
7
+ "show_on_website": false,
7
8
  "name": null,
8
- "bio": null,
9
9
  "link_text": null,
10
10
  "link_url": null,
11
- "avatar_url": null
11
+ "avatar_url": null,
12
+ "bio": null
12
13
  },
13
14
  {
14
15
  "github_username": "mhelmetag",
15
- "show_on_website": false,
16
16
  "alumnus": false,
17
+ "show_on_website": false,
17
18
  "name": null,
18
- "bio": null,
19
19
  "link_text": null,
20
20
  "link_url": null,
21
- "avatar_url": null
21
+ "avatar_url": null,
22
+ "bio": null
22
23
  }
23
- ],
24
- "docs_url": "https://github.com/exercism/docs/blob/master/maintaining-a-track/maintainer-configuration.md"
24
+ ]
25
25
  }
@@ -1,218 +1,216 @@
1
1
  {
2
2
  "language": "D",
3
- "checklist_issue": 6,
4
3
  "active": true,
4
+ "blurb": "",
5
+ "checklist_issue": 6,
5
6
  "test_pattern": "source.*[.]d",
6
7
  "exercises": [
7
8
  {
8
- "uuid": "a91c2216-9331-4485-ae4b-190ee9e2a7f8",
9
9
  "slug": "hello-world",
10
+ "uuid": "a91c2216-9331-4485-ae4b-190ee9e2a7f8",
10
11
  "core": false,
11
12
  "unlocked_by": null,
12
13
  "difficulty": 1,
13
14
  "topics": [
14
- "language basics"
15
+ "language_basics"
15
16
  ]
16
17
  },
17
18
  {
18
- "uuid": "9f52d6a7-1002-4614-afc3-cce03187c59b",
19
19
  "slug": "leap",
20
+ "uuid": "9f52d6a7-1002-4614-afc3-cce03187c59b",
20
21
  "core": false,
21
22
  "unlocked_by": null,
22
23
  "difficulty": 1,
23
24
  "topics": [
24
- "language basics"
25
+ "language_basics"
25
26
  ]
26
27
  },
27
28
  {
28
- "uuid": "8c976f92-fcfa-45f0-9bd1-2353822e51e8",
29
29
  "slug": "gigasecond",
30
+ "uuid": "8c976f92-fcfa-45f0-9bd1-2353822e51e8",
30
31
  "core": false,
31
32
  "unlocked_by": null,
32
33
  "difficulty": 1,
33
34
  "topics": [
34
- "language basics",
35
+ "language_basics",
35
36
  "time"
36
37
  ]
37
38
  },
38
39
  {
39
- "uuid": "208f9a34-bdf2-4c2b-b102-f0ef1a5d04fe",
40
40
  "slug": "rna-transcription",
41
+ "uuid": "208f9a34-bdf2-4c2b-b102-f0ef1a5d04fe",
41
42
  "core": false,
42
43
  "unlocked_by": null,
43
44
  "difficulty": 2,
44
45
  "topics": [
45
- "string manipulation",
46
- "error handling",
47
- "control-flow (foreach)"
46
+ "control_flow_foreach",
47
+ "error_handling",
48
+ "string_manipulation"
48
49
  ]
49
50
  },
50
51
  {
51
- "uuid": "f6d21f86-b4d3-4dec-b830-8e19e1018548",
52
52
  "slug": "raindrops",
53
+ "uuid": "f6d21f86-b4d3-4dec-b830-8e19e1018548",
53
54
  "core": false,
54
55
  "unlocked_by": null,
55
56
  "difficulty": 1,
56
57
  "topics": [
57
- "language basics",
58
- "control-flow (if-statements)"
58
+ "control_flow_if_statements",
59
+ "language_basics"
59
60
  ]
60
61
  },
61
62
  {
62
- "uuid": "99ee69a6-2c0f-4c7c-86f9-bee1633b4f51",
63
63
  "slug": "bob",
64
+ "uuid": "99ee69a6-2c0f-4c7c-86f9-bee1633b4f51",
64
65
  "core": false,
65
66
  "unlocked_by": null,
66
67
  "difficulty": 2,
67
68
  "topics": [
68
- "string manipulation",
69
- "control-flow (if-statements)"
69
+ "control_flow_if_statements",
70
+ "string_manipulation"
70
71
  ]
71
72
  },
72
73
  {
73
- "uuid": "dc631076-1eb8-4120-bd8f-dccf33df9a3f",
74
74
  "slug": "etl",
75
+ "uuid": "dc631076-1eb8-4120-bd8f-dccf33df9a3f",
75
76
  "core": false,
76
77
  "unlocked_by": null,
77
78
  "difficulty": 2,
78
79
  "topics": [
79
- "string manipulation",
80
- "control-flow (foreach)",
81
- "associative arrays"
80
+ "associative_arrays",
81
+ "control_flow_foreach",
82
+ "string_manipulation"
82
83
  ]
83
84
  },
84
85
  {
85
- "uuid": "87c87444-2349-40ab-a9a3-c0f0d2e200d6",
86
86
  "slug": "hamming",
87
+ "uuid": "87c87444-2349-40ab-a9a3-c0f0d2e200d6",
87
88
  "core": false,
88
89
  "unlocked_by": null,
89
90
  "difficulty": 2,
90
91
  "topics": [
91
- "error handling",
92
- "control-flow (foreach)"
92
+ "control_flow_foreach",
93
+ "error_handling"
93
94
  ]
94
95
  },
95
96
  {
96
- "uuid": "23b23ac0-62ef-4a22-b634-d64206c8a226",
97
97
  "slug": "nucleotide-count",
98
+ "uuid": "23b23ac0-62ef-4a22-b634-d64206c8a226",
98
99
  "core": false,
99
100
  "unlocked_by": null,
100
101
  "difficulty": 3,
101
102
  "topics": [
103
+ "associative_arrays",
102
104
  "classes",
103
- "parsing",
104
- "associative arrays"
105
+ "parsing"
105
106
  ]
106
107
  },
107
108
  {
108
- "uuid": "d7dd5df3-ff36-47ee-88db-e0f974a4cb19",
109
109
  "slug": "robot-name",
110
+ "uuid": "d7dd5df3-ff36-47ee-88db-e0f974a4cb19",
110
111
  "core": false,
111
112
  "unlocked_by": null,
112
113
  "difficulty": 3,
113
114
  "topics": [
114
115
  "classes",
115
- "random numbers"
116
+ "random_numbers"
116
117
  ]
117
118
  },
118
119
  {
119
- "uuid": "d6c67e30-c950-40b6-b6db-0fa6df5652af",
120
120
  "slug": "difference-of-squares",
121
+ "uuid": "d6c67e30-c950-40b6-b6db-0fa6df5652af",
121
122
  "core": false,
122
123
  "unlocked_by": null,
123
124
  "difficulty": 2,
124
125
  "topics": [
125
- "control-flow (foreach)",
126
- "template metaprogramming",
126
+ "algorithms",
127
+ "control_flow_foreach",
127
128
  "functional",
128
- "algorithms"
129
+ "template_metaprogramming"
129
130
  ]
130
131
  },
131
132
  {
132
- "uuid": "5647c00e-d4be-4546-bac3-6a3e1670c2a1",
133
133
  "slug": "roman-numerals",
134
+ "uuid": "5647c00e-d4be-4546-bac3-6a3e1670c2a1",
134
135
  "core": false,
135
136
  "unlocked_by": null,
136
137
  "difficulty": 3,
137
138
  "topics": [
138
- "string manipulation",
139
139
  "conversions",
140
- "functional"
140
+ "functional",
141
+ "string_manipulation"
141
142
  ]
142
143
  },
143
144
  {
144
- "uuid": "14c3c478-9dc1-470b-8517-35c3ceac3f47",
145
145
  "slug": "series",
146
+ "uuid": "14c3c478-9dc1-470b-8517-35c3ceac3f47",
146
147
  "core": false,
147
148
  "unlocked_by": null,
148
149
  "difficulty": 3,
149
150
  "topics": [
150
- "string manipulation",
151
- "arrays"
151
+ "arrays",
152
+ "string_manipulation"
152
153
  ]
153
154
  },
154
155
  {
155
- "uuid": "c9acd967-fc2a-4c74-b584-2572ce690e71",
156
156
  "slug": "triangle",
157
+ "uuid": "c9acd967-fc2a-4c74-b584-2572ce690e71",
157
158
  "core": false,
158
159
  "unlocked_by": null,
159
160
  "difficulty": 2,
160
161
  "topics": [
161
- "language basics",
162
- "control-flow (if-statements)"
162
+ "control_flow_if_statements",
163
+ "language_basics"
163
164
  ]
164
165
  },
165
166
  {
166
- "uuid": "45afc532-3f6c-4b9e-90f6-c53a79551af1",
167
167
  "slug": "crypto-square",
168
+ "uuid": "45afc532-3f6c-4b9e-90f6-c53a79551af1",
168
169
  "core": false,
169
170
  "unlocked_by": null,
170
171
  "difficulty": 3,
171
172
  "topics": [
172
- "string manipulation",
173
+ "algorithms",
173
174
  "classes",
174
- "algorithms"
175
+ "string_manipulation"
175
176
  ]
176
177
  },
177
178
  {
178
- "uuid": "2ba799a8-eab9-44a0-9b31-a10e72baa38b",
179
179
  "slug": "circular-buffer",
180
+ "uuid": "2ba799a8-eab9-44a0-9b31-a10e72baa38b",
180
181
  "core": false,
181
182
  "unlocked_by": null,
182
183
  "difficulty": 4,
183
184
  "topics": [
184
- "class templates",
185
- "data-structures"
185
+ "class_templates",
186
+ "data_structures"
186
187
  ]
187
188
  },
188
189
  {
189
- "uuid": "a4cf4571-1f97-438c-9c02-3fe7c52ee25f",
190
190
  "slug": "pangram",
191
+ "uuid": "a4cf4571-1f97-438c-9c02-3fe7c52ee25f",
191
192
  "core": false,
192
193
  "unlocked_by": null,
193
194
  "difficulty": 1,
194
195
  "topics": [
195
- "language basics",
196
- "string manipulation",
197
- "control-flow"
196
+ "control_flow",
197
+ "language_basics",
198
+ "string_manipulation"
198
199
  ]
199
200
  },
200
201
  {
201
- "uuid": "31dd1e53-2b5e-4d40-ac4c-a68fe5e6635c",
202
202
  "slug": "react",
203
+ "uuid": "31dd1e53-2b5e-4d40-ac4c-a68fe5e6635c",
203
204
  "core": false,
204
205
  "unlocked_by": null,
205
206
  "difficulty": 10,
206
207
  "topics": [
207
- "reactive programming",
208
+ "delegates",
208
209
  "generics",
209
- "nested classes",
210
- "higher-order functions",
211
- "delegates"
210
+ "higher_order_functions",
211
+ "nested_classes",
212
+ "reactive_programming"
212
213
  ]
213
214
  }
214
- ],
215
- "foregone": [
216
-
217
215
  ]
218
216
  }
@@ -1,25 +1,25 @@
1
1
  {
2
+ "docs_url": "https://github.com/exercism/docs/blob/master/maintaining-a-track/maintainer-configuration.md",
2
3
  "maintainers": [
3
4
  {
4
5
  "github_username": "celavek",
5
- "show_on_website": false,
6
6
  "alumnus": false,
7
+ "show_on_website": false,
7
8
  "name": null,
8
- "bio": null,
9
9
  "link_text": null,
10
10
  "link_url": null,
11
- "avatar_url": null
11
+ "avatar_url": null,
12
+ "bio": null
12
13
  },
13
14
  {
14
15
  "github_username": "tmccombs",
15
- "show_on_website": false,
16
16
  "alumnus": false,
17
+ "show_on_website": false,
17
18
  "name": null,
18
- "bio": null,
19
19
  "link_text": null,
20
20
  "link_url": null,
21
- "avatar_url": null
21
+ "avatar_url": null,
22
+ "bio": null
22
23
  }
23
- ],
24
- "docs_url": "https://github.com/exercism/docs/blob/master/maintaining-a-track/maintainer-configuration.md"
24
+ ]
25
25
  }
@@ -301,6 +301,18 @@
301
301
  "tuples"
302
302
  ]
303
303
  },
304
+ {
305
+ "slug": "word-count",
306
+ "uuid": "70643878-7f92-4823-8ec8-1159e901286f",
307
+ "core": false,
308
+ "unlocked_by": "bob",
309
+ "difficulty": 4,
310
+ "topics": [
311
+ "dictionaries",
312
+ "strings",
313
+ "transforming"
314
+ ]
315
+ },
304
316
  {
305
317
  "slug": "circular-buffer",
306
318
  "uuid": "f949b958-d2e0-4f21-a6db-12ba89f8ab57",
@@ -5,7 +5,7 @@ uses
5
5
  DUnitX.TestFramework;
6
6
 
7
7
  const
8
- CanonicalVersion = '2.3.0';
8
+ CanonicalVersion = '2.6.0';
9
9
 
10
10
  type
11
11
  [TestFixture]
@@ -51,6 +51,10 @@ type
51
51
  [Ignore]
52
52
  procedure too_long_isbn_and_no_dashes;
53
53
 
54
+ [Test]
55
+ [Ignore]
56
+ procedure too_short_isbn;
57
+
54
58
  [Test]
55
59
  [Ignore]
56
60
  procedure isbn_without_check_digit;
@@ -66,6 +70,14 @@ type
66
70
  [Test]
67
71
  [Ignore]
68
72
  procedure empty_ISBN;
73
+
74
+ [Test]
75
+ [Ignore]
76
+ procedure input_is_9_characters;
77
+
78
+ [Test]
79
+ [Ignore]
80
+ procedure invalid_characters_are_not_ignored;
69
81
  end;
70
82
 
71
83
  implementation
@@ -85,12 +97,22 @@ end;
85
97
 
86
98
  procedure ISBNVerifierTest.empty_ISBN;
87
99
  begin
88
- Assert.IsFalse(TIsbn.isValid(''))
100
+ Assert.IsFalse(TIsbn.isValid(''));
101
+ end;
102
+
103
+ procedure ISBNVerifierTest.input_is_9_characters;
104
+ begin
105
+ Assert.IsFalse(TIsbn.isValid('134456729'));
106
+ end;
107
+
108
+ procedure ISBNVerifierTest.invalid_characters_are_not_ignored;
109
+ begin
110
+ Assert.IsFalse(TIsbn.isValid('3132P34035'));
89
111
  end;
90
112
 
91
113
  procedure ISBNVerifierTest.invalid_character_in_isbn;
92
114
  begin
93
- Assert.IsFalse(TIsbn.isValid('3-598-P1581-X'))
115
+ Assert.IsFalse(TIsbn.isValid('3-598-P1581-X'));
94
116
  end;
95
117
 
96
118
  procedure ISBNVerifierTest.invalid_isbn_check_digit;
@@ -123,6 +145,11 @@ begin
123
145
  Assert.IsFalse(TIsbn.isValid('3598215078X'));
124
146
  end;
125
147
 
148
+ procedure ISBNVerifierTest.too_short_isbn;
149
+ begin
150
+ Assert.IsFalse(TIsbn.isValid('00'));
151
+ end;
152
+
126
153
  procedure ISBNVerifierTest.valid_isbn_number;
127
154
  begin
128
155
  Assert.IsTrue(TIsbn.isValid('3-598-21508-8'));
@@ -0,0 +1,39 @@
1
+ # Word Count
2
+
3
+ Given a phrase, count the occurrences of each word in that phrase.
4
+
5
+ For example for the input `"olly olly in come free"`
6
+
7
+ ```text
8
+ olly: 2
9
+ in: 1
10
+ come: 1
11
+ free: 1
12
+ ```
13
+
14
+ ## Testing
15
+
16
+ In order to run the tests for this track, you will need to install
17
+ DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/installation) instructions for more information.
18
+
19
+ ### Loading Exercises into Delphi
20
+
21
+ If Delphi is properly installed, and `*.dpr` file types have been associated with Delphi, then double clicking the supplied `*.dpr` file will start Delphi and load the exercise/project. `control + F9` is the keyboard shortcut to compile the project or pressing `F9` will compile and run the project.
22
+
23
+ Alternatively you may opt to start Delphi and load your project via. the `File` drop down menu.
24
+
25
+ ### When Questions Come Up
26
+ We monitor the [Pascal-Delphi](https://gitter.im/exercism/Pascal-Delphi) support room on [gitter.im](https://gitter.im) to help you with any questions that might arise.
27
+
28
+ ### Submitting Exercises
29
+
30
+ Note that, when trying to submit an exercise, make sure the exercise file you're submitting is in the `exercism/delphi/<exerciseName>` directory.
31
+
32
+ For example, if you're submitting `ubob.pas` for the Bob exercise, the submit command would be something like `exercism submit <path_to_exercism_dir>/delphi/bob/ubob.pas`.
33
+
34
+ ## Source
35
+
36
+ This is a classic toy problem, but we were reminded of it by seeing it in the Go Tour.
37
+
38
+ ## Submitting Incomplete Solutions
39
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.