trackler 2.2.1.27 → 2.2.1.28

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/problem-specifications/exercises/palindrome-products/canonical-data.json +138 -0
  4. data/tracks/csharp/exercises/book-store/BookStoreTest.cs +26 -26
  5. data/tracks/csharp/exercises/complex-numbers/ComplexNumbersTest.cs +38 -38
  6. data/tracks/csharp/generators/Exercises/AllYourBase.cs +0 -2
  7. data/tracks/csharp/generators/Exercises/Allergies.cs +5 -23
  8. data/tracks/csharp/generators/Exercises/Alphametics.cs +6 -9
  9. data/tracks/csharp/generators/Exercises/Anagram.cs +1 -8
  10. data/tracks/csharp/generators/Exercises/BinarySearch.cs +2 -7
  11. data/tracks/csharp/generators/Exercises/BookStore.cs +2 -6
  12. data/tracks/csharp/generators/Exercises/BracketPush.cs +1 -1
  13. data/tracks/csharp/generators/Exercises/CollatzConjecture.cs +1 -3
  14. data/tracks/csharp/generators/Exercises/ComplexNumbers.cs +19 -46
  15. data/tracks/csharp/generators/Exercises/Convert.cs +7 -0
  16. data/tracks/csharp/generators/Exercises/CryptoSquare.cs +0 -4
  17. data/tracks/csharp/generators/Exercises/FoodChain.cs +1 -1
  18. data/tracks/csharp/generators/Exercises/Gigasecond.cs +5 -13
  19. data/tracks/csharp/generators/Exercises/Grains.cs +2 -10
  20. data/tracks/csharp/generators/Exercises/Hamming.cs +0 -2
  21. data/tracks/csharp/generators/Exercises/House.cs +1 -1
  22. data/tracks/csharp/generators/Exercises/PerfectNumbers.cs +2 -3
  23. data/tracks/csharp/generators/Exercises/Poker.cs +0 -3
  24. data/tracks/csharp/generators/Exercises/QueenAttack.cs +10 -21
  25. data/tracks/csharp/generators/Exercises/RailFenceCipher.cs +2 -7
  26. data/tracks/csharp/generators/Exercises/RnaTranscription.cs +0 -2
  27. data/tracks/csharp/generators/Exercises/SecretHandshake.cs +1 -10
  28. data/tracks/csharp/generators/Exercises/Sieve.cs +1 -1
  29. data/tracks/csharp/generators/Exercises/SpaceAge.cs +3 -8
  30. data/tracks/csharp/generators/Exercises/SumOfMultiples.cs +1 -17
  31. data/tracks/csharp/generators/Exercises/Transpose.cs +3 -6
  32. data/tracks/csharp/generators/Exercises/WordCount.cs +6 -9
  33. data/tracks/csharp/generators/Input/CanonicalDataCase.cs +26 -32
  34. data/tracks/csharp/generators/Input/CanonicalDataCaseJson.cs +73 -0
  35. data/tracks/csharp/generators/Input/CanonicalDataCaseJsonConverter.cs +7 -15
  36. data/tracks/csharp/generators/Input/CanonicalDataCasesJson.cs +58 -0
  37. data/tracks/csharp/generators/Input/CanonicalDataCasesJsonConverter.cs +3 -11
  38. data/tracks/csharp/generators/Output/TestMethodBodyData.cs +1 -1
  39. data/tracks/csharp/generators/Output/ValueFormatter.cs +2 -6
  40. data/tracks/ecmascript/README.md +1 -1
  41. data/tracks/go/README.md +3 -3
  42. data/tracks/go/exercises/robot-simulator/robot_simulator_step2_test.go +4 -4
  43. data/tracks/go/exercises/roman-numerals/example.go +2 -2
  44. data/tracks/go/exercises/roman-numerals/roman_numerals_test.go +3 -3
  45. data/tracks/ocaml/.travis-ci.sh +1 -1
  46. data/tracks/ocaml/config.json +432 -423
  47. data/tracks/ocaml/exercises/palindrome-products/.merlin +3 -0
  48. data/tracks/ocaml/exercises/palindrome-products/Makefile +11 -0
  49. data/tracks/ocaml/exercises/palindrome-products/README.md +85 -0
  50. data/tracks/ocaml/exercises/palindrome-products/example.ml +59 -0
  51. data/tracks/ocaml/exercises/palindrome-products/palindrome_products.mli +22 -0
  52. data/tracks/ocaml/exercises/palindrome-products/test.ml +58 -0
  53. data/tracks/ocaml/tools/test-generator/src/ocaml_special_cases.ml +28 -3
  54. data/tracks/ocaml/tools/test-generator/templates/ocaml/palindrome-products/test.ml +25 -0
  55. data/tracks/typescript/config.json +160 -112
  56. metadata +13 -3
  57. data/tracks/csharp/generators/Exercises/ConvertExtensions.cs +0 -12
@@ -7,231 +7,279 @@
7
7
  {
8
8
  "uuid": "755f6f85-9ab3-4af6-9e35-dbb9d64be9c5",
9
9
  "slug": "hello-world",
10
- "core": false,
11
- "unlocked_by": null,
10
+ "core": true,
12
11
  "difficulty": 1,
13
12
  "topics": [
14
- "strings"
13
+ "Control-flow (conditionals)",
14
+ "Optional values",
15
+ "Strings",
16
+ "Text formatting"
15
17
  ]
16
18
  },
17
19
  {
18
20
  "uuid": "fb80f76c-42da-4f62-9f0f-8c85d984908b",
19
21
  "slug": "leap",
20
- "core": false,
21
- "unlocked_by": null,
22
+ "core": true,
22
23
  "difficulty": 1,
23
24
  "topics": [
24
- "math",
25
- "boolean logic"
25
+ "Booleans",
26
+ "Integers",
27
+ "Logic"
26
28
  ]
27
29
  },
28
30
  {
29
31
  "uuid": "b4db381f-1c99-44c6-948c-c8892d77823e",
30
32
  "slug": "rna-transcription",
31
- "core": false,
32
- "unlocked_by": null,
33
+ "core": true,
33
34
  "difficulty": 2,
34
35
  "topics": [
35
-
36
+ "Strings",
37
+ "Transforming"
36
38
  ]
37
39
  },
38
40
  {
39
- "uuid": "f6631a0f-2da3-47a4-b46b-7a81fa0d4dfd",
40
- "slug": "acronym",
41
- "core": false,
42
- "unlocked_by": "pangram",
41
+ "uuid": "3977d4e5-82ca-4801-ae20-6682dda23506",
42
+ "slug": "bob",
43
+ "core": true,
43
44
  "difficulty": 2,
44
45
  "topics": [
45
- "strings",
46
- "control-flow (loops)",
47
- "regular expressions",
48
- "transforming"
46
+ "Control-flow (conditionals)",
47
+ "Polymorphism",
48
+ "Strings",
49
+ "Unicode",
50
+ "Pattern recognition",
51
+ "Regular expressions"
49
52
  ]
50
53
  },
51
54
  {
52
- "uuid": "18204e23-fca8-44dc-8d5c-abe66b87c640",
53
- "slug": "hamming",
54
- "core": false,
55
- "unlocked_by": null,
55
+ "uuid": "a2c7abe7-b487-4cc2-a86a-d97cdd61709d",
56
+ "slug": "pangram",
57
+ "core": true,
56
58
  "difficulty": 3,
57
59
  "topics": [
58
-
60
+ "Control-flow (conditionals)",
61
+ "Control-flow (loops)",
62
+ "Lists",
63
+ "Strings",
64
+ "Maps",
65
+ "Algorithms",
66
+ "Searching"
59
67
  ]
60
68
  },
61
69
  {
62
- "uuid": "9dfabc5c-d2a5-4896-9fc2-2b25b9a5f62f",
63
- "slug": "gigasecond",
64
- "core": false,
65
- "unlocked_by": null,
70
+ "uuid": "8fe1e0ef-068e-4a53-a576-35be59f8152f",
71
+ "slug": "space-age",
72
+ "core": true,
66
73
  "difficulty": 3,
67
74
  "topics": [
68
-
75
+ "Classes",
76
+ "Floating-point numbers",
77
+ "Mathematics"
69
78
  ]
70
79
  },
71
80
  {
72
- "uuid": "a2c7abe7-b487-4cc2-a86a-d97cdd61709d",
73
- "slug": "pangram",
74
- "core": false,
75
- "unlocked_by": null,
76
- "difficulty": 3,
81
+ "uuid": "b00dd1af-f89c-4382-ab43-514651de6b20",
82
+ "slug": "robot-name",
83
+ "core": true,
84
+ "difficulty": 6,
77
85
  "topics": [
78
-
86
+ "Control-flow (conditionals)",
87
+ "Exception handling",
88
+ "Sets",
89
+ "Randomness",
90
+ "Regular expressions"
79
91
  ]
80
92
  },
81
93
  {
82
- "uuid": "8fe1e0ef-068e-4a53-a576-35be59f8152f",
83
- "slug": "space-age",
94
+ "uuid": "32e79fd7-f002-4bdc-b6bd-7a91d8c1af61",
95
+ "slug": "grade-school",
96
+ "core": true,
97
+ "difficulty": 6,
98
+ "topics": [
99
+ "Arrays",
100
+ "Maps",
101
+ "Sorting"
102
+ ]
103
+ },
104
+ {
105
+ "uuid": "269577e5-e782-4264-9ad9-9ad4b8bc0aab",
106
+ "slug": "wordy",
107
+ "core": true,
108
+ "difficulty": 7,
109
+ "topics": [
110
+ "Control-flow (conditionals)",
111
+ "Control-flow (loops)",
112
+ "Regular expressions",
113
+ "Exception handling",
114
+ "Strings",
115
+ "Pattern recognition",
116
+ "Parsing"
117
+ ]
118
+ },
119
+ {
120
+ "uuid": "9dfabc5c-d2a5-4896-9fc2-2b25b9a5f62f",
121
+ "slug": "gigasecond",
84
122
  "core": false,
85
- "unlocked_by": null,
123
+ "unlocked_by": "hello-world",
86
124
  "difficulty": 3,
87
125
  "topics": [
88
- "pattern matching",
89
- "math"
126
+ "Time"
90
127
  ]
91
128
  },
92
129
  {
93
130
  "uuid": "3f649490-dc7d-4a77-a2a0-2ae71ae834a9",
94
131
  "slug": "difference-of-squares",
95
132
  "core": false,
96
- "unlocked_by": null,
133
+ "unlocked_by": "hello-world",
97
134
  "difficulty": 3,
98
135
  "topics": [
99
-
136
+ "Control-flow (loops)",
137
+ "Algorithms",
138
+ "Mathematics",
139
+ "Integers"
100
140
  ]
101
141
  },
102
142
  {
103
- "uuid": "7c60f7c5-2922-4ce4-acbe-51c5ab654b4d",
104
- "slug": "scrabble-score",
143
+ "uuid": "5e5c48fb-91bb-495a-97f6-ec8642739a0a",
144
+ "slug": "word-count",
105
145
  "core": false,
106
- "unlocked_by": null,
107
- "difficulty": 3,
146
+ "unlocked_by": "hello-world",
147
+ "difficulty": 1,
108
148
  "topics": [
109
-
149
+ "Control-flow (loops)",
150
+ "Lists",
151
+ "Strings",
152
+ "Unicode",
153
+ "Regular expressions"
110
154
  ]
111
155
  },
112
156
  {
113
157
  "uuid": "c8677318-ba6c-4e8c-83ec-513cc6530e7f",
114
158
  "slug": "raindrops",
115
159
  "core": false,
116
- "unlocked_by": null,
117
- "difficulty": 3,
160
+ "unlocked_by": "rna-transcription",
161
+ "difficulty": 2,
118
162
  "topics": [
119
-
163
+ "Control-flow (conditionals)",
164
+ "Strings",
165
+ "Integers",
166
+ "Transforming"
120
167
  ]
121
168
  },
122
169
  {
123
- "uuid": "3977d4e5-82ca-4801-ae20-6682dda23506",
124
- "slug": "bob",
170
+ "uuid": "ab027a47-d483-4011-aac4-564a6284e5b8",
171
+ "slug": "etl",
125
172
  "core": false,
126
- "unlocked_by": null,
127
- "difficulty": 5,
173
+ "unlocked_by": "rna-transcription",
174
+ "difficulty": 2,
128
175
  "topics": [
129
- "control flow",
130
- "string processing"
176
+ "Control-flow (loops)",
177
+ "Transforming",
178
+ "Maps",
179
+ "Integers"
131
180
  ]
132
181
  },
133
182
  {
134
- "uuid": "5e5c48fb-91bb-495a-97f6-ec8642739a0a",
135
- "slug": "word-count",
183
+ "uuid": "18204e23-fca8-44dc-8d5c-abe66b87c640",
184
+ "slug": "hamming",
136
185
  "core": false,
137
- "unlocked_by": null,
138
- "difficulty": 5,
186
+ "unlocked_by": "rna-transcription",
187
+ "difficulty": 3,
139
188
  "topics": [
140
-
189
+ "Control-flow (loops)",
190
+ "Control-flow (conditionals)",
191
+ "Equality",
192
+ "Strings"
141
193
  ]
142
194
  },
143
195
  {
144
- "uuid": "bbd4665c-be4b-4d70-bc92-e91ce7a1d55f",
145
- "slug": "phone-number",
196
+ "uuid": "7c60f7c5-2922-4ce4-acbe-51c5ab654b4d",
197
+ "slug": "scrabble-score",
146
198
  "core": false,
147
- "unlocked_by": null,
199
+ "unlocked_by": "rna-transcription",
148
200
  "difficulty": 5,
149
201
  "topics": [
150
-
202
+ "Control-flow (conditionals)",
203
+ "Control-flow (loops)",
204
+ "Maps",
205
+ "Strings"
151
206
  ]
152
207
  },
153
208
  {
154
- "uuid": "b00dd1af-f89c-4382-ab43-514651de6b20",
155
- "slug": "robot-name",
209
+ "uuid": "f6631a0f-2da3-47a4-b46b-7a81fa0d4dfd",
210
+ "slug": "acronym",
156
211
  "core": false,
157
- "unlocked_by": null,
158
- "difficulty": 5,
212
+ "unlocked_by": "pangram",
213
+ "difficulty": 2,
159
214
  "topics": [
160
-
215
+ "strings",
216
+ "control-flow (loops)",
217
+ "regular expressions",
218
+ "transforming"
161
219
  ]
162
220
  },
163
221
  {
164
- "uuid": "7a4fefd2-6e71-42d6-82fd-a25d2ef9eae9",
165
- "slug": "beer-song",
222
+ "uuid": "2ceec21e-fb9d-4145-8788-826c3941eb01",
223
+ "slug": "anagram",
166
224
  "core": false,
167
- "unlocked_by": null,
168
- "difficulty": 6,
225
+ "unlocked_by": "pangram",
226
+ "difficulty": 2,
169
227
  "topics": [
170
-
228
+ "Strings",
229
+ "Filtering"
171
230
  ]
172
231
  },
173
232
  {
174
- "uuid": "32e79fd7-f002-4bdc-b6bd-7a91d8c1af61",
175
- "slug": "grade-school",
233
+ "uuid": "bbd4665c-be4b-4d70-bc92-e91ce7a1d55f",
234
+ "slug": "phone-number",
176
235
  "core": false,
177
- "unlocked_by": null,
178
- "difficulty": 6,
236
+ "unlocked_by": "pangram",
237
+ "difficulty": 5,
179
238
  "topics": [
180
-
239
+ "Parsing",
240
+ "Transforming"
181
241
  ]
182
242
  },
183
243
  {
184
- "uuid": "ab027a47-d483-4011-aac4-564a6284e5b8",
185
- "slug": "etl",
244
+ "uuid": "7a4fefd2-6e71-42d6-82fd-a25d2ef9eae9",
245
+ "slug": "beer-song",
186
246
  "core": false,
187
- "unlocked_by": null,
188
- "difficulty": 6,
247
+ "unlocked_by": "bob",
248
+ "difficulty": 5,
189
249
  "topics": [
190
-
250
+ "Control-flow (conditionals)",
251
+ "Control-flow (loops)",
252
+ "Strings"
191
253
  ]
192
254
  },
193
- {
194
- "uuid": "269577e5-e782-4264-9ad9-9ad4b8bc0aab",
195
- "slug": "wordy",
196
- "core": false,
197
- "unlocked_by": null,
198
- "difficulty": 6,
199
- "topics": [
200
255
 
201
- ]
202
- },
203
256
  {
204
257
  "uuid": "8e7b92f4-a508-4200-bd62-b36281dd9ed9",
205
258
  "slug": "say",
206
259
  "core": false,
207
- "unlocked_by": null,
260
+ "unlocked_by": "bob",
208
261
  "difficulty": 6,
209
262
  "topics": [
210
- "pattern matching"
211
- ]
212
- },
213
- {
214
- "uuid": "2ceec21e-fb9d-4145-8788-826c3941eb01",
215
- "slug": "anagram",
216
- "core": false,
217
- "unlocked_by": null,
218
- "difficulty": 7,
219
- "topics": [
220
-
263
+ "Control-flow (conditionals)",
264
+ "Control-flow (loops)",
265
+ "Mathematics",
266
+ "Integers",
267
+ "Exception handling",
268
+ "Strings",
269
+ "Text formatting"
221
270
  ]
222
271
  },
223
272
  {
224
273
  "uuid": "246129c9-83b5-43e0-beb6-8a2cea7e4e17",
225
274
  "slug": "food-chain",
226
275
  "core": false,
227
- "unlocked_by": null,
228
- "difficulty": 7,
276
+ "unlocked_by": "bob",
277
+ "difficulty": 4,
229
278
  "topics": [
230
-
279
+ "Text formatting",
280
+ "Algorithms"
231
281
  ]
232
282
  }
233
283
  ],
234
- "foregone": [
235
-
236
- ]
237
- }
284
+ "foregone": []
285
+ }
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.2.1.27
4
+ version: 2.2.1.28
5
5
  platform: ruby
6
6
  authors:
7
7
  - Katrina Owen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-09-08 00:00:00.000000000 Z
11
+ date: 2017-09-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip
@@ -417,6 +417,7 @@ files:
417
417
  - problem-specifications/exercises/octal/metadata.yml
418
418
  - problem-specifications/exercises/paasio/description.md
419
419
  - problem-specifications/exercises/paasio/metadata.yml
420
+ - problem-specifications/exercises/palindrome-products/canonical-data.json
420
421
  - problem-specifications/exercises/palindrome-products/description.md
421
422
  - problem-specifications/exercises/palindrome-products/metadata.yml
422
423
  - problem-specifications/exercises/pangram/canonical-data.json
@@ -2508,7 +2509,7 @@ files:
2508
2509
  - tracks/csharp/generators/Exercises/BracketPush.cs
2509
2510
  - tracks/csharp/generators/Exercises/CollatzConjecture.cs
2510
2511
  - tracks/csharp/generators/Exercises/ComplexNumbers.cs
2511
- - tracks/csharp/generators/Exercises/ConvertExtensions.cs
2512
+ - tracks/csharp/generators/Exercises/Convert.cs
2512
2513
  - tracks/csharp/generators/Exercises/CryptoSquare.cs
2513
2514
  - tracks/csharp/generators/Exercises/FoodChain.cs
2514
2515
  - tracks/csharp/generators/Exercises/Gigasecond.cs
@@ -2547,7 +2548,9 @@ files:
2547
2548
  - tracks/csharp/generators/Generators.sln
2548
2549
  - tracks/csharp/generators/Input/CanonicalData.cs
2549
2550
  - tracks/csharp/generators/Input/CanonicalDataCase.cs
2551
+ - tracks/csharp/generators/Input/CanonicalDataCaseJson.cs
2550
2552
  - tracks/csharp/generators/Input/CanonicalDataCaseJsonConverter.cs
2553
+ - tracks/csharp/generators/Input/CanonicalDataCasesJson.cs
2551
2554
  - tracks/csharp/generators/Input/CanonicalDataCasesJsonConverter.cs
2552
2555
  - tracks/csharp/generators/Input/CanonicalDataFile.cs
2553
2556
  - tracks/csharp/generators/Input/CanonicalDataOptions.cs
@@ -8473,6 +8476,12 @@ files:
8473
8476
  - tracks/ocaml/exercises/nucleotide-count/example.ml
8474
8477
  - tracks/ocaml/exercises/nucleotide-count/nucleotide_count.mli
8475
8478
  - tracks/ocaml/exercises/nucleotide-count/test.ml
8479
+ - tracks/ocaml/exercises/palindrome-products/.merlin
8480
+ - tracks/ocaml/exercises/palindrome-products/Makefile
8481
+ - tracks/ocaml/exercises/palindrome-products/README.md
8482
+ - tracks/ocaml/exercises/palindrome-products/example.ml
8483
+ - tracks/ocaml/exercises/palindrome-products/palindrome_products.mli
8484
+ - tracks/ocaml/exercises/palindrome-products/test.ml
8476
8485
  - tracks/ocaml/exercises/pangram/.merlin
8477
8486
  - tracks/ocaml/exercises/pangram/Makefile
8478
8487
  - tracks/ocaml/exercises/pangram/README.md
@@ -8601,6 +8610,7 @@ files:
8601
8610
  - tracks/ocaml/tools/test-generator/templates/ocaml/leap/test.ml
8602
8611
  - tracks/ocaml/tools/test-generator/templates/ocaml/luhn/test.ml
8603
8612
  - tracks/ocaml/tools/test-generator/templates/ocaml/minesweeper/test.ml
8613
+ - tracks/ocaml/tools/test-generator/templates/ocaml/palindrome-products/test.ml
8604
8614
  - tracks/ocaml/tools/test-generator/templates/ocaml/pangram/test.ml
8605
8615
  - tracks/ocaml/tools/test-generator/templates/ocaml/phone-number/test.ml
8606
8616
  - tracks/ocaml/tools/test-generator/templates/ocaml/prime-factors/test.ml
@@ -1,12 +0,0 @@
1
- using System.Collections.Generic;
2
- using Newtonsoft.Json.Linq;
3
-
4
- namespace Generators.Exercises
5
- {
6
- public static class ConvertExtensions
7
- {
8
- public static string ConvertMultiLineString(this object obj) => string.Join("\n", (JArray)obj);
9
-
10
- public static IEnumerable<T> ConvertToEnumerable<T>(this object obj) => ((JArray) obj).Values<T>();
11
- }
12
- }