trackler 2.2.1.78 → 2.2.1.79
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/tracks/c/exercises/series/test/test_series.c +1 -1
- data/tracks/clojure/exercises/accumulate/project.clj +1 -1
- data/tracks/clojure/exercises/acronym/project.clj +1 -1
- data/tracks/clojure/exercises/all-your-base/project.clj +1 -1
- data/tracks/clojure/exercises/all-your-base/test/all_your_base_test.clj +2 -2
- data/tracks/clojure/exercises/allergies/project.clj +1 -1
- data/tracks/clojure/exercises/anagram/project.clj +1 -1
- data/tracks/clojure/exercises/atbash-cipher/project.clj +1 -1
- data/tracks/clojure/exercises/bank-account/project.clj +1 -1
- data/tracks/clojure/exercises/beer-song/project.clj +1 -1
- data/tracks/clojure/exercises/binary-search-tree/project.clj +1 -1
- data/tracks/clojure/exercises/binary-search/project.clj +1 -1
- data/tracks/clojure/exercises/binary/project.clj +1 -1
- data/tracks/clojure/exercises/bob/project.clj +1 -1
- data/tracks/clojure/exercises/bracket-push/project.clj +1 -1
- data/tracks/clojure/exercises/change/project.clj +1 -1
- data/tracks/clojure/exercises/clock/project.clj +1 -1
- data/tracks/clojure/exercises/collatz-conjecture/project.clj +1 -1
- data/tracks/clojure/exercises/collatz-conjecture/test/collatz_conjecture_test.clj +2 -2
- data/tracks/clojure/exercises/complex-numbers/project.clj +1 -1
- data/tracks/clojure/exercises/complex-numbers/test/complex_numbers_test.clj +2 -2
- data/tracks/clojure/exercises/crypto-square/project.clj +1 -1
- data/tracks/clojure/exercises/diamond/project.clj +1 -1
- data/tracks/clojure/exercises/difference-of-squares/project.clj +1 -1
- data/tracks/clojure/exercises/etl/project.clj +1 -1
- data/tracks/clojure/exercises/flatten-array/project.clj +1 -1
- data/tracks/clojure/exercises/flatten-array/test/flatten_array_test.clj +2 -2
- data/tracks/clojure/exercises/gigasecond/project.clj +1 -1
- data/tracks/clojure/exercises/grade-school/project.clj +1 -1
- data/tracks/clojure/exercises/grains/project.clj +1 -1
- data/tracks/clojure/exercises/hamming/project.clj +1 -1
- data/tracks/clojure/exercises/hamming/src/hamming.clj +5 -0
- data/tracks/clojure/exercises/hello-world/project.clj +1 -1
- data/tracks/clojure/exercises/hexadecimal/project.clj +1 -1
- data/tracks/clojure/exercises/isbn-verifier/project.clj +1 -1
- data/tracks/clojure/exercises/isogram/project.clj +1 -1
- data/tracks/clojure/exercises/kindergarten-garden/project.clj +1 -1
- data/tracks/clojure/exercises/largest-series-product/project.clj +1 -1
- data/tracks/clojure/exercises/leap/project.clj +1 -1
- data/tracks/clojure/exercises/luhn/project.clj +1 -1
- data/tracks/clojure/exercises/meetup/project.clj +1 -1
- data/tracks/clojure/exercises/minesweeper/project.clj +1 -1
- data/tracks/clojure/exercises/nth-prime/project.clj +1 -1
- data/tracks/clojure/exercises/nucleotide-count/project.clj +1 -1
- data/tracks/clojure/exercises/octal/project.clj +1 -1
- data/tracks/clojure/exercises/pangram/project.clj +1 -1
- data/tracks/clojure/exercises/pascals-triangle/project.clj +1 -1
- data/tracks/clojure/exercises/perfect-numbers/project.clj +1 -1
- data/tracks/clojure/exercises/phone-number/project.clj +1 -1
- data/tracks/clojure/exercises/pig-latin/project.clj +1 -1
- data/tracks/clojure/exercises/pov/project.clj +1 -1
- data/tracks/clojure/exercises/prime-factors/project.clj +1 -1
- data/tracks/clojure/exercises/protein-translation/project.clj +1 -1
- data/tracks/clojure/exercises/proverb/project.clj +1 -1
- data/tracks/clojure/exercises/queen-attack/project.clj +1 -1
- data/tracks/clojure/exercises/raindrops/project.clj +1 -1
- data/tracks/clojure/exercises/reverse-string/project.clj +1 -1
- data/tracks/clojure/exercises/rna-transcription/project.clj +1 -1
- data/tracks/clojure/exercises/robot-name/project.clj +1 -1
- data/tracks/clojure/exercises/robot-simulator/project.clj +1 -1
- data/tracks/clojure/exercises/roman-numerals/project.clj +1 -1
- data/tracks/clojure/exercises/rotational-cipher/project.clj +1 -1
- data/tracks/clojure/exercises/run-length-encoding/project.clj +1 -1
- data/tracks/clojure/exercises/say/project.clj +1 -1
- data/tracks/clojure/exercises/scrabble-score/project.clj +1 -1
- data/tracks/clojure/exercises/secret-handshake/project.clj +1 -1
- data/tracks/clojure/exercises/series/project.clj +1 -1
- data/tracks/clojure/exercises/series/test/series_test.clj +2 -2
- data/tracks/clojure/exercises/sieve/project.clj +1 -1
- data/tracks/clojure/exercises/space-age/project.clj +1 -1
- data/tracks/clojure/exercises/spiral-matrix/project.clj +1 -1
- data/tracks/clojure/exercises/spiral-matrix/test/spiral_matrix_test.clj +2 -2
- data/tracks/clojure/exercises/strain/project.clj +1 -1
- data/tracks/clojure/exercises/sublist/project.clj +1 -1
- data/tracks/clojure/exercises/sum-of-multiples/project.clj +1 -1
- data/tracks/clojure/exercises/triangle/project.clj +1 -1
- data/tracks/clojure/exercises/trinary/project.clj +1 -1
- data/tracks/clojure/exercises/word-count/project.clj +1 -1
- data/tracks/clojure/exercises/wordy/project.clj +1 -1
- data/tracks/clojure/project.clj +1 -1
- data/tracks/groovy/config.json +13 -0
- data/tracks/groovy/exercises/flatten-array/Example.groovy +21 -0
- data/tracks/groovy/exercises/flatten-array/FlattenArraySpec.groovy +58 -0
- data/tracks/groovy/exercises/flatten-array/README.md +61 -0
- data/tracks/java/exercises/two-fer/.meta/src/reference/java/Twofer.java +3 -3
- data/tracks/java/exercises/two-fer/src/main/java/Twofer.java +3 -3
- data/tracks/javascript/config.json +12 -0
- data/tracks/javascript/exercises/reverse-string/README.md +36 -0
- data/tracks/javascript/exercises/reverse-string/example.js +11 -0
- data/tracks/javascript/exercises/reverse-string/reverse-string.spec.js +33 -0
- data/tracks/ocaml/exercises/grade-school/test.ml +3 -3
- data/tracks/php/exercises/bob/bob_test.php +1 -1
- metadata +9 -5
- data/tracks/java/.keep +0 -0
- data/tracks/java/exercises/binary-search-tree/src/main/java/.keep +0 -0
- data/tracks/java/exercises/matrix/src/main/java/.keep +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f534ea2a6278d897c9f2761774cded84858c3d4d
|
|
4
|
+
data.tar.gz: 70bd2ab606450227fb252f5057fbca33ec0d57e4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: cbf4a33ca1a50368b3756c79f68b0041aaa39147feb90b7b3093336a4a594a1b69e6eb639101d5d331a7bf1b537cbf4c7d0862832dfeadbc026f771f28ffe11d
|
|
7
|
+
data.tar.gz: 47f09fb1ff62297220261332bb1364a68aed554347374ad3dbe720d343ee6b2503d4e7ac50c7966425c750986bb3b8f66677971461b41df3a4fbfaa478811a06
|
data/lib/trackler/version.rb
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
(defproject binary-search-tree "0.1.0-SNAPSHOT"
|
|
2
2
|
:description "binary-search-tree exercise."
|
|
3
3
|
:url "https://github.com/exercism/clojure/tree/master/exercises/binary-search-tree"
|
|
4
|
-
:dependencies [[org.clojure/clojure "1.
|
|
4
|
+
:dependencies [[org.clojure/clojure "1.9.0"]])
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
(defproject collatz-conjecture "0.1.0-SNAPSHOT"
|
|
2
2
|
:description "collatz-conjecture exercise"
|
|
3
3
|
:url "https://github.com/exercism/clojure/tree/master/exercises/collatz-conjecture"
|
|
4
|
-
:dependencies [[org.clojure/clojure "1.
|
|
4
|
+
:dependencies [[org.clojure/clojure "1.9.0"]])
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
(ns collatz-conjecture-test
|
|
2
|
-
(require [clojure.test :refer [deftest is testing]]
|
|
3
|
-
|
|
2
|
+
(:require [clojure.test :refer [deftest is testing]]
|
|
3
|
+
[collatz-conjecture :refer [collatz]]))
|
|
4
4
|
|
|
5
5
|
(deftest steps-for-1
|
|
6
6
|
(testing "zero steps for one"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
(defproject difference-of-squares "0.1.0-SNAPSHOT"
|
|
2
2
|
:description "difference-of-squares exercise."
|
|
3
3
|
:url "https://github.com/exercism/clojure/tree/master/exercises/difference-of-squares"
|
|
4
|
-
:dependencies [[org.clojure/clojure "1.
|
|
4
|
+
:dependencies [[org.clojure/clojure "1.9.0"]])
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
(defproject kindergarten-garden "0.1.0-SNAPSHOT"
|
|
2
2
|
:description "kindergarten-garden exercise."
|
|
3
3
|
:url "https://github.com/exercism/clojure/tree/master/exercises/kindergarten-garden"
|
|
4
|
-
:dependencies [[org.clojure/clojure "1.
|
|
4
|
+
:dependencies [[org.clojure/clojure "1.9.0"]])
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
(defproject largest-series-product "0.1.0-SNAPSHOT"
|
|
2
2
|
:description "largest-series-product exercise."
|
|
3
3
|
:url "https://github.com/exercism/clojure/tree/master/exercises/largest-series-product"
|
|
4
|
-
:dependencies [[org.clojure/clojure "1.
|
|
4
|
+
:dependencies [[org.clojure/clojure "1.9.0"]])
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
(defproject pascals-triangle "0.1.0-SNAPSHOT"
|
|
2
2
|
:description "pascal's triangle exercise."
|
|
3
3
|
:url "https://github.com/exercism/clojure/tree/master/exercises/pascals-triangle"
|
|
4
|
-
:dependencies [[org.clojure/clojure "1.
|
|
4
|
+
:dependencies [[org.clojure/clojure "1.9.0"]])
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
(defproject pov "0.1.0-SNAPSHOT"
|
|
2
|
-
:dependencies [[org.clojure/clojure "1.
|
|
2
|
+
:dependencies [[org.clojure/clojure "1.9.0"]])
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
(defproject protein-translation "0.1.0-SNAPSHOT"
|
|
2
2
|
:description "protein translation exercise."
|
|
3
3
|
:url "https://github.com/exercism/xclojure/tree/master/exercises/protein-translation"
|
|
4
|
-
:dependencies [[org.clojure/clojure "1.
|
|
4
|
+
:dependencies [[org.clojure/clojure "1.9.0"]])
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
(defproject rna-transcription "0.1.0-SNAPSHOT"
|
|
2
2
|
:description "rna-transcription exercise."
|
|
3
3
|
:url "https://github.com/exercism/clojure/tree/master/exercises/rna-transcription"
|
|
4
|
-
:dependencies [[org.clojure/clojure "1.
|
|
4
|
+
:dependencies [[org.clojure/clojure "1.9.0"]])
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
(defproject rotational-cipher "0.1.0-SNAPSHOT"
|
|
2
2
|
:description "rotational cipher exercise."
|
|
3
3
|
:url "https://github.com/exercism/clojure/tree/master/exercises/rotational-cipher"
|
|
4
|
-
:dependencies [[org.clojure/clojure "1.
|
|
4
|
+
:dependencies [[org.clojure/clojure "1.9.0"]])
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
(defproject run-length-encoding "0.1.0-SNAPSHOT"
|
|
2
2
|
:description "run-length-encoding exercise."
|
|
3
3
|
:url "https://github.com/exercism/clojure/tree/master/exercises/run-length-encoding"
|
|
4
|
-
:dependencies [[org.clojure/clojure "1.
|
|
4
|
+
:dependencies [[org.clojure/clojure "1.9.0"]])
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
(ns spiral-matrix-test
|
|
2
|
-
(require [clojure.test
|
|
3
|
-
|
|
2
|
+
(:require [clojure.test :refer [deftest is testing]]
|
|
3
|
+
[spiral-matrix :refer [spiral]]))
|
|
4
4
|
|
|
5
5
|
(deftest spiral-matrix-of-0
|
|
6
6
|
(testing "spiral matrix of 0"
|
data/tracks/clojure/project.clj
CHANGED
data/tracks/groovy/config.json
CHANGED
|
@@ -192,6 +192,19 @@
|
|
|
192
192
|
],
|
|
193
193
|
"unlocked_by": null,
|
|
194
194
|
"uuid": "6a5e6d90-e0f3-43e7-8088-a4137bf2b125"
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
"core": true,
|
|
198
|
+
"difficulty": 5,
|
|
199
|
+
"slug": "flatten-array",
|
|
200
|
+
"topics": [
|
|
201
|
+
"arrays",
|
|
202
|
+
"loops",
|
|
203
|
+
"lists",
|
|
204
|
+
"recursion"
|
|
205
|
+
],
|
|
206
|
+
"unlocked_by": null,
|
|
207
|
+
"uuid": "6bc6b3fb-481a-4c4b-b095-d284f64ff48d"
|
|
195
208
|
}
|
|
196
209
|
],
|
|
197
210
|
"foregone": [],
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
class FlattenArray {
|
|
2
|
+
static List flatten(List l) {
|
|
3
|
+
if(l.isEmpty()) {
|
|
4
|
+
return l
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
List ret = new ArrayList()
|
|
8
|
+
def head = l[0]
|
|
9
|
+
def tail = l.subList(1, l.size())
|
|
10
|
+
|
|
11
|
+
if(head instanceof List) {
|
|
12
|
+
ret.addAll(flatten((List) head))
|
|
13
|
+
} else {
|
|
14
|
+
ret.add(head)
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
ret.addAll(flatten(tail))
|
|
18
|
+
ret.removeAll { it == null }
|
|
19
|
+
ret
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
@Grab('org.spockframework:spock-core:1.0-groovy-2.4')
|
|
2
|
+
import spock.lang.*
|
|
3
|
+
|
|
4
|
+
class FlattenArraySpec extends Specification {
|
|
5
|
+
|
|
6
|
+
def flattener
|
|
7
|
+
|
|
8
|
+
def setup() {
|
|
9
|
+
flattener = new FlattenArray()
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
def "flat list is preserved"() {
|
|
13
|
+
when:
|
|
14
|
+
def l = [0, '1', 'two']
|
|
15
|
+
then:
|
|
16
|
+
flattener.flatten(l) == [0, '1', 'two']
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@Ignore
|
|
20
|
+
def "single level of nesting without nulls"() {
|
|
21
|
+
when:
|
|
22
|
+
def l = [1, ['2', 3, 4, 5, 'six', '7'], 8]
|
|
23
|
+
then:
|
|
24
|
+
flattener.flatten(l) == [1, '2', 3, 4, 5, 'six', '7', 8]
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
@Ignore
|
|
28
|
+
def "five levels of nesting without nulls"() {
|
|
29
|
+
when:
|
|
30
|
+
def l = [0, '2', [[2, 'three'], '8', 100, 'four', [[[50]]], '-2']]
|
|
31
|
+
then:
|
|
32
|
+
flattener.flatten(l) == [0, '2', 2, 'three', '8', 100, 'four', 50, '-2']
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
@Ignore
|
|
36
|
+
def "six levels of nesting without nulls"() {
|
|
37
|
+
when:
|
|
38
|
+
def l = ['one', ['2', [[3]], ['4', [[5]]], 'six', 7], '8']
|
|
39
|
+
then:
|
|
40
|
+
flattener.flatten(l) == ['one', '2', 3, '4', 5, 'six', 7, '8']
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
@Ignore
|
|
44
|
+
def "six levels of nesting with nulls"() {
|
|
45
|
+
when:
|
|
46
|
+
def l = ['0', 2, [['two', '3'], '8', [['one hundred']], null, [[null]]], 'negative two']
|
|
47
|
+
then:
|
|
48
|
+
flattener.flatten(l) == ['0', 2, 'two', '3', '8', 'one hundred', 'negative two']
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
@Ignore
|
|
52
|
+
def "nested lists full of nulls only"() {
|
|
53
|
+
when:
|
|
54
|
+
def l = [null, [[[null]]], null, null, [[null, null], null], null]
|
|
55
|
+
then:
|
|
56
|
+
flattener.flatten(l) == []
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Flatten Array
|
|
2
|
+
|
|
3
|
+
Take a nested list and return a single flattened list with all values except nil/null.
|
|
4
|
+
|
|
5
|
+
The challenge is to write a function that accepts an arbitrarily-deep nested list-like structure and returns a flattened structure without any nil/null values.
|
|
6
|
+
|
|
7
|
+
For Example
|
|
8
|
+
|
|
9
|
+
input: [1,[2,3,null,4],[null],5]
|
|
10
|
+
|
|
11
|
+
output: [1,2,3,4,5]
|
|
12
|
+
|
|
13
|
+
# Groovy Tips
|
|
14
|
+
|
|
15
|
+
Since this exercise has difficulty 5 it doesn't come with any starter implementation.
|
|
16
|
+
This is so that you get to practice creating classes and methods which is an important part of programming in Groovy.
|
|
17
|
+
It does mean that when you first try to run the tests, they won't compile.
|
|
18
|
+
They will give you an error similar to:
|
|
19
|
+
```
|
|
20
|
+
path-to-exercism-dir\exercism\groovy\exercises\name-of-exercise\ExerciseNameSpec.groovy: 9: unable to resolve class ExerciseClassName
|
|
21
|
+
ExerciseClassName exerciseClassName = new ExerciseClassName()
|
|
22
|
+
^
|
|
23
|
+
1 error
|
|
24
|
+
```
|
|
25
|
+
This error occurs because the test refers to a class that hasn't been created yet (`ExerciseClassName`).
|
|
26
|
+
To resolve the error you need to add a file matching the class name in the error to the `name-of-exercise` directory.
|
|
27
|
+
For example, for the error above you would add a file called `ExerciseClassName.groovy`.
|
|
28
|
+
|
|
29
|
+
When you try to run the tests again you will get slightly different errors.
|
|
30
|
+
You might get an error similar to:
|
|
31
|
+
```
|
|
32
|
+
Test Failure: flat list is preserved(FlattenerSpec)
|
|
33
|
+
groovy.lang.MissingMethodException: No signature of method: Flattener.flatten() is applicable for argument types: (java.util.ArrayList) values: [[0, 1, two]]
|
|
34
|
+
at FlattenerSpec.flat list is preserved(FlattenerSpec.groovy:16)
|
|
35
|
+
```
|
|
36
|
+
This error means that you need to add a `flatten` method to your new class that takes a `List` as its argument.
|
|
37
|
+
Something like this:
|
|
38
|
+
```
|
|
39
|
+
static List flatten(List l) {
|
|
40
|
+
l
|
|
41
|
+
}
|
|
42
|
+
```
|
|
43
|
+
That should make the error go away, though you might need to add some more code to your class to make the tests pass!
|
|
44
|
+
|
|
45
|
+
# Running the tests
|
|
46
|
+
|
|
47
|
+
You can run all the tests for an exercise by entering
|
|
48
|
+
|
|
49
|
+
```sh
|
|
50
|
+
$ groovy ./FlattenerSpec.groovy
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
in your terminal.
|
|
54
|
+
|
|
55
|
+
## Source
|
|
56
|
+
|
|
57
|
+
Interview Question [https://reference.wolfram.com/language/ref/Flatten.html](https://reference.wolfram.com/language/ref/Flatten.html)
|
|
58
|
+
|
|
59
|
+
## Submitting Incomplete Solutions
|
|
60
|
+
|
|
61
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -35,6 +35,18 @@
|
|
|
35
35
|
],
|
|
36
36
|
"uuid": "0c231a1c-55f7-47b6-8a54-ccae4ab0c65b"
|
|
37
37
|
},
|
|
38
|
+
{
|
|
39
|
+
"core": false,
|
|
40
|
+
"difficulty": 2,
|
|
41
|
+
"slug": "reverse-string",
|
|
42
|
+
"topics": [
|
|
43
|
+
"loops",
|
|
44
|
+
"for",
|
|
45
|
+
"strings"
|
|
46
|
+
],
|
|
47
|
+
"unlocked_by": "leap",
|
|
48
|
+
"uuid": "553a6be7-eecb-45dc-9cea-05126c525f1b"
|
|
49
|
+
},
|
|
38
50
|
{
|
|
39
51
|
"core": true,
|
|
40
52
|
"difficulty": 1,
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Reverse String
|
|
2
|
+
|
|
3
|
+
For example:
|
|
4
|
+
input: "cool"
|
|
5
|
+
output: "looc"
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
## Setup
|
|
9
|
+
|
|
10
|
+
Go through the setup instructions for JavaScript to
|
|
11
|
+
install the necessary dependencies:
|
|
12
|
+
|
|
13
|
+
http://exercism.io/languages/javascript
|
|
14
|
+
|
|
15
|
+
## Making the Test Suite Pass
|
|
16
|
+
|
|
17
|
+
Execute the tests with:
|
|
18
|
+
|
|
19
|
+
jasmine <exercise-name>.spec.js
|
|
20
|
+
|
|
21
|
+
Replace `<exercise-name>` with the name of the current exercise. E.g., to
|
|
22
|
+
test the Reverse String exercise:
|
|
23
|
+
|
|
24
|
+
jasmine reverse-string.spec.js
|
|
25
|
+
|
|
26
|
+
In many test suites all but the first test have been skipped.
|
|
27
|
+
|
|
28
|
+
Once you get a test passing, you can unskip the next one by
|
|
29
|
+
changing `xit` to `it`.
|
|
30
|
+
|
|
31
|
+
## Source
|
|
32
|
+
|
|
33
|
+
This is an exercise to introduce users to using Exercism and arrays and strings [https://medium.freecodecamp.org/how-to-reverse-a-string-in-javascript-in-3-different-ways-75e4763c68cb](https://medium.freecodecamp.org/how-to-reverse-a-string-in-javascript-in-3-different-ways-75e4763c68cb)
|
|
34
|
+
|
|
35
|
+
## Submitting Incomplete Solutions
|
|
36
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
var reverseString = require('./reverse-string');
|
|
2
|
+
|
|
3
|
+
describe('ReverseString', function () {
|
|
4
|
+
it('empty string', function () {
|
|
5
|
+
var expected = '';
|
|
6
|
+
var actual = reverseString('');
|
|
7
|
+
expect(actual).toEqual(expected);
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
xit('a word', function () {
|
|
11
|
+
var expected = 'tobor';
|
|
12
|
+
var actual = reverseString('robot');
|
|
13
|
+
expect(actual).toEqual(expected);
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
xit('a capitalized word', function () {
|
|
17
|
+
var expected = 'nemaR';
|
|
18
|
+
var actual = reverseString('Ramen');
|
|
19
|
+
expect(actual).toEqual(expected);
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
xit('a sentence with punctuation', function () {
|
|
23
|
+
var expected = '!yrgnuh ma I';
|
|
24
|
+
var actual = reverseString('I am hungry!');
|
|
25
|
+
expect(actual).toEqual(expected);
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
xit('a palindrome', function () {
|
|
29
|
+
var expected = 'racecar';
|
|
30
|
+
var actual = reverseString('racecar');
|
|
31
|
+
expect(actual).toEqual(expected);
|
|
32
|
+
});
|
|
33
|
+
});
|
|
@@ -22,12 +22,12 @@ let tests =
|
|
|
22
22
|
|> Grade_school.add "Aimee" 2 in
|
|
23
23
|
assert_map_equals (IMap.of_alist_exn [(2, ["Aimee"])])
|
|
24
24
|
(Grade_school.to_map got));
|
|
25
|
-
"add more students in
|
|
25
|
+
"add more students in same class">:: (fun _ ->
|
|
26
26
|
let got = Grade_school.empty_school
|
|
27
|
-
|> Grade_school.add "
|
|
27
|
+
|> Grade_school.add "James" 2
|
|
28
28
|
|> Grade_school.add "Blair" 2
|
|
29
29
|
|> Grade_school.add "Paul" 2 in
|
|
30
|
-
assert_map_equals (IMap.of_alist_exn [(2, ["Blair"; "
|
|
30
|
+
assert_map_equals (IMap.of_alist_exn [(2, ["Blair"; "James"; "Paul"])])
|
|
31
31
|
(Grade_school.to_map got |> Map.map ~f:(List.sort ~cmp:compare)));
|
|
32
32
|
"add students to different grades">:: (fun _ ->
|
|
33
33
|
let got = Grade_school.empty_school
|
|
@@ -186,7 +186,7 @@ class BobTest extends PHPUnit\Framework\TestCase
|
|
|
186
186
|
// {
|
|
187
187
|
// $this->markTestSkipped();
|
|
188
188
|
//
|
|
189
|
-
// $this->assertEquals("Fine. Be that way!", $this->bob->respondTo("\n\r \t\
|
|
189
|
+
// $this->assertEquals("Fine. Be that way!", $this->bob->respondTo("\n\r \t\u{000b}\u{00a0}\u{2002}"));
|
|
190
190
|
// }
|
|
191
191
|
//
|
|
192
192
|
// public function testShoutingWithUmlauts()
|
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.79
|
|
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-29 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rubyzip
|
|
@@ -1495,6 +1495,7 @@ files:
|
|
|
1495
1495
|
- tracks/clojure/exercises/hamming/README.md
|
|
1496
1496
|
- tracks/clojure/exercises/hamming/project.clj
|
|
1497
1497
|
- tracks/clojure/exercises/hamming/src/example.clj
|
|
1498
|
+
- tracks/clojure/exercises/hamming/src/hamming.clj
|
|
1498
1499
|
- tracks/clojure/exercises/hamming/test/hamming_test.clj
|
|
1499
1500
|
- tracks/clojure/exercises/hello-world/HINTS.md
|
|
1500
1501
|
- tracks/clojure/exercises/hello-world/README.md
|
|
@@ -6230,6 +6231,9 @@ files:
|
|
|
6230
6231
|
- tracks/groovy/exercises/difference-of-squares/DifferenceOfSquaresSpec.groovy
|
|
6231
6232
|
- tracks/groovy/exercises/difference-of-squares/Example.groovy
|
|
6232
6233
|
- tracks/groovy/exercises/difference-of-squares/README.md
|
|
6234
|
+
- tracks/groovy/exercises/flatten-array/Example.groovy
|
|
6235
|
+
- tracks/groovy/exercises/flatten-array/FlattenArraySpec.groovy
|
|
6236
|
+
- tracks/groovy/exercises/flatten-array/README.md
|
|
6233
6237
|
- tracks/groovy/exercises/gigasecond/Example.groovy
|
|
6234
6238
|
- tracks/groovy/exercises/gigasecond/Gigasecond.groovy
|
|
6235
6239
|
- tracks/groovy/exercises/gigasecond/GigasecondSpec.groovy
|
|
@@ -7091,7 +7095,6 @@ files:
|
|
|
7091
7095
|
- tracks/java/.gitattributes
|
|
7092
7096
|
- tracks/java/.github/PULL_REQUEST_TEMPLATE.md
|
|
7093
7097
|
- tracks/java/.gitignore
|
|
7094
|
-
- tracks/java/.keep
|
|
7095
7098
|
- tracks/java/.travis.yml
|
|
7096
7099
|
- tracks/java/CONTRIBUTING.md
|
|
7097
7100
|
- tracks/java/LICENSE
|
|
@@ -7172,7 +7175,6 @@ files:
|
|
|
7172
7175
|
- tracks/java/exercises/binary-search-tree/.meta/src/reference/java/BinarySearchTree.java
|
|
7173
7176
|
- tracks/java/exercises/binary-search-tree/README.md
|
|
7174
7177
|
- tracks/java/exercises/binary-search-tree/build.gradle
|
|
7175
|
-
- tracks/java/exercises/binary-search-tree/src/main/java/.keep
|
|
7176
7178
|
- tracks/java/exercises/binary-search-tree/src/main/java/BinarySearchTree.java
|
|
7177
7179
|
- tracks/java/exercises/binary-search-tree/src/test/java/BinarySearchTreeTest.java
|
|
7178
7180
|
- tracks/java/exercises/binary-search/.meta/hints.md
|
|
@@ -7373,7 +7375,6 @@ files:
|
|
|
7373
7375
|
- tracks/java/exercises/matrix/.meta/src/reference/java/Matrix.java
|
|
7374
7376
|
- tracks/java/exercises/matrix/README.md
|
|
7375
7377
|
- tracks/java/exercises/matrix/build.gradle
|
|
7376
|
-
- tracks/java/exercises/matrix/src/main/java/.keep
|
|
7377
7378
|
- tracks/java/exercises/matrix/src/main/java/Matrix.java
|
|
7378
7379
|
- tracks/java/exercises/matrix/src/test/java/MatrixTest.java
|
|
7379
7380
|
- tracks/java/exercises/meetup/.meta/src/reference/java/Meetup.java
|
|
@@ -7893,6 +7894,9 @@ files:
|
|
|
7893
7894
|
- tracks/javascript/exercises/raindrops/README.md
|
|
7894
7895
|
- tracks/javascript/exercises/raindrops/example.js
|
|
7895
7896
|
- tracks/javascript/exercises/raindrops/raindrops.spec.js
|
|
7897
|
+
- tracks/javascript/exercises/reverse-string/README.md
|
|
7898
|
+
- tracks/javascript/exercises/reverse-string/example.js
|
|
7899
|
+
- tracks/javascript/exercises/reverse-string/reverse-string.spec.js
|
|
7896
7900
|
- tracks/javascript/exercises/rna-transcription/README.md
|
|
7897
7901
|
- tracks/javascript/exercises/rna-transcription/example.js
|
|
7898
7902
|
- tracks/javascript/exercises/rna-transcription/rna-transcription.spec.js
|
data/tracks/java/.keep
DELETED
|
File without changes
|
|
File without changes
|
|
File without changes
|