trackler 2.1.0.12 → 2.1.0.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/common/exercises/difference-of-squares/canonical-data.json +15 -21
- data/lib/trackler/version.rb +1 -1
- data/tracks/c/config.json +9 -0
- data/tracks/c/exercises/scrabble-score/makefile +16 -0
- data/tracks/c/exercises/scrabble-score/src/example.c +43 -0
- data/tracks/c/exercises/scrabble-score/src/example.h +6 -0
- data/tracks/c/exercises/scrabble-score/test/test_scrabble_score.c +77 -0
- data/tracks/c/exercises/scrabble-score/test/vendor/unity.c +1300 -0
- data/tracks/c/exercises/scrabble-score/test/vendor/unity.h +274 -0
- data/tracks/c/exercises/scrabble-score/test/vendor/unity_internals.h +701 -0
- data/tracks/csharp/exercises/grade-school/Example.cs +1 -1
- data/tracks/csharp/exercises/grade-school/GradeSchoolTest.cs +8 -8
- data/tracks/elixir/README.md +29 -12
- data/tracks/elixir/SETUP.md +0 -1
- data/tracks/elixir/docs/ABOUT.md +21 -7
- data/tracks/elixir/docs/LEARNING.md +4 -2
- data/tracks/elixir/docs/RESOURCES.md +2 -2
- data/tracks/elixir/docs/TESTS.md +0 -2
- data/tracks/go/exercises/atbash-cipher/.meta/gen.go +61 -0
- data/tracks/go/exercises/atbash-cipher/atbash_cipher_test.go +1 -16
- data/tracks/go/exercises/atbash-cipher/cases_test.go +61 -0
- data/tracks/go/exercises/atbash-cipher/example.go +1 -1
- data/tracks/java/exercises/hamming/src/main/java/Hamming.java +9 -0
- data/tracks/java/exercises/simple-linked-list/src/test/java/SimpleLinkedListTest.java +4 -4
- data/tracks/javascript/docs/TESTS.md +1 -1
- data/tracks/ocaml/config.json +5 -0
- data/tracks/ocaml/exercises/acronym/test.ml +2 -0
- data/tracks/ocaml/exercises/all-your-base/test.ml +2 -0
- data/tracks/ocaml/exercises/anagram/test.ml +2 -0
- data/tracks/ocaml/exercises/atbash-cipher/test.ml +3 -0
- data/tracks/ocaml/exercises/beer-song/test.ml +2 -0
- data/tracks/ocaml/exercises/binary-search/.merlin +5 -0
- data/tracks/ocaml/exercises/binary-search/Makefile +11 -0
- data/tracks/ocaml/exercises/binary-search/binary_search.mli +2 -0
- data/tracks/ocaml/exercises/binary-search/example.ml +19 -0
- data/tracks/ocaml/exercises/binary-search/test.ml +38 -0
- data/tracks/ocaml/exercises/bob/test.ml +2 -0
- data/tracks/ocaml/exercises/bowling/test.ml +2 -0
- data/tracks/ocaml/exercises/bracket-push/test.ml +2 -0
- data/tracks/ocaml/exercises/change/test.ml +2 -0
- data/tracks/ocaml/exercises/connect/test.ml +2 -0
- data/tracks/ocaml/exercises/difference-of-squares/test.ml +10 -8
- data/tracks/ocaml/exercises/dominoes/test.ml +2 -0
- data/tracks/ocaml/exercises/etl/test.ml +2 -0
- data/tracks/ocaml/exercises/hamming/test.ml +2 -0
- data/tracks/ocaml/exercises/hello-world/test.ml +2 -0
- data/tracks/ocaml/exercises/leap/test.ml +2 -0
- data/tracks/ocaml/exercises/luhn/test.ml +2 -0
- data/tracks/ocaml/exercises/minesweeper/test.ml +2 -0
- data/tracks/ocaml/exercises/pangram/test.ml +2 -0
- data/tracks/ocaml/exercises/phone-number/test.ml +2 -0
- data/tracks/ocaml/exercises/prime-factors/test.ml +2 -0
- data/tracks/ocaml/exercises/raindrops/test.ml +2 -0
- data/tracks/ocaml/exercises/roman-numerals/test.ml +2 -0
- data/tracks/ocaml/exercises/run-length-encoding/test.ml +2 -0
- data/tracks/ocaml/exercises/say/test.ml +2 -0
- data/tracks/ocaml/exercises/space-age/test.ml +2 -0
- data/tracks/ocaml/exercises/triangle/test.ml +2 -0
- data/tracks/ocaml/exercises/word-count/test.ml +2 -0
- data/tracks/ocaml/tools/test-generator/src/controller.ml +15 -5
- data/tracks/ocaml/tools/test-generator/src/model.ml +5 -0
- data/tracks/ocaml/tools/test-generator/src/parser.ml +5 -4
- data/tracks/ocaml/tools/test-generator/src/special_cases.ml +12 -0
- data/tracks/ocaml/tools/test-generator/templates/binary-search/template.ml +20 -0
- data/tracks/ocaml/tools/test-generator/templates/change/template.ml +2 -2
- data/tracks/ocaml/tools/test-generator/templates/say/template.ml +1 -1
- data/tracks/ocaml/tools/test-generator/test/parser_test.ml +1 -1
- data/tracks/r/docs/TESTS.md +24 -4
- data/tracks/ruby/exercises/trinary/trinary_test.rb +1 -0
- data/tracks/scala/config.json +9 -0
- data/tracks/scala/exercises/accumulate/src/main/scala/Accumulate.scala +3 -0
- data/tracks/scala/exercises/bob/src/main/scala/Bob.scala +3 -0
- data/tracks/scala/exercises/difference-of-squares/src/main/scala/Squares.scala +8 -0
- data/tracks/scala/exercises/gigasecond/src/main/scala/Gigasecond.scala +8 -0
- data/tracks/scala/exercises/grade-school/src/main/scala/School.scala +11 -0
- data/tracks/scala/exercises/pangram/src/main/scala/Pangrams.scala +4 -0
- data/tracks/scala/exercises/protein-translation/build.sbt +3 -0
- data/tracks/scala/exercises/protein-translation/example.scala +41 -0
- data/tracks/scala/exercises/protein-translation/src/main/scala/.keep +0 -0
- data/tracks/scala/exercises/protein-translation/src/test/scala/ProteinTranslationTest.scala +59 -0
- data/tracks/scala/exercises/space-age/src/main/scala/SpaceAge.scala +10 -0
- metadata +28 -2
@@ -69,17 +69,17 @@ public void Grade_returns_an_empty_list_if_there_are_no_students_in_that_grade()
|
|
69
69
|
public void Student_names_with_grades_are_displayed_in_the_same_sorted_roster()
|
70
70
|
{
|
71
71
|
var school = new School();
|
72
|
-
school.Add("
|
73
|
-
school.Add("
|
74
|
-
school.Add("
|
75
|
-
school.Add("
|
72
|
+
school.Add("Peter", 2);
|
73
|
+
school.Add("Anna", 1);
|
74
|
+
school.Add("Barb", 1);
|
75
|
+
school.Add("Zoe", 2);
|
76
|
+
school.Add("Alex", 2);
|
77
|
+
school.Add("Jim", 3);
|
78
|
+
school.Add("Charlie", 1);
|
76
79
|
|
77
80
|
var actual = school.Roster();
|
78
81
|
|
79
|
-
|
80
|
-
var expected = new[] { "Christopher", "Jennifer", "Kareem", "Kyle" };
|
82
|
+
var expected = new[] { "Anna", "Barb", "Charlie", "Alex", "Peter", "Zoe", "Jim" };
|
81
83
|
Assert.Equal(expected, actual);
|
82
|
-
|
83
|
-
|
84
84
|
}
|
85
85
|
}
|
data/tracks/elixir/README.md
CHANGED
@@ -1,17 +1,22 @@
|
|
1
1
|
# xElixir
|
2
|
+
|
2
3
|
![build status](https://travis-ci.org/exercism/xelixir.svg?branch=master)
|
3
4
|
|
4
5
|
Exercism Exercises in Elixir
|
5
6
|
|
6
7
|
## Setup
|
7
8
|
|
8
|
-
The exercises currently target Elixir 1.3.2 and Erlang/OTP 19. Detailed
|
9
|
+
The exercises currently target Elixir 1.3.2 and Erlang/OTP 19. Detailed
|
10
|
+
installation instructions can be found at
|
11
|
+
[http://elixir-lang.org/install.html](http://elixir-lang.org/install.html).
|
9
12
|
|
10
13
|
## Contributing
|
11
14
|
|
12
15
|
Thank you so much for contributing! :tada:
|
13
16
|
|
14
|
-
We welcome pull requests that provide fixes and improvements to existing
|
17
|
+
We welcome pull requests that provide fixes and improvements to existing
|
18
|
+
exercises. If you're unsure, then go ahead and open a GitHub issue, and we'll
|
19
|
+
discuss the change.
|
15
20
|
|
16
21
|
Please keep the following in mind:
|
17
22
|
|
@@ -19,25 +24,35 @@ Please keep the following in mind:
|
|
19
24
|
|
20
25
|
- Pull requests should be focused on a single exercise, issue, or change.
|
21
26
|
|
22
|
-
- We welcome changes to code style, and wording. Please open a separate PR for
|
27
|
+
- We welcome changes to code style, and wording. Please open a separate PR for
|
28
|
+
these changes if possible.
|
23
29
|
|
24
|
-
- Please open an issue before creating a PR that makes significant (breaking)
|
30
|
+
- Please open an issue before creating a PR that makes significant (breaking)
|
31
|
+
changes to an existing exercise or makes changes across many exercises. It is
|
32
|
+
best to discuss these changes before doing the work.
|
25
33
|
|
26
|
-
- Follow the coding standards found in
|
34
|
+
- Follow the coding standards found in
|
35
|
+
[The Elixir Style Guide](https://github.com/niftyn8/elixir_style_guide).
|
27
36
|
|
28
37
|
- Watch out for trailing spaces, extra blank lines, and spaces in blank lines.
|
29
38
|
|
30
|
-
- Each exercise must stand on its own. Do not reference files outside the
|
39
|
+
- Each exercise must stand on its own. Do not reference files outside the
|
40
|
+
exercise directory. They will not be included when the user fetches the
|
41
|
+
exercise.
|
31
42
|
|
32
|
-
- Please do not add a README or README.md file to the exercise directory. The
|
33
|
-
|
43
|
+
- Please do not add a README or README.md file to the exercise directory. The
|
44
|
+
READMEs are constructed using shared metadata, which lives in the
|
45
|
+
[exercism/x-common](https://github.com/exercism/x-common) repository.
|
34
46
|
|
35
|
-
- Each problem should have a test suite, an example solution, and a template
|
36
|
-
The example solution should be named
|
47
|
+
- Each problem should have a test suite, an example solution, and a template
|
48
|
+
file for the real implementation. The example solution should be named
|
49
|
+
`example.exs`.
|
37
50
|
|
38
51
|
- Use typespecs in the example and template files as described [here](http://elixir-lang.org/getting-started/typespecs-and-behaviours.html).
|
39
52
|
|
40
|
-
- Each test file should have code like the following at the top of the file.
|
53
|
+
- Each test file should have code like the following at the top of the file.
|
54
|
+
This allows the tests to be run on CI and configures tests to be skipped with
|
55
|
+
the `:pending` flag.
|
41
56
|
|
42
57
|
```elixir
|
43
58
|
if !System.get_env("EXERCISM_TEST_EXAMPLES") do
|
@@ -57,7 +72,9 @@ test "shouting" do
|
|
57
72
|
end
|
58
73
|
```
|
59
74
|
|
60
|
-
All the tests for xElixir exercises can be run from the top level of the repo
|
75
|
+
All the tests for xElixir exercises can be run from the top level of the repo
|
76
|
+
with `$ mix test`. Please run this command before submitting your PR. Watch out
|
77
|
+
for and correct any compiler warnings you may have introduced.
|
61
78
|
|
62
79
|
## License
|
63
80
|
|
data/tracks/elixir/SETUP.md
CHANGED
data/tracks/elixir/docs/ABOUT.md
CHANGED
@@ -1,17 +1,31 @@
|
|
1
|
-
[Elixir](http://elixir-lang.org/), initially released in 2012, extends upon the
|
1
|
+
[Elixir](http://elixir-lang.org/), initially released in 2012, extends upon the
|
2
|
+
already robust features of Erlang while also being easier for beginners to
|
3
|
+
access, read, test, and write.
|
4
|
+
|
5
|
+
José Valim, the creator of Elixir, explains [here](https://vimeo.com/53221562)
|
6
|
+
how he built the language for applications to be:
|
2
7
|
|
3
|
-
José Valim, the creator of Elixir, explains [here](https://vimeo.com/53221562) how he built the language for applications to be:
|
4
8
|
1. Distributed
|
5
9
|
2. Fault-Tolerant
|
6
10
|
3. Soft-Real-Time
|
7
11
|
4. Hot-Code-Swapped (can introduce new code without stopping the server)
|
8
12
|
|
9
|
-
Elixir actually compiles down to [bytecode](https://en.wikipedia.org/wiki/Bytecode)
|
13
|
+
Elixir actually compiles down to [bytecode](https://en.wikipedia.org/wiki/Bytecode)
|
14
|
+
and then runs on the [BEAM Erlang Virtual Machine](http://erlangcentral.org/videos/euc-2014-robert-virding-hitchhikers-tour-of-the-beam/).
|
10
15
|
|
11
|
-
There is no "conversion cost" for calling Erlang, meaning you can run Erlang
|
16
|
+
There is no "conversion cost" for calling Erlang, meaning you can run Erlang
|
17
|
+
code right next to Elixir code.
|
12
18
|
|
13
|
-
Being a functional language, everything in Elixir is an expression. Elixir has
|
19
|
+
Being a functional language, everything in Elixir is an expression. Elixir has
|
20
|
+
"First Class Documentation" meaning comments can be attached to a function,
|
21
|
+
making it easier to retrieve. Regular expressions are also given first class
|
22
|
+
treatment, removing awkward escaping within strings.
|
14
23
|
|
15
|
-
Elixir's asynchronous communication implementation allows the code to be
|
24
|
+
Elixir's asynchronous communication implementation allows the code to be
|
25
|
+
lightweight, yet incorporate high-volume concurrency. Programmers use Elixir to
|
26
|
+
handle thousands of requests and responses *concurrently* on a single server
|
27
|
+
node. It has been used successfully for microservices that need to consume and
|
28
|
+
serve a multitude of APIs rapidly.
|
16
29
|
|
17
|
-
The [Phoenix framework](http://www.phoenixframework.org/) helps structure Elixir
|
30
|
+
The [Phoenix framework](http://www.phoenixframework.org/) helps structure Elixir
|
31
|
+
applications for the web.
|
@@ -1,4 +1,6 @@
|
|
1
|
-
Exercism provides exercises and feedback but can be difficult to jump into for
|
1
|
+
Exercism provides exercises and feedback but can be difficult to jump into for
|
2
|
+
those learning Elixir for the first time. These resources can help you get
|
3
|
+
started:
|
2
4
|
|
3
5
|
* [Elixir Getting Started Guide](http://elixir-lang.org/getting-started/introduction.html)
|
4
6
|
* [Elixir Documentation](http://elixir-lang.org/docs/stable/elixir/)
|
@@ -9,4 +11,4 @@ Exercism provides exercises and feedback but can be difficult to jump into for t
|
|
9
11
|
* [Elixir School](https://elixirschool.com)
|
10
12
|
* [Elixir Examples](https://elixir-examples.github.io/)
|
11
13
|
* [Exercism's BEAM Gitter channel](https://gitter.im/exercism/xerlang)
|
12
|
-
* [Elixir Forum](https://elixirforum.com/)
|
14
|
+
* [Elixir Forum](https://elixirforum.com/)
|
@@ -3,7 +3,7 @@
|
|
3
3
|
* [Elixir Docs](http://elixir-lang.org/docs.html)
|
4
4
|
|
5
5
|
## Hex - A package manager for the Erlang ecosystem.
|
6
|
-
|
6
|
+
|
7
7
|
* [Hex Docs](https://hex.pm/)
|
8
8
|
|
9
9
|
## Testing with ExUnit
|
@@ -24,4 +24,4 @@
|
|
24
24
|
|
25
25
|
## Elixir Forum
|
26
26
|
|
27
|
-
* [Elixir Forum](https://elixirforum.com/)
|
27
|
+
* [Elixir Forum](https://elixirforum.com/)
|
data/tracks/elixir/docs/TESTS.md
CHANGED
@@ -8,7 +8,6 @@ $ elixir bob_test.exs
|
|
8
8
|
|
9
9
|
(Replace `bob_test.exs` with the name of the test file.)
|
10
10
|
|
11
|
-
|
12
11
|
### Pending tests
|
13
12
|
|
14
13
|
In the test suites, all but the first test have been skipped.
|
@@ -75,7 +74,6 @@ will most likely not have a `plt` file. The persistent lookup table,
|
|
75
74
|
or PLT is used by Dialyzer to cache information about built in Elixir
|
76
75
|
and Erlang types. To create a plt with sensible defaults run:
|
77
76
|
|
78
|
-
|
79
77
|
```bash
|
80
78
|
$ dialyzer --build_plt --apps erts kernel stdlib crypto public_key /path/to/elixir
|
81
79
|
```
|
@@ -0,0 +1,61 @@
|
|
1
|
+
// +build ignore
|
2
|
+
|
3
|
+
package main
|
4
|
+
|
5
|
+
import (
|
6
|
+
"log"
|
7
|
+
"text/template"
|
8
|
+
|
9
|
+
"../../../gen"
|
10
|
+
)
|
11
|
+
|
12
|
+
func main() {
|
13
|
+
t := template.New("").Funcs(template.FuncMap{
|
14
|
+
"isEncode": isEncode,
|
15
|
+
})
|
16
|
+
t, err := t.Parse(tmpl)
|
17
|
+
if err != nil {
|
18
|
+
log.Fatal(err)
|
19
|
+
}
|
20
|
+
var j js
|
21
|
+
if err := gen.Gen("atbash-cipher", &j, t); err != nil {
|
22
|
+
log.Fatal(err)
|
23
|
+
}
|
24
|
+
}
|
25
|
+
|
26
|
+
func isEncode(property string) bool {
|
27
|
+
return property == "encode"
|
28
|
+
}
|
29
|
+
|
30
|
+
// The JSON structure we expect to be able to unmarshal into
|
31
|
+
type js struct {
|
32
|
+
Cases []struct {
|
33
|
+
Description string
|
34
|
+
Cases []struct {
|
35
|
+
Description string
|
36
|
+
Property string
|
37
|
+
Phrase string
|
38
|
+
Expected string
|
39
|
+
}
|
40
|
+
}
|
41
|
+
}
|
42
|
+
|
43
|
+
// template applied to above data structure generates the Go test cases
|
44
|
+
var tmpl = `package atbash
|
45
|
+
|
46
|
+
{{.Header}}
|
47
|
+
|
48
|
+
type atbashTest struct {
|
49
|
+
s string
|
50
|
+
expected string
|
51
|
+
}
|
52
|
+
|
53
|
+
var tests = []atbashTest {
|
54
|
+
{{range .J.Cases}} {{range .Cases}}{
|
55
|
+
{{if isEncode .Property}} s: {{printf "%q" .Phrase }},
|
56
|
+
expected: {{printf "%q" .Expected }}, {{else}} s: {{printf "%q" .Expected }},
|
57
|
+
expected: {{printf "%q" .Phrase }}, {{- end}}
|
58
|
+
},
|
59
|
+
{{end}}{{end}}
|
60
|
+
}
|
61
|
+
`
|
@@ -2,22 +2,7 @@ package atbash
|
|
2
2
|
|
3
3
|
import "testing"
|
4
4
|
|
5
|
-
const targetTestVersion =
|
6
|
-
|
7
|
-
var tests = []struct {
|
8
|
-
expected string
|
9
|
-
s string
|
10
|
-
}{
|
11
|
-
{"ml", "no"},
|
12
|
-
{"ml", "no"},
|
13
|
-
{"bvh", "yes"},
|
14
|
-
{"lnt", "OMG"},
|
15
|
-
{"lnt", "O M G"},
|
16
|
-
{"nrmwy oldrm tob", "mindblowingly"},
|
17
|
-
{"gvhgr mt123 gvhgr mt", "Testing, 1 2 3, testing."},
|
18
|
-
{"gifgs rhurx grlm", "Truth is fiction."},
|
19
|
-
{"gsvjf rxpyi ldmul cqfnk hlevi gsvoz abwlt", "The quick brown fox jumps over the lazy dog."},
|
20
|
-
}
|
5
|
+
const targetTestVersion = 2
|
21
6
|
|
22
7
|
func TestTestVersion(t *testing.T) {
|
23
8
|
if testVersion != targetTestVersion {
|
@@ -0,0 +1,61 @@
|
|
1
|
+
package atbash
|
2
|
+
|
3
|
+
// Source: exercism/x-common
|
4
|
+
// Commit: bb4f220 atbash-cipher: Fix canonical-data.json formatting
|
5
|
+
// x-common version: 1.0.0
|
6
|
+
|
7
|
+
type atbashTest struct {
|
8
|
+
s string
|
9
|
+
expected string
|
10
|
+
}
|
11
|
+
|
12
|
+
var tests = []atbashTest{
|
13
|
+
{
|
14
|
+
s: "yes",
|
15
|
+
expected: "bvh",
|
16
|
+
},
|
17
|
+
{
|
18
|
+
s: "no",
|
19
|
+
expected: "ml",
|
20
|
+
},
|
21
|
+
{
|
22
|
+
s: "OMG",
|
23
|
+
expected: "lnt",
|
24
|
+
},
|
25
|
+
{
|
26
|
+
s: "O M G",
|
27
|
+
expected: "lnt",
|
28
|
+
},
|
29
|
+
{
|
30
|
+
s: "mindblowingly",
|
31
|
+
expected: "nrmwy oldrm tob",
|
32
|
+
},
|
33
|
+
{
|
34
|
+
s: "Testing,1 2 3, testing.",
|
35
|
+
expected: "gvhgr mt123 gvhgr mt",
|
36
|
+
},
|
37
|
+
{
|
38
|
+
s: "Truth is fiction.",
|
39
|
+
expected: "gifgs rhurx grlm",
|
40
|
+
},
|
41
|
+
{
|
42
|
+
s: "The quick brown fox jumps over the lazy dog.",
|
43
|
+
expected: "gsvjf rxpyi ldmul cqfnk hlevi gsvoz abwlt",
|
44
|
+
},
|
45
|
+
{
|
46
|
+
s: "exercism",
|
47
|
+
expected: "vcvix rhn",
|
48
|
+
},
|
49
|
+
{
|
50
|
+
s: "anobstacleisoftenasteppingstone",
|
51
|
+
expected: "zmlyh gzxov rhlug vmzhg vkkrm thglm v",
|
52
|
+
},
|
53
|
+
{
|
54
|
+
s: "testing123testing",
|
55
|
+
expected: "gvhgr mt123 gvhgr mt",
|
56
|
+
},
|
57
|
+
{
|
58
|
+
s: "thequickbrownfoxjumpsoverthelazydog",
|
59
|
+
expected: "gsvjf rxpyi ldmul cqfnk hlevi gsvoz abwlt",
|
60
|
+
},
|
61
|
+
}
|
@@ -1,2 +1,11 @@
|
|
1
1
|
public class Hamming {
|
2
|
+
|
3
|
+
Hamming(String leftStrand, String rightStrand) {
|
4
|
+
throw new UnsupportedOperationException("Delete this statement and write your own implementation.");
|
5
|
+
}
|
6
|
+
|
7
|
+
int getHammingDistance() {
|
8
|
+
throw new UnsupportedOperationException("Delete this statement and write your own implementation.");
|
9
|
+
}
|
10
|
+
|
2
11
|
}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import org.junit.Ignore;
|
2
|
-
import org.junit.Test;
|
3
2
|
import org.junit.Rule;
|
3
|
+
import org.junit.Test;
|
4
4
|
import org.junit.rules.ExpectedException;
|
5
5
|
|
6
6
|
import java.util.NoSuchElementException;
|
@@ -12,7 +12,7 @@ public class SimpleLinkedListTest {
|
|
12
12
|
|
13
13
|
@Rule
|
14
14
|
public ExpectedException thrown = ExpectedException.none();
|
15
|
-
|
15
|
+
|
16
16
|
@Test
|
17
17
|
public void aNewListIsEmpty() {
|
18
18
|
SimpleLinkedList list = new SimpleLinkedList();
|
@@ -74,7 +74,7 @@ public class SimpleLinkedListTest {
|
|
74
74
|
list.push(6);
|
75
75
|
list.push(5);
|
76
76
|
Integer[] expected = {5, 6, 7, 8, 9};
|
77
|
-
|
77
|
+
assertArrayEquals(expected, list.asArray(Integer.class));
|
78
78
|
}
|
79
79
|
|
80
80
|
@Ignore("Remove to run test")
|
@@ -82,7 +82,7 @@ public class SimpleLinkedListTest {
|
|
82
82
|
public void canReturnEmptyListAsEmptyArray() {
|
83
83
|
SimpleLinkedList list = new SimpleLinkedList();
|
84
84
|
Object[] expected = {};
|
85
|
-
|
85
|
+
assertArrayEquals(expected, list.asArray(Object.class));
|
86
86
|
}
|
87
87
|
|
88
88
|
}
|
@@ -2,7 +2,7 @@ With the first few exercises, you will get a skeleton file with the exported mod
|
|
2
2
|
For later ones, you can find more information about modules in the [node documentation](http://nodejs.org/api/modules.html#modules_module_exports).
|
3
3
|
|
4
4
|
For running tests, install `jasmine` as described in the [Installing Javascript section](http://exercism.io/languages/javascript/installing).
|
5
|
-
Move to the folder where that exercise's files are located (a path similar to
|
5
|
+
Move to the folder where that exercise's files are located (a path similar to {EXERCISM_HOME_DIR}/javascript/{EXERCISE}).
|
6
6
|
|
7
7
|
cd ~/exercism/javascript/bob
|
8
8
|
jasmine bob_test.spec.js
|
data/tracks/ocaml/config.json
CHANGED