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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1593ab1497280369f87b146bd439ac70f6444464
4
- data.tar.gz: e3bae8d94adb9fece37d61af04b768e9703da439
3
+ metadata.gz: 9763766ea797f1e86a38a58b714beeef17a5628f
4
+ data.tar.gz: 7a9946b3ae2f97f0e2ebc73bd09f4ff5a9817b07
5
5
  SHA512:
6
- metadata.gz: 161368be3060fe113c81dc82849060a1508eb83a7f7453a54f0d74ec0f7ba99ecc75bb2ef6d020fb34863e062b57d292b07c9f4a127e9827215a93251317b210
7
- data.tar.gz: 696e7f43996b7a9f0dc09ef87d90bc10f7c19541b2ee97484319fab8a4769b52ac9607a78d1b858f3fb33c1a30ffaaeda35e805ec157d2f3779c85b99603b9bf
6
+ metadata.gz: ed82b161061cde6fdb568c4a689c69de16fb71e1e9f6f450719b8596f6e619d19ef027f0c46e082187a1812236fcaa0883924a7c67a4f8cf012361c2433fb77f
7
+ data.tar.gz: 4532d2aa2753daed3f20cf6a28af54bb14a83dce4f459c864c83b3f1b8186df930d1e78f1c68b91338b2e9d6deada4a346a8fa13fad597a246f2c6b2027fd0f2
@@ -1,20 +1,13 @@
1
- The Greek mathematican Nicomachus devised a classification scheme for
2
- natural numbers, identifying each as belonging uniquely to the
3
- categories of _abundant_, _perfect_, or _deficient_. A perfect number
4
- equals the sum of its positive divisors the pairs of numbers whose
5
- product yields the target number, excluding the number itself.
6
-
7
- - Perfect: Sum of factors = number
8
- - Abundant: Sum of factors > number
9
- - Deficient: Sum of factors < number
10
-
11
- The Aliquot sum is defined as the sum of the factors of a number not
12
- including the number itself.
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
+ }
@@ -1,3 +1,3 @@
1
1
  module Trackler
2
- VERSION = "2.0.6.24"
2
+ VERSION = "2.0.6.25"
3
3
  end
@@ -1,13 +1,5 @@
1
- C# is a modern, object oriented language which is developed and maintained by Microsoft.
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
- The syntax of C# is very similar to other languages like Java and C++.
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
- C# is a reasonably popular language, in 2014 it was surveyed that 5% of developers used it. The learning curve is small, reduced even if the developer has experience with other 'C-Style' languages.
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
- Exercism provides exercises and feedback but can be difficult to jump into for those learning C# for the first time. These resources can help you get started:
2
-
3
- * [Channel9 Series: C# Fundamentals](http://channel9.msdn.com/Series/C-Sharp-Fundamentals-Development-for-Absolute-Beginners)
4
- * [MSDN Walkthrough: Getting Started with C#](http://msdn.microsoft.com/library/vstudio/dd492171(v=vs.120))
5
- * [.NET Framework Development Guide](http://msdn.microsoft.com/library/vstudio/hh156542)
6
- * [StackOverflow](http://stackoverflow.com/)
7
- * [C#](http://stackoverflow.com/questions/tagged/c%23)
8
- * [.NET](http://stackoverflow.com/questions/tagged/.net)
9
- * [NUnit](http://stackoverflow.com/questions/tagged/nunit)
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
- ## Code Analysis
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
- **NOTE:** This will add a bit of extra time to compile the project.
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
- Code A uses FxCop to run the analysis. [FxCop](http://www.microsoft.com/en-us/download/details.aspx?id=6544) can be run separately as a stand alone program.
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
- [StyleCop](https://stylecop.codeplex.com/) can be installed and run inside Visual Studio to analyze the code style.
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)
@@ -1,8 +1,8 @@
1
- # xPascal
1
+ # xDelphi
2
2
 
3
- [![Build Status](https://travis-ci.org/exercism/xpascal.png?branch=master)](https://travis-ci.org/exercism/xpascal)
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
 
@@ -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/pascal/<exerciseName>` directory.
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>/pascal/bob/ubob.pas`.
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`.
@@ -1,7 +1,7 @@
1
1
  {
2
- "slug": "pascal",
2
+ "slug": "delphi",
3
3
  "language": "Delphi Pascal",
4
- "repository": "https://github.com/exercism/xpascal",
4
+ "repository": "https://github.com/exercism/xdelphi",
5
5
  "active": false,
6
6
  "exercises": [
7
7
  {
@@ -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/pascal/docs/img/00delphiwelcomepageLogo.png)](http://x.exercism.io/v3/tracks/pascal/docs/img/00delphiwelcomepage.png)
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/pascal/docs/img/01delphiclicktools.png)
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/pascal/docs/img/02delphiclickoptions.png)
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/pascal/docs/img/03delphioptionsenvironmentvariablesLogo.png)](http://x.exercism.io/v3/tracks/pascal/docs/img/03delphioptionsenvironmentvariables.png)
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/pascal/docs/img/04delphioptionsenvironmentvariablesclicknew.png)
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/pascal/docs/img/05delphinewuservariable.png)
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/pascal/docs/img/06delphioptionslibraryLogo.png)](http://x.exercism.io/v3/tracks/pascal/docs/img/06delphioptionslibrary.png)
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/pascal/docs/img/07delphiclicklibrarypathbuttonLogo.png)](http://x.exercism.io/v3/tracks/pascal/docs/img/07delphiclicklibrarypathbutton.png)
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/pascal/docs/img/08delphidirectoriesinputvarnameclickadd.png)
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/pascal/docs/img/09delphidirectoriesclickok.png)
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
 
Binary file
@@ -1,5 +1,13 @@
1
1
  class Year {
2
- def isLeap(i) {
3
- (i % 4) == 0 && ((i % 400) == 0 || (i % 100) != 0)
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
+ }
@@ -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 exercise and how users solve them.
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.
@@ -0,0 +1,2 @@
1
+ As of [issue 3336](https://github.com/exercism/exercism.io/issues/3336),
2
+ all exercises should go into the exercises directory.
@@ -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.11.8"
1
+ scalaVersion := "2.12.1"
2
2
 
3
- libraryDependencies += "org.scalatest" % "scalatest_2.11" % "2.2.5" % "test"
3
+ libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.1" % "test"
@@ -1,4 +1,4 @@
1
- scalaVersion := "2.11.8"
1
+ scalaVersion := "2.12.1"
2
2
 
3
- libraryDependencies += "org.scalatest" % "scalatest_2.11" % "2.2.5" % "test"
4
- libraryDependencies += "org.scala-lang.modules" %% "scala-parser-combinators" % "1.0.4"
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.11.8"
1
+ scalaVersion := "2.12.1"
2
2
 
3
- libraryDependencies += "org.scalatest" % "scalatest_2.11" % "2.2.5" % "test"
3
+ libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.1" % "test"
@@ -1,3 +1,4 @@
1
- scalaVersion := "2.11.8"
1
+ scalaVersion := "2.12.1"
2
+
3
+ libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.1" % "test"
2
4
 
3
- libraryDependencies += "org.scalatest" % "scalatest_2.11" % "2.2.5" % "test"
@@ -1,6 +1,6 @@
1
1
  import org.scalatest.{FunSuite, Matchers}
2
2
 
3
- class DominoesSuite extends FunSuite with Matchers {
3
+ class DominoesTest extends FunSuite with Matchers {
4
4
 
5
5
  test("empty input = empty output") {
6
6
  check(List(), true)
@@ -1,3 +1,3 @@
1
- scalaVersion := "2.11.8"
1
+ scalaVersion := "2.12.1"
2
2
 
3
- libraryDependencies += "org.scalatest" % "scalatest_2.11" % "2.2.5" % "test"
3
+ libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.1" % "test"
@@ -1,3 +1,3 @@
1
- scalaVersion := "2.11.8"
1
+ scalaVersion := "2.12.1"
2
2
 
3
- libraryDependencies += "org.scalatest" % "scalatest_2.11" % "2.2.5" % "test"
3
+ libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.1" % "test"
@@ -8,7 +8,7 @@ import scala.util.parsing.json.{JSONArray, JSONObject, JSON}
8
8
 
9
9
  object XScalaBuild extends Build {
10
10
 
11
- scalaVersion := "2.11.7"
11
+ scalaVersion := "2.12.1"
12
12
  name := "xscala"
13
13
 
14
14
  val commonSettings = Seq(
@@ -0,0 +1,2 @@
1
+ As of [issue 3336](https://github.com/exercism/exercism.io/issues/3336),
2
+ all exercises should go into the exercises directory.
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.24
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-28 00:00:00.000000000 Z
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/LeapTest.groovy
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/DominoesSuite.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
- }