trackler 2.2.1.170 → 2.2.1.171

Sign up to get free protection for your applications and to get access to all the features.
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.