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.
Files changed (124) hide show
  1. checksums.yaml +4 -4
  2. data/fixtures/tracks/fake/docs/STRAY.md +1 -0
  3. data/lib/trackler/doc_file.rb +88 -0
  4. data/lib/trackler/track.rb +6 -40
  5. data/lib/trackler/version.rb +1 -1
  6. data/tracks/bash/README.md +2 -2
  7. data/tracks/bash/config.json +1 -1
  8. data/tracks/c/README.md +1 -1
  9. data/tracks/c/config.json +1 -1
  10. data/tracks/ceylon/README.md +4 -4
  11. data/tracks/ceylon/config.json +1 -1
  12. data/tracks/clojure/README.org +3 -3
  13. data/tracks/clojure/config.json +1 -1
  14. data/tracks/cpp/README.md +2 -2
  15. data/tracks/cpp/config.json +1 -1
  16. data/tracks/cpp/docs/INSTALLATION.md +2 -2
  17. data/tracks/crystal/config.json +1 -1
  18. data/tracks/csharp/config.json +1 -1
  19. data/tracks/delphi/README.md +2 -2
  20. data/tracks/delphi/config.json +1 -1
  21. data/tracks/delphi/exercises/bowling/uBowlingTests.pas +14 -14
  22. data/tracks/ecmascript/config.json +1 -1
  23. data/tracks/elisp/README.org +4 -4
  24. data/tracks/elisp/config.json +1 -1
  25. data/tracks/elixir/README.md +3 -3
  26. data/tracks/elixir/config.json +1 -1
  27. data/tracks/erlang/README.md +2 -2
  28. data/tracks/erlang/config.json +2 -2
  29. data/tracks/factor/README.md +9 -9
  30. data/tracks/factor/config.json +1 -1
  31. data/tracks/fsharp/config.json +1 -1
  32. data/tracks/go/README.md +16 -16
  33. data/tracks/go/config.json +1 -1
  34. data/tracks/go/exercises/gigasecond/gigasecond_test.go +2 -2
  35. data/tracks/go/gen/gen.go +2 -2
  36. data/tracks/haskell/.gitignore +1 -1
  37. data/tracks/haskell/README.md +12 -8
  38. data/tracks/haskell/config.json +1 -1
  39. data/tracks/haskell/docs/EXERCISE_README_INSERT.md +1 -1
  40. data/tracks/idris/README.md +1 -1
  41. data/tracks/idris/config.json +1 -1
  42. data/tracks/java/POLICIES.md +7 -7
  43. data/tracks/java/README.md +7 -7
  44. data/tracks/java/bin/journey-test.sh +1 -1
  45. data/tracks/java/config.json +1 -1
  46. data/tracks/java/docs/MAINTAINING.md +3 -20
  47. data/tracks/java/docs/TESTS.md +3 -3
  48. data/tracks/java/exercises/all-your-base/src/test/java/BaseConverterTest.java +23 -20
  49. data/tracks/java/exercises/hello-world/GETTING_STARTED.md +1 -1
  50. data/tracks/java/exercises/hello-world/TUTORIAL.md +2 -2
  51. data/tracks/javascript/config.json +1 -1
  52. data/tracks/julia/.travis.yml +0 -2
  53. data/tracks/julia/config.json +9 -0
  54. data/tracks/julia/exercises/custom-set/example.jl +1 -1
  55. data/tracks/julia/exercises/luhn/example.jl +1 -1
  56. data/tracks/julia/exercises/robot-name/HINTS.md +17 -0
  57. data/tracks/julia/exercises/robot-name/example.jl +14 -0
  58. data/tracks/julia/exercises/robot-name/robot-name.jl +8 -0
  59. data/tracks/julia/exercises/robot-name/runtests.jl +69 -0
  60. data/tracks/kotlin/README.md +7 -7
  61. data/tracks/kotlin/config.json +1 -1
  62. data/tracks/kotlin/docs/TESTS.md +3 -3
  63. data/tracks/kotlin/exercises/hello-world/GETTING_STARTED.md +1 -1
  64. data/tracks/kotlin/exercises/hello-world/TUTORIAL.md +1 -1
  65. data/tracks/lfe/README.md +2 -2
  66. data/tracks/lfe/config.json +1 -1
  67. data/tracks/lisp/README.md +1 -1
  68. data/tracks/lisp/config.json +2 -2
  69. data/tracks/lua/README.md +9 -9
  70. data/tracks/lua/config.json +1 -1
  71. data/tracks/lua/exercises/hamming/hamming_spec.lua +15 -7
  72. data/tracks/lua/exercises/raindrops/raindrops_spec.lua +46 -14
  73. data/tracks/mips/config.json +1 -1
  74. data/tracks/objective-c/Dangerfile +1 -1
  75. data/tracks/objective-c/README.md +1 -1
  76. data/tracks/objective-c/config.json +1 -1
  77. data/tracks/ocaml/README.md +2 -2
  78. data/tracks/ocaml/config.json +1 -1
  79. data/tracks/ocaml/docs/EXERCISE_README_INSERT.md +1 -1
  80. data/tracks/ocaml/tools/test-generator/README.md +2 -2
  81. data/tracks/perl5/README.md +1 -1
  82. data/tracks/perl5/config.json +1 -1
  83. data/tracks/perl6/README.md +2 -2
  84. data/tracks/perl6/config.json +1 -1
  85. data/tracks/perl6/exercises/all-your-base/all-your-base.t +43 -32
  86. data/tracks/perl6/exercises/all-your-base/example.yaml +19 -9
  87. data/tracks/php/config.json +1 -1
  88. data/tracks/pony/README.md +2 -2
  89. data/tracks/pony/config.json +1 -1
  90. data/tracks/powershell/README.md +1 -1
  91. data/tracks/powershell/config.json +1 -1
  92. data/tracks/purescript/README.md +5 -5
  93. data/tracks/purescript/config.json +1 -1
  94. data/tracks/r/README.md +3 -3
  95. data/tracks/r/config.json +1 -1
  96. data/tracks/racket/README.md +2 -2
  97. data/tracks/racket/config.json +1 -1
  98. data/tracks/ruby/README.md +9 -9
  99. data/tracks/ruby/config.json +1 -1
  100. data/tracks/rust/config.json +1 -1
  101. data/tracks/rust/exercises/gigasecond/src/lib.rs +7 -0
  102. data/tracks/rust/exercises/protein-translation/example.rs +11 -22
  103. data/tracks/rust/exercises/protein-translation/tests/proteins.rs +56 -36
  104. data/tracks/scala/config.json +1 -1
  105. data/tracks/scala/exercises/all-your-base/src/test/scala/AllYourBaseTest.scala +46 -64
  106. data/tracks/scala/exercises/rna-transcription/example.scala +1 -3
  107. data/tracks/scala/exercises/rna-transcription/src/test/scala/RnaTranscriptionTest.scala +19 -23
  108. data/tracks/scala/exercises/scrabble-score/example.scala +2 -2
  109. data/tracks/scala/exercises/scrabble-score/src/test/scala/ScrabbleScoreTest.scala +37 -16
  110. data/tracks/scala/testgen/src/main/scala/AllYourBaseTestGenerator.scala +32 -42
  111. data/tracks/scala/testgen/src/main/scala/RnaTranscriptionTestGenerator.scala +34 -0
  112. data/tracks/scala/testgen/src/main/scala/ScrabbleScoreTestGenerator.scala +15 -0
  113. data/tracks/sml/README.md +1 -3
  114. data/tracks/sml/config.json +1 -1
  115. data/tracks/sml/docs/EXERCISE_README_INSERT.md +1 -1
  116. data/tracks/swift/config.json +1 -1
  117. data/tracks/typescript/README.md +1 -1
  118. data/tracks/typescript/config.json +1 -1
  119. data/tracks/vimscript/README.md +5 -5
  120. data/tracks/vimscript/config.json +8 -1
  121. data/tracks/vimscript/exercises/largest-series-product/example.vim +31 -0
  122. data/tracks/vimscript/exercises/largest-series-product/largest_series_product.vader +95 -0
  123. data/tracks/vimscript/exercises/largest-series-product/largest_series_product.vim +17 -0
  124. metadata +13 -2
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "slug": "fsharp",
3
3
  "language": "F#",
4
- "repository": "https://github.com/exercism/xfsharp",
4
+ "repository": "https://github.com/exercism/fsharp",
5
5
  "active": true,
6
6
  "exercises": [
7
7
  {
data/tracks/go/README.md CHANGED
@@ -1,33 +1,33 @@
1
- # xGo
1
+ # Exercism Go Track
2
2
 
3
- [![Build Status](https://travis-ci.org/exercism/xgo.png?branch=master)](https://travis-ci.org/exercism/xgo)
3
+ [![Build Status](https://travis-ci.org/exercism/go.png?branch=master)](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/xgo/issues for problems of any size. Feel free to report
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 xgo, you should follow some
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/xgo to your account.
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>/xgo`.
23
- Test your clone by cding to the xgo directory and typing
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/xgo/pull/570) It's not added into CI since it could give false positives.
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
- ## xgo style
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/xgo),
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/xgo/blob/master/exercises/clock/example_clock_test.go)
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 xgo developer
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 **xgo** repository.
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
- └── xgo
211
+ └── go
212
212
  ```
213
213
 
214
- To regenerate the test cases, navigate into the **xgo** directory and run
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/xgo repository now instead of your own, you see this.
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
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "slug": "go",
3
3
  "language": "Go",
4
- "repository": "https://github.com/exercism/xgo",
4
+ "repository": "https://github.com/exercism/go",
5
5
  "active": true,
6
6
  "ignore_pattern": "example(?!.*test)",
7
7
  "deprecated": [
@@ -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("(Not your problem. " +
56
- "please file issue at https://github.com/exercism/xgo.)")
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 xgo repository.
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
- // └── xgo
28
+ // └── go
29
29
  var dirMetadata string
30
30
 
31
31
  // dirExercise is the location that the test cases should be generated to.
@@ -2,7 +2,7 @@
2
2
  bin/configlet
3
3
  bin/configlet.exe
4
4
 
5
- # exercism/xhaskell specific patterns
5
+ # exercism/haskell specific patterns
6
6
  *.cabal
7
7
 
8
8
  # sorted default .gitignore from github/gitignore/Haskell.gitignore
@@ -1,6 +1,6 @@
1
- # xHaskell
1
+ # Exercism Haskell Track
2
2
 
3
- [![Build Status](https://travis-ci.org/exercism/xhaskell.png?branch=master)](https://travis-ci.org/exercism/xhaskell)
3
+ [![Build Status](https://travis-ci.org/exercism/haskell.png?branch=master)](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/xhaskell/issues) or a [pull request](https://github.com/exercism/xhaskell/pulls).
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
- Here is the [list of missing exercises](http://exercism.io/languages/haskell/todo). See here for more information about [porting an exercise](https://github.com/exercism/x-common/blob/master/CONTRIBUTING.md#porting-an-exercise-to-another-language-track).
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. Read more about it [here](https://github.com/exercism/x-common/blob/master/CONTRIBUTING.md#updating-an-exercise-test-suite).
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
- [Here](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.
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/) [here](https://github.com/exercism/xhaskell/issues).
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/) [here](https://github.com/exercism/xhaskell/pulls). See also [here](https://github.com/exercism/x-common/blob/master/CONTRIBUTING.md#git-basics) for more information.
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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "slug": "haskell",
3
3
  "language": "Haskell",
4
- "repository": "https://github.com/exercism/xhaskell",
4
+ "repository": "https://github.com/exercism/haskell",
5
5
  "active": true,
6
6
  "exercises": [
7
7
  {
@@ -45,7 +45,7 @@ stack ghci
45
45
 
46
46
  ## Feedback, Issues, Pull Requests
47
47
 
48
- The [exercism/xhaskell](https://github.com/exercism/xhaskell) repository on
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
@@ -1,4 +1,4 @@
1
- # xIdris
1
+ # Exercism Idris Track
2
2
 
3
3
  Exercism problems in Idris.
4
4
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "slug": "idris",
3
3
  "language": "Idris",
4
- "repository": "https://github.com/exercism/xidris",
4
+ "repository": "https://github.com/exercism/idris",
5
5
  "active": false,
6
6
  "deprecated": [
7
7
 
@@ -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/xjava/issues/177#issuecomment-261291741)]
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/xjava/issues/178)]
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/xjava/issues/101#issuecomment-249349204)]
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/xjava/issues/365#issuecomment-292533120)]
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/xjava/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+patch%22).
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/xjava/issues/220#issue-196447088)]
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/xjava/issues/395#issue-215734887)]
71
+ References: [[1](https://github.com/exercism/java/issues/395#issue-215734887)]
@@ -1,4 +1,4 @@
1
- # xJava [![Build Status](https://travis-ci.org/exercism/xjava.svg?branch=master)](https://travis-ci.org/exercism/xjava) [![Join the chat at https://gitter.im/exercism/xjava](https://badges.gitter.im/exercism/xjava.svg)](https://gitter.im/exercism/xjava?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
1
+ # java [![Build Status](https://travis-ci.org/exercism/java.svg?branch=master)](https://travis-ci.org/exercism/java) [![Join the chat at https://gitter.im/exercism/xjava](https://badges.gitter.im/exercism/java.svg)](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/xjava](https://github.com/exercism/xjava) on your computer.**
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/xjava`);
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 xjava 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 xjava repo (when a participant is solving the exercise), the tests run against the "main" code.
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 `xjava` repo before you fetch:
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/xjava/exercises
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="x${TRACK}"
6
+ TRACK_REPO="$TRACK"
7
7
  TRACK_SRC_EXT="java"
8
8
 
9
9
  on_exit() {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "slug": "java",
3
3
  "language": "Java",
4
- "repository": "https://github.com/exercism/xjava",
4
+ "repository": "https://github.com/exercism/java",
5
5
  "active": true,
6
6
  "exercises": [
7
7
  {
@@ -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 four 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.
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
- - [xjava](https://github.com/exercism/xjava) — yeah... you know what this one is. :)
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
- - [todo](https://github.com/exercism/todo) not really used... might just go away completely in the future.
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).
@@ -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/xjava/blob/master/exercises/hello-world/GETTING_STARTED.md)).
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/xjava/blob/master/exercises/hello-world/GETTING_STARTED.md)).
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/xjava/blob/master/exercises/hello-world/GETTING_STARTED.md)).
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 testNegativeDigit() {
203
+ public void testFirstBaseIsOne() {
201
204
  expectedException.expect(IllegalArgumentException.class);
202
- expectedException.expectMessage("Digits may not be negative.");
205
+ expectedException.expectMessage("Bases must be at least 2.");
203
206
 
204
- new BaseConverter(2, new int[]{1, -1, 1, 0, 1, 0});
207
+ new BaseConverter(1, new int[]{});
205
208
  }
206
209
 
207
210
  @Ignore("Remove to run test")
208
211
  @Test
209
- public void testInvalidPositiveDigit() {
212
+ public void testFirstBaseIsZero() {
210
213
  expectedException.expect(IllegalArgumentException.class);
211
- expectedException.expectMessage("All digits must be strictly less than the base.");
214
+ expectedException.expectMessage("Bases must be at least 2.");
212
215
 
213
- new BaseConverter(2, new int[]{1, 2, 1, 0, 1, 0});
216
+ new BaseConverter(0, new int[]{});
214
217
  }
215
218
 
216
219
  @Ignore("Remove to run test")
217
220
  @Test
218
- public void testFirstBaseIsOne() {
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(1, new int[]{});
225
+ new BaseConverter(-2, new int[]{});
223
226
  }
224
227
 
225
228
  @Ignore("Remove to run test")
226
229
  @Test
227
- public void testSecondBaseIsOne() {
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("Bases must be at least 2.");
232
+ expectedException.expectMessage("Digits may not be negative.");
232
233
 
233
- baseConverter.convertToBase(1);
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 testFirstBaseIsZero() {
239
+ public void testInvalidPositiveDigit() {
239
240
  expectedException.expect(IllegalArgumentException.class);
240
- expectedException.expectMessage("Bases must be at least 2.");
241
+ expectedException.expectMessage("All digits must be strictly less than the base.");
241
242
 
242
- new BaseConverter(0, new int[]{});
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 testSecondBaseIsZero() {
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(0);
254
+ baseConverter.convertToBase(1);
254
255
  }
255
256
 
256
257
  @Ignore("Remove to run test")
257
258
  @Test
258
- public void testFirstBaseIsNegative() {
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
- new BaseConverter(-2, new int[]{});
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/xjava/blob/master/exercises/hello-world/TUTORIAL.md).
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/xjava/blob/master/exercises/hello-world/TUTORIAL.md
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/xjava/build/exercism/java/hello-world/build/reports/tests/index.html
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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "slug": "javascript",
3
3
  "language": "JavaScript",
4
- "repository": "https://github.com/exercism/xjavascript",
4
+ "repository": "https://github.com/exercism/javascript",
5
5
  "active": true,
6
6
  "test_pattern": ".*[.]spec[.]js$",
7
7
  "exercises": [
@@ -6,12 +6,10 @@ os:
6
6
  julia:
7
7
  - nightly
8
8
  - 0.6
9
- - 0.5
10
9
 
11
10
  matrix:
12
11
  allow_failures:
13
12
  - julia: nightly
14
- - julia: 0.6
15
13
 
16
14
  script:
17
15
  - julia runtests.jl
@@ -215,6 +215,15 @@
215
215
  "mathematics"
216
216
  ]
217
217
  },
218
+ {
219
+ "slug": "robot-name",
220
+ "difficulty": 2,
221
+ "topics": [
222
+ "structs",
223
+ "strings",
224
+ "randomness"
225
+ ]
226
+ },
218
227
  {
219
228
  "slug": "rotational-cipher",
220
229
  "difficulty": 2,
@@ -1,7 +1,7 @@
1
1
  import Base: AbstractSet, isempty, length, in, issubset, start, next, done,
2
2
  push!, ==, copy, intersect!, intersect, union!, union
3
3
 
4
- type CustomSet{T} <: AbstractSet
4
+ struct CustomSet{T} <: AbstractSet{T}
5
5
  elements::Array{T, 1}
6
6
  end
7
7