trackler 2.0.8.16 → 2.0.8.17

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 (28) hide show
  1. checksums.yaml +4 -4
  2. data/common/exercises/alphametics/canonical-data.json +100 -44
  3. data/common/exercises/anagram/canonical-data.json +3 -3
  4. data/common/exercises/beer-song/canonical-data.json +75 -47
  5. data/common/exercises/binary-search/canonical-data.json +86 -74
  6. data/common/exercises/bowling/canonical-data.json +1 -1
  7. data/common/exercises/bracket-push/canonical-data.json +15 -0
  8. data/common/exercises/circular-buffer/canonical-data.json +16 -1
  9. data/common/exercises/connect/canonical-data.json +19 -7
  10. data/common/exercises/custom-set/canonical-data.json +287 -246
  11. data/common/exercises/dominoes/canonical-data.json +125 -111
  12. data/common/exercises/flatten-array/canonical-data.json +35 -28
  13. data/common/exercises/food-chain/canonical-data.json +196 -182
  14. data/common/exercises/gigasecond/canonical-data.json +51 -41
  15. data/common/exercises/isogram/canonical-data.json +59 -38
  16. data/common/exercises/pangram/canonical-data.json +69 -47
  17. data/common/exercises/perfect-numbers/canonical-data.json +3 -3
  18. data/common/exercises/phone-number/canonical-data.json +74 -55
  19. data/common/exercises/sum-of-multiples/canonical-data.json +88 -62
  20. data/lib/trackler/version.rb +1 -1
  21. data/tracks/elixir/docs/INSTALLATION.md +2 -0
  22. data/tracks/elixir/docs/LEARNING.md +2 -0
  23. data/tracks/elixir/docs/RESOURCES.md +8 -0
  24. data/tracks/groovy/docs/ABOUT.md +1 -1
  25. data/tracks/groovy/docs/LEARNING.md +5 -4
  26. data/tracks/groovy/docs/RESOURCES.md +8 -1
  27. data/tracks/rust/exercises/hello-world/GETTING_STARTED.md +29 -97
  28. metadata +1 -1
@@ -1,45 +1,55 @@
1
1
  {
2
- "#": [
3
- "The basic test is to add one gigasecond to a few ordinary dates.",
4
- "Most test programs currently check only the date and ignore the time.",
5
- "For languages with a native date-time type though, expected times",
6
- "here show the correct seconds, ignoring leap seconds.",
7
- "The date and time formats here are per",
8
- "http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.15.",
9
- "",
10
- "Finally, as a demonstration but not really a test,",
11
- "some languages demonstrate the add function by inviting the",
12
- "solver to include their birthdate in either the solution code",
13
- "or test program. The test program then shows or tests their",
14
- "gigasecond anniversay."
15
- ],
16
- "add": {
17
- "description": [
18
- "Add one gigasecond to the input."
19
- ],
2
+ "exercise": "gigasecond",
3
+ "version": "1.0.0",
4
+ "comments": [
5
+ "The basic test is to add one gigasecond to a few ordinary dates.",
6
+ "Most test programs currently check only the date and ignore the time.",
7
+ "For languages with a native date-time type though, expected times",
8
+ "here show the correct seconds, ignoring leap seconds.",
9
+ "The date and time formats here are per",
10
+ "http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.15.",
11
+ "",
12
+ "Finally, as a demonstration but not really a test,",
13
+ "some languages demonstrate the add function by inviting the",
14
+ "solver to include their birthdate in either the solution code",
15
+ "or test program. The test program then shows or tests their",
16
+ "gigasecond anniversary."
17
+ ],
18
+ "cases": [
19
+ {
20
+ "description": "Add one gigasecond to the input.",
20
21
  "cases": [
21
- {
22
- "input": "2011-04-25",
23
- "expected": "2043-01-01T01:46:40"
24
- },
25
- {
26
- "input": "1977-06-13",
27
- "expected": "2009-02-19T01:46:40"
28
- },
29
- {
30
- "input": "1959-07-19",
31
- "expected": "1991-03-27T01:46:40"
32
- },
33
- {
34
- "#": "full time specified",
35
- "input": "2015-01-24T22:00:00",
36
- "expected": "2046-10-02T23:46:40"
37
- },
38
- {
39
- "#": "full time with day roll-over",
40
- "input": "2015-01-24T23:59:59",
41
- "expected": "2046-10-03T01:46:39"
42
- }
22
+ {
23
+ "description": "date only specification of time",
24
+ "property": "add",
25
+ "input": "2011-04-25",
26
+ "expected": "2043-01-01T01:46:40"
27
+ },
28
+ {
29
+ "description": "second test for date only specification of time",
30
+ "property": "add",
31
+ "input": "1977-06-13",
32
+ "expected": "2009-02-19T01:46:40"
33
+ },
34
+ {
35
+ "description": "third test for date only specification of time",
36
+ "property": "add",
37
+ "input": "1959-07-19",
38
+ "expected": "1991-03-27T01:46:40"
39
+ },
40
+ {
41
+ "description": "full time specified",
42
+ "property": "add",
43
+ "input": "2015-01-24T22:00:00",
44
+ "expected": "2046-10-02T23:46:40"
45
+ },
46
+ {
47
+ "description": "full time with day roll-over",
48
+ "property": "add",
49
+ "input": "2015-01-24T23:59:59",
50
+ "expected": "2046-10-03T01:46:39"
51
+ }
43
52
  ]
44
- }
53
+ }
54
+ ]
45
55
  }
@@ -1,44 +1,65 @@
1
1
  {
2
+ "exercise": "isogram",
3
+ "comments": [
4
+ "An isogram is a word or phrase without a repeating letter."
5
+ ],
6
+ "version": "1.0.0",
2
7
  "cases": [
3
8
  {
4
- "description": "empty string",
5
- "input": "",
6
- "expected": true
7
- },
8
- {
9
- "description": "isogram with only lower case characters",
10
- "input": "isogram",
11
- "expected": true
12
- },
13
- {
14
- "description": "word with one duplicated character",
15
- "input": "eleven",
16
- "expected": false
17
- },
18
- {
19
- "description": "longest reported english isogram",
20
- "input": "subdermatoglyphic",
21
- "expected": true
22
- },
23
- {
24
- "description": "word with duplicated character in mixed case",
25
- "input": "Alphabet",
26
- "expected": false
27
- },
28
- {
29
- "description": "hypothetical isogrammic word with hyphen",
30
- "input": "thumbscrew-japingly",
31
- "expected": true
32
- },
33
- {
34
- "description": "isogram with duplicated non letter character",
35
- "input": "Hjelmqvist-Gryb-Zock-Pfund-Wax",
36
- "expected": true
37
- },
38
- {
39
- "description": "made-up name that is an isogram",
40
- "input": "Emily Jung Schwartzkopf",
41
- "expected": true
9
+ "description": "Check if the given string is an isogram",
10
+ "comments": [
11
+ "Output should be a boolean denoting if the string is a isogram or not."
12
+ ],
13
+ "cases": [
14
+ {
15
+ "description": "empty string",
16
+ "property": "isIsogram",
17
+ "input": "",
18
+ "expected": true
19
+ },
20
+ {
21
+ "description": "isogram with only lower case characters",
22
+ "property": "isIsogram",
23
+ "input": "isogram",
24
+ "expected": true
25
+ },
26
+ {
27
+ "description": "word with one duplicated character",
28
+ "property": "isIsogram",
29
+ "input": "eleven",
30
+ "expected": false
31
+ },
32
+ {
33
+ "description": "longest reported english isogram",
34
+ "property": "isIsogram",
35
+ "input": "subdermatoglyphic",
36
+ "expected": true
37
+ },
38
+ {
39
+ "description": "word with duplicated character in mixed case",
40
+ "property": "isIsogram",
41
+ "input": "Alphabet",
42
+ "expected": false
43
+ },
44
+ {
45
+ "description": "hypothetical isogrammic word with hyphen",
46
+ "property": "isIsogram",
47
+ "input": "thumbscrew-japingly",
48
+ "expected": true
49
+ },
50
+ {
51
+ "description": "isogram with duplicated non letter character",
52
+ "property": "isIsogram",
53
+ "input": "Hjelmqvist-Gryb-Zock-Pfund-Wax",
54
+ "expected": true
55
+ },
56
+ {
57
+ "description": "made-up name that is an isogram",
58
+ "property": "isIsogram",
59
+ "input": "Emily Jung Schwartzkopf",
60
+ "expected": true
61
+ }
62
+ ]
42
63
  }
43
64
  ]
44
65
  }
@@ -1,49 +1,71 @@
1
1
  {
2
- "cases": [
3
- {
4
- "description": "sentence empty",
5
- "input": "",
6
- "expected": false
7
- },
8
- {
9
- "description": "pangram with only lower case",
10
- "input": "the quick brown fox jumps over the lazy dog",
11
- "expected": true
12
- },
13
- {
14
- "description": "missing character 'x'",
15
- "input": "a quick movement of the enemy will jeopardize five gunboats",
16
- "expected": false
17
- },
18
- {
19
- "description": "another missing character 'x'",
20
- "input": "the quick brown fish jumps over the lazy dog",
21
- "expected": false
22
- },
23
- {
24
- "description": "pangram with underscores",
25
- "input": "the_quick_brown_fox_jumps_over_the_lazy_dog",
26
- "expected": true
27
- },
28
- {
29
- "description": "pangram with numbers",
30
- "input": "the 1 quick brown fox jumps over the 2 lazy dogs",
31
- "expected": true
32
- },
33
- {
34
- "description": "missing letters replaced by numbers",
35
- "input": "7h3 qu1ck brown fox jumps ov3r 7h3 lazy dog",
36
- "expected": false
37
- },
38
- {
39
- "description": "pangram with mixed case and punctuation",
40
- "input": "\"Five quacking Zephyrs jolt my wax bed.\"",
41
- "expected": true
42
- },
43
- {
44
- "description": "upper and lower case versions of the same character should not be counted separately",
45
- "input": "the quick brown fox jumped over the lazy FOX",
46
- "expected": false
47
- }
48
- ]
2
+ "exercise": "pangram",
3
+ "comments": [
4
+ "A pangram is a sentence using every letter of the alphabet at least once."
5
+ ],
6
+ "version": "1.0.0",
7
+ "cases": [
8
+ {
9
+ "description": "Check if the given string is an pangram",
10
+ "comments": [
11
+ "Output should be a boolean denoting if the string is a pangram or not."
12
+ ],
13
+ "cases": [
14
+ {
15
+ "description": "sentence empty",
16
+ "property": "isPangram",
17
+ "input": "",
18
+ "expected": false
19
+ },
20
+ {
21
+ "description": "pangram with only lower case",
22
+ "property": "isPangram",
23
+ "input": "the quick brown fox jumps over the lazy dog",
24
+ "expected": true
25
+ },
26
+ {
27
+ "description": "missing character 'x'",
28
+ "property": "isPangram",
29
+ "input": "a quick movement of the enemy will jeopardize five gunboats",
30
+ "expected": false
31
+ },
32
+ {
33
+ "description": "another missing character 'x'",
34
+ "property": "isPangram",
35
+ "input": "the quick brown fish jumps over the lazy dog",
36
+ "expected": false
37
+ },
38
+ {
39
+ "description": "pangram with underscores",
40
+ "property": "isPangram",
41
+ "input": "the_quick_brown_fox_jumps_over_the_lazy_dog",
42
+ "expected": true
43
+ },
44
+ {
45
+ "description": "pangram with numbers",
46
+ "property": "isPangram",
47
+ "input": "the 1 quick brown fox jumps over the 2 lazy dogs",
48
+ "expected": true
49
+ },
50
+ {
51
+ "description": "missing letters replaced by numbers",
52
+ "property": "isPangram",
53
+ "input": "7h3 qu1ck brown fox jumps ov3r 7h3 lazy dog",
54
+ "expected": false
55
+ },
56
+ {
57
+ "description": "pangram with mixed case and punctuation",
58
+ "property": "isPangram",
59
+ "input": "\"Five quacking Zephyrs jolt my wax bed.\"",
60
+ "expected": true
61
+ },
62
+ {
63
+ "description": "upper and lower case versions of the same character should not be counted separately",
64
+ "property": "isPangram",
65
+ "input": "the quick brown fox jumped over the lazy FOX",
66
+ "expected": false
67
+ }
68
+ ]
69
+ }
70
+ ]
49
71
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "exercise": "perfect-numbers",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "cases": [
5
5
  {
6
6
  "description": "Perfect numbers",
@@ -87,7 +87,7 @@
87
87
  "description": "Invalid inputs",
88
88
  "cases": [
89
89
  {
90
- "description": "Non-negative integer is rejected (not a natural number)",
90
+ "description": "Zero is rejected (not a natural number)",
91
91
  "property": "classify",
92
92
  "input": 0,
93
93
  "expected": {
@@ -105,4 +105,4 @@
105
105
  ]
106
106
  }
107
107
  ]
108
- }
108
+ }
@@ -1,57 +1,76 @@
1
1
  {
2
- "number": {
3
- "description": "Cleanup user-entered phone numbers",
4
- "cases": [
5
- {
6
- "description": "cleans the number",
7
- "phrase": "(123) 456-7890",
8
- "expected": "1234567890"
9
- },
10
- {
11
- "description": "cleans numbers with dots",
12
- "phrase": "123.456.7890",
13
- "expected": "1234567890"
14
- },
15
- {
16
- "description": "cleans numbers with multiple spaces",
17
- "phrase": "123 456 7890 ",
18
- "expected": "1234567890"
19
- },
20
- {
21
- "description": "invalid when 9 digits",
22
- "phrase": "123456789",
23
- "expected": null
24
- },
25
- {
26
- "description": "invalid when 11 digits",
27
- "phrase": "21234567890",
28
- "expected": null
29
- },
30
- {
31
- "description": "valid when 11 digits and starting with 1",
32
- "phrase": "11234567890",
33
- "expected": "1234567890"
34
- },
35
- {
36
- "description": "invalid when 12 digits",
37
- "phrase": "321234567890",
38
- "expected": null
39
- },
40
- {
41
- "description": "invalid with letters",
42
- "phrase": "123-abc-7890",
43
- "expected": null
44
- },
45
- {
46
- "description": "invalid with punctuations",
47
- "phrase": "123-@:!-7890",
48
- "expected": null
49
- },
50
- {
51
- "description": "invalid with right number of digits but letters mixed in",
52
- "phrase": "1a2b3c4d5e6f7g8h9i0j",
53
- "expected": null
54
- }
55
- ]
56
- }
2
+ "exercise": "phone-number",
3
+ "version": "1.0.0",
4
+ "cases": [
5
+ {
6
+ "description": "Cleanup user-entered phone numbers",
7
+ "comments": [
8
+ " Returns the cleaned phone number if given number is valid, "
9
+ , " else returns nil. Note that number is not formatted, "
10
+ , " just a 10-digit number is returned. "
11
+ ],
12
+ "cases": [
13
+ {
14
+ "description": "cleans the number",
15
+ "property": "clean",
16
+ "phrase": "(123) 456-7890",
17
+ "expected": "1234567890"
18
+ },
19
+ {
20
+ "description": "cleans numbers with dots",
21
+ "property": "clean",
22
+ "phrase": "123.456.7890",
23
+ "expected": "1234567890"
24
+ },
25
+ {
26
+ "description": "cleans numbers with multiple spaces",
27
+ "property": "clean",
28
+ "phrase": "123 456 7890 ",
29
+ "expected": "1234567890"
30
+ },
31
+ {
32
+ "description": "invalid when 9 digits",
33
+ "property": "clean",
34
+ "phrase": "123456789",
35
+ "expected": null
36
+ },
37
+ {
38
+ "description": "invalid when 11 digits",
39
+ "property": "clean",
40
+ "phrase": "21234567890",
41
+ "expected": null
42
+ },
43
+ {
44
+ "description": "valid when 11 digits and starting with 1",
45
+ "property": "clean",
46
+ "phrase": "11234567890",
47
+ "expected": "1234567890"
48
+ },
49
+ {
50
+ "description": "invalid when 12 digits",
51
+ "property": "clean",
52
+ "phrase": "321234567890",
53
+ "expected": null
54
+ },
55
+ {
56
+ "description": "invalid with letters",
57
+ "property": "clean",
58
+ "phrase": "123-abc-7890",
59
+ "expected": null
60
+ },
61
+ {
62
+ "description": "invalid with punctuations",
63
+ "property": "clean",
64
+ "phrase": "123-@:!-7890",
65
+ "expected": null
66
+ },
67
+ {
68
+ "description": "invalid with right number of digits but letters mixed in",
69
+ "property": "clean",
70
+ "phrase": "1a2b3c4d5e6f7g8h9i0j",
71
+ "expected": null
72
+ }
73
+ ]
74
+ }
75
+ ]
57
76
  }