trackler 2.2.1.79 → 2.2.1.80
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.
- checksums.yaml +4 -4
- data/lib/trackler/version.rb +1 -1
- data/problem-specifications/exercises/isbn-verifier/canonical-data.json +40 -14
- data/problem-specifications/exercises/luhn/canonical-data.json +2 -2
- data/tracks/bash/README.md +1 -1
- data/tracks/bash/bin/fetch-configlet +1 -1
- data/tracks/bash/config.json +25 -2
- data/tracks/bash/docs/MAINTAINING.md +36 -0
- data/tracks/bash/exercises/reverse-string/README.md +14 -0
- data/tracks/bash/exercises/reverse-string/example.sh +3 -0
- data/tracks/bash/exercises/reverse-string/reverse_string_test.sh +41 -0
- data/tracks/bash/exercises/roman-numerals/README.md +50 -0
- data/tracks/bash/exercises/roman-numerals/example.sh +19 -0
- data/tracks/bash/exercises/roman-numerals/roman_numerals_test.sh +145 -0
- data/tracks/clojure/exercises/acronym/src/acronym.clj +5 -0
- data/tracks/clojure/exercises/all-your-base/src/all_your_base.clj +5 -0
- data/tracks/clojure/exercises/allergies/src/allergies.clj +9 -0
- data/tracks/clojure/exercises/atbash-cipher/src/atbash_cipher.clj +5 -0
- data/tracks/clojure/exercises/bank-account/src/bank_account.clj +17 -0
- data/tracks/clojure/exercises/binary-search-tree/src/binary_search_tree.clj +29 -0
- data/tracks/clojure/exercises/binary-search/src/binary_search.clj +9 -0
- data/tracks/clojure/exercises/binary/src/binary.clj +5 -0
- data/tracks/clojure/exercises/bracket-push/src/bracket_push.clj +5 -0
- data/tracks/clojure/exercises/change/src/change.clj +5 -0
- data/tracks/clojure/exercises/clock/src/clock.clj +13 -0
- data/tracks/clojure/exercises/crypto-square/src/crypto_square.clj +21 -0
- data/tracks/clojure/exercises/diamond/src/diamond.clj +5 -0
- data/tracks/clojure/exercises/difference-of-squares/src/difference_of_squares.clj +13 -0
- data/tracks/clojure/exercises/etl/src/etl.clj +5 -0
- data/tracks/clojure/exercises/flatten-array/src/flatten_array.clj +5 -0
- data/tracks/groovy/config.json +1 -1
- data/tracks/groovy/exercises/{linked-list/LinkedList.groovy → double-linked-list/DoubleLinkedList.groovy} +0 -0
- data/tracks/groovy/exercises/{linked-list/LinkedListSpec.groovy → double-linked-list/DoubleLinkedListSpec.groovy} +0 -0
- data/tracks/groovy/exercises/{linked-list → double-linked-list}/Example.groovy +0 -0
- data/tracks/groovy/exercises/{linked-list → double-linked-list}/README.md +1 -1
- data/tracks/groovy/gradlew +0 -0
- data/tracks/java/config/maintainers.json +1 -1
- data/tracks/kotlin/config/maintainers.json +2 -2
- metadata +29 -7
- data/tracks/bash/exercises/acronym/acronym.sh +0 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 582c0a5b8961156545ee85e7cbc19dc370564915
|
4
|
+
data.tar.gz: ebeb707368c2348f2a72b0189bafc75c6ec1cb6a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 638585faba47d4309f8daa4c251787f9d5dde9462220f4c39b6a1e698cccce4570e154ff31b6e8ba1ed5e511593326fa4518ad9860047b684b6cbbf6bfe718ca
|
7
|
+
data.tar.gz: e1a7752908c91664d717d7303b1b9fe4ed130b34a2262010c29d83a243c99ed394d536a849fa2f6dd67f8f0e323bffdcce0fb5e03578439b163ad4212eb3defb
|
data/lib/trackler/version.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"exercise": "isbn-verifier",
|
3
|
-
"version": "2.
|
3
|
+
"version": "2.1.0",
|
4
4
|
"comments": [
|
5
5
|
"An expected value of true indicates a valid ISBN-10, ",
|
6
6
|
"whereas false means the ISBN-10 is invalid."
|
@@ -9,79 +9,105 @@
|
|
9
9
|
{
|
10
10
|
"description": "valid isbn number",
|
11
11
|
"property": "isValid",
|
12
|
-
"input":
|
12
|
+
"input": {
|
13
|
+
"isbn": "3-598-21508-8"
|
14
|
+
},
|
13
15
|
"expected": true
|
14
16
|
},
|
15
17
|
{
|
16
18
|
"description": "invalid isbn check digit",
|
17
19
|
"property": "isValid",
|
18
|
-
"input":
|
20
|
+
"input": {
|
21
|
+
"isbn": "3-598-21508-9"
|
22
|
+
},
|
19
23
|
"expected": false
|
20
24
|
},
|
21
25
|
{
|
22
26
|
"description": "valid isbn number with a check digit of 10",
|
23
27
|
"property": "isValid",
|
24
|
-
"input":
|
28
|
+
"input": {
|
29
|
+
"isbn": "3-598-21507-X"
|
30
|
+
},
|
25
31
|
"expected": true
|
26
32
|
},
|
27
33
|
{
|
28
34
|
"description": "check digit is a character other than X",
|
29
35
|
"property": "isValid",
|
30
|
-
"input":
|
36
|
+
"input": {
|
37
|
+
"isbn": "3-598-21507-A"
|
38
|
+
},
|
31
39
|
"expected": false
|
32
40
|
},
|
33
41
|
{
|
34
42
|
"description": "invalid character in isbn",
|
35
43
|
"property": "isValid",
|
36
|
-
"input":
|
44
|
+
"input": {
|
45
|
+
"isbn": "3-598-2K507-0"
|
46
|
+
},
|
37
47
|
"expected": false
|
38
48
|
},
|
39
49
|
{
|
40
50
|
"description": "X is only valid as a check digit",
|
41
51
|
"property": "isValid",
|
42
|
-
"input":
|
52
|
+
"input": {
|
53
|
+
"isbn": "3-598-2X507-9"
|
54
|
+
},
|
43
55
|
"expected": false
|
44
56
|
},
|
45
57
|
{
|
46
58
|
"description": "valid isbn without separating dashes",
|
47
59
|
"property": "isValid",
|
48
|
-
"input":
|
60
|
+
"input": {
|
61
|
+
"isbn": "3598215088"
|
62
|
+
},
|
49
63
|
"expected": true
|
50
64
|
},
|
51
65
|
{
|
52
66
|
"description": "isbn without separating dashes and X as check digit",
|
53
67
|
"property": "isValid",
|
54
|
-
"input":
|
68
|
+
"input": {
|
69
|
+
"isbn": "359821507X"
|
70
|
+
},
|
55
71
|
"expected": true
|
56
72
|
},
|
57
73
|
{
|
58
74
|
"description": "isbn without check digit and dashes",
|
59
75
|
"property": "isValid",
|
60
|
-
"input":
|
76
|
+
"input": {
|
77
|
+
"isbn": "359821507"
|
78
|
+
},
|
61
79
|
"expected": false
|
62
80
|
},
|
63
81
|
{
|
64
82
|
"description": "too long isbn and no dashes",
|
65
83
|
"property": "isValid",
|
66
|
-
"input":
|
84
|
+
"input": {
|
85
|
+
"isbn": "3598215078X"
|
86
|
+
},
|
67
87
|
"expected": false
|
68
88
|
},
|
69
89
|
{
|
70
90
|
"description": "isbn without check digit",
|
71
91
|
"property": "isValid",
|
72
|
-
"input":
|
92
|
+
"input": {
|
93
|
+
"isbn": "3-598-21507"
|
94
|
+
},
|
73
95
|
"expected": false
|
74
96
|
},
|
75
97
|
{
|
76
98
|
"description": "too long isbn",
|
77
99
|
"property": "isValid",
|
78
|
-
"input":
|
100
|
+
"input": {
|
101
|
+
"isbn": "3-598-21507-XX"
|
102
|
+
},
|
79
103
|
"expected": false
|
80
104
|
},
|
81
105
|
{
|
82
106
|
"description": "check digit of X should not be used for 0",
|
83
107
|
"property": "isValid",
|
84
|
-
"input":
|
108
|
+
"input": {
|
109
|
+
"isbn": "3-598-21515-X"
|
110
|
+
},
|
85
111
|
"expected": false
|
86
112
|
}
|
87
113
|
]
|
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"exercise": "luhn",
|
3
|
-
"version": "1.0.
|
3
|
+
"version": "1.0.1",
|
4
4
|
"cases": [
|
5
5
|
{
|
6
6
|
"description": "single digit strings can not be valid",
|
@@ -9,7 +9,7 @@
|
|
9
9
|
"expected": false
|
10
10
|
},
|
11
11
|
{
|
12
|
-
"description": "
|
12
|
+
"description": "a single zero is invalid",
|
13
13
|
"property": "valid",
|
14
14
|
"input": "0",
|
15
15
|
"expected": false
|
data/tracks/bash/README.md
CHANGED
@@ -6,7 +6,7 @@ Exercism Exercises in Bash
|
|
6
6
|
|
7
7
|
## Contributing Guide
|
8
8
|
|
9
|
-
Please see the [contributing guide](https://github.com/exercism/
|
9
|
+
Please see the [contributing guide](https://github.com/exercism/bash/blob/master/CONTRIBUTING.md) for information.
|
10
10
|
|
11
11
|
|
12
12
|
### Bash icon
|
data/tracks/bash/config.json
CHANGED
@@ -11,6 +11,15 @@
|
|
11
11
|
],
|
12
12
|
"uuid": "4e2533dd-3af5-400b-869d-78140764d533"
|
13
13
|
},
|
14
|
+
{
|
15
|
+
"core": true,
|
16
|
+
"difficulty": 1,
|
17
|
+
"slug": "reverse-string",
|
18
|
+
"topics": [
|
19
|
+
"strings"
|
20
|
+
],
|
21
|
+
"uuid": "2b6d4faa-1909-422a-8eac-1682be3f1b9e"
|
22
|
+
},
|
14
23
|
{
|
15
24
|
"core": false,
|
16
25
|
"difficulty": 1,
|
@@ -195,7 +204,7 @@
|
|
195
204
|
"mathematics"
|
196
205
|
],
|
197
206
|
"unlocked_by": "leap",
|
198
|
-
"uuid": "
|
207
|
+
"uuid": "bd8fd05e-3f8d-4a1f-a9d8-e6223dcc6f93"
|
199
208
|
},
|
200
209
|
{
|
201
210
|
"core": false,
|
@@ -207,7 +216,21 @@
|
|
207
216
|
"strings"
|
208
217
|
],
|
209
218
|
"unlocked_by": "hamming",
|
210
|
-
"uuid": "
|
219
|
+
"uuid": "5bff4fe1-6330-4730-b586-dcc5438c02ee"
|
220
|
+
},
|
221
|
+
{
|
222
|
+
"core": false,
|
223
|
+
"difficulty": 6,
|
224
|
+
"slug": "roman-numerals",
|
225
|
+
"topics": [
|
226
|
+
"integers",
|
227
|
+
"logic",
|
228
|
+
"loops",
|
229
|
+
"mathematics",
|
230
|
+
"strings"
|
231
|
+
],
|
232
|
+
"unlocked_by": "hamming",
|
233
|
+
"uuid": "7cc44e62-d29e-41c3-b4dd-689229e3e25a"
|
211
234
|
}
|
212
235
|
],
|
213
236
|
"foregone": [],
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# Welcome!
|
2
|
+
|
3
|
+
This is a guide/reference for maintainers of the Bash track.
|
4
|
+
|
5
|
+
- [Your Permissions](#your-permissions)
|
6
|
+
- [Maintainer Guides](#maintainer-guides)
|
7
|
+
- [Miscellaneous](#miscellaneous)
|
8
|
+
|
9
|
+
## Your Permissions
|
10
|
+
|
11
|
+
As a maintainer, you have write access to several repositories. "write access" means you can: review, reject, accept and merge PRs; and push changes to these repos. Despite having permissions to push directly, we tend to seek review of even our own PRs.
|
12
|
+
|
13
|
+
### Track-specific
|
14
|
+
|
15
|
+
- [bash](https://github.com/exercism/bash) — Probably where you are now!
|
16
|
+
|
17
|
+
### Exercism-wide
|
18
|
+
|
19
|
+
- [problem-specifications](https://github.com/exercism/problem-specifications) — the library of canonical exercises.
|
20
|
+
- [discussions](https://github.com/exercism/discussions) — the place where project-wide conversations happen.
|
21
|
+
[issues sorted by most recently updated.](https://github.com/exercism/discussions/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc)
|
22
|
+
- [docs](https://github.com/exercism/docs) - the place to find project-wide documentation.
|
23
|
+
|
24
|
+
## Maintainer Guides
|
25
|
+
|
26
|
+
- **[docs/maintaining-a-track/README.md](https://github.com/exercism/docs/blob/master/maintaining-a-track/README.md)**
|
27
|
+
- [docs/contributing-to-language-tracks/README.md](https://github.com/exercism/docs/blob/master/contributing-to-language-tracks/README.md)
|
28
|
+
- [docs/you-can-help/review-pull-requests.md](https://github.com/exercism/docs/blob/master/you-can-help/review-pull-requests.md)
|
29
|
+
|
30
|
+
## Miscellaneous
|
31
|
+
|
32
|
+
- Issues marked with "policy" are current "team agreements": [exercism?label:policy](https://github.com/search?q=org%3Aexercism+label%3Apolicy).
|
33
|
+
This label is described in [discussions#96](https://github.com/exercism/discussions/issues/96).
|
34
|
+
- Exercism has a Twitter account: [@Exercism.io](https://twitter.com/exercism_io); and a mailing list: https://tinyletter.com/exercism
|
35
|
+
|
36
|
+
**Please feel free to ask any questions. In our thinking, asking questions is far smarter than guessing.**
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# Reverse String
|
2
|
+
|
3
|
+
Reverse a string
|
4
|
+
|
5
|
+
For example:
|
6
|
+
input: "cool"
|
7
|
+
output: "looc"
|
8
|
+
|
9
|
+
## Source
|
10
|
+
|
11
|
+
Introductory challenge to reverse an input string. [medium.freecodecamp.org/](https://medium.freecodecamp.org/how-to-reverse-a-string-in-javascript-in-3-different-ways-75e4763c68cb)
|
12
|
+
|
13
|
+
## Submitting Incomplete Solutions
|
14
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -0,0 +1,41 @@
|
|
1
|
+
#!/usr/bin/env bats
|
2
|
+
|
3
|
+
@test "An empty string" {
|
4
|
+
#skip
|
5
|
+
run bash reverse_string.sh
|
6
|
+
|
7
|
+
[ "$status" -eq 0 ]
|
8
|
+
[ "$output" = "" ]
|
9
|
+
}
|
10
|
+
|
11
|
+
@test "A word" {
|
12
|
+
skip
|
13
|
+
run bash reverse_string.sh robot
|
14
|
+
|
15
|
+
[ "$status" -eq 0 ]
|
16
|
+
[ "$output" = "tobor" ]
|
17
|
+
}
|
18
|
+
|
19
|
+
@test "A capitalised word" {
|
20
|
+
skip
|
21
|
+
run bash reverse_string.sh Ramen
|
22
|
+
|
23
|
+
[ "$status" -eq 0 ]
|
24
|
+
[ "$output" = "nemaR" ]
|
25
|
+
}
|
26
|
+
|
27
|
+
@test "A sentence with punctuation" {
|
28
|
+
skip
|
29
|
+
run bash reverse_string.sh "I'm hungry!"
|
30
|
+
|
31
|
+
[ "$status" -eq 0 ]
|
32
|
+
[ "$output" = "!yrgnuh m'I" ]
|
33
|
+
}
|
34
|
+
|
35
|
+
@test "A palindrome" {
|
36
|
+
skip
|
37
|
+
run bash reverse_string.sh racecar
|
38
|
+
|
39
|
+
[ "$status" -eq 0 ]
|
40
|
+
[ "$output" = "racecar" ]
|
41
|
+
}
|
@@ -0,0 +1,50 @@
|
|
1
|
+
# Roman Numerals
|
2
|
+
|
3
|
+
Write a function to convert from normal numbers to Roman Numerals.
|
4
|
+
|
5
|
+
The Romans were a clever bunch. They conquered most of Europe and ruled
|
6
|
+
it for hundreds of years. They invented concrete and straight roads and
|
7
|
+
even bikinis. One thing they never discovered though was the number
|
8
|
+
zero. This made writing and dating extensive histories of their exploits
|
9
|
+
slightly more challenging, but the system of numbers they came up with
|
10
|
+
is still in use today. For example the BBC uses Roman numerals to date
|
11
|
+
their programmes.
|
12
|
+
|
13
|
+
The Romans wrote numbers using letters - I, V, X, L, C, D, M. (notice
|
14
|
+
these letters have lots of straight lines and are hence easy to hack
|
15
|
+
into stone tablets).
|
16
|
+
|
17
|
+
```text
|
18
|
+
1 => I
|
19
|
+
10 => X
|
20
|
+
7 => VII
|
21
|
+
```
|
22
|
+
|
23
|
+
There is no need to be able to convert numbers larger than about 3000.
|
24
|
+
(The Romans themselves didn't tend to go any higher)
|
25
|
+
|
26
|
+
Wikipedia says: Modern Roman numerals ... are written by expressing each
|
27
|
+
digit separately starting with the left most digit and skipping any
|
28
|
+
digit with a value of zero.
|
29
|
+
|
30
|
+
To see this in practice, consider the example of 1990.
|
31
|
+
|
32
|
+
In Roman numerals 1990 is MCMXC:
|
33
|
+
|
34
|
+
1000=M
|
35
|
+
900=CM
|
36
|
+
90=XC
|
37
|
+
|
38
|
+
2008 is written as MMVIII:
|
39
|
+
|
40
|
+
2000=MM
|
41
|
+
8=VIII
|
42
|
+
|
43
|
+
See also: http://www.novaroma.org/via_romana/numbers.html
|
44
|
+
|
45
|
+
## Source
|
46
|
+
|
47
|
+
The Roman Numeral Kata. [codingdojo.org](http://codingdojo.org/cgi-bin/index.pl?KataRomanNumerals)
|
48
|
+
|
49
|
+
## Submitting Incomplete Solutions
|
50
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -0,0 +1,19 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
values=( 1000 900 500 400 100 90 50 40 10 9 5 4 1 )
|
4
|
+
roman=(
|
5
|
+
[1000]=M [900]=CM [500]=D [400]=CD
|
6
|
+
[100]=C [90]=XC [50]=L [40]=XL
|
7
|
+
[10]=X [9]=IX [5]=V [4]=IV
|
8
|
+
[1]=I
|
9
|
+
)
|
10
|
+
output=""
|
11
|
+
num=$1
|
12
|
+
for value in ${values[@]}; do
|
13
|
+
while (( num >= value )); do
|
14
|
+
output+=${roman[value]}
|
15
|
+
((num -= value))
|
16
|
+
done
|
17
|
+
done
|
18
|
+
|
19
|
+
echo $output
|
@@ -0,0 +1,145 @@
|
|
1
|
+
#!/usr/bin/env bats
|
2
|
+
|
3
|
+
@test "1 is a single I" {
|
4
|
+
#skip
|
5
|
+
run bash roman_numerals.sh 1
|
6
|
+
|
7
|
+
[ "$status" -eq 0 ]
|
8
|
+
[ "$output" = "I" ]
|
9
|
+
}
|
10
|
+
|
11
|
+
@test "2 is two I's" {
|
12
|
+
skip
|
13
|
+
run bash roman_numerals.sh 2
|
14
|
+
|
15
|
+
[ "$status" -eq 0 ]
|
16
|
+
[ "$output" = "II" ]
|
17
|
+
}
|
18
|
+
|
19
|
+
@test "3 is three I's" {
|
20
|
+
skip
|
21
|
+
run bash roman_numerals.sh 3
|
22
|
+
|
23
|
+
[ "$status" -eq 0 ]
|
24
|
+
[ "$output" = "III" ]
|
25
|
+
}
|
26
|
+
|
27
|
+
@test "4, being 5 - 1, is IV" {
|
28
|
+
skip
|
29
|
+
run bash roman_numerals.sh 4
|
30
|
+
|
31
|
+
[ "$status" -eq 0 ]
|
32
|
+
[ "$output" = "IV" ]
|
33
|
+
}
|
34
|
+
|
35
|
+
@test "5 is a single V" {
|
36
|
+
skip
|
37
|
+
run bash roman_numerals.sh 5
|
38
|
+
|
39
|
+
[ "$status" -eq 0 ]
|
40
|
+
[ "$output" = "V" ]
|
41
|
+
}
|
42
|
+
|
43
|
+
@test "6, being 5 + 1, is VI" {
|
44
|
+
skip
|
45
|
+
run bash roman_numerals.sh 6
|
46
|
+
|
47
|
+
[ "$status" -eq 0 ]
|
48
|
+
[ "$output" = "VI" ]
|
49
|
+
}
|
50
|
+
|
51
|
+
@test "9, being 10 - 1, is IX" {
|
52
|
+
skip
|
53
|
+
run bash roman_numerals.sh 9
|
54
|
+
|
55
|
+
[ "$status" -eq 0 ]
|
56
|
+
[ "$output" = "IX" ]
|
57
|
+
}
|
58
|
+
|
59
|
+
@test "20 is two X's" {
|
60
|
+
skip
|
61
|
+
run bash roman_numerals.sh 27
|
62
|
+
|
63
|
+
[ "$status" -eq 0 ]
|
64
|
+
[ "$output" = "XXVII" ]
|
65
|
+
}
|
66
|
+
|
67
|
+
@test "48 is not 50 - 2 but rather 40 + 8" {
|
68
|
+
skip
|
69
|
+
run bash roman_numerals.sh 48
|
70
|
+
|
71
|
+
[ "$status" -eq 0 ]
|
72
|
+
[ "$output" = "XLVIII" ]
|
73
|
+
}
|
74
|
+
|
75
|
+
@test "50 is a single L" {
|
76
|
+
skip
|
77
|
+
run bash roman_numerals.sh 59
|
78
|
+
|
79
|
+
[ "$status" -eq 0 ]
|
80
|
+
[ "$output" = "LIX" ]
|
81
|
+
}
|
82
|
+
|
83
|
+
@test "90, being 100 - 10, is XC" {
|
84
|
+
skip
|
85
|
+
run bash roman_numerals.sh 93
|
86
|
+
|
87
|
+
[ "$status" -eq 0 ]
|
88
|
+
[ "$output" = "XCIII" ]
|
89
|
+
}
|
90
|
+
|
91
|
+
@test "100 is a single C" {
|
92
|
+
skip
|
93
|
+
run bash roman_numerals.sh 141
|
94
|
+
|
95
|
+
[ "$status" -eq 0 ]
|
96
|
+
[ "$output" = "CXLI" ]
|
97
|
+
}
|
98
|
+
|
99
|
+
@test "60, being 50 + 10, is LX" {
|
100
|
+
skip
|
101
|
+
run bash roman_numerals.sh 163
|
102
|
+
|
103
|
+
[ "$status" -eq 0 ]
|
104
|
+
[ "$output" = "CLXIII" ]
|
105
|
+
}
|
106
|
+
|
107
|
+
@test "400, being 500 - 100, is CD" {
|
108
|
+
skip
|
109
|
+
run bash roman_numerals.sh 402
|
110
|
+
|
111
|
+
[ "$status" -eq 0 ]
|
112
|
+
[ "$output" = "CDII" ]
|
113
|
+
}
|
114
|
+
|
115
|
+
@test "500 is a single D" {
|
116
|
+
skip
|
117
|
+
run bash roman_numerals.sh 575
|
118
|
+
|
119
|
+
[ "$status" -eq 0 ]
|
120
|
+
[ "$output" = "DLXXV" ]
|
121
|
+
}
|
122
|
+
|
123
|
+
@test "900, being 1000 - 100, is CM" {
|
124
|
+
skip
|
125
|
+
run bash roman_numerals.sh 911
|
126
|
+
|
127
|
+
[ "$status" -eq 0 ]
|
128
|
+
[ "$output" = "CMXI" ]
|
129
|
+
}
|
130
|
+
|
131
|
+
@test "1000 is a single M" {
|
132
|
+
skip
|
133
|
+
run bash roman_numerals.sh 1024
|
134
|
+
|
135
|
+
[ "$status" -eq 0 ]
|
136
|
+
[ "$output" = "MXXIV" ]
|
137
|
+
}
|
138
|
+
|
139
|
+
@test "3000 is three M's" {
|
140
|
+
skip
|
141
|
+
run bash roman_numerals.sh 3000
|
142
|
+
|
143
|
+
[ "$status" -eq 0 ]
|
144
|
+
[ "$output" = "MMM" ]
|
145
|
+
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
(ns bank-account)
|
2
|
+
|
3
|
+
(defn open-account [] ;; <- arglist goes here
|
4
|
+
;; your code goes here
|
5
|
+
)
|
6
|
+
|
7
|
+
(defn close-account [] ;; <- arglist goes here
|
8
|
+
;; your code goes here
|
9
|
+
)
|
10
|
+
|
11
|
+
(defn get-balance [] ;; <- arglist goes here
|
12
|
+
;; your code goes here
|
13
|
+
)
|
14
|
+
|
15
|
+
(defn update-balance [] ;; <- arglist goes here
|
16
|
+
;; your code goes here
|
17
|
+
)
|
@@ -0,0 +1,29 @@
|
|
1
|
+
(ns binary-search-tree)
|
2
|
+
|
3
|
+
(defn value [] ;; <- arglist goes here
|
4
|
+
;; your code goes here
|
5
|
+
)
|
6
|
+
|
7
|
+
(defn singleton [] ;; <- arglist goes here
|
8
|
+
;; your code goes here
|
9
|
+
)
|
10
|
+
|
11
|
+
(defn insert [] ;; <- arglist goes here
|
12
|
+
;; your code goes here
|
13
|
+
)
|
14
|
+
|
15
|
+
(defn left [] ;; <- arglist goes here
|
16
|
+
;; your code goes here
|
17
|
+
)
|
18
|
+
|
19
|
+
(defn right [] ;; <- arglist goes here
|
20
|
+
;; your code goes here
|
21
|
+
)
|
22
|
+
|
23
|
+
(defn to-list [] ;; <- arglist goes here
|
24
|
+
;; your code goes here
|
25
|
+
)
|
26
|
+
|
27
|
+
(defn from-list [] ;; <- arglist goes here
|
28
|
+
;; your code goes here
|
29
|
+
)
|
@@ -0,0 +1,21 @@
|
|
1
|
+
(ns crypto-square)
|
2
|
+
|
3
|
+
(defn normalize-plaintext [] ;; <- arglist goes here
|
4
|
+
;; your code goes here
|
5
|
+
)
|
6
|
+
|
7
|
+
(defn square-size [] ;; <- arglist goes here
|
8
|
+
;; your code goes here
|
9
|
+
)
|
10
|
+
|
11
|
+
(defn plaintext-segments [] ;; <- arglist goes here
|
12
|
+
;; your code goes here
|
13
|
+
)
|
14
|
+
|
15
|
+
(defn ciphertext [] ;; <- arglist goes here
|
16
|
+
;; your code goes here
|
17
|
+
)
|
18
|
+
|
19
|
+
(defn normalize-ciphertext [] ;; <- arglist goes here
|
20
|
+
;; your code goes here
|
21
|
+
)
|
@@ -0,0 +1,13 @@
|
|
1
|
+
(ns difference-of-squares)
|
2
|
+
|
3
|
+
(defn difference [] ;; <- arglist goes here
|
4
|
+
;; your code goes here
|
5
|
+
)
|
6
|
+
|
7
|
+
(defn sum-of-squares [] ;; <- arglist goes here
|
8
|
+
;; your code goes here
|
9
|
+
)
|
10
|
+
|
11
|
+
(defn square-of-sums [] ;; <- arglist goes here
|
12
|
+
;; your code goes here
|
13
|
+
)
|
data/tracks/groovy/config.json
CHANGED
File without changes
|
File without changes
|
File without changes
|
data/tracks/groovy/gradlew
CHANGED
File without changes
|
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.
|
4
|
+
version: 2.2.1.80
|
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-12-
|
11
|
+
date: 2017-12-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubyzip
|
@@ -597,11 +597,11 @@ files:
|
|
597
597
|
- tracks/bash/docs/EXERCISE_README_INSERT.md
|
598
598
|
- tracks/bash/docs/INSTALLATION.md
|
599
599
|
- tracks/bash/docs/LEARNING.md
|
600
|
+
- tracks/bash/docs/MAINTAINING.md
|
600
601
|
- tracks/bash/docs/RESOURCES.md
|
601
602
|
- tracks/bash/docs/SNIPPET.txt
|
602
603
|
- tracks/bash/docs/TESTS.md
|
603
604
|
- tracks/bash/exercises/acronym/README.md
|
604
|
-
- tracks/bash/exercises/acronym/acronym.sh
|
605
605
|
- tracks/bash/exercises/acronym/acronym_tests.sh
|
606
606
|
- tracks/bash/exercises/acronym/example.sh
|
607
607
|
- tracks/bash/exercises/anagram/README.md
|
@@ -647,9 +647,15 @@ files:
|
|
647
647
|
- tracks/bash/exercises/raindrops/README.md
|
648
648
|
- tracks/bash/exercises/raindrops/example.sh
|
649
649
|
- tracks/bash/exercises/raindrops/raindrops_test.sh
|
650
|
+
- tracks/bash/exercises/reverse-string/README.md
|
651
|
+
- tracks/bash/exercises/reverse-string/example.sh
|
652
|
+
- tracks/bash/exercises/reverse-string/reverse_string_test.sh
|
650
653
|
- tracks/bash/exercises/rna-transcription/README.md
|
651
654
|
- tracks/bash/exercises/rna-transcription/example.sh
|
652
655
|
- tracks/bash/exercises/rna-transcription/rna_transcription_test.sh
|
656
|
+
- tracks/bash/exercises/roman-numerals/README.md
|
657
|
+
- tracks/bash/exercises/roman-numerals/example.sh
|
658
|
+
- tracks/bash/exercises/roman-numerals/roman_numerals_test.sh
|
653
659
|
- tracks/bash/exercises/triangle/README.md
|
654
660
|
- tracks/bash/exercises/triangle/example.sh
|
655
661
|
- tracks/bash/exercises/triangle/triangle_test.sh
|
@@ -1392,14 +1398,17 @@ files:
|
|
1392
1398
|
- tracks/clojure/exercises/accumulate/test/accumulate_test.clj
|
1393
1399
|
- tracks/clojure/exercises/acronym/README.md
|
1394
1400
|
- tracks/clojure/exercises/acronym/project.clj
|
1401
|
+
- tracks/clojure/exercises/acronym/src/acronym.clj
|
1395
1402
|
- tracks/clojure/exercises/acronym/src/example.clj
|
1396
1403
|
- tracks/clojure/exercises/acronym/test/acronym_test.clj
|
1397
1404
|
- tracks/clojure/exercises/all-your-base/README.md
|
1398
1405
|
- tracks/clojure/exercises/all-your-base/project.clj
|
1406
|
+
- tracks/clojure/exercises/all-your-base/src/all_your_base.clj
|
1399
1407
|
- tracks/clojure/exercises/all-your-base/src/example.clj
|
1400
1408
|
- tracks/clojure/exercises/all-your-base/test/all_your_base_test.clj
|
1401
1409
|
- tracks/clojure/exercises/allergies/README.md
|
1402
1410
|
- tracks/clojure/exercises/allergies/project.clj
|
1411
|
+
- tracks/clojure/exercises/allergies/src/allergies.clj
|
1403
1412
|
- tracks/clojure/exercises/allergies/src/example.clj
|
1404
1413
|
- tracks/clojure/exercises/allergies/test/allergies_test.clj
|
1405
1414
|
- tracks/clojure/exercises/anagram/README.md
|
@@ -1409,10 +1418,12 @@ files:
|
|
1409
1418
|
- tracks/clojure/exercises/anagram/test/anagram_test.clj
|
1410
1419
|
- tracks/clojure/exercises/atbash-cipher/README.md
|
1411
1420
|
- tracks/clojure/exercises/atbash-cipher/project.clj
|
1421
|
+
- tracks/clojure/exercises/atbash-cipher/src/atbash_cipher.clj
|
1412
1422
|
- tracks/clojure/exercises/atbash-cipher/src/example.clj
|
1413
1423
|
- tracks/clojure/exercises/atbash-cipher/test/atbash_cipher_test.clj
|
1414
1424
|
- tracks/clojure/exercises/bank-account/README.md
|
1415
1425
|
- tracks/clojure/exercises/bank-account/project.clj
|
1426
|
+
- tracks/clojure/exercises/bank-account/src/bank_account.clj
|
1416
1427
|
- tracks/clojure/exercises/bank-account/src/example.clj
|
1417
1428
|
- tracks/clojure/exercises/bank-account/test/bank_account_test.clj
|
1418
1429
|
- tracks/clojure/exercises/beer-song/README.md
|
@@ -1422,14 +1433,17 @@ files:
|
|
1422
1433
|
- tracks/clojure/exercises/beer-song/test/beer_song_test.clj
|
1423
1434
|
- tracks/clojure/exercises/binary-search-tree/README.md
|
1424
1435
|
- tracks/clojure/exercises/binary-search-tree/project.clj
|
1436
|
+
- tracks/clojure/exercises/binary-search-tree/src/binary_search_tree.clj
|
1425
1437
|
- tracks/clojure/exercises/binary-search-tree/src/example.clj
|
1426
1438
|
- tracks/clojure/exercises/binary-search-tree/test/binary_search_tree_test.clj
|
1427
1439
|
- tracks/clojure/exercises/binary-search/README.md
|
1428
1440
|
- tracks/clojure/exercises/binary-search/project.clj
|
1441
|
+
- tracks/clojure/exercises/binary-search/src/binary_search.clj
|
1429
1442
|
- tracks/clojure/exercises/binary-search/src/example.clj
|
1430
1443
|
- tracks/clojure/exercises/binary-search/test/binary_search_test.clj
|
1431
1444
|
- tracks/clojure/exercises/binary/README.md
|
1432
1445
|
- tracks/clojure/exercises/binary/project.clj
|
1446
|
+
- tracks/clojure/exercises/binary/src/binary.clj
|
1433
1447
|
- tracks/clojure/exercises/binary/src/example.clj
|
1434
1448
|
- tracks/clojure/exercises/binary/test/binary_test.clj
|
1435
1449
|
- tracks/clojure/exercises/bob/README.md
|
@@ -1439,15 +1453,18 @@ files:
|
|
1439
1453
|
- tracks/clojure/exercises/bob/test/bob_test.clj
|
1440
1454
|
- tracks/clojure/exercises/bracket-push/README.md
|
1441
1455
|
- tracks/clojure/exercises/bracket-push/project.clj
|
1456
|
+
- tracks/clojure/exercises/bracket-push/src/bracket_push.clj
|
1442
1457
|
- tracks/clojure/exercises/bracket-push/src/example.clj
|
1443
1458
|
- tracks/clojure/exercises/bracket-push/test/bracket_push_test.clj
|
1444
1459
|
- tracks/clojure/exercises/change/README.md
|
1445
1460
|
- tracks/clojure/exercises/change/project.clj
|
1461
|
+
- tracks/clojure/exercises/change/src/change.clj
|
1446
1462
|
- tracks/clojure/exercises/change/src/example.clj
|
1447
1463
|
- tracks/clojure/exercises/change/test/change_test.clj
|
1448
1464
|
- tracks/clojure/exercises/clock/.meta/clock.mustache
|
1449
1465
|
- tracks/clojure/exercises/clock/README.md
|
1450
1466
|
- tracks/clojure/exercises/clock/project.clj
|
1467
|
+
- tracks/clojure/exercises/clock/src/clock.clj
|
1451
1468
|
- tracks/clojure/exercises/clock/src/example.clj
|
1452
1469
|
- tracks/clojure/exercises/clock/test/clock_test.clj
|
1453
1470
|
- tracks/clojure/exercises/collatz-conjecture/README.md
|
@@ -1462,23 +1479,28 @@ files:
|
|
1462
1479
|
- tracks/clojure/exercises/complex-numbers/test/complex_numbers_test.clj
|
1463
1480
|
- tracks/clojure/exercises/crypto-square/README.md
|
1464
1481
|
- tracks/clojure/exercises/crypto-square/project.clj
|
1482
|
+
- tracks/clojure/exercises/crypto-square/src/crypto_square.clj
|
1465
1483
|
- tracks/clojure/exercises/crypto-square/src/example.clj
|
1466
1484
|
- tracks/clojure/exercises/crypto-square/test/crypto_square_test.clj
|
1467
1485
|
- tracks/clojure/exercises/diamond/README.md
|
1468
1486
|
- tracks/clojure/exercises/diamond/project.clj
|
1487
|
+
- tracks/clojure/exercises/diamond/src/diamond.clj
|
1469
1488
|
- tracks/clojure/exercises/diamond/src/example.clj
|
1470
1489
|
- tracks/clojure/exercises/diamond/test/diamond_test.clj
|
1471
1490
|
- tracks/clojure/exercises/difference-of-squares/README.md
|
1472
1491
|
- tracks/clojure/exercises/difference-of-squares/project.clj
|
1492
|
+
- tracks/clojure/exercises/difference-of-squares/src/difference_of_squares.clj
|
1473
1493
|
- tracks/clojure/exercises/difference-of-squares/src/example.clj
|
1474
1494
|
- tracks/clojure/exercises/difference-of-squares/test/difference_of_squares_test.clj
|
1475
1495
|
- tracks/clojure/exercises/etl/README.md
|
1476
1496
|
- tracks/clojure/exercises/etl/project.clj
|
1497
|
+
- tracks/clojure/exercises/etl/src/etl.clj
|
1477
1498
|
- tracks/clojure/exercises/etl/src/example.clj
|
1478
1499
|
- tracks/clojure/exercises/etl/test/etl_test.clj
|
1479
1500
|
- tracks/clojure/exercises/flatten-array/README.md
|
1480
1501
|
- tracks/clojure/exercises/flatten-array/project.clj
|
1481
1502
|
- tracks/clojure/exercises/flatten-array/src/example.clj
|
1503
|
+
- tracks/clojure/exercises/flatten-array/src/flatten_array.clj
|
1482
1504
|
- tracks/clojure/exercises/flatten-array/test/flatten_array_test.clj
|
1483
1505
|
- tracks/clojure/exercises/gigasecond/README.md
|
1484
1506
|
- tracks/clojure/exercises/gigasecond/project.clj
|
@@ -6231,6 +6253,10 @@ files:
|
|
6231
6253
|
- tracks/groovy/exercises/difference-of-squares/DifferenceOfSquaresSpec.groovy
|
6232
6254
|
- tracks/groovy/exercises/difference-of-squares/Example.groovy
|
6233
6255
|
- tracks/groovy/exercises/difference-of-squares/README.md
|
6256
|
+
- tracks/groovy/exercises/double-linked-list/DoubleLinkedList.groovy
|
6257
|
+
- tracks/groovy/exercises/double-linked-list/DoubleLinkedListSpec.groovy
|
6258
|
+
- tracks/groovy/exercises/double-linked-list/Example.groovy
|
6259
|
+
- tracks/groovy/exercises/double-linked-list/README.md
|
6234
6260
|
- tracks/groovy/exercises/flatten-array/Example.groovy
|
6235
6261
|
- tracks/groovy/exercises/flatten-array/FlattenArraySpec.groovy
|
6236
6262
|
- tracks/groovy/exercises/flatten-array/README.md
|
@@ -6254,10 +6280,6 @@ files:
|
|
6254
6280
|
- tracks/groovy/exercises/leap/Leap.groovy
|
6255
6281
|
- tracks/groovy/exercises/leap/LeapSpec.groovy
|
6256
6282
|
- tracks/groovy/exercises/leap/README.md
|
6257
|
-
- tracks/groovy/exercises/linked-list/Example.groovy
|
6258
|
-
- tracks/groovy/exercises/linked-list/LinkedList.groovy
|
6259
|
-
- tracks/groovy/exercises/linked-list/LinkedListSpec.groovy
|
6260
|
-
- tracks/groovy/exercises/linked-list/README.md
|
6261
6283
|
- tracks/groovy/exercises/nth-prime/Example.groovy
|
6262
6284
|
- tracks/groovy/exercises/nth-prime/NthPrime.groovy
|
6263
6285
|
- tracks/groovy/exercises/nth-prime/NthPrimeSpec.groovy
|
@@ -1,18 +0,0 @@
|
|
1
|
-
#!/bin/bash
|
2
|
-
|
3
|
-
if [ "$#" -ne 1 ]; then
|
4
|
-
echo 'Usage: $0 "<phrase1>"' >&2
|
5
|
-
exit 1
|
6
|
-
fi
|
7
|
-
|
8
|
-
phrase=`echo $1 | tr '-' ' '`
|
9
|
-
set -f -- junk $phrase
|
10
|
-
shift
|
11
|
-
for word; do
|
12
|
-
initial="$(echo $word | head -c 1 | tr '[:lower:]' '[:upper:]')"
|
13
|
-
acronym+=$initial
|
14
|
-
#echo "[$word] [$initial] [$acronym]"
|
15
|
-
done
|
16
|
-
echo $acronym
|
17
|
-
|
18
|
-
exit 0
|