trackler 2.2.1.84 → 2.2.1.85

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/atbash-cipher/canonical-data.json +38 -14
  4. data/problem-specifications/exercises/bracket-push/canonical-data.json +44 -16
  5. data/problem-specifications/exercises/change/canonical-data.json +46 -24
  6. data/problem-specifications/exercises/collatz-conjecture/canonical-data.json +20 -8
  7. data/problem-specifications/exercises/connect/canonical-data.json +87 -67
  8. data/problem-specifications/exercises/crypto-square/canonical-data.json +23 -9
  9. data/problem-specifications/exercises/diamond/canonical-data.json +16 -6
  10. data/problem-specifications/exercises/difference-of-squares/canonical-data.json +29 -11
  11. data/problem-specifications/exercises/dominoes/canonical-data.json +37 -13
  12. data/problem-specifications/exercises/flatten-array/canonical-data.json +19 -7
  13. data/problem-specifications/exercises/meetup/canonical-data.json +667 -477
  14. data/tracks/haskell/config.json +9 -0
  15. data/tracks/haskell/docs/LEARNING.md +3 -3
  16. data/tracks/haskell/exercises/food-chain/examples/success-standard/src/FoodChain.hs +1 -1
  17. data/tracks/haskell/exercises/forth/examples/success-standard/src/Forth.hs +2 -2
  18. data/tracks/haskell/exercises/parallel-letter-frequency/examples/success-standard/src/Frequency.hs +1 -1
  19. data/tracks/haskell/exercises/sgf-parsing/examples/success-standard/src/Sgf.hs +1 -1
  20. data/tracks/haskell/exercises/twelve-days/README.md +89 -0
  21. data/tracks/haskell/exercises/twelve-days/examples/success-standard/package.yaml +16 -0
  22. data/tracks/haskell/exercises/twelve-days/examples/success-standard/src/TwelveDays.hs +36 -0
  23. data/tracks/haskell/exercises/twelve-days/package.yaml +20 -0
  24. data/tracks/haskell/exercises/twelve-days/src/TwelveDays.hs +4 -0
  25. data/tracks/haskell/exercises/twelve-days/stack.yaml +1 -0
  26. data/tracks/haskell/exercises/twelve-days/test/Tests.hs +146 -0
  27. data/tracks/haskell/exercises/zipper/examples/success-standard/src/Zipper.hs +3 -3
  28. data/tracks/java/exercises/allergies/.meta/version +2 -0
  29. data/tracks/java/exercises/allergies/src/test/java/AllergiesTest.java +10 -65
  30. data/tracks/java/exercises/anagram/.meta/version +1 -0
  31. data/tracks/java/exercises/anagram/src/test/java/AnagramTest.java +36 -35
  32. data/tracks/java/exercises/atbash-cipher/.meta/version +1 -0
  33. data/tracks/java/exercises/atbash-cipher/src/test/java/AtbashTest.java +3 -2
  34. data/tracks/java/exercises/bob/.meta/src/reference/java/Bob.java +3 -0
  35. data/tracks/java/exercises/bob/.meta/version +1 -0
  36. data/tracks/java/exercises/bob/src/test/java/BobTest.java +79 -15
  37. data/tracks/java/exercises/crypto-square/.meta/src/reference/java/CryptoSquare.java +62 -0
  38. data/tracks/java/exercises/crypto-square/.meta/version +1 -0
  39. data/tracks/java/exercises/crypto-square/src/test/java/CryptoSquareTest.java +28 -101
  40. data/tracks/java/exercises/custom-set/.meta/version +1 -1
  41. data/tracks/java/exercises/custom-set/src/test/java/CustomSetTest.java +8 -0
  42. data/tracks/java/exercises/forth/.meta/version +1 -1
  43. data/tracks/java/exercises/forth/src/test/java/ForthEvaluatorTest.java +52 -12
  44. data/tracks/java/exercises/pascals-triangle/.meta/version +1 -1
  45. data/tracks/java/exercises/pascals-triangle/src/test/java/PascalsTriangleGeneratorTest.java +48 -0
  46. data/tracks/java/exercises/prime-factors/.meta/version +1 -0
  47. data/tracks/java/exercises/prime-factors/src/test/java/PrimeFactorsCalculatorTest.java +2 -6
  48. data/tracks/java/exercises/protein-translation/.meta/version +1 -1
  49. data/tracks/java/exercises/roman-numerals/.meta/version +1 -0
  50. data/tracks/java/exercises/roman-numerals/src/test/java/RomanNumeralsTest.java +0 -1
  51. data/tracks/java/exercises/rotational-cipher/.meta/version +1 -0
  52. data/tracks/java/exercises/rotational-cipher/src/test/java/RotationalCipherTest.java +7 -7
  53. data/tracks/javascript/.eslintignore +0 -1
  54. data/tracks/javascript/README.md +1 -1
  55. data/tracks/javascript/exercises/clock/example.js +8 -11
  56. metadata +18 -3
  57. data/tracks/java/exercises/crypto-square/.meta/src/reference/java/Crypto.java +0 -74
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d3ec763db2b39453f204556765096d8b89410636
4
- data.tar.gz: 0b10a5133a6d4f9fa08142ae215484fd257b8bc7
3
+ metadata.gz: 7892432156062540719c56c731f29a416cd4bbbc
4
+ data.tar.gz: be05d71f796bc3f7b829b2d5c09f5f02d91ddd4c
5
5
  SHA512:
6
- metadata.gz: 136ccecbe72a54b7da0c44b660a02b8dbe4e0304d0e42360f71f53937617221936a011a525b5f6ccd00f98e7ba969b7ddf52f8c16d4725c247a80d078c3731ce
7
- data.tar.gz: 3d20a2d47b630cc688667dc3ad626e13c603f50c61a969b19a4059cc3a4ed61b74d72a7ef57ac09340cfb84d8d9502f9a637e1b4e88f8f61b15611010d561639
6
+ metadata.gz: 77e24716ea69a1a4603e27d4432d633f2c2420b9dbc929a41e706adf9b89c23eae10b3a9db02fa179305e6e294582766f7794525798a149e6a082f4bec9a4a72
7
+ data.tar.gz: 6cf193ad2f4aaa78be8aeaaee7f3e7c694cfde813bd573d89f1753fadb9fd8d9f67991b35dad8e821174cca8a1d556eb916994f3190bc78f79b90e587690127c
@@ -1,3 +1,3 @@
1
1
  module Trackler
2
- VERSION = "2.2.1.84"
2
+ VERSION = "2.2.1.85"
3
3
  end
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "exercise": "atbash-cipher",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "comments": [
5
5
  "The tests are divided into two groups: ",
6
6
  "* Encoding from English to atbash cipher",
@@ -14,49 +14,65 @@
14
14
  {
15
15
  "description": "encode yes",
16
16
  "property": "encode",
17
- "phrase": "yes",
17
+ "input": {
18
+ "phrase": "yes"
19
+ },
18
20
  "expected": "bvh"
19
21
  },
20
22
  {
21
23
  "description": "encode no",
22
24
  "property": "encode",
23
- "phrase": "no",
25
+ "input": {
26
+ "phrase": "no"
27
+ },
24
28
  "expected": "ml"
25
29
  },
26
30
  {
27
31
  "description": "encode OMG",
28
32
  "property": "encode",
29
- "phrase": "OMG",
33
+ "input": {
34
+ "phrase": "OMG"
35
+ },
30
36
  "expected": "lnt"
31
37
  },
32
38
  {
33
39
  "description": "encode spaces",
34
40
  "property": "encode",
35
- "phrase": "O M G",
41
+ "input": {
42
+ "phrase": "O M G"
43
+ },
36
44
  "expected": "lnt"
37
45
  },
38
46
  {
39
47
  "description": "encode mindblowingly",
40
48
  "property": "encode",
41
- "phrase": "mindblowingly",
49
+ "input": {
50
+ "phrase": "mindblowingly"
51
+ },
42
52
  "expected": "nrmwy oldrm tob"
43
53
  },
44
54
  {
45
55
  "description": "encode numbers",
46
56
  "property": "encode",
47
- "phrase": "Testing,1 2 3, testing.",
57
+ "input": {
58
+ "phrase": "Testing,1 2 3, testing."
59
+ },
48
60
  "expected": "gvhgr mt123 gvhgr mt"
49
61
  },
50
62
  {
51
63
  "description": "encode deep thought",
52
64
  "property": "encode",
53
- "phrase": "Truth is fiction.",
65
+ "input": {
66
+ "phrase": "Truth is fiction."
67
+ },
54
68
  "expected": "gifgs rhurx grlm"
55
69
  },
56
70
  {
57
71
  "description": "encode all the letters",
58
72
  "property": "encode",
59
- "phrase": "The quick brown fox jumps over the lazy dog.",
73
+ "input": {
74
+ "phrase": "The quick brown fox jumps over the lazy dog."
75
+ },
60
76
  "expected": "gsvjf rxpyi ldmul cqfnk hlevi gsvoz abwlt"
61
77
  }
62
78
  ]
@@ -68,28 +84,36 @@
68
84
  {
69
85
  "description": "decode exercism",
70
86
  "property": "decode",
71
- "phrase": "vcvix rhn",
87
+ "input": {
88
+ "phrase": "vcvix rhn"
89
+ },
72
90
  "expected": "exercism"
73
91
  },
74
92
  {
75
93
  "description": "decode a sentence",
76
94
  "property": "decode",
77
- "phrase": "zmlyh gzxov rhlug vmzhg vkkrm thglm v",
95
+ "input": {
96
+ "phrase": "zmlyh gzxov rhlug vmzhg vkkrm thglm v"
97
+ },
78
98
  "expected": "anobstacleisoftenasteppingstone"
79
99
  },
80
100
  {
81
101
  "description": "decode numbers",
82
102
  "property": "decode",
83
- "phrase": "gvhgr mt123 gvhgr mt",
103
+ "input": {
104
+ "phrase": "gvhgr mt123 gvhgr mt"
105
+ },
84
106
  "expected": "testing123testing"
85
107
  },
86
108
  {
87
109
  "description": "decode all the letters",
88
110
  "property": "decode",
89
- "phrase": "gsvjf rxpyi ldmul cqfnk hlevi gsvoz abwlt",
111
+ "input": {
112
+ "phrase": "gsvjf rxpyi ldmul cqfnk hlevi gsvoz abwlt"
113
+ },
90
114
  "expected": "thequickbrownfoxjumpsoverthelazydog"
91
115
  }
92
116
  ]
93
117
  }
94
118
  ]
95
- }
119
+ }
@@ -1,90 +1,118 @@
1
1
  {
2
2
  "exercise": "bracket-push",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "cases": [
5
5
  {
6
6
  "description": "paired square brackets",
7
7
  "property": "isPaired",
8
- "input": "[]",
8
+ "input": {
9
+ "value": "[]"
10
+ },
9
11
  "expected": true
10
12
  },
11
13
  {
12
14
  "description": "empty string",
13
15
  "property": "isPaired",
14
- "input": "",
16
+ "input": {
17
+ "value": ""
18
+ },
15
19
  "expected": true
16
20
  },
17
21
  {
18
22
  "description": "unpaired brackets",
19
23
  "property": "isPaired",
20
- "input": "[[",
24
+ "input": {
25
+ "value": "[["
26
+ },
21
27
  "expected": false
22
28
  },
23
29
  {
24
30
  "description": "wrong ordered brackets",
25
31
  "property": "isPaired",
26
- "input": "}{",
32
+ "input": {
33
+ "value": "}{"
34
+ },
27
35
  "expected": false
28
36
  },
29
37
  {
30
38
  "description": "wrong closing bracket",
31
39
  "property": "isPaired",
32
- "input": "{]",
40
+ "input": {
41
+ "value": "{]"
42
+ },
33
43
  "expected": false
34
44
  },
35
45
  {
36
46
  "description": "paired with whitespace",
37
47
  "property": "isPaired",
38
- "input": "{ }",
48
+ "input": {
49
+ "value": "{ }"
50
+ },
39
51
  "expected": true
40
52
  },
41
53
  {
42
54
  "description": "simple nested brackets",
43
55
  "property": "isPaired",
44
- "input": "{[]}",
56
+ "input": {
57
+ "value": "{[]}"
58
+ },
45
59
  "expected": true
46
60
  },
47
61
  {
48
62
  "description": "several paired brackets",
49
63
  "property": "isPaired",
50
- "input": "{}[]",
64
+ "input": {
65
+ "value": "{}[]"
66
+ },
51
67
  "expected": true
52
68
  },
53
69
  {
54
70
  "description": "paired and nested brackets",
55
71
  "property": "isPaired",
56
- "input": "([{}({}[])])",
72
+ "input": {
73
+ "value": "([{}({}[])])"
74
+ },
57
75
  "expected": true
58
76
  },
59
77
  {
60
78
  "description": "unopened closing brackets",
61
79
  "property": "isPaired",
62
- "input": "{[)][]}",
80
+ "input": {
81
+ "value": "{[)][]}"
82
+ },
63
83
  "expected": false
64
84
  },
65
85
  {
66
86
  "description": "unpaired and nested brackets",
67
87
  "property": "isPaired",
68
- "input": "([{])",
88
+ "input": {
89
+ "value": "([{])"
90
+ },
69
91
  "expected": false
70
92
  },
71
93
  {
72
94
  "description": "paired and wrong nested brackets",
73
95
  "property": "isPaired",
74
- "input": "[({]})",
96
+ "input": {
97
+ "value": "[({]})"
98
+ },
75
99
  "expected": false
76
100
  },
77
101
  {
78
102
  "description": "math expression",
79
103
  "property": "isPaired",
80
- "input": "(((185 + 223.85) * 15) - 543)/2",
104
+ "input": {
105
+ "value": "(((185 + 223.85) * 15) - 543)/2"
106
+ },
81
107
  "expected": true
82
108
  },
83
109
  {
84
110
  "description": "complex latex expression",
85
111
  "property": "isPaired",
86
- "input": "\\left(\\begin{array}{cc} \\frac{1}{3} & x\\\\ \\mathrm{e}^{x} &... x^2 \\end{array}\\right)",
112
+ "input": {
113
+ "value": "\\left(\\begin{array}{cc} \\frac{1}{3} & x\\\\ \\mathrm{e}^{x} &... x^2 \\end{array}\\right)"
114
+ },
87
115
  "expected": true
88
116
  }
89
117
  ]
90
- }
118
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "exercise": "change",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "comments": [
5
5
  "Given an infinite supply of coins with different values, ",
6
6
  "find the smallest number of coins needed to make a desired ",
@@ -10,36 +10,46 @@
10
10
  {
11
11
  "description": "single coin change",
12
12
  "property": "findFewestCoins",
13
- "coins": [1, 5, 10, 25, 100],
14
- "target": 25,
13
+ "input": {
14
+ "coins": [1, 5, 10, 25, 100],
15
+ "target": 25
16
+ },
15
17
  "expected": [25]
16
18
  },
17
19
  {
18
20
  "description": "multiple coin change",
19
21
  "property": "findFewestCoins",
20
- "coins": [1, 5, 10, 25, 100],
21
- "target": 15,
22
+ "input": {
23
+ "coins": [1, 5, 10, 25, 100],
24
+ "target": 15
25
+ },
22
26
  "expected": [5, 10]
23
27
  },
24
28
  {
25
29
  "description": "change with Lilliputian Coins",
26
30
  "property": "findFewestCoins",
27
- "coins": [1, 4, 15, 20, 50],
28
- "target": 23,
31
+ "input": {
32
+ "coins": [1, 4, 15, 20, 50],
33
+ "target": 23
34
+ },
29
35
  "expected": [4, 4, 15]
30
36
  },
31
37
  {
32
38
  "description": "change with Lower Elbonia Coins",
33
39
  "property": "findFewestCoins",
34
- "coins": [1, 5, 10, 21, 25],
35
- "target": 63,
40
+ "input": {
41
+ "coins": [1, 5, 10, 21, 25],
42
+ "target": 63
43
+ },
36
44
  "expected": [21, 21, 21]
37
45
  },
38
46
  {
39
47
  "description": "large target values",
40
48
  "property": "findFewestCoins",
41
- "coins": [1, 2, 5, 10, 20, 50, 100],
42
- "target": 999,
49
+ "input": {
50
+ "coins": [1, 2, 5, 10, 20, 50, 100],
51
+ "target": 999
52
+ },
43
53
  "expected": [ 2, 2, 5, 20, 20
44
54
  , 50, 100, 100, 100, 100
45
55
  , 100, 100, 100, 100, 100 ]
@@ -47,44 +57,56 @@
47
57
  {
48
58
  "description": "possible change without unit coins available",
49
59
  "property": "findFewestCoins",
50
- "coins": [2, 5, 10, 20, 50],
51
- "target": 21,
60
+ "input": {
61
+ "coins": [2, 5, 10, 20, 50],
62
+ "target": 21
63
+ },
52
64
  "expected": [2, 2, 2, 5, 10]
53
65
  },
54
66
  {
55
67
  "description": "another possible change without unit coins available",
56
68
  "property": "findFewestCoins",
57
- "coins": [4, 5],
58
- "target": 27,
69
+ "input": {
70
+ "coins": [4, 5],
71
+ "target": 27
72
+ },
59
73
  "expected": [4, 4, 4, 5, 5, 5]
60
74
  },
61
75
  {
62
76
  "description": "no coins make 0 change",
63
77
  "property": "findFewestCoins",
64
- "coins": [1, 5, 10, 21, 25],
65
- "target": 0,
78
+ "input": {
79
+ "coins": [1, 5, 10, 21, 25],
80
+ "target": 0
81
+ },
66
82
  "expected": []
67
83
  },
68
84
  {
69
85
  "description": "error testing for change smaller than the smallest of coins",
70
86
  "property": "findFewestCoins",
71
- "coins": [5, 10],
72
- "target": 3,
87
+ "input": {
88
+ "coins": [5, 10],
89
+ "target": 3
90
+ },
73
91
  "expected": -1
74
92
  },
75
93
  {
76
94
  "description": "error if no combination can add up to target",
77
95
  "property": "findFewestCoins",
78
- "coins": [5, 10],
79
- "target": 94,
96
+ "input": {
97
+ "coins": [5, 10],
98
+ "target": 94
99
+ },
80
100
  "expected": -1
81
101
  },
82
102
  {
83
103
  "description": "cannot find negative change values",
84
104
  "property": "findFewestCoins",
85
- "coins": [1, 2, 5],
86
- "target": -5,
105
+ "input": {
106
+ "coins": [1, 2, 5],
107
+ "target": -5
108
+ },
87
109
  "expected": -1
88
110
  }
89
111
  ]
90
- }
112
+ }
@@ -1,42 +1,54 @@
1
1
  {
2
2
  "exercise": "collatz-conjecture",
3
- "version": "1.1.1",
3
+ "version": "1.2.0",
4
4
  "cases": [
5
5
  {
6
6
  "description": "zero steps for one",
7
7
  "property": "steps",
8
- "number": 1,
8
+ "input": {
9
+ "number": 1
10
+ },
9
11
  "expected": 0
10
12
  },
11
13
  {
12
14
  "description": "divide if even",
13
15
  "property": "steps",
14
- "number": 16,
16
+ "input": {
17
+ "number": 16
18
+ },
15
19
  "expected": 4
16
20
  },
17
21
  {
18
22
  "description": "even and odd steps",
19
23
  "property": "steps",
20
- "number": 12,
24
+ "input": {
25
+ "number": 12
26
+ },
21
27
  "expected": 9
22
28
  },
23
29
  {
24
30
  "description": "Large number of even and odd steps",
25
31
  "property": "steps",
26
- "number": 1000000,
32
+ "input": {
33
+ "number": 1000000
34
+ },
27
35
  "expected": 152
28
36
  },
29
37
  {
30
38
  "description": "zero is an error",
31
39
  "property": "steps",
32
- "number": 0,
40
+ "input": {
41
+ "number": 0
42
+ },
33
43
  "expected": { "error": "Only positive numbers are allowed" }
34
44
  },
35
45
  {
36
46
  "description": "negative value is an error",
37
47
  "property": "steps",
38
- "number": -15,
48
+ "input": {
49
+ "number": -15
50
+ },
39
51
  "expected": { "error": "Only positive numbers are allowed" }
40
52
  }
41
53
  ]
42
- }
54
+ }