trackler 2.0.6.24 → 2.0.6.25
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
-
[![Build Status](https://travis-ci.org/exercism/
|
3
|
+
[![Build Status](https://travis-ci.org/exercism/xdelphi.png?branch=master)](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
|
-
[![Welcome Page](http://x.exercism.io/v3/tracks/
|
28
|
+
[![Welcome Page](http://x.exercism.io/v3/tracks/delphi/docs/img/00delphiwelcomepageLogo.png)](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
|
-
![Tools](http://x.exercism.io/v3/tracks/
|
32
|
+
![Tools](http://x.exercism.io/v3/tracks/delphi/docs/img/01delphiclicktools.png)
|
33
33
|
|
34
34
|
- Click `Options`.
|
35
35
|
|
36
|
-
![Options](http://x.exercism.io/v3/tracks/
|
36
|
+
![Options](http://x.exercism.io/v3/tracks/delphi/docs/img/02delphiclickoptions.png)
|
37
37
|
|
38
38
|
- Along the left side of the Options screen find and click on `Environment Variables`.
|
39
39
|
|
40
|
-
[![Options Screen Environment Variables](http://x.exercism.io/v3/tracks/
|
40
|
+
[![Options Screen Environment Variables](http://x.exercism.io/v3/tracks/delphi/docs/img/03delphioptionsenvironmentvariablesLogo.png)](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
|
-
![Click New](http://x.exercism.io/v3/tracks/
|
44
|
+
![Click New](http://x.exercism.io/v3/tracks/delphi/docs/img/04delphioptionsenvironmentvariablesclicknew.png)
|
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
|
-
![New User Variable](http://x.exercism.io/v3/tracks/
|
48
|
+
![New User Variable](http://x.exercism.io/v3/tracks/delphi/docs/img/05delphinewuservariable.png)
|
49
49
|
|
50
50
|
- Locate and click on `Library` along the left side of the Options screen.
|
51
51
|
|
52
|
-
[![Library](http://x.exercism.io/v3/tracks/
|
52
|
+
[![Library](http://x.exercism.io/v3/tracks/delphi/docs/img/06delphioptionslibraryLogo.png)](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
|
-
[![...button](http://x.exercism.io/v3/tracks/
|
56
|
+
[![...button](http://x.exercism.io/v3/tracks/delphi/docs/img/07delphiclicklibrarypathbuttonLogo.png)](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
|
-
![Directories](http://x.exercism.io/v3/tracks/
|
60
|
+
![Directories](http://x.exercism.io/v3/tracks/delphi/docs/img/08delphidirectoriesinputvarnameclickadd.png)
|
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
|
-
![ClickOK](http://x.exercism.io/v3/tracks/
|
66
|
+
![ClickOK](http://x.exercism.io/v3/tracks/delphi/docs/img/09delphidirectoriesclickok.png)
|
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
|
-
}
|