trackler 2.0.6.24 → 2.0.6.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/common/exercises/perfect-numbers/description.md +13 -20
- data/common/exercises/trinary/canonical-data.json +62 -0
- data/lib/trackler/version.rb +1 -1
- data/tracks/csharp/docs/ABOUT.md +3 -11
- data/tracks/csharp/docs/LEARNING.md +17 -9
- data/tracks/csharp/docs/RESOURCES.md +18 -5
- data/tracks/delphi/README.md +3 -3
- data/tracks/delphi/SETUP.md +2 -2
- data/tracks/delphi/config.json +2 -2
- data/tracks/delphi/docs/INSTALLATION.md +10 -10
- data/tracks/delphi/img/icon.png +0 -0
- data/tracks/groovy/exercises/leap/Example.groovy +11 -3
- data/tracks/groovy/exercises/leap/LeapSpec.groovy +25 -0
- data/tracks/julia/README.md +16 -3
- data/tracks/nasm/exercises/.keep +2 -0
- data/tracks/scala/config.json +26 -1
- data/tracks/scala/exercises/all-your-base/build.sbt +2 -2
- data/tracks/scala/exercises/bracket-push/build.sbt +3 -3
- data/tracks/scala/exercises/change/build.sbt +2 -2
- data/tracks/scala/exercises/dominoes/build.sbt +3 -2
- data/tracks/scala/exercises/dominoes/src/test/scala/{DominoesSuite.scala → DominoesTest.scala} +1 -1
- data/tracks/scala/exercises/sum-of-multiples/build.sbt +2 -2
- data/tracks/scala/exercises/zebra-puzzle/build.sbt +2 -2
- data/tracks/scala/project/Build.scala +1 -1
- data/tracks/tcl/exercises/.keep +2 -0
- metadata +7 -4
- data/tracks/groovy/exercises/leap/LeapTest.groovy +0 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9763766ea797f1e86a38a58b714beeef17a5628f
|
4
|
+
data.tar.gz: 7a9946b3ae2f97f0e2ebc73bd09f4ff5a9817b07
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ed82b161061cde6fdb568c4a689c69de16fb71e1e9f6f450719b8596f6e619d19ef027f0c46e082187a1812236fcaa0883924a7c67a4f8cf012361c2433fb77f
|
7
|
+
data.tar.gz: 4532d2aa2753daed3f20cf6a28af54bb14a83dce4f459c864c83b3f1b8186df930d1e78f1c68b91338b2e9d6deada4a346a8fa13fad597a246f2c6b2027fd0f2
|
@@ -1,20 +1,13 @@
|
|
1
|
-
The Greek mathematican Nicomachus devised a classification scheme for
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
-
|
8
|
-
-
|
9
|
-
- Deficient
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
## Examples
|
15
|
-
|
16
|
-
- 6 is a perfect number because its divisors are 1, 2, 3 and 6 = 1 + 2 +
|
17
|
-
3.
|
18
|
-
- 28 is a perfect number because 28 = 1 + 2 + 4 + 7 + 14.
|
19
|
-
- Prime numbers 7, 13, etc are considered deficient in the Nicomachus
|
20
|
-
classification.
|
1
|
+
The Greek mathematican [Nicomachus](https://en.wikipedia.org/wiki/Nicomachus) devised a classification scheme for natural numbers, identifying each as belonging uniquely to the categories of **perfect**, **abundant**, or **deficient** based on their [aliquot sum](https://en.wikipedia.org/wiki/Aliquot_sum). The aliquot sum is defined as the sum of the factors of a number not including the number itself. For example, the aliquot sum of 15 is (1 + 3 + 5) = 9
|
2
|
+
|
3
|
+
- **Perfect**: aliquot sum = number
|
4
|
+
- 6 is a perfect number because (1 + 2 + 3) = 6
|
5
|
+
- 28 is a perfect number because (1 + 2 + 4 + 7 + 14) = 28
|
6
|
+
- **Abundant**: aliquot sum > number
|
7
|
+
- 12 is an abundant number because (1 + 2 + 3 + 4 + 6) = 16
|
8
|
+
- 24 is an abundant number because (1 + 2 + 3 + 4 + 6 + 8 + 12) = 36
|
9
|
+
- **Deficient**: aliquot sum < number
|
10
|
+
- 8 is a deficient number because (1 + 2 + 4) = 7
|
11
|
+
- Prime numbers are deficient
|
12
|
+
|
13
|
+
Implement a way to determine whether a given number is **perfect**. Depending on your language track, you may also need to implement a way to determine whethether a given number is **abundant** or **deficient**.
|
@@ -0,0 +1,62 @@
|
|
1
|
+
{
|
2
|
+
"to_decimal": {
|
3
|
+
"description": "returns the decimal representation of the input trinary value",
|
4
|
+
"cases": [
|
5
|
+
{
|
6
|
+
"description": "trinary 1 is decimal 1",
|
7
|
+
"input": 1,
|
8
|
+
"expected": 1
|
9
|
+
},
|
10
|
+
{
|
11
|
+
"description": "trinary 2 is decimal 2",
|
12
|
+
"input": 2,
|
13
|
+
"expected": 2
|
14
|
+
},
|
15
|
+
{
|
16
|
+
"description": "trinary 10 is decimal 3",
|
17
|
+
"input": 10,
|
18
|
+
"expected": 3
|
19
|
+
},
|
20
|
+
{
|
21
|
+
"description": "trinary 11 is decimal 4",
|
22
|
+
"input": 11,
|
23
|
+
"expected": 4
|
24
|
+
},
|
25
|
+
{
|
26
|
+
"description": "trinary 100 is decimal 9",
|
27
|
+
"input": 100,
|
28
|
+
"expected": 9
|
29
|
+
},
|
30
|
+
{
|
31
|
+
"description": "trinary 112 is decimal 14",
|
32
|
+
"input": 112,
|
33
|
+
"expected": 14
|
34
|
+
},
|
35
|
+
{
|
36
|
+
"description": "trinary 222 is decimal 26",
|
37
|
+
"input": 222,
|
38
|
+
"expected": 26
|
39
|
+
},
|
40
|
+
{
|
41
|
+
"description": "trinary 1122000120 is decimal 32091",
|
42
|
+
"input": 1122000120,
|
43
|
+
"expected": 32091
|
44
|
+
},
|
45
|
+
{
|
46
|
+
"description": "invalid trinary digits returns 0",
|
47
|
+
"input": "1234",
|
48
|
+
"expected": 0
|
49
|
+
},
|
50
|
+
{
|
51
|
+
"description": "invalid word as input returns 0",
|
52
|
+
"input": "carrot",
|
53
|
+
"expected": 0
|
54
|
+
},
|
55
|
+
{
|
56
|
+
"description": "invalid numbers with letters as input returns 0",
|
57
|
+
"input": "0a1b2c",
|
58
|
+
"expected": 0
|
59
|
+
}
|
60
|
+
]
|
61
|
+
}
|
62
|
+
}
|
data/lib/trackler/version.rb
CHANGED
data/tracks/csharp/docs/ABOUT.md
CHANGED
@@ -1,13 +1,5 @@
|
|
1
|
-
C# is a modern, object oriented language
|
1
|
+
C# is a modern, object oriented language developed and maintained by Microsoft. The learning curve is small, reduced even if the developer has experience with other 'C-Style' languages.
|
2
2
|
|
3
|
-
|
3
|
+
C# is a carefully designed language with lots of great features, such as type-inference and async/await. The official [documentation](https://docs.microsoft.com/en-us/dotnet/articles/csharp/) is very extensive and well-written.
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
Key Benefits:
|
8
|
-
|
9
|
-
- It has a great library with lots of well-documented, easy to use functionality such as writing to a text file, or accessing Windows related features.
|
10
|
-
- Type Safety
|
11
|
-
- Type Safety is a language-agnostic compilation feature that means when code is compiled, types are validated. This means for example a `string` value could not be assigned to an `int`.
|
12
|
-
- Native Garbage Collection
|
13
|
-
- Garbage Collection (GC) is a feature that allows memory management. When a resource like a variable, is no longer used, GC will release the related resources back to the system.
|
5
|
+
Although .NET used to be Windows-only, with the release of [.NET Core](https://www.microsoft.com/net/core) you can also use C# on Mac or Unix-based systems.
|
@@ -1,9 +1,17 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
* [.
|
6
|
-
* [
|
7
|
-
|
8
|
-
|
9
|
-
|
1
|
+
## Learning C#
|
2
|
+
|
3
|
+
### Websites
|
4
|
+
|
5
|
+
* The [official C# documentation](https://docs.microsoft.com/en-us/dotnet/articles/csharp/) has great content on a wide variety of subjects, including [tutorials](https://docs.microsoft.com/en-us/dotnet/articles/csharp/tutorials/index) and a [tour of the language](https://docs.microsoft.com/en-us/dotnet/articles/csharp/tour-of-csharp/index).
|
6
|
+
* [Learn C#](http://www.learncs.org/) is an interactive, in-browser tutorial that introduces you to the core concepts of programming in C#.
|
7
|
+
|
8
|
+
### Videos
|
9
|
+
|
10
|
+
* [Programming in C# Jump Start](https://channel9.msdn.com/Series/Programming-in-C-Jump-Start) is a nice step-by-step introduction to programming in C#.
|
11
|
+
* [C# Fundamentals for Absolute Beginners](https://mva.microsoft.com/en-US/training-courses/c-fundamentals-for-absolute-beginners-16169?l=Lvld4EQIC_2706218949) is a great way to get to know C#.
|
12
|
+
* [PluralSight](https://www.pluralsight.com/) has several [great](https://www.pluralsight.com/courses/csharp-6-from-scratch) [introduction](https://www.pluralsight.com/courses/c-sharp-fundamentals-with-visual-studio-2015) [courses](http://www.pluralsight.com/courses/csharp-best-practices-improving-basics). The downside: PluralSight is a paid service, but you can request a [free trial](https://www.pluralsight.com/pricing).
|
13
|
+
|
14
|
+
### Books
|
15
|
+
* [C# 6.0 in a Nutshell](https://www.amazon.com/C-6-0-Nutshell-Definitive-Reference/dp/1491927062/)
|
16
|
+
* [C# 5.0 Unleashed](https://www.amazon.com/C-5-0-Unleashed-Bart-Smet/dp/0672336901/)
|
17
|
+
* [C# in Depth](https://www.amazon.com/dp/161729134X/)
|
@@ -1,9 +1,22 @@
|
|
1
|
-
##
|
2
|
-
Code Analysis can be turned on to run after a build of certain projects. This [MSDN article](http://msdn.microsoft.com/en-us/library/ms182066.aspx) is a good walkthrough on how to enable code analysis.
|
1
|
+
## Recommended Learning Resources
|
3
2
|
|
4
|
-
|
3
|
+
### Blogs
|
4
|
+
* The official [.NET blog](https://blogs.msdn.microsoft.com/dotnet/) has lots of interesting C# articles, ranging from beginner to expert difficulty.
|
5
|
+
* Scott Hanselman's [blog](http://www.hanselman.com/blog/) is an active, we'll written blog on a wide variety of C# and .NET related subjects.
|
6
|
+
* Eric Lippert's [Fabulous adventures in coding](https://ericlippert.com/) is a brilliant C# blog, although his subjects are usually quite advanced.
|
7
|
+
* The [C#/.NET Little Wonders & Little Pitfalls](http://geekswithblogs.net/BlackRabbitCoder/archive/2015/04/02/c.net-little-wonders-amp-little-pitfalls-the-complete-collection.aspx) posts by James Michael Hare contains some fantastic posts on less known C# features.
|
5
8
|
|
6
|
-
|
9
|
+
### Social media
|
10
|
+
* [StackOverflow ](http://stackoverflow.com/questions/tagged/c%23) can be used to search for your problem and see if it has been answered already. You can also ask and answer questions.
|
11
|
+
* [/r/csharp](https://www.reddit.com/r/csharp) is the C# subreddit.
|
12
|
+
* [@dotnet](https://twitter.com/DotNet) is the official .NET Twitter account.
|
7
13
|
|
8
|
-
|
14
|
+
### Videos
|
15
|
+
* In [On .NET](https://www.youtube.com/watch?v=GpLU0UdcGic&list=PL4Sf58qFxdyQuzB1mH5kln_otKpsIuoCO), Bertrand Le Roy interviews people on a wide variety of C#/.NET related subjects.
|
16
|
+
* There are several great [C# courses](https://www.pluralsight.com/search?q=*&categories=course&roles=software-development%7C&subjects=c%23) on PluralSight. The downside: PluralSight is a paid service, but you can request a [free trial](https://www.pluralsight.com/pricing).
|
9
17
|
|
18
|
+
### Podcasts
|
19
|
+
* [.NET Rocks](https://www.dotnetrocks.com/) is a very nice .NET podcast with great content.
|
20
|
+
|
21
|
+
### Books
|
22
|
+
* [Expert C# 5.0](http://www.apress.com/us/book/9781430248606)
|
data/tracks/delphi/README.md
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
#
|
1
|
+
# xDelphi
|
2
2
|
|
3
|
-
[](https://travis-ci.org/exercism/xdelphi)
|
4
4
|
|
5
|
-
Exercism exercises in Pascal.
|
5
|
+
Exercism exercises in Delphi Pascal.
|
6
6
|
|
7
7
|
## Contributing Guide
|
8
8
|
|
data/tracks/delphi/SETUP.md
CHANGED
@@ -5,6 +5,6 @@ DUnitX. Please see [INSTALLATION.md](link here) for more information.
|
|
5
5
|
|
6
6
|
### Submitting Exercises
|
7
7
|
|
8
|
-
Note that, when trying to submit an exercise, make sure the exercise file you're submitting is in the `exercism/
|
8
|
+
Note that, when trying to submit an exercise, make sure the exercise file you're submitting is in the `exercism/delphi/<exerciseName>` directory.
|
9
9
|
|
10
|
-
For example, if you're submitting `ubob.pas` for the Bob exercise, the submit command would be something like `exercism submit <path_to_exercism_dir>/
|
10
|
+
For example, if you're submitting `ubob.pas` for the Bob exercise, the submit command would be something like `exercism submit <path_to_exercism_dir>/delphi/bob/ubob.pas`.
|
data/tracks/delphi/config.json
CHANGED
@@ -25,45 +25,45 @@ If you had to install DUnitX because your installation didn't already come with
|
|
25
25
|
|
26
26
|
- Start Delphi. If your installation is new you will most likely end up at a `Welcome Page` similar to this.
|
27
27
|
|
28
|
-
[](http://x.exercism.io/v3/tracks/delphi/docs/img/00delphiwelcomepage.png)
|
29
29
|
|
30
30
|
- Find and click `Tools` along the top menu.
|
31
31
|
|
32
|
-

|
33
33
|
|
34
34
|
- Click `Options`.
|
35
35
|
|
36
|
-

|
37
37
|
|
38
38
|
- Along the left side of the Options screen find and click on `Environment Variables`.
|
39
39
|
|
40
|
-
[](http://x.exercism.io/v3/tracks/delphi/docs/img/03delphioptionsenvironmentvariables.png)
|
41
41
|
|
42
42
|
- Click the `New` button located in the `User overrides` group
|
43
43
|
|
44
|
-

|
45
45
|
|
46
46
|
- A New User Variable window should appear that contains two fields. In the top field enter `DUNITX` for the Variable Name. In the bottom field enter the complete path to your copy of DUnitX, for example mine is `C:\Program Files\Embarcadero\Studio\18.0\source\DUnitX`. Click the `Ok` button to then close this window.
|
47
47
|
|
48
|
-

|
49
49
|
|
50
50
|
- Locate and click on `Library` along the left side of the Options screen.
|
51
51
|
|
52
|
-
[](http://x.exercism.io/v3/tracks/delphi/docs/img/06delphioptionslibrary.png)
|
53
53
|
|
54
54
|
- Click the `...` button associated with the Library path in the Directories group
|
55
55
|
|
56
|
-
[](http://x.exercism.io/v3/tracks/delphi/docs/img/07delphiclicklibrarypathbutton.png)
|
57
57
|
|
58
58
|
- In the Directories window enter the variable name that you created a few steps ago. The entry should appear like this `$(DUNITX)`
|
59
59
|
|
60
|
-

|
61
61
|
|
62
62
|
- Click the `Add` button to add this new item to the list.
|
63
63
|
|
64
64
|
- Click the `Ok` button to store the change.
|
65
65
|
|
66
|
-

|
67
67
|
|
68
68
|
- Finally, click the `Ok` button on the Options window to save all the changes.
|
69
69
|
|
data/tracks/delphi/img/icon.png
CHANGED
Binary file
|
@@ -1,5 +1,13 @@
|
|
1
1
|
class Year {
|
2
|
-
|
3
|
-
|
4
|
-
|
2
|
+
|
3
|
+
Integer year
|
4
|
+
|
5
|
+
Year(Integer year) {
|
6
|
+
this.year = year
|
7
|
+
}
|
8
|
+
|
9
|
+
def isLeapYear() {
|
10
|
+
(year % 4) == 0 && ((year % 400) == 0 || (year % 100) != 0)
|
11
|
+
}
|
12
|
+
|
5
13
|
}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
@Grab('org.spockframework:spock-core:1.0-groovy-2.4')
|
2
|
+
import spock.lang.*
|
3
|
+
|
4
|
+
class LeapSpec extends Specification {
|
5
|
+
|
6
|
+
def 'a year not divisible by 4 is not a leap year'() {
|
7
|
+
expect: new Year(2015).isLeapYear() == false
|
8
|
+
}
|
9
|
+
|
10
|
+
@Ignore
|
11
|
+
def 'a year divisible by 4, but not 100, is a leap year'() {
|
12
|
+
expect: new Year(2016).isLeapYear() == true
|
13
|
+
}
|
14
|
+
|
15
|
+
@Ignore
|
16
|
+
def 'a year divisible by 100, but not 400, is not a leap year'() {
|
17
|
+
expect: new Year(2100).isLeapYear() == false
|
18
|
+
}
|
19
|
+
|
20
|
+
@Ignore
|
21
|
+
def 'a year divisible by 400 is a leap year'() {
|
22
|
+
expect: new Year(2000).isLeapYear() == true
|
23
|
+
}
|
24
|
+
|
25
|
+
}
|
data/tracks/julia/README.md
CHANGED
@@ -23,11 +23,11 @@ Exercises for the Julia track go in the `exercises` directory and should follow
|
|
23
23
|
|
24
24
|
`exercises/<slug>/runtests.jl` Test suite for the exercise. Group related tests using [testsets](http://docs.julialang.org/en/release-0.5/stdlib/test/#working-with-test-sets).
|
25
25
|
|
26
|
-
`exercises/<slug>/example.jl` Example solution for the exercise. It should follow the [Julia Style Guide](http://docs.julialang.org/en/release-0.5/manual/style-guide/).
|
26
|
+
`exercises/<slug>/example.jl` Example solution for the exercise. It should follow the [Julia Style Guide](http://docs.julialang.org/en/release-0.5/manual/style-guide/) and the code formatting guidelines specified [below](#code-formatting-guidelines).
|
27
27
|
|
28
28
|
Replace `<slug>` with the exercise slug of the exercise you're working on.
|
29
29
|
|
30
|
-
See [Issue #2](https://github.com/exercism/xjulia/issues/2) for discussion on the structure.
|
30
|
+
See [Issue #2](https://github.com/exercism/xjulia/issues/2) for discussion on the structure and style guidelines.
|
31
31
|
|
32
32
|
### Adding it to config
|
33
33
|
|
@@ -41,7 +41,20 @@ Make sure to add the exercise to the `config.json` file, by adding an entry to t
|
|
41
41
|
}
|
42
42
|
]
|
43
43
|
```
|
44
|
-
If possible, add info on which topics the exercise is about and estimate a difficulty level from 1 to 10. We can adjust these later on when we know more about the
|
44
|
+
If possible, add info on which topics the exercise is about and estimate a difficulty level from 1 to 10. We can adjust these later on when we know more about the exercises and how users solve them.
|
45
45
|
|
46
46
|
### Testing the example solutions
|
47
47
|
Test your example solutions by running `julia runtests.jl` in the project directory. Specify exercise slugs as arguments to run only certain exercises: `julia runtests.jl <slug>`.
|
48
|
+
|
49
|
+
### Code Formatting Guidelines
|
50
|
+
Your example solutions should adhere to the following guidelines:
|
51
|
+
- 4 spaces per indentation level, no tabs
|
52
|
+
- use whitespace to make the code more readable
|
53
|
+
- no whitespace at the end of a line (trailing whitespace)
|
54
|
+
- comments are good, especially when they explain the algorithm
|
55
|
+
- try to adhere to a 92 character line length limit
|
56
|
+
- use upper camel case convention for type names
|
57
|
+
- use lower case with underscores for method names
|
58
|
+
- it is generally preferred to use ASCII operators and identifiers over Unicode equivalents whenever possible
|
59
|
+
|
60
|
+
These are based on the [General Formatting Guidelines](https://github.com/JuliaLang/julia/blob/master/CONTRIBUTING.md#general-formatting-guidelines-for-julia-code-contributions) for contributions to the Julia codebase.
|
data/tracks/scala/config.json
CHANGED
@@ -75,6 +75,8 @@
|
|
75
75
|
"slug": "nucleotide-count",
|
76
76
|
"difficulty": 1,
|
77
77
|
"topics": [
|
78
|
+
"Maps",
|
79
|
+
"Strings"
|
78
80
|
]
|
79
81
|
},
|
80
82
|
{
|
@@ -127,6 +129,7 @@
|
|
127
129
|
"slug": "meetup",
|
128
130
|
"difficulty": 1,
|
129
131
|
"topics": [
|
132
|
+
"Dates"
|
130
133
|
]
|
131
134
|
},
|
132
135
|
{
|
@@ -256,6 +259,11 @@
|
|
256
259
|
"slug": "all-your-base",
|
257
260
|
"difficulty": 1,
|
258
261
|
"topics": [
|
262
|
+
"Integers",
|
263
|
+
"Lists",
|
264
|
+
"Optional values",
|
265
|
+
"Mathematics",
|
266
|
+
"Transforming"
|
259
267
|
]
|
260
268
|
},
|
261
269
|
{
|
@@ -296,6 +304,8 @@
|
|
296
304
|
"slug": "bracket-push",
|
297
305
|
"difficulty": 1,
|
298
306
|
"topics": [
|
307
|
+
"Strings",
|
308
|
+
"Parsing"
|
299
309
|
]
|
300
310
|
},
|
301
311
|
{
|
@@ -369,6 +379,7 @@
|
|
369
379
|
"slug": "zebra-puzzle",
|
370
380
|
"difficulty": 1,
|
371
381
|
"topics": [
|
382
|
+
"Logic"
|
372
383
|
]
|
373
384
|
},
|
374
385
|
{
|
@@ -433,6 +444,9 @@
|
|
433
444
|
"slug": "nth-prime",
|
434
445
|
"difficulty": 1,
|
435
446
|
"topics": [
|
447
|
+
"Optional values",
|
448
|
+
"Algorithms",
|
449
|
+
"Mathematics"
|
436
450
|
]
|
437
451
|
},
|
438
452
|
{
|
@@ -543,6 +557,10 @@
|
|
543
557
|
"slug": "change",
|
544
558
|
"difficulty": 1,
|
545
559
|
"topics": [
|
560
|
+
"Integers",
|
561
|
+
"Lists",
|
562
|
+
"Optional values",
|
563
|
+
"Mathematics"
|
546
564
|
]
|
547
565
|
},
|
548
566
|
{
|
@@ -561,6 +579,10 @@
|
|
561
579
|
"slug": "dominoes",
|
562
580
|
"difficulty": 1,
|
563
581
|
"topics": [
|
582
|
+
"Lists",
|
583
|
+
"Optional values",
|
584
|
+
"Tuples",
|
585
|
+
"Games"
|
564
586
|
]
|
565
587
|
},
|
566
588
|
{
|
@@ -604,7 +626,10 @@
|
|
604
626
|
"slug": "forth",
|
605
627
|
"difficulty": 1,
|
606
628
|
"topics": [
|
607
|
-
|
629
|
+
"Strings",
|
630
|
+
"Mathematics",
|
631
|
+
"Parsing"
|
632
|
+
]
|
608
633
|
},
|
609
634
|
{
|
610
635
|
"slug": "lens-person",
|
@@ -1,3 +1,3 @@
|
|
1
|
-
scalaVersion := "2.
|
1
|
+
scalaVersion := "2.12.1"
|
2
2
|
|
3
|
-
libraryDependencies += "org.scalatest"
|
3
|
+
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.1" % "test"
|
@@ -1,4 +1,4 @@
|
|
1
|
-
scalaVersion := "2.
|
1
|
+
scalaVersion := "2.12.1"
|
2
2
|
|
3
|
-
libraryDependencies += "org.scalatest"
|
4
|
-
libraryDependencies += "org.scala-lang.modules" %% "scala-parser-combinators" % "1.0.
|
3
|
+
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.1" % "test"
|
4
|
+
libraryDependencies += "org.scala-lang.modules" %% "scala-parser-combinators" % "1.0.5"
|
@@ -1,3 +1,3 @@
|
|
1
|
-
scalaVersion := "2.
|
1
|
+
scalaVersion := "2.12.1"
|
2
2
|
|
3
|
-
libraryDependencies += "org.scalatest"
|
3
|
+
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.1" % "test"
|
@@ -1,3 +1,3 @@
|
|
1
|
-
scalaVersion := "2.
|
1
|
+
scalaVersion := "2.12.1"
|
2
2
|
|
3
|
-
libraryDependencies += "org.scalatest"
|
3
|
+
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.1" % "test"
|
@@ -1,3 +1,3 @@
|
|
1
|
-
scalaVersion := "2.
|
1
|
+
scalaVersion := "2.12.1"
|
2
2
|
|
3
|
-
libraryDependencies += "org.scalatest"
|
3
|
+
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.1" % "test"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: trackler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.6.
|
4
|
+
version: 2.0.6.25
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Katrina Owen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-01-
|
11
|
+
date: 2017-01-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubyzip
|
@@ -386,6 +386,7 @@ files:
|
|
386
386
|
- common/exercises/triangle/canonical-data.json
|
387
387
|
- common/exercises/triangle/description.md
|
388
388
|
- common/exercises/triangle/metadata.yml
|
389
|
+
- common/exercises/trinary/canonical-data.json
|
389
390
|
- common/exercises/trinary/description.md
|
390
391
|
- common/exercises/trinary/metadata.yml
|
391
392
|
- common/exercises/twelve-days/description.md
|
@@ -3066,7 +3067,7 @@ files:
|
|
3066
3067
|
- tracks/groovy/exercises/hello-world/HelloWorld.groovy
|
3067
3068
|
- tracks/groovy/exercises/hello-world/HelloWorldSpec.groovy
|
3068
3069
|
- tracks/groovy/exercises/leap/Example.groovy
|
3069
|
-
- tracks/groovy/exercises/leap/
|
3070
|
+
- tracks/groovy/exercises/leap/LeapSpec.groovy
|
3070
3071
|
- tracks/groovy/exercises/nth-prime/Example.groovy
|
3071
3072
|
- tracks/groovy/exercises/nth-prime/PrimeSpec.groovy
|
3072
3073
|
- tracks/groovy/exercises/phone-number/Example.groovy
|
@@ -4901,6 +4902,7 @@ files:
|
|
4901
4902
|
- tracks/nasm/SETUP.md
|
4902
4903
|
- tracks/nasm/bin/fetch-configlet
|
4903
4904
|
- tracks/nasm/config.json
|
4905
|
+
- tracks/nasm/exercises/.keep
|
4904
4906
|
- tracks/nasm/img/icon.png
|
4905
4907
|
- tracks/nim/.git
|
4906
4908
|
- tracks/nim/.gitignore
|
@@ -6808,7 +6810,7 @@ files:
|
|
6808
6810
|
- tracks/scala/exercises/dominoes/Example.scala
|
6809
6811
|
- tracks/scala/exercises/dominoes/build.sbt
|
6810
6812
|
- tracks/scala/exercises/dominoes/src/main/scala/Dominoes.scala
|
6811
|
-
- tracks/scala/exercises/dominoes/src/test/scala/
|
6813
|
+
- tracks/scala/exercises/dominoes/src/test/scala/DominoesTest.scala
|
6812
6814
|
- tracks/scala/exercises/etl/build.sbt
|
6813
6815
|
- tracks/scala/exercises/etl/example.scala
|
6814
6816
|
- tracks/scala/exercises/etl/src/main/scala/.keep
|
@@ -7617,6 +7619,7 @@ files:
|
|
7617
7619
|
- tracks/tcl/SETUP.md
|
7618
7620
|
- tracks/tcl/bin/fetch-configlet
|
7619
7621
|
- tracks/tcl/config.json
|
7622
|
+
- tracks/tcl/exercises/.keep
|
7620
7623
|
- tracks/tcl/img/icon.png
|
7621
7624
|
- tracks/teco/.git
|
7622
7625
|
- tracks/teco/.gitignore
|
@@ -1,30 +0,0 @@
|
|
1
|
-
import org.junit.Test
|
2
|
-
import static org.junit.Assert.assertTrue
|
3
|
-
import static org.junit.Assert.assertFalse
|
4
|
-
|
5
|
-
class LeapTest {
|
6
|
-
@Test
|
7
|
-
void testLeapYear() {
|
8
|
-
assertTrue new Year().isLeap(1996)
|
9
|
-
}
|
10
|
-
|
11
|
-
@Test
|
12
|
-
void testNonLeapYear() {
|
13
|
-
assertFalse new Year().isLeap(1997)
|
14
|
-
}
|
15
|
-
|
16
|
-
@Test
|
17
|
-
void testNonLeapYearEven() {
|
18
|
-
assertFalse new Year().isLeap(1998)
|
19
|
-
}
|
20
|
-
|
21
|
-
@Test
|
22
|
-
void testCentury() {
|
23
|
-
assertFalse new Year().isLeap(1900)
|
24
|
-
}
|
25
|
-
|
26
|
-
@Test
|
27
|
-
void testFourthCentury() {
|
28
|
-
assertTrue new Year().isLeap(2400)
|
29
|
-
}
|
30
|
-
}
|