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 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
- }