trackler 2.2.1.79 → 2.2.1.80
Sign up to get free protection for your applications and to get access to all the features.
- 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
|