trackler 2.0.6.25 → 2.0.6.26

Sign up to get free protection for your applications and to get access to all the features.
Files changed (29) hide show
  1. checksums.yaml +4 -4
  2. data/common/exercises/nucleotide-count/canonical-data.json +44 -0
  3. data/common/exercises/scrabble-score/canonical-data.json +5 -0
  4. data/lib/trackler/version.rb +1 -1
  5. data/tracks/c/exercises/gigasecond/test/test_gigasecond.c +1 -1
  6. data/tracks/c/exercises/grains/src/example.c +4 -0
  7. data/tracks/c/exercises/grains/test/test_grains.c +12 -0
  8. data/tracks/csharp/exercises/error-handling/ErrorHandlingTest.cs +5 -5
  9. data/tracks/delphi/SETUP.md +1 -1
  10. data/tracks/fsharp/exercises/food-chain/HINTS.md +2 -0
  11. data/tracks/fsharp/exercises/house/HINTS.md +2 -0
  12. data/tracks/fsharp/exercises/proverb/HINTS.md +2 -0
  13. data/tracks/fsharp/exercises/scrabble-score/ScrabbleScoreTest.fs +6 -1
  14. data/tracks/fsharp/exercises/twelve-days/HINTS.md +2 -0
  15. data/tracks/haskell/config.json +60 -0
  16. data/tracks/java/config.json +6 -0
  17. data/tracks/java/exercises/clock/build.gradle +17 -0
  18. data/tracks/java/exercises/clock/src/example/java/Clock.java +49 -0
  19. data/tracks/java/exercises/clock/src/main/java/.keep +0 -0
  20. data/tracks/java/exercises/clock/src/test/java/ClockAddTest.java +135 -0
  21. data/tracks/java/exercises/clock/src/test/java/ClockCreationTest.java +120 -0
  22. data/tracks/java/exercises/clock/src/test/java/ClockEqualTest.java +98 -0
  23. data/tracks/java/exercises/grade-school/build.gradle +1 -0
  24. data/tracks/java/exercises/grade-school/src/test/java/SchoolTest.java +39 -28
  25. data/tracks/java/exercises/settings.gradle +1 -0
  26. data/tracks/javascript/exercises/rna-transcription/example.js +1 -0
  27. data/tracks/javascript/exercises/rna-transcription/rna-transcription.spec.js +12 -0
  28. data/tracks/rust/config.json +41 -41
  29. metadata +13 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9763766ea797f1e86a38a58b714beeef17a5628f
4
- data.tar.gz: 7a9946b3ae2f97f0e2ebc73bd09f4ff5a9817b07
3
+ metadata.gz: 723ea04d71ff6562a6d27f75ed7fbbbd37251d4d
4
+ data.tar.gz: dcdab8d87803eed5e08a47f9b73959181e6b0b43
5
5
  SHA512:
6
- metadata.gz: ed82b161061cde6fdb568c4a689c69de16fb71e1e9f6f450719b8596f6e619d19ef027f0c46e082187a1812236fcaa0883924a7c67a4f8cf012361c2433fb77f
7
- data.tar.gz: 4532d2aa2753daed3f20cf6a28af54bb14a83dce4f459c864c83b3f1b8186df930d1e78f1c68b91338b2e9d6deada4a346a8fa13fad597a246f2c6b2027fd0f2
6
+ metadata.gz: 3be2e4eca18e56ffb216b7b32ed7caa70904061b4acfc378de5cae07b1c98e7411e1883603f18d14fd5b1156e9feafacb10d596fd17941102d5d06e5ec349c46
7
+ data.tar.gz: bd0d44195fa4bb6644434227cfeb3ce852bb7d76523bc72dc427950ea7480ae5d6021bd179a53bd93f01a33dd240ad3afbe294ec9dbeca390ca3d9c01b05833f
@@ -0,0 +1,44 @@
1
+ {
2
+ "nucleotide_counts": {
3
+ "description": "count all nucleotides in a strand",
4
+ "cases": [
5
+ {
6
+ "description": "empty strand",
7
+ "strand": "",
8
+ "expected": {
9
+ "A": 0,
10
+ "C": 0,
11
+ "G": 0,
12
+ "T": 0
13
+ }
14
+ },
15
+ {
16
+ "description": "strand with repeated nucleotide",
17
+ "strand": "GGGGGGG",
18
+ "expected": {
19
+ "A": 0,
20
+ "C": 0,
21
+ "G": 7,
22
+ "T": 0
23
+ }
24
+ },
25
+ {
26
+ "description": "strand with multiple nucleotides",
27
+ "strand": "AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC",
28
+ "expected": {
29
+ "A": 20,
30
+ "C": 12,
31
+ "G": 17,
32
+ "T": 21
33
+ }
34
+ },
35
+ {
36
+ "description": "strand with invalid nucleotides",
37
+ "strand": "AGXXACT",
38
+ "expected": {
39
+ "error": "Invalid nucleotide in strand"
40
+ }
41
+ }
42
+ ]
43
+ }
44
+ }
@@ -54,6 +54,11 @@
54
54
  "description": "empty input",
55
55
  "input": "",
56
56
  "expected": 0
57
+ },
58
+ {
59
+ "description": "entire alphabet available",
60
+ "input": "abcdefghijklmnopqrstuvwxyz",
61
+ "expected": 87
57
62
  }
58
63
  ]
59
64
  }
@@ -1,3 +1,3 @@
1
1
  module Trackler
2
- VERSION = "2.0.6.25"
2
+ VERSION = "2.0.6.26"
3
3
  end
@@ -55,7 +55,7 @@ void test_your_birthday(void)
55
55
  {
56
56
  time_t birthday = construct_date(1989, 1, 1, 1, 1, 1);
57
57
  time_t gigday = gigasecond_after(birthday);
58
- printf(ctime(&gigday));
58
+ printf("%s", ctime(&gigday));
59
59
  }
60
60
  */
61
61
 
@@ -4,6 +4,10 @@
4
4
 
5
5
  uint64_t square(uint8_t index)
6
6
  {
7
+ if ((!index) || (index > NUMBER_OF_SQUARES)) {
8
+ return 0;
9
+ }
10
+
7
11
  return (uint64_t) 1 << (index - 1);
8
12
  }
9
13
 
@@ -36,6 +36,16 @@ void test_square_64(void)
36
36
  TEST_ASSERT_EQUAL_UINT64(9223372036854775808ul, square(64));
37
37
  }
38
38
 
39
+ void test_square_0_does_not_exist(void)
40
+ {
41
+ TEST_ASSERT_EQUAL_UINT64(0, square(0));
42
+ }
43
+
44
+ void test_square_greater_than_64_does_not_exist(void)
45
+ {
46
+ TEST_ASSERT_EQUAL_UINT64(0, square(65));
47
+ }
48
+
39
49
  void test_total(void)
40
50
  {
41
51
  TEST_ASSERT_EQUAL_UINT64(18446744073709551615ul, total());
@@ -52,6 +62,8 @@ int main(void)
52
62
  RUN_TEST(test_square_16);
53
63
  RUN_TEST(test_square_32);
54
64
  RUN_TEST(test_square_64);
65
+ RUN_TEST(test_square_0_does_not_exist);
66
+ RUN_TEST(test_square_greater_than_64_does_not_exist);
55
67
  RUN_TEST(test_total);
56
68
 
57
69
  UnityEnd();
@@ -6,7 +6,7 @@ public class ErrorHandlingTest
6
6
  {
7
7
  // Read more about exception handling here:
8
8
  // https://msdn.microsoft.com/en-us/library/ms173162.aspx?f=255&MSPPError=-2147217396
9
- [TestCase]
9
+ [Test]
10
10
  public void ThrowException()
11
11
  {
12
12
  Assert.Throws<Exception>(ErrorHandling.HandleErrorByThrowingException);
@@ -14,7 +14,7 @@ public class ErrorHandlingTest
14
14
 
15
15
  // Read more about nullable types here:
16
16
  // https://msdn.microsoft.com/en-us/library/1t3y8s4s.aspx?f=255&MSPPError=-2147217396
17
- [TestCase]
17
+ [Test]
18
18
  [Ignore("Remove to run test")]
19
19
  public void ReturnNullableType()
20
20
  {
@@ -27,7 +27,7 @@ public class ErrorHandlingTest
27
27
 
28
28
  // Read more about out parameters here:
29
29
  // https://msdn.microsoft.com/en-us/library/t3c3bfhx.aspx?f=255&MSPPError=-2147217396
30
- [TestCase]
30
+ [Test]
31
31
  [Ignore("Remove to run test")]
32
32
  public void ReturnWithOutParameter()
33
33
  {
@@ -53,7 +53,7 @@ public class ErrorHandlingTest
53
53
 
54
54
  // Read more about IDisposable here:
55
55
  // https://msdn.microsoft.com/en-us/library/system.idisposable(v=vs.110).aspx
56
- [TestCase]
56
+ [Test]
57
57
  [Ignore("Remove to run test")]
58
58
  public void DisposableObjectsAreDisposedWhenThrowingAnException()
59
59
  {
@@ -62,4 +62,4 @@ public class ErrorHandlingTest
62
62
  Assert.Throws<Exception>(() => ErrorHandling.DisposableResourcesAreDisposedWhenExceptionIsThrown(disposableResource));
63
63
  Assert.That(disposableResource.IsDisposed, Is.EqualTo(true));
64
64
  }
65
- }
65
+ }
@@ -1,7 +1,7 @@
1
1
  # Testing
2
2
 
3
3
  In order to run the tests for this track, you will need to install
4
- DUnitX. Please see [INSTALLATION.md](link here) for more information.
4
+ DUnitX. Please see [installation](http://www.exercism.io/languages/delphi/installing) instructions for more information.
5
5
 
6
6
  ### Submitting Exercises
7
7
 
@@ -0,0 +1,2 @@
1
+ ## Hints
2
+ - Try to capture the structure of the song in your code, where you build up the song by composing its parts.
@@ -0,0 +1,2 @@
1
+ ## Hints
2
+ - Try to capture the structure of the song in your code, where you build up the song by composing its parts.
@@ -0,0 +1,2 @@
1
+ ## Hints
2
+ - Try to capture the structure of the song in your code, where you build up the song by composing its parts.
@@ -35,4 +35,9 @@ let ``Complicated word scores more`` () =
35
35
  [<Test>]
36
36
  [<Ignore("Remove to run test")>]
37
37
  let ``Scores are case insensitive`` () =
38
- Assert.That(score "OXYPHENBUTAZONE", Is.EqualTo(41))
38
+ Assert.That(score "OXYPHENBUTAZONE", Is.EqualTo(41))
39
+
40
+ [<Test>]
41
+ [<Ignore("Remove to run test")>]
42
+ let ``Entire alphabet`` () =
43
+ Assert.That(score "abcdefghijklmnopqrstuvwxyz", Is.EqualTo(87))
@@ -0,0 +1,2 @@
1
+ ## Hints
2
+ - Try to capture the structure of the song in your code, where you build up the song by composing its parts.
@@ -32,6 +32,7 @@
32
32
  "slug": "rna-transcription",
33
33
  "difficulty": 1,
34
34
  "topics": [
35
+ "Maybe"
35
36
  ]
36
37
  },
37
38
  {
@@ -50,24 +51,28 @@
50
51
  "slug": "grains",
51
52
  "difficulty": 2,
52
53
  "topics": [
54
+ "Maybe"
53
55
  ]
54
56
  },
55
57
  {
56
58
  "slug": "hamming",
57
59
  "difficulty": 2,
58
60
  "topics": [
61
+ "Maybe"
59
62
  ]
60
63
  },
61
64
  {
62
65
  "slug": "nucleotide-count",
63
66
  "difficulty": 2,
64
67
  "topics": [
68
+ "Either"
65
69
  ]
66
70
  },
67
71
  {
68
72
  "slug": "grade-school",
69
73
  "difficulty": 2,
70
74
  "topics": [
75
+ "Define type"
71
76
  ]
72
77
  },
73
78
  {
@@ -86,24 +91,30 @@
86
91
  "slug": "accumulate",
87
92
  "difficulty": 3,
88
93
  "topics": [
94
+ "Lazy evaluation",
95
+ "Library reimplementation"
89
96
  ]
90
97
  },
91
98
  {
92
99
  "slug": "strain",
93
100
  "difficulty": 3,
94
101
  "topics": [
102
+ "Lazy evaluation",
103
+ "Library reimplementation"
95
104
  ]
96
105
  },
97
106
  {
98
107
  "slug": "phone-number",
99
108
  "difficulty": 3,
100
109
  "topics": [
110
+ "Maybe"
101
111
  ]
102
112
  },
103
113
  {
104
114
  "slug": "beer-song",
105
115
  "difficulty": 3,
106
116
  "topics": [
117
+ "Refactoring"
107
118
  ]
108
119
  },
109
120
  {
@@ -128,12 +139,14 @@
128
139
  "slug": "robot-simulator",
129
140
  "difficulty": 3,
130
141
  "topics": [
142
+ "Define type"
131
143
  ]
132
144
  },
133
145
  {
134
146
  "slug": "secret-handshake",
135
147
  "difficulty": 3,
136
148
  "topics": [
149
+ "instance custom"
137
150
  ]
138
151
  },
139
152
  {
@@ -146,12 +159,16 @@
146
159
  "slug": "simple-linked-list",
147
160
  "difficulty": 4,
148
161
  "topics": [
162
+ "Define type",
163
+ "Library reimplementation"
149
164
  ]
150
165
  },
151
166
  {
152
167
  "slug": "list-ops",
153
168
  "difficulty": 4,
154
169
  "topics": [
170
+ "Accumulator-strictness",
171
+ "Library reimplementation"
155
172
  ]
156
173
  },
157
174
  {
@@ -164,6 +181,7 @@
164
181
  "slug": "roman-numerals",
165
182
  "difficulty": 4,
166
183
  "topics": [
184
+ "Maybe"
167
185
  ]
168
186
  },
169
187
  {
@@ -182,30 +200,36 @@
182
200
  "slug": "all-your-base",
183
201
  "difficulty": 4,
184
202
  "topics": [
203
+ "Maybe"
185
204
  ]
186
205
  },
187
206
  {
188
207
  "slug": "largest-series-product",
189
208
  "difficulty": 4,
190
209
  "topics": [
210
+ "Maybe"
191
211
  ]
192
212
  },
193
213
  {
194
214
  "slug": "clock",
195
215
  "difficulty": 4,
196
216
  "topics": [
217
+ "Define type",
218
+ "instance Num"
197
219
  ]
198
220
  },
199
221
  {
200
222
  "slug": "matrix",
201
223
  "difficulty": 4,
202
224
  "topics": [
225
+ "Define type"
203
226
  ]
204
227
  },
205
228
  {
206
229
  "slug": "house",
207
230
  "difficulty": 4,
208
231
  "topics": [
232
+ "Refactoring"
209
233
  ]
210
234
  },
211
235
  {
@@ -254,6 +278,7 @@
254
278
  "slug": "nth-prime",
255
279
  "difficulty": 5,
256
280
  "topics": [
281
+ "Maybe"
257
282
  ]
258
283
  },
259
284
  {
@@ -266,6 +291,8 @@
266
291
  "slug": "binary-search-tree",
267
292
  "difficulty": 5,
268
293
  "topics": [
294
+ "Define type",
295
+ "Maybe"
269
296
  ]
270
297
  },
271
298
  {
@@ -278,6 +305,7 @@
278
305
  "slug": "queen-attack",
279
306
  "difficulty": 5,
280
307
  "topics": [
308
+ "Maybe"
281
309
  ]
282
310
  },
283
311
  {
@@ -290,12 +318,15 @@
290
318
  "slug": "food-chain",
291
319
  "difficulty": 5,
292
320
  "topics": [
321
+ "Refactoring"
293
322
  ]
294
323
  },
295
324
  {
296
325
  "slug": "custom-set",
297
326
  "difficulty": 5,
298
327
  "topics": [
328
+ "Define type",
329
+ "Library reimplementation"
299
330
  ]
300
331
  },
301
332
  {
@@ -308,6 +339,9 @@
308
339
  "slug": "simple-cipher",
309
340
  "difficulty": 6,
310
341
  "topics": [
342
+ "IO monad",
343
+ "Random",
344
+ "Mutable state"
311
345
  ]
312
346
  },
313
347
  {
@@ -320,6 +354,9 @@
320
354
  "slug": "robot-name",
321
355
  "difficulty": 6,
322
356
  "topics": [
357
+ "Define type",
358
+ "IO monad",
359
+ "Random"
323
360
  ]
324
361
  },
325
362
  {
@@ -332,12 +369,17 @@
332
369
  "slug": "say",
333
370
  "difficulty": 6,
334
371
  "topics": [
372
+ "Maybe"
335
373
  ]
336
374
  },
337
375
  {
338
376
  "slug": "bank-account",
339
377
  "difficulty": 6,
340
378
  "topics": [
379
+ "Define type",
380
+ "IO monad",
381
+ "Maybe",
382
+ "Mutable state"
341
383
  ]
342
384
  },
343
385
  {
@@ -350,6 +392,11 @@
350
392
  "slug": "linked-list",
351
393
  "difficulty": 6,
352
394
  "topics": [
395
+ "Define type",
396
+ "IO monad",
397
+ "Library reimplementation",
398
+ "Maybe",
399
+ "Mutable state"
353
400
  ]
354
401
  },
355
402
  {
@@ -368,48 +415,56 @@
368
415
  "slug": "wordy",
369
416
  "difficulty": 7,
370
417
  "topics": [
418
+ "Maybe"
371
419
  ]
372
420
  },
373
421
  {
374
422
  "slug": "change",
375
423
  "difficulty": 7,
376
424
  "topics": [
425
+ "Maybe"
377
426
  ]
378
427
  },
379
428
  {
380
429
  "slug": "alphametics",
381
430
  "difficulty": 7,
382
431
  "topics": [
432
+ "Maybe"
383
433
  ]
384
434
  },
385
435
  {
386
436
  "slug": "bowling",
387
437
  "difficulty": 7,
388
438
  "topics": [
439
+ "Either"
389
440
  ]
390
441
  },
391
442
  {
392
443
  "slug": "connect",
393
444
  "difficulty": 8,
394
445
  "topics": [
446
+ "Maybe"
395
447
  ]
396
448
  },
397
449
  {
398
450
  "slug": "dominoes",
399
451
  "difficulty": 8,
400
452
  "topics": [
453
+ "Maybe"
401
454
  ]
402
455
  },
403
456
  {
404
457
  "slug": "sgf-parsing",
405
458
  "difficulty": 9,
406
459
  "topics": [
460
+ "Maybe"
407
461
  ]
408
462
  },
409
463
  {
410
464
  "slug": "go-counting",
411
465
  "difficulty": 9,
412
466
  "topics": [
467
+ "Maybe"
413
468
  ]
414
469
  },
415
470
  {
@@ -422,18 +477,23 @@
422
477
  "slug": "zipper",
423
478
  "difficulty": 10,
424
479
  "topics": [
480
+ "Define type",
481
+ "Maybe"
425
482
  ]
426
483
  },
427
484
  {
428
485
  "slug": "forth",
429
486
  "difficulty": 10,
430
487
  "topics": [
488
+ "Define type",
489
+ "Either"
431
490
  ]
432
491
  },
433
492
  {
434
493
  "slug": "pov",
435
494
  "difficulty": 10,
436
495
  "topics": [
496
+ "Maybe"
437
497
  ]
438
498
  }
439
499
  ],