trackler 2.1.0.41 → 2.1.0.42
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/fixtures/tracks/fake/docs/STRAY.md +1 -0
- data/lib/trackler/doc_file.rb +88 -0
- data/lib/trackler/track.rb +6 -40
- data/lib/trackler/version.rb +1 -1
- data/tracks/bash/README.md +2 -2
- data/tracks/bash/config.json +1 -1
- data/tracks/c/README.md +1 -1
- data/tracks/c/config.json +1 -1
- data/tracks/ceylon/README.md +4 -4
- data/tracks/ceylon/config.json +1 -1
- data/tracks/clojure/README.org +3 -3
- data/tracks/clojure/config.json +1 -1
- data/tracks/cpp/README.md +2 -2
- data/tracks/cpp/config.json +1 -1
- data/tracks/cpp/docs/INSTALLATION.md +2 -2
- data/tracks/crystal/config.json +1 -1
- data/tracks/csharp/config.json +1 -1
- data/tracks/delphi/README.md +2 -2
- data/tracks/delphi/config.json +1 -1
- data/tracks/delphi/exercises/bowling/uBowlingTests.pas +14 -14
- data/tracks/ecmascript/config.json +1 -1
- data/tracks/elisp/README.org +4 -4
- data/tracks/elisp/config.json +1 -1
- data/tracks/elixir/README.md +3 -3
- data/tracks/elixir/config.json +1 -1
- data/tracks/erlang/README.md +2 -2
- data/tracks/erlang/config.json +2 -2
- data/tracks/factor/README.md +9 -9
- data/tracks/factor/config.json +1 -1
- data/tracks/fsharp/config.json +1 -1
- data/tracks/go/README.md +16 -16
- data/tracks/go/config.json +1 -1
- data/tracks/go/exercises/gigasecond/gigasecond_test.go +2 -2
- data/tracks/go/gen/gen.go +2 -2
- data/tracks/haskell/.gitignore +1 -1
- data/tracks/haskell/README.md +12 -8
- data/tracks/haskell/config.json +1 -1
- data/tracks/haskell/docs/EXERCISE_README_INSERT.md +1 -1
- data/tracks/idris/README.md +1 -1
- data/tracks/idris/config.json +1 -1
- data/tracks/java/POLICIES.md +7 -7
- data/tracks/java/README.md +7 -7
- data/tracks/java/bin/journey-test.sh +1 -1
- data/tracks/java/config.json +1 -1
- data/tracks/java/docs/MAINTAINING.md +3 -20
- data/tracks/java/docs/TESTS.md +3 -3
- data/tracks/java/exercises/all-your-base/src/test/java/BaseConverterTest.java +23 -20
- data/tracks/java/exercises/hello-world/GETTING_STARTED.md +1 -1
- data/tracks/java/exercises/hello-world/TUTORIAL.md +2 -2
- data/tracks/javascript/config.json +1 -1
- data/tracks/julia/.travis.yml +0 -2
- data/tracks/julia/config.json +9 -0
- data/tracks/julia/exercises/custom-set/example.jl +1 -1
- data/tracks/julia/exercises/luhn/example.jl +1 -1
- data/tracks/julia/exercises/robot-name/HINTS.md +17 -0
- data/tracks/julia/exercises/robot-name/example.jl +14 -0
- data/tracks/julia/exercises/robot-name/robot-name.jl +8 -0
- data/tracks/julia/exercises/robot-name/runtests.jl +69 -0
- data/tracks/kotlin/README.md +7 -7
- data/tracks/kotlin/config.json +1 -1
- data/tracks/kotlin/docs/TESTS.md +3 -3
- data/tracks/kotlin/exercises/hello-world/GETTING_STARTED.md +1 -1
- data/tracks/kotlin/exercises/hello-world/TUTORIAL.md +1 -1
- data/tracks/lfe/README.md +2 -2
- data/tracks/lfe/config.json +1 -1
- data/tracks/lisp/README.md +1 -1
- data/tracks/lisp/config.json +2 -2
- data/tracks/lua/README.md +9 -9
- data/tracks/lua/config.json +1 -1
- data/tracks/lua/exercises/hamming/hamming_spec.lua +15 -7
- data/tracks/lua/exercises/raindrops/raindrops_spec.lua +46 -14
- data/tracks/mips/config.json +1 -1
- data/tracks/objective-c/Dangerfile +1 -1
- data/tracks/objective-c/README.md +1 -1
- data/tracks/objective-c/config.json +1 -1
- data/tracks/ocaml/README.md +2 -2
- data/tracks/ocaml/config.json +1 -1
- data/tracks/ocaml/docs/EXERCISE_README_INSERT.md +1 -1
- data/tracks/ocaml/tools/test-generator/README.md +2 -2
- data/tracks/perl5/README.md +1 -1
- data/tracks/perl5/config.json +1 -1
- data/tracks/perl6/README.md +2 -2
- data/tracks/perl6/config.json +1 -1
- data/tracks/perl6/exercises/all-your-base/all-your-base.t +43 -32
- data/tracks/perl6/exercises/all-your-base/example.yaml +19 -9
- data/tracks/php/config.json +1 -1
- data/tracks/pony/README.md +2 -2
- data/tracks/pony/config.json +1 -1
- data/tracks/powershell/README.md +1 -1
- data/tracks/powershell/config.json +1 -1
- data/tracks/purescript/README.md +5 -5
- data/tracks/purescript/config.json +1 -1
- data/tracks/r/README.md +3 -3
- data/tracks/r/config.json +1 -1
- data/tracks/racket/README.md +2 -2
- data/tracks/racket/config.json +1 -1
- data/tracks/ruby/README.md +9 -9
- data/tracks/ruby/config.json +1 -1
- data/tracks/rust/config.json +1 -1
- data/tracks/rust/exercises/gigasecond/src/lib.rs +7 -0
- data/tracks/rust/exercises/protein-translation/example.rs +11 -22
- data/tracks/rust/exercises/protein-translation/tests/proteins.rs +56 -36
- data/tracks/scala/config.json +1 -1
- data/tracks/scala/exercises/all-your-base/src/test/scala/AllYourBaseTest.scala +46 -64
- data/tracks/scala/exercises/rna-transcription/example.scala +1 -3
- data/tracks/scala/exercises/rna-transcription/src/test/scala/RnaTranscriptionTest.scala +19 -23
- data/tracks/scala/exercises/scrabble-score/example.scala +2 -2
- data/tracks/scala/exercises/scrabble-score/src/test/scala/ScrabbleScoreTest.scala +37 -16
- data/tracks/scala/testgen/src/main/scala/AllYourBaseTestGenerator.scala +32 -42
- data/tracks/scala/testgen/src/main/scala/RnaTranscriptionTestGenerator.scala +34 -0
- data/tracks/scala/testgen/src/main/scala/ScrabbleScoreTestGenerator.scala +15 -0
- data/tracks/sml/README.md +1 -3
- data/tracks/sml/config.json +1 -1
- data/tracks/sml/docs/EXERCISE_README_INSERT.md +1 -1
- data/tracks/swift/config.json +1 -1
- data/tracks/typescript/README.md +1 -1
- data/tracks/typescript/config.json +1 -1
- data/tracks/vimscript/README.md +5 -5
- data/tracks/vimscript/config.json +8 -1
- data/tracks/vimscript/exercises/largest-series-product/example.vim +31 -0
- data/tracks/vimscript/exercises/largest-series-product/largest_series_product.vader +95 -0
- data/tracks/vimscript/exercises/largest-series-product/largest_series_product.vim +17 -0
- metadata +13 -2
data/tracks/fsharp/config.json
CHANGED
data/tracks/go/README.md
CHANGED
@@ -1,33 +1,33 @@
|
|
1
|
-
#
|
1
|
+
# Exercism Go Track
|
2
2
|
|
3
|
-
[](https://travis-ci.org/exercism/go)
|
4
4
|
|
5
5
|
Exercism exercises in Go
|
6
6
|
|
7
7
|
## Issues
|
8
8
|
|
9
|
-
We welcome issues filed at https://github.com/exercism/
|
9
|
+
We welcome issues filed at https://github.com/exercism/go/issues for problems of any size. Feel free to report
|
10
10
|
typographical errors or poor wording. We are most interested in improving the quality of the test suites.
|
11
11
|
You can greatly help us improve the quality of the exercises by filing reports of invalid solutions that
|
12
12
|
pass tests or of valid solutions that fail tests.
|
13
13
|
|
14
14
|
## Development setup
|
15
15
|
|
16
|
-
Beyond filing issues, if you would like to contribute directly to the Go code in
|
16
|
+
Beyond filing issues, if you would like to contribute directly to the Go code in the Exercism Go track, you should follow some
|
17
17
|
standard Go development practices. You should have a [recent version of Go](http://golang.org/doc/install)
|
18
18
|
installed, ideally either the current release, the previous release, or tip.
|
19
19
|
|
20
|
-
You will need a github account and you will need to fork exercism/
|
20
|
+
You will need a github account and you will need to fork exercism/go to your account.
|
21
21
|
See [GitHub Help](https://help.github.com/articles/fork-a-repo/) if you are unfamiliar with the process.
|
22
|
-
Clone your fork with the command: `git clone https://github.com/<you>/
|
23
|
-
Test your clone by cding to the
|
22
|
+
Clone your fork with the command: `git clone https://github.com/<you>/go`.
|
23
|
+
Test your clone by cding to the go directory and typing
|
24
24
|
`bin/test-without-stubs`. You should see tests pass for all exercises.
|
25
25
|
|
26
26
|
Note that unlike most other Go code, it is not necessary to clone this to your GOPATH.
|
27
27
|
This is because this repo only imports from the standard library and isn't expected to be imported by other packages.
|
28
28
|
|
29
29
|
There is a [misspelling tool](https://github.com/client9/misspell). You can install and occasionally run it to
|
30
|
-
find low hanging typo problems. [#570](https://github.com/exercism/
|
30
|
+
find low hanging typo problems. [#570](https://github.com/exercism/go/pull/570) It's not added into CI since it could give false positives.
|
31
31
|
|
32
32
|
## Contributing Guide
|
33
33
|
|
@@ -35,7 +35,7 @@ Please be familiar with the [contributing guide](https://github.com/exercism/doc
|
|
35
35
|
in the docs repository. This describes some great ways to get involved.
|
36
36
|
In particular, please read the [Pull Request Guidelines](https://github.com/exercism/docs/blob/master/contributing-to-language-tracks/pull-request-guidelines.md) before opening a pull request.
|
37
37
|
|
38
|
-
##
|
38
|
+
## Exercism Go style
|
39
39
|
|
40
40
|
Let's walk through the `leap` exercise to see what is included in an exercise
|
41
41
|
implementation. Navigate into the *leap* directory, you'll see there are a
|
@@ -96,7 +96,7 @@ an exercise is fetched. These are:
|
|
96
96
|
|
97
97
|
### Example solutions
|
98
98
|
|
99
|
-
*example.go* is a reference solution. It is a valid solution that [Travis](https://travis-ci.org/exercism/
|
99
|
+
*example.go* is a reference solution. It is a valid solution that [Travis](https://travis-ci.org/exercism/go),
|
100
100
|
the CI (continuous integration) service, can run tests against. Solvers generally
|
101
101
|
will not see it though. Files with *"example"* in the file name are skipped by
|
102
102
|
the `exercism fetch` command. Because of this, there is less need for this code
|
@@ -142,7 +142,7 @@ that document the exercise API. These examples are run alongside the standard
|
|
142
142
|
exercise tests and will verify that the exercise API is working as expected.
|
143
143
|
They are not required by all exercises and are not intended to replace the
|
144
144
|
data-driven tests. They are most useful for providing examples of how an
|
145
|
-
exercise's API is used. Have a look at the example tests in the [clock exercise](https://github.com/exercism/
|
145
|
+
exercise's API is used. Have a look at the example tests in the [clock exercise](https://github.com/exercism/go/blob/master/exercises/clock/example_clock_test.go)
|
146
146
|
to see them in action.
|
147
147
|
|
148
148
|
### Stub files
|
@@ -164,7 +164,7 @@ difficult concept, or boilerplate code needed.
|
|
164
164
|
### Problem Versioning
|
165
165
|
|
166
166
|
Each problem defines a `const targetTestVersion` in the test file, and validates
|
167
|
-
that the solution has defined a matching value `testVersion`. Any
|
167
|
+
that the solution has defined a matching value `testVersion`. Any Go track developer
|
168
168
|
that changes the test file or test data must increment `targetTestVersion`.
|
169
169
|
|
170
170
|
The benefit of all this is that reviewers can see which test version a posted
|
@@ -202,16 +202,16 @@ If there isn't one it will attempt to get the relevant json data for the
|
|
202
202
|
exercise from the **x-common** repository on GitHub.
|
203
203
|
|
204
204
|
To use a local copy of the **x-common** repository, make sure that it has been
|
205
|
-
cloned into the same parent-directory as the **
|
205
|
+
cloned into the same parent-directory as the **go** repository.
|
206
206
|
|
207
207
|
```sh
|
208
208
|
$ tree -L 1 .
|
209
209
|
.
|
210
210
|
├── x-common
|
211
|
-
└──
|
211
|
+
└── go
|
212
212
|
```
|
213
213
|
|
214
|
-
To regenerate the test cases, navigate into the **
|
214
|
+
To regenerate the test cases, navigate into the **go** directory and run
|
215
215
|
`go run exercises/<exercise>/.meta/gen.go`. You should see that the
|
216
216
|
`<exercise>/cases_test.go` file has changed. Commit the change.
|
217
217
|
|
@@ -224,7 +224,7 @@ and the invitation to submit a pull request!
|
|
224
224
|
<img src="img/mars1.png">
|
225
225
|
|
226
226
|
Click on that big green button. You have a chance to add more explanation to your pull request here, then send
|
227
|
-
it. Looking at the exercism/
|
227
|
+
it. Looking at the exercism/go repository now instead of your own, you see this.
|
228
228
|
|
229
229
|
<img src="img/mars2.png">
|
230
230
|
|
data/tracks/go/config.json
CHANGED
@@ -52,8 +52,8 @@ func parse(s string, t *testing.T) time.Time {
|
|
52
52
|
t.Fatal(err)
|
53
53
|
} else {
|
54
54
|
t.Log(err)
|
55
|
-
t.Skip("(
|
56
|
-
"
|
55
|
+
t.Skip("(This is not your fault, and is unexpected. " +
|
56
|
+
"Please file an issue at https://github.com/exercism/go.)")
|
57
57
|
}
|
58
58
|
}
|
59
59
|
return tt
|
data/tracks/go/gen/gen.go
CHANGED
@@ -19,13 +19,13 @@ import (
|
|
19
19
|
|
20
20
|
// dirMetadata is the location of the x-common repository on the filesystem.
|
21
21
|
// We're making the assumption that the x-common repository has been cloned to
|
22
|
-
// the same parent directory as the
|
22
|
+
// the same parent directory as the Exercism Go track repository.
|
23
23
|
// E.g.
|
24
24
|
//
|
25
25
|
// $ tree -L 1 .
|
26
26
|
// .
|
27
27
|
// ├── x-common
|
28
|
-
// └──
|
28
|
+
// └── go
|
29
29
|
var dirMetadata string
|
30
30
|
|
31
31
|
// dirExercise is the location that the test cases should be generated to.
|
data/tracks/haskell/.gitignore
CHANGED
data/tracks/haskell/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
#
|
1
|
+
# Exercism Haskell Track
|
2
2
|
|
3
|
-
[](https://travis-ci.org/exercism/haskell)
|
4
4
|
|
5
5
|
Exercism exercises in Haskell
|
6
6
|
|
@@ -43,19 +43,22 @@ problem description.
|
|
43
43
|
- If you already have a fix for it you may [write a pull request](#writing-a-pull-request).
|
44
44
|
|
45
45
|
#### Reviewing issues and pull requests
|
46
|
-
If you have a dedicated opinion you are welcome to [write a comment](https://help.github.com/articles/commenting-on-a-pull-request/) for an [issue](https://github.com/exercism/
|
46
|
+
If you have a dedicated opinion you are welcome to [write a comment](https://help.github.com/articles/commenting-on-a-pull-request/) for an [issue](https://github.com/exercism/haskell/issues) or a [pull request](https://github.com/exercism/haskell/pulls).
|
47
47
|
Please be detailed and include reasons, links or arguments to support your opinion.
|
48
48
|
|
49
49
|
#### Porting exercises
|
50
|
-
|
50
|
+
The site contains a [list of missing exercises](http://exercism.io/languages/haskell/todo).
|
51
|
+
You may implement any of these exercises for the Haskell track.
|
52
|
+
Feel free to refer to the [documentation on porting an exercise](https://github.com/exercism/docs/blob/master/contributing-to-language-tracks/porting-an-exercise.md).
|
51
53
|
Of course you can also add a totally new exercise, but it might be a good idea to first discuss it in one of [our forums](#asking-for-help).
|
52
54
|
|
53
55
|
#### Updating an exercise test suite
|
54
|
-
Updating a test suite of an existing exercise is special because it usually affects all languages.
|
56
|
+
Updating a test suite of an existing exercise is special because it usually affects all languages.
|
57
|
+
You can refer to the [documentation on updating a test suite](https://github.com/exercism/x-common/blob/master/CONTRIBUTING.md#updating-an-exercise-test-suite).
|
55
58
|
Note that the whole test suite must run with the sample solution within a couple of seconds.
|
56
59
|
|
57
60
|
### Repository structure and conventions
|
58
|
-
[
|
61
|
+
The [track anatomy documentation](https://github.com/exercism/x-common/blob/master/CONTRIBUTING.md#track-anatomy) is a general description of all the files and directories that are not explicitly described below.
|
59
62
|
|
60
63
|
#### Directory structure
|
61
64
|
```bash
|
@@ -107,10 +110,11 @@ format that has all dependencies and build instructions for an exercise.
|
|
107
110
|
- `test/Tests.hs` is the [test suite](#test-suite).
|
108
111
|
|
109
112
|
### Writing an issue
|
110
|
-
To report a bug you should [create an issue](https://help.github.com/articles/creating-an-issue/) [
|
113
|
+
To report a bug you should [create an issue](https://help.github.com/articles/creating-an-issue/) on the [exercism/haskell repo](https://github.com/exercism/haskell/issues).
|
111
114
|
|
112
115
|
### Writing a pull request
|
113
|
-
To fix a bug you should [create a pull request from a fork](https://help.github.com/articles/creating-a-pull-request-from-a-fork/) [
|
116
|
+
To fix a bug you should [create a pull request from a fork](https://help.github.com/articles/creating-a-pull-request-from-a-fork/) on the [exercism/haskell repo](https://github.com/exercism/haskell/pulls).
|
117
|
+
If you need help with Git, we have some [documentation on Git basics](https://github.com/exercism/docs/blob/master/contributing-to-language-tracks/git-basics.md).
|
114
118
|
|
115
119
|
### Development Dependencies
|
116
120
|
You should have [Stack](http://docs.haskellstack.org/) installed in your system to make contributing to this repository easier.
|
data/tracks/haskell/config.json
CHANGED
@@ -45,7 +45,7 @@ stack ghci
|
|
45
45
|
|
46
46
|
## Feedback, Issues, Pull Requests
|
47
47
|
|
48
|
-
The [exercism/
|
48
|
+
The [exercism/haskell](https://github.com/exercism/haskell) repository on
|
49
49
|
GitHub is the home for all of the Haskell exercises.
|
50
50
|
|
51
51
|
If you have feedback about an exercise, or want to help implementing a new
|
data/tracks/idris/README.md
CHANGED
data/tracks/idris/config.json
CHANGED
data/tracks/java/POLICIES.md
CHANGED
@@ -30,7 +30,7 @@ Our policies are not set-in-stone. They represent directions chosen at a point i
|
|
30
30
|
|
31
31
|
> Most (all?) exercises should be implemented in the form of instance methods since they contain "domain logic" and we (Exercism) want to encourage exemplary software.
|
32
32
|
|
33
|
-
References: [[1](https://github.com/exercism/
|
33
|
+
References: [[1](https://github.com/exercism/java/issues/177#issuecomment-261291741)]
|
34
34
|
|
35
35
|
### Starter implementations
|
36
36
|
|
@@ -40,7 +40,7 @@ References: [[1](https://github.com/exercism/xjava/issues/177#issuecomment-26129
|
|
40
40
|
`throw new UnsupportedOperationException("Delete this statement and provide your own implementation.");`
|
41
41
|
> - Exercises 21+: provide no stubs, but mention any "interesting" interface aspects in the HINT.md file (which gets merged into the README.md for the exercise).
|
42
42
|
|
43
|
-
References: [[1](https://github.com/exercism/
|
43
|
+
References: [[1](https://github.com/exercism/java/issues/178)]
|
44
44
|
|
45
45
|
### Do not make user-facing classes `final`
|
46
46
|
|
@@ -50,22 +50,22 @@ References: [[1](https://github.com/exercism/xjava/issues/178)]
|
|
50
50
|
|
51
51
|
> All but the first test in an exercise test suite should be annotated `@Ignore("Remove to run test")` (single test) or `@Ignore("Remove to run tests")` (parametrized test).
|
52
52
|
|
53
|
-
References: [[1](https://github.com/exercism/
|
53
|
+
References: [[1](https://github.com/exercism/java/issues/101#issuecomment-249349204)]
|
54
54
|
|
55
55
|
### Multiple file submissions
|
56
56
|
|
57
57
|
> The first exercise in the track whose test suite mandates multiple solution files should be accompanied by a HINT.md file reminding the practitioner that the CLI supports multiple file submissions.
|
58
58
|
|
59
|
-
References: [[1](https://github.com/exercism/
|
59
|
+
References: [[1](https://github.com/exercism/java/issues/365#issuecomment-292533120)]
|
60
60
|
|
61
61
|
### Good first patches
|
62
62
|
|
63
|
-
> Aim to keep 10-20 small and straightforward issues open at eny given time. Identify any such issues by applying the "Good first patch" label. You can view the current list of these issues [here](https://github.com/exercism/
|
63
|
+
> Aim to keep 10-20 small and straightforward issues open at eny given time. Identify any such issues by applying the "Good first patch" label. You can view the current list of these issues [here](https://github.com/exercism/java/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+patch%22).
|
64
64
|
|
65
|
-
References: [[1](https://github.com/exercism/
|
65
|
+
References: [[1](https://github.com/exercism/java/issues/220#issue-196447088)]
|
66
66
|
|
67
67
|
### Simple onboarding
|
68
68
|
|
69
69
|
> The Installing Java instructions should seek to minimize the number of steps and the number of concepts a new-to-the-track practitioner needs to learn to get to coding.
|
70
70
|
|
71
|
-
References: [[1](https://github.com/exercism/
|
71
|
+
References: [[1](https://github.com/exercism/java/issues/395#issue-215734887)]
|
data/tracks/java/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
#
|
1
|
+
# java [](https://travis-ci.org/exercism/java) [](https://gitter.im/exercism/xjava?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
2
2
|
|
3
3
|
Source for Exercism Exercises in Java.
|
4
4
|
|
@@ -32,13 +32,13 @@ To submit a fix for an existing exercise or port an exercise to Java with the le
|
|
32
32
|
1. **Ensure you have the basic Java tooling installed:** JDK 1.8+, an editor and Gradle 2.x.
|
33
33
|
|
34
34
|
(see [exercism.io: Installing Java](http://exercism.io/languages/java/installing))
|
35
|
-
- **Setup a branch on a fork of [exercism/
|
35
|
+
- **Setup a branch on a fork of [exercism/java](https://github.com/exercism/java) on your computer.**
|
36
36
|
|
37
37
|
See [GitHub Help: Forking](https://help.github.com/articles/fork-a-repo/). Use those instructions (in conjunction with [Exercism Contributing Guide](https://github.com/exercism/x-common/blob/master/CONTRIBUTING.md#git-basics)) to:
|
38
38
|
* "fork" a repository on GitHub;
|
39
39
|
- install `git`;
|
40
40
|
- "clone" a copy of your fork;
|
41
|
-
- configure an "upstream remote" (in this case, `exercism/
|
41
|
+
- configure an "upstream remote" (in this case, `exercism/java`);
|
42
42
|
- create a branch to house your work
|
43
43
|
- **Write the codes.** Do your work on that branch you just created.
|
44
44
|
|
@@ -59,8 +59,8 @@ To submit a fix for an existing exercise or port an exercise to Java with the le
|
|
59
59
|
|
60
60
|
There are two objectives to the design of this build:
|
61
61
|
|
62
|
-
1. when a problem is built from within the
|
63
|
-
2. when a problem is built outside the
|
62
|
+
1. when a problem is built from within the `exercism/java` repo, the tests run against the "example" code (i.e. when you, the contributor, are developing the exercise);
|
63
|
+
2. when a problem is built outside the `exercism/java` repo (when a participant is solving the exercise), the tests run against the "main" code.
|
64
64
|
|
65
65
|
This repo is a multi-project gradle build.
|
66
66
|
|
@@ -109,10 +109,10 @@ and if you review the logs of your x-api, you'll find:
|
|
109
109
|
2015-09-06 15:21:01 - JSON::GeneratorError - source sequence is illegal/malformed utf-8:
|
110
110
|
```
|
111
111
|
|
112
|
-
This is because some files generated by the build can't be served from the x-api. This is by design: the CLI does not serve binaries. To fix this, simply make sure you do a clean in your `
|
112
|
+
This is because some files generated by the build can't be served from the x-api. This is by design: the CLI does not serve binaries. To fix this, simply make sure you do a clean in your `exercism/java` repo before you fetch:
|
113
113
|
|
114
114
|
```
|
115
|
-
cd ~/workspace/exercism/
|
115
|
+
cd ~/workspace/exercism/java/exercises
|
116
116
|
gradle clean
|
117
117
|
cd ~/workspace/exercism/exercises
|
118
118
|
exercism fetch java bob
|
@@ -3,7 +3,7 @@
|
|
3
3
|
# This script is shared between the Java and Kotlin tracks. If you make an update to this script on
|
4
4
|
# one track, please create a companion PR to merge it in to the other. Thank you!
|
5
5
|
TRACK=java
|
6
|
-
TRACK_REPO="
|
6
|
+
TRACK_REPO="$TRACK"
|
7
7
|
TRACK_SRC_EXT="java"
|
8
8
|
|
9
9
|
on_exit() {
|
data/tracks/java/config.json
CHANGED
@@ -4,23 +4,22 @@ This is a guide/reference for maintainers of the Java track.
|
|
4
4
|
|
5
5
|
- [Your Permissions](#your-permissions)
|
6
6
|
- [Maintainer Guides](#maintainer-guides)
|
7
|
-
- [The Project Board](#the-project-board)
|
8
7
|
- [Miscellaneous](#miscellaneous)
|
9
8
|
|
10
9
|
## Your Permissions
|
11
10
|
|
12
|
-
As a maintainer, you have write access to
|
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.
|
13
12
|
|
14
13
|
### Track-specific
|
15
14
|
|
16
|
-
- [
|
15
|
+
- [java](https://github.com/exercism/java) — yeah... you know what this one is. :)
|
17
16
|
|
18
17
|
### Exercism-wide
|
19
18
|
|
20
19
|
- [x-common](https://github.com/exercism/x-common) — the library of canonical exercises.
|
21
20
|
- [discussions](https://github.com/exercism/discussions) — the place where project-wide conversations happen.
|
22
21
|
[issues sorted by most recently updated.](https://github.com/exercism/discussions/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc)
|
23
|
-
- [
|
22
|
+
- [docs](https://github.com/exercism/docs) - the place to find project-wide documentation.
|
24
23
|
|
25
24
|
## Maintainer Guides
|
26
25
|
|
@@ -28,22 +27,6 @@ As a maintainer, you have write access to four repositories. "write access" mea
|
|
28
27
|
- [exercism.io/docs/getting-involved-in-a-track.md](https://github.com/exercism/exercism.io/blob/master/docs/getting-involved-in-a-track.md)
|
29
28
|
- [exercism.io/docs/reviewing-a-pull-request.md](https://github.com/exercism/exercism.io/blob/master/docs/reviewing-a-pull-request.md)
|
30
29
|
|
31
|
-
## The Project Board
|
32
|
-
|
33
|
-
GitHub issues are great, but there's no way to easily set priorities.
|
34
|
-
To do this, we're using a GitHub Project: https://github.com/exercism/xjava/projects/2.
|
35
|
-
|
36
|
-
- **Epics** — issues that really represent bigger ideas. These inspire creating a set of smaller issues to be elaborated...
|
37
|
-
- **Icebox** — issues that just needs a little more detail to be "ready to play"...
|
38
|
-
- **Backlog** — issues ready to be worked. When we start working on an issue, we move it to the next column...
|
39
|
-
- **Current** — issues in progress. When we've considered it done, we move the card to...
|
40
|
-
- **Delivered** — completed issues that could use another pair of eyes. When these are reviewed they get moved to...
|
41
|
-
- **Done** — issues we've complete. Every so often, we get together and it's nice to review what we've completed.
|
42
|
-
Once reviewed, we remove them from this Project.
|
43
|
-
|
44
|
-
The point of this board is to make clear our shared priorities. It's a tool you can use.
|
45
|
-
However, if you have an idea and want to implement it, you can just do it; it does not have to be added to this board.
|
46
|
-
|
47
30
|
## Miscellaneous
|
48
31
|
|
49
32
|
- Issues marked with "policy" are current "team agreements": [exercism?label:policy](https://github.com/search?q=org%3Aexercism+label%3Apolicy).
|
data/tracks/java/docs/TESTS.md
CHANGED
@@ -37,7 +37,7 @@ Choose your operating system:
|
|
37
37
|
C:\Users\JohnDoe>gradle test
|
38
38
|
```
|
39
39
|
*(Don't worry about the tests failing, at first, this is how you begin each exercise.)*
|
40
|
-
5. Solve the exercise. Find and work through the `GETTING_STARTED.md` guide ([view on GitHub](https://github.com/exercism/
|
40
|
+
5. Solve the exercise. Find and work through the `GETTING_STARTED.md` guide ([view on GitHub](https://github.com/exercism/java/blob/master/exercises/hello-world/GETTING_STARTED.md)).
|
41
41
|
|
42
42
|
|
43
43
|
Good luck! Have fun!
|
@@ -70,7 +70,7 @@ If you get stuck, at any point, don't forget to reach out for [help](http://exer
|
|
70
70
|
$ gradle test
|
71
71
|
```
|
72
72
|
*(Don't worry about the tests failing, at first, this is how you begin each exercise.)*
|
73
|
-
4. Solve the exercise. Find and work through the `GETTING_STARTED.md` guide ([view on GitHub](https://github.com/exercism/
|
73
|
+
4. Solve the exercise. Find and work through the `GETTING_STARTED.md` guide ([view on GitHub](https://github.com/exercism/java/blob/master/exercises/hello-world/GETTING_STARTED.md)).
|
74
74
|
|
75
75
|
Good luck! Have fun!
|
76
76
|
|
@@ -102,7 +102,7 @@ If you get stuck, at any point, don't forget to reach out for [help](http://exer
|
|
102
102
|
$ gradle test
|
103
103
|
```
|
104
104
|
*(Don't worry about the tests failing, at first, this is how you begin each exercise.)*
|
105
|
-
4. Solve the exercise. Find and work through the `GETTING_STARTED.md` guide ([view on GitHub](https://github.com/exercism/
|
105
|
+
4. Solve the exercise. Find and work through the `GETTING_STARTED.md` guide ([view on GitHub](https://github.com/exercism/java/blob/master/exercises/hello-world/GETTING_STARTED.md)).
|
106
106
|
|
107
107
|
Good luck! Have fun!
|
108
108
|
|
@@ -7,6 +7,9 @@ import java.util.Arrays;
|
|
7
7
|
|
8
8
|
import static org.junit.Assert.assertArrayEquals;
|
9
9
|
|
10
|
+
/*
|
11
|
+
* version: 1.1.0
|
12
|
+
*/
|
10
13
|
public class BaseConverterTest {
|
11
14
|
|
12
15
|
/*
|
@@ -197,69 +200,69 @@ public class BaseConverterTest {
|
|
197
200
|
|
198
201
|
@Ignore("Remove to run test")
|
199
202
|
@Test
|
200
|
-
public void
|
203
|
+
public void testFirstBaseIsOne() {
|
201
204
|
expectedException.expect(IllegalArgumentException.class);
|
202
|
-
expectedException.expectMessage("
|
205
|
+
expectedException.expectMessage("Bases must be at least 2.");
|
203
206
|
|
204
|
-
new BaseConverter(
|
207
|
+
new BaseConverter(1, new int[]{});
|
205
208
|
}
|
206
209
|
|
207
210
|
@Ignore("Remove to run test")
|
208
211
|
@Test
|
209
|
-
public void
|
212
|
+
public void testFirstBaseIsZero() {
|
210
213
|
expectedException.expect(IllegalArgumentException.class);
|
211
|
-
expectedException.expectMessage("
|
214
|
+
expectedException.expectMessage("Bases must be at least 2.");
|
212
215
|
|
213
|
-
new BaseConverter(
|
216
|
+
new BaseConverter(0, new int[]{});
|
214
217
|
}
|
215
218
|
|
216
219
|
@Ignore("Remove to run test")
|
217
220
|
@Test
|
218
|
-
public void
|
221
|
+
public void testFirstBaseIsNegative() {
|
219
222
|
expectedException.expect(IllegalArgumentException.class);
|
220
223
|
expectedException.expectMessage("Bases must be at least 2.");
|
221
224
|
|
222
|
-
new BaseConverter(
|
225
|
+
new BaseConverter(-2, new int[]{});
|
223
226
|
}
|
224
227
|
|
225
228
|
@Ignore("Remove to run test")
|
226
229
|
@Test
|
227
|
-
public void
|
228
|
-
final BaseConverter baseConverter = new BaseConverter(2, new int[]{1, 0, 1, 0, 1, 0});
|
229
|
-
|
230
|
+
public void testNegativeDigit() {
|
230
231
|
expectedException.expect(IllegalArgumentException.class);
|
231
|
-
expectedException.expectMessage("
|
232
|
+
expectedException.expectMessage("Digits may not be negative.");
|
232
233
|
|
233
|
-
|
234
|
+
new BaseConverter(2, new int[]{1, -1, 1, 0, 1, 0});
|
234
235
|
}
|
235
236
|
|
236
237
|
@Ignore("Remove to run test")
|
237
238
|
@Test
|
238
|
-
public void
|
239
|
+
public void testInvalidPositiveDigit() {
|
239
240
|
expectedException.expect(IllegalArgumentException.class);
|
240
|
-
expectedException.expectMessage("
|
241
|
+
expectedException.expectMessage("All digits must be strictly less than the base.");
|
241
242
|
|
242
|
-
new BaseConverter(
|
243
|
+
new BaseConverter(2, new int[]{1, 2, 1, 0, 1, 0});
|
243
244
|
}
|
244
245
|
|
245
246
|
@Ignore("Remove to run test")
|
246
247
|
@Test
|
247
|
-
public void
|
248
|
+
public void testSecondBaseIsOne() {
|
248
249
|
final BaseConverter baseConverter = new BaseConverter(2, new int[]{1, 0, 1, 0, 1, 0});
|
249
250
|
|
250
251
|
expectedException.expect(IllegalArgumentException.class);
|
251
252
|
expectedException.expectMessage("Bases must be at least 2.");
|
252
253
|
|
253
|
-
baseConverter.convertToBase(
|
254
|
+
baseConverter.convertToBase(1);
|
254
255
|
}
|
255
256
|
|
256
257
|
@Ignore("Remove to run test")
|
257
258
|
@Test
|
258
|
-
public void
|
259
|
+
public void testSecondBaseIsZero() {
|
260
|
+
final BaseConverter baseConverter = new BaseConverter(2, new int[]{1, 0, 1, 0, 1, 0});
|
261
|
+
|
259
262
|
expectedException.expect(IllegalArgumentException.class);
|
260
263
|
expectedException.expectMessage("Bases must be at least 2.");
|
261
264
|
|
262
|
-
|
265
|
+
baseConverter.convertToBase(0);
|
263
266
|
}
|
264
267
|
|
265
268
|
@Ignore("Remove to run test")
|
@@ -5,7 +5,7 @@ This guide picks-up where [Running the Tests (in Java)](http://exercism.io/langu
|
|
5
5
|
left off. If you haven't reviewed those instructions, do so now.
|
6
6
|
|
7
7
|
Need more information? A **step-by-step tutorial** is available in this directory at TUTORIAL.md or you can read
|
8
|
-
the [HTML version](https://github.com/exercism/
|
8
|
+
the [HTML version](https://github.com/exercism/java/blob/master/exercises/hello-world/TUTORIAL.md).
|
9
9
|
|
10
10
|
The following instructions work equally well on Windows, Mac OS X and Linux.
|
11
11
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
NOTE: You can also view the HTML version of this file here:
|
2
|
-
https://github.com/exercism/
|
2
|
+
https://github.com/exercism/java/blob/master/exercises/hello-world/TUTORIAL.md
|
3
3
|
|
4
4
|
* [Solving "Hello, World!"](#solving-hello-world)
|
5
5
|
* [Reading Gradle output](#reading-gradle-output)
|
@@ -93,7 +93,7 @@ FAILURE: Build failed with an exception.
|
|
93
93
|
|
94
94
|
* What went wrong:
|
95
95
|
Execution failed for task ':test'.
|
96
|
-
> There were failing tests. See the report at: file:///Users/jtigger/projects/exercism/
|
96
|
+
> There were failing tests. See the report at: file:///Users/jtigger/projects/exercism/java/build/exercism/java/hello-world/build/reports/tests/index.html
|
97
97
|
|
98
98
|
* Try:
|
99
99
|
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
|
data/tracks/julia/.travis.yml
CHANGED
data/tracks/julia/config.json
CHANGED