trackler 2.2.1.78 → 2.2.1.79
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/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
|