trackler 2.2.1.68 → 2.2.1.69
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/lib/trackler/version.rb +1 -1
- data/problem-specifications/exercises/pov/description.md +0 -2
- data/problem-specifications/exercises/protein-translation/canonical-data.json +3 -3
- data/problem-specifications/exercises/simple-cipher/description.md +4 -6
- data/tracks/csharp/exercises/all-your-base/AllYourBaseTest.cs +7 -7
- data/tracks/csharp/exercises/dominoes/README.md +2 -11
- data/tracks/csharp/exercises/reverse-string/ReverseStringTest.cs +2 -2
- data/tracks/dart/CONTRIBUTING.md +7 -4
- data/tracks/delphi/config.json +23 -20
- data/tracks/ecmascript/CONTRIBUTING.md +3 -0
- data/tracks/ecmascript/README.md +2 -5
- data/tracks/fsharp/config.json +11 -0
- data/tracks/fsharp/exercises/Exercises.sln +6 -0
- data/tracks/fsharp/exercises/all-your-base/AllYourBaseTest.fs +7 -7
- data/tracks/fsharp/exercises/diamond/Diamond.fsproj +1 -0
- data/tracks/fsharp/exercises/diamond/DiamondTest.fs +111 -114
- data/tracks/fsharp/exercises/diamond/README.md +2 -1
- data/tracks/fsharp/exercises/dominoes/README.md +2 -5
- data/tracks/fsharp/exercises/palindrome-products/Example.fs +27 -19
- data/tracks/fsharp/exercises/palindrome-products/PalindromeProducts.fs +3 -3
- data/tracks/fsharp/exercises/palindrome-products/PalindromeProductsTest.fs +52 -49
- data/tracks/fsharp/exercises/reverse-string/ReverseStringTest.fs +2 -2
- data/tracks/fsharp/exercises/spiral-matrix/Example.fs +35 -0
- data/tracks/fsharp/exercises/spiral-matrix/Program.fs +1 -0
- data/tracks/fsharp/exercises/spiral-matrix/README.md +25 -0
- data/tracks/fsharp/exercises/spiral-matrix/SpiralMatrix.fs +3 -0
- data/tracks/fsharp/exercises/spiral-matrix/SpiralMatrix.fsproj +23 -0
- data/tracks/fsharp/exercises/spiral-matrix/SpiralMatrixTest.fs +47 -0
- data/tracks/fsharp/generators/Generators.fs +42 -5
- data/tracks/fsharp/generators/Properties/launchSettings.json +1 -2
- data/tracks/java/config.json +7 -2
- data/tracks/java/exercises/binary-search-tree/src/test/java/BinarySearchTreeTest.java +0 -1
- data/tracks/javascript/.eslintignore +1 -2
- data/tracks/javascript/exercises/wordy/example.js +2 -2
- data/tracks/perl6/exercises/atbash-cipher/AtbashCipher.pm6 +6 -0
- data/tracks/perl6/exercises/atbash-cipher/atbash-cipher.t +2 -9
- data/tracks/perl6/exercises/atbash-cipher/example.yaml +8 -9
- data/tracks/perl6/exercises/grade-school/Example.pm6 +1 -1
- data/tracks/perl6/exercises/grade-school/GradeSchool.pm6 +1 -1
- data/tracks/perl6/exercises/grade-school/example.yaml +19 -12
- data/tracks/perl6/exercises/grade-school/grade-school.t +19 -12
- data/tracks/python/.github/stale.yml +6 -3
- data/tracks/python/config.json +17 -0
- data/tracks/python/exercises/dot-dsl/.meta/hints.md +14 -0
- data/tracks/python/exercises/dot-dsl/README.md +52 -0
- data/tracks/python/exercises/dot-dsl/dot_dsl.py +27 -0
- data/tracks/python/exercises/dot-dsl/dot_dsl_test.py +117 -0
- data/tracks/python/exercises/dot-dsl/example.py +52 -0
- data/tracks/python/exercises/proverb/README.md +5 -2
- data/tracks/python/exercises/proverb/example.py +5 -5
- data/tracks/python/exercises/proverb/proverb.py +1 -1
- data/tracks/python/exercises/proverb/proverb_test.py +42 -52
- data/tracks/python/exercises/say/example.py +2 -2
- data/tracks/python/exercises/say/say_test.py +2 -2
- data/tracks/rust/README.md +2 -0
- data/tracks/rust/_test/count-ignores.sh +15 -8
- data/tracks/rust/bin/test-exercise +4 -1
- data/tracks/rust/exercises/perfect-numbers/.meta/ignore-count-ignores +6 -0
- data/tracks/rust/exercises/perfect-numbers/tests/perfect-numbers.rs +32 -22
- data/tracks/typescript/config.json +16 -0
- data/tracks/typescript/exercises/two-bucket/README.md +66 -0
- data/tracks/typescript/exercises/two-bucket/package.json +36 -0
- data/tracks/typescript/exercises/two-bucket/tsconfig.json +22 -0
- data/tracks/typescript/exercises/two-bucket/tslint.json +127 -0
- data/tracks/typescript/exercises/two-bucket/two-bucket.example.ts +97 -0
- data/tracks/typescript/exercises/two-bucket/two-bucket.test.ts +47 -0
- data/tracks/typescript/exercises/two-bucket/two-bucket.ts +0 -0
- data/tracks/typescript/exercises/two-bucket/yarn.lock +2624 -0
- metadata +23 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c900f215603f2847b56ef3c2542264b3623c134a
|
|
4
|
+
data.tar.gz: 9cee0a9156eace5beff7d34a075513d00b956307
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f04eed61e824d8cfdcc8baa814ca910ef02348c106ab2fe518778458eada7dc50d70d9ee816bd9553891e9088ddc50aa9d4f2a526c41cbeddf58d838064c9a4f
|
|
7
|
+
data.tar.gz: 1a2cbfd9bbb5c12dcdcfce7aaf8577cbc20732ba6eaaa143cdd52351cc044ef7682cf450dbbc8e948c1ac0c167066502b3584c380297ab5a3d376e60e368aa99
|
data/lib/trackler/version.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"exercise": "protein-translation",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"cases": [
|
|
5
5
|
{
|
|
6
6
|
"description": "Translate input RNA sequences into proteins",
|
|
@@ -136,13 +136,13 @@
|
|
|
136
136
|
"expected": ["Methionine","Phenylalanine"]
|
|
137
137
|
},
|
|
138
138
|
{
|
|
139
|
-
"description": "Translation stops if STOP codon in middle of
|
|
139
|
+
"description": "Translation stops if STOP codon in middle of three-codon sequence",
|
|
140
140
|
"property": "proteins",
|
|
141
141
|
"strand": "UGGUAGUGG",
|
|
142
142
|
"expected": ["Tryptophan"]
|
|
143
143
|
},
|
|
144
144
|
{
|
|
145
|
-
"description": "Translation stops if codon in middle of
|
|
145
|
+
"description": "Translation stops if STOP codon in middle of six-codon sequence",
|
|
146
146
|
"property": "proteins",
|
|
147
147
|
"strand": "UGGUGUUAUUAAUGGUUU",
|
|
148
148
|
"expected": ["Tryptophan","Cysteine","Tyrosine"]
|
|
@@ -56,15 +56,13 @@ would get the same thing as the Caesar Cipher.
|
|
|
56
56
|
|
|
57
57
|
The weakest link in any cipher is the human being. Let's make your
|
|
58
58
|
substitution cipher a little more fault tolerant by providing a source
|
|
59
|
-
of randomness and ensuring that the key
|
|
60
|
-
capital letters.
|
|
59
|
+
of randomness and ensuring that the key contains only lowercase letters.
|
|
61
60
|
|
|
62
61
|
If someone doesn't submit a key at all, generate a truly random key of
|
|
63
|
-
at least 100 characters in length
|
|
64
|
-
syntax means instance variable)
|
|
62
|
+
at least 100 characters in length.
|
|
65
63
|
|
|
66
|
-
If the key submitted
|
|
67
|
-
|
|
64
|
+
If the key submitted is not composed only of lowercase letters, your
|
|
65
|
+
solution should handle the error in a language-appropriate way.
|
|
68
66
|
|
|
69
67
|
## Extensions
|
|
70
68
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// This file was auto-generated based on version 2.0.
|
|
1
|
+
// This file was auto-generated based on version 2.0.1 of the canonical data.
|
|
2
2
|
|
|
3
3
|
using Xunit;
|
|
4
4
|
using System;
|
|
@@ -126,7 +126,7 @@ public class AllYourBaseTest
|
|
|
126
126
|
}
|
|
127
127
|
|
|
128
128
|
[Fact(Skip = "Remove to run test")]
|
|
129
|
-
public void
|
|
129
|
+
public void Input_base_is_one()
|
|
130
130
|
{
|
|
131
131
|
var inputBase = 1;
|
|
132
132
|
var inputDigits = new int[0];
|
|
@@ -135,7 +135,7 @@ public class AllYourBaseTest
|
|
|
135
135
|
}
|
|
136
136
|
|
|
137
137
|
[Fact(Skip = "Remove to run test")]
|
|
138
|
-
public void
|
|
138
|
+
public void Input_base_is_zero()
|
|
139
139
|
{
|
|
140
140
|
var inputBase = 0;
|
|
141
141
|
var inputDigits = new int[0];
|
|
@@ -144,7 +144,7 @@ public class AllYourBaseTest
|
|
|
144
144
|
}
|
|
145
145
|
|
|
146
146
|
[Fact(Skip = "Remove to run test")]
|
|
147
|
-
public void
|
|
147
|
+
public void Input_base_is_negative()
|
|
148
148
|
{
|
|
149
149
|
var inputBase = -2;
|
|
150
150
|
var inputDigits = new[] { 1 };
|
|
@@ -171,7 +171,7 @@ public class AllYourBaseTest
|
|
|
171
171
|
}
|
|
172
172
|
|
|
173
173
|
[Fact(Skip = "Remove to run test")]
|
|
174
|
-
public void
|
|
174
|
+
public void Output_base_is_one()
|
|
175
175
|
{
|
|
176
176
|
var inputBase = 2;
|
|
177
177
|
var inputDigits = new[] { 1, 0, 1, 0, 1, 0 };
|
|
@@ -180,7 +180,7 @@ public class AllYourBaseTest
|
|
|
180
180
|
}
|
|
181
181
|
|
|
182
182
|
[Fact(Skip = "Remove to run test")]
|
|
183
|
-
public void
|
|
183
|
+
public void Output_base_is_zero()
|
|
184
184
|
{
|
|
185
185
|
var inputBase = 10;
|
|
186
186
|
var inputDigits = new[] { 7 };
|
|
@@ -189,7 +189,7 @@ public class AllYourBaseTest
|
|
|
189
189
|
}
|
|
190
190
|
|
|
191
191
|
[Fact(Skip = "Remove to run test")]
|
|
192
|
-
public void
|
|
192
|
+
public void Output_base_is_negative()
|
|
193
193
|
{
|
|
194
194
|
var inputBase = 2;
|
|
195
195
|
var inputDigits = new[] { 1 };
|
|
@@ -1,24 +1,15 @@
|
|
|
1
1
|
# Dominoes
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Compute a way to order a given set of dominoes in such a way that they form a
|
|
3
|
+
Compute whether there exists a way to order a given set of dominoes in such a way that they form a
|
|
6
4
|
correct domino chain (the dots on one half of a stone match the dots on the
|
|
7
5
|
neighbouring half of an adjacent stone) and that dots on the halfs of the stones
|
|
8
6
|
which don't have a neighbour (the first and last stone) match each other.
|
|
9
7
|
|
|
10
|
-
For example given the stones `21`, `23` and `13` you should
|
|
11
|
-
like `12 23 31` or `32 21 13` or `13 32 21` etc, where the first and last numbers are the same.
|
|
8
|
+
For example given the stones `21`, `23` and `13` you should declare that there exists a possible chain (for example, `12`, `23` and `31` is a possible chain).
|
|
12
9
|
|
|
13
10
|
For stones 12, 41 and 23 the resulting chain is not valid: 41 12 23's first and last numbers are not the same. 4 != 3
|
|
14
11
|
|
|
15
12
|
Some test cases may use duplicate stones in a chain solution, assume that multiple Domino sets are being used.
|
|
16
13
|
|
|
17
|
-
### Submitting Exercises
|
|
18
|
-
|
|
19
|
-
Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/<exerciseName>` directory.
|
|
20
|
-
|
|
21
|
-
For example, if you're submitting `bob.cs` for the Bob exercise, the submit command would be something like `exercism submit <path_to_exercism_dir>/csharp/bob/bob.cs`.
|
|
22
|
-
|
|
23
14
|
## Submitting Incomplete Solutions
|
|
24
15
|
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
// This file was auto-generated based on version 1.0.
|
|
1
|
+
// This file was auto-generated based on version 1.0.1 of the canonical data.
|
|
2
2
|
|
|
3
3
|
using Xunit;
|
|
4
4
|
|
|
5
5
|
public class ReverseStringTest
|
|
6
6
|
{
|
|
7
7
|
[Fact]
|
|
8
|
-
public void
|
|
8
|
+
public void An_empty_string()
|
|
9
9
|
{
|
|
10
10
|
Assert.Equal("", ReverseString.Reverse(""));
|
|
11
11
|
}
|
data/tracks/dart/CONTRIBUTING.md
CHANGED
|
@@ -32,16 +32,17 @@ Please keep the following in mind:
|
|
|
32
32
|
|
|
33
33
|
- Please run the following commands before submitting your PR:
|
|
34
34
|
* `pub run test` - All the tests for Dart exercises can be run from the top level of the repo with this command
|
|
35
|
-
* `bin/configlet
|
|
35
|
+
* `bin/fetch-configlet` - Downloads the latest version of configlet and stores it in the bin/ directory
|
|
36
|
+
* `bin/configlet lint --track-id dart .` - Checks the config.json for formatting issues
|
|
36
37
|
* `bin/configlet fmt .` - Formats the config.json
|
|
37
38
|
* `bin/check_formatting` - Checks All the Dart files for formatting issues
|
|
38
39
|
* `pub run dart_style:format -l 120 -w .` - Formats all the Dart files
|
|
39
40
|
|
|
40
|
-
- Once a Pull Request is approved, the contributing branch will be
|
|
41
|
+
- Once a Pull Request is approved, the contributing branch will be rebased onto the latest version of our master branch.
|
|
41
42
|
|
|
42
43
|
## Contributing a New Exercise ###
|
|
43
44
|
|
|
44
|
-
- All Exercism exercises must be defined in [problem-specifications](https://github.com/exercism/problem-specifications/tree/master/exercises) before they are implemented for a specific track.
|
|
45
|
+
- All Exercism exercises must be defined in [problem-specifications](https://github.com/exercism/problem-specifications/tree/master/exercises) before they are implemented for a specific track. If your exercise is new, please submit a PR to [exercism/problem-specification].
|
|
45
46
|
|
|
46
47
|
- Please make sure the new exercise conforms to specifications in the [exercism/problem-specifications](https://github.com/exercism/problem-specifications) repo.
|
|
47
48
|
|
|
@@ -58,4 +59,6 @@ Please keep the following in mind:
|
|
|
58
59
|
|
|
59
60
|
- Please do not commit any configuration files or directories inside the exercise other than pubspec.lock and pubspec.yaml
|
|
60
61
|
|
|
61
|
-
- Be sure to add
|
|
62
|
+
- Be sure to add the new exercise to the appropriate place in the `config.json` file.
|
|
63
|
+
|
|
64
|
+
- Please run `bin/fetch-configlet && bin/configlet lint --track-id dart .` to ensure the exercise is configured correctly.
|
data/tracks/delphi/config.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"blurb": "Object Pascal based, Delphi is great for developing cross-platform desktop, mobile, web, and console applications.",
|
|
4
4
|
"exercises": [
|
|
5
5
|
{
|
|
6
|
-
"core":
|
|
6
|
+
"core": true,
|
|
7
7
|
"difficulty": 1,
|
|
8
8
|
"slug": "hello-world",
|
|
9
9
|
"topics": [
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"uuid": "497011b8-4dcf-4084-a7d1-11ea954e605f"
|
|
14
14
|
},
|
|
15
15
|
{
|
|
16
|
-
"core":
|
|
16
|
+
"core": false,
|
|
17
17
|
"difficulty": 1,
|
|
18
18
|
"slug": "two-fer",
|
|
19
19
|
"topics": [
|
|
@@ -50,29 +50,29 @@
|
|
|
50
50
|
"strings",
|
|
51
51
|
"transforming"
|
|
52
52
|
],
|
|
53
|
-
"unlocked_by":
|
|
53
|
+
"unlocked_by": "roman-numerals",
|
|
54
54
|
"uuid": "4a50bfd2-f6c9-480e-af82-d468cf585f0d"
|
|
55
55
|
},
|
|
56
56
|
{
|
|
57
|
-
"core":
|
|
57
|
+
"core": true,
|
|
58
58
|
"difficulty": 2,
|
|
59
59
|
"slug": "raindrops",
|
|
60
60
|
"topics": [
|
|
61
61
|
"filtering",
|
|
62
62
|
"text_formatting"
|
|
63
63
|
],
|
|
64
|
-
"unlocked_by":
|
|
64
|
+
"unlocked_by": null,
|
|
65
65
|
"uuid": "2617f4a3-cf0e-4690-a464-45eac3f97317"
|
|
66
66
|
},
|
|
67
67
|
{
|
|
68
68
|
"core": false,
|
|
69
|
-
"difficulty":
|
|
69
|
+
"difficulty": 1,
|
|
70
70
|
"slug": "hamming",
|
|
71
71
|
"topics": [
|
|
72
72
|
"filtering",
|
|
73
73
|
"strings"
|
|
74
74
|
],
|
|
75
|
-
"unlocked_by":
|
|
75
|
+
"unlocked_by": "hello-world",
|
|
76
76
|
"uuid": "c623f1f2-8e54-4c46-a577-2570fa2f317b"
|
|
77
77
|
},
|
|
78
78
|
{
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
"topics": [
|
|
83
83
|
"classes"
|
|
84
84
|
],
|
|
85
|
-
"unlocked_by":
|
|
85
|
+
"unlocked_by": "clock",
|
|
86
86
|
"uuid": "777f9f9e-acf8-4b73-89c7-ee08d4ff49e3"
|
|
87
87
|
},
|
|
88
88
|
{
|
|
@@ -108,17 +108,18 @@
|
|
|
108
108
|
"uuid": "f22f0ac1-3836-4ece-9c47-491929c8fc85"
|
|
109
109
|
},
|
|
110
110
|
{
|
|
111
|
-
"core":
|
|
111
|
+
"core": false,
|
|
112
112
|
"difficulty": 2,
|
|
113
113
|
"slug": "grains",
|
|
114
114
|
"topics": [
|
|
115
115
|
"integers",
|
|
116
116
|
"recursion"
|
|
117
117
|
],
|
|
118
|
+
"unlocked_by": "leap",
|
|
118
119
|
"uuid": "d0ddd5dc-30cd-4876-937d-9e89bae7dc93"
|
|
119
120
|
},
|
|
120
121
|
{
|
|
121
|
-
"core":
|
|
122
|
+
"core": true,
|
|
122
123
|
"difficulty": 2,
|
|
123
124
|
"slug": "collatz-conjecture",
|
|
124
125
|
"topics": [
|
|
@@ -137,17 +138,18 @@
|
|
|
137
138
|
"algorithms",
|
|
138
139
|
"text_formatting"
|
|
139
140
|
],
|
|
140
|
-
"unlocked_by": "
|
|
141
|
+
"unlocked_by": "raindrops",
|
|
141
142
|
"uuid": "48f443f6-3bbc-4086-9f47-f46bcfa0623a"
|
|
142
143
|
},
|
|
143
144
|
{
|
|
144
|
-
"core":
|
|
145
|
+
"core": false,
|
|
145
146
|
"difficulty": 3,
|
|
146
147
|
"slug": "phone-number",
|
|
147
148
|
"topics": [
|
|
148
149
|
"parsing",
|
|
149
150
|
"transforming"
|
|
150
151
|
],
|
|
152
|
+
"unlocked_by": "collatz-conjecture",
|
|
151
153
|
"uuid": "cba5cf99-8001-4113-af80-cf9c041f1b21"
|
|
152
154
|
},
|
|
153
155
|
{
|
|
@@ -161,7 +163,7 @@
|
|
|
161
163
|
"uuid": "964abaeb-b1b6-4609-bb9e-ca569302f406"
|
|
162
164
|
},
|
|
163
165
|
{
|
|
164
|
-
"core":
|
|
166
|
+
"core": true,
|
|
165
167
|
"difficulty": 3,
|
|
166
168
|
"slug": "binary-search",
|
|
167
169
|
"topics": [
|
|
@@ -169,7 +171,7 @@
|
|
|
169
171
|
"recursion",
|
|
170
172
|
"searching"
|
|
171
173
|
],
|
|
172
|
-
"unlocked_by":
|
|
174
|
+
"unlocked_by": null,
|
|
173
175
|
"uuid": "b1cfe374-4881-4e06-9333-d5d9b367580f"
|
|
174
176
|
},
|
|
175
177
|
{
|
|
@@ -183,13 +185,14 @@
|
|
|
183
185
|
"uuid": "0223dfe4-3ff4-4f4e-8cd2-821e1fd50217"
|
|
184
186
|
},
|
|
185
187
|
{
|
|
186
|
-
"core":
|
|
188
|
+
"core": false,
|
|
187
189
|
"difficulty": 3,
|
|
188
190
|
"slug": "triangle",
|
|
189
191
|
"topics": [
|
|
190
192
|
"enumerations",
|
|
191
193
|
"integers"
|
|
192
194
|
],
|
|
195
|
+
"unlocked_by": "leap",
|
|
193
196
|
"uuid": "f5d43bcd-34fe-4b96-a687-254f7c0f5601"
|
|
194
197
|
},
|
|
195
198
|
{
|
|
@@ -224,14 +227,14 @@
|
|
|
224
227
|
"uuid": "f949b958-d2e0-4f21-a6db-12ba89f8ab57"
|
|
225
228
|
},
|
|
226
229
|
{
|
|
227
|
-
"core":
|
|
230
|
+
"core": true,
|
|
228
231
|
"difficulty": 5,
|
|
229
232
|
"slug": "minesweeper",
|
|
230
233
|
"topics": [
|
|
231
234
|
"parsing",
|
|
232
235
|
"transforming"
|
|
233
236
|
],
|
|
234
|
-
"unlocked_by":
|
|
237
|
+
"unlocked_by": null,
|
|
235
238
|
"uuid": "5ab52a90-8a72-42f8-b430-042436041348"
|
|
236
239
|
},
|
|
237
240
|
{
|
|
@@ -252,7 +255,7 @@
|
|
|
252
255
|
"algorithms",
|
|
253
256
|
"control_flow_loops"
|
|
254
257
|
],
|
|
255
|
-
"unlocked_by":
|
|
258
|
+
"unlocked_by": "circular-buffer",
|
|
256
259
|
"uuid": "88f7ab7d-30c1-4cb5-81ff-1114b5f78291"
|
|
257
260
|
},
|
|
258
261
|
{
|
|
@@ -287,7 +290,7 @@
|
|
|
287
290
|
"strings",
|
|
288
291
|
"transforming"
|
|
289
292
|
],
|
|
290
|
-
"unlocked_by": "
|
|
293
|
+
"unlocked_by": "minesweeper",
|
|
291
294
|
"uuid": "24d81651-de3b-4cc8-8a4a-67cefc0453f6"
|
|
292
295
|
},
|
|
293
296
|
{
|
|
@@ -299,7 +302,7 @@
|
|
|
299
302
|
"parsing",
|
|
300
303
|
"sorting"
|
|
301
304
|
],
|
|
302
|
-
"unlocked_by":
|
|
305
|
+
"unlocked_by": "minesweeper",
|
|
303
306
|
"uuid": "d4f0509b-2687-4ee2-adbb-2a1a295a9975"
|
|
304
307
|
}
|
|
305
308
|
],
|
data/tracks/ecmascript/README.md
CHANGED
|
@@ -30,9 +30,6 @@ The make script will test all exercises:
|
|
|
30
30
|
Pass the exercise name to make script to run the tests for a specific exercise:
|
|
31
31
|
|
|
32
32
|
make test-assignment ASSIGNMENT=hello-world
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
|
|
35
34
|
## Contributing Guide
|
|
36
|
-
|
|
37
|
-
For an in-depth discussion of how exercism language tracks and exercises work, please see the [contributing guide](https://github.com/exercism/x-api/blob/master/CONTRIBUTING.md#the-exercise-data)
|
|
38
|
-
|
|
35
|
+
For an in-depth discussion of how exercism language tracks and exercises work, please see [CONTRIBUTING.md](https://github.com/exercism/ecmascript/blob/master/CONTRIBUTING.md)
|
data/tracks/fsharp/config.json
CHANGED
|
@@ -866,6 +866,17 @@
|
|
|
866
866
|
"unlocked_by": "accumulate",
|
|
867
867
|
"uuid": "3741977a-adff-47bb-a9c5-c2e444805bac"
|
|
868
868
|
},
|
|
869
|
+
{
|
|
870
|
+
"core": false,
|
|
871
|
+
"difficulty": 5,
|
|
872
|
+
"slug": "spiral-matrix",
|
|
873
|
+
"topics": [
|
|
874
|
+
"algorithms",
|
|
875
|
+
"matrices"
|
|
876
|
+
],
|
|
877
|
+
"unlocked_by": "matrix",
|
|
878
|
+
"uuid": "52f8f299-b93b-4f44-bd5b-b445741b285d"
|
|
879
|
+
},
|
|
869
880
|
{
|
|
870
881
|
"core": false,
|
|
871
882
|
"difficulty": 6,
|
|
@@ -220,6 +220,8 @@ Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "RotationalCipher", "rotatio
|
|
|
220
220
|
EndProject
|
|
221
221
|
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "IsbnVerifier", "isbn-verifier\IsbnVerifier.fsproj", "{531D1AB8-1297-4DE2-9B9B-3742A648EDB7}"
|
|
222
222
|
EndProject
|
|
223
|
+
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "SpiralMatrix", "spiral-matrix\SpiralMatrix.fsproj", "{4C02F0E3-90F6-4ACD-9D34-EDFF301B058D}"
|
|
224
|
+
EndProject
|
|
223
225
|
Global
|
|
224
226
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
225
227
|
Debug|Any CPU = Debug|Any CPU
|
|
@@ -662,6 +664,10 @@ Global
|
|
|
662
664
|
{531D1AB8-1297-4DE2-9B9B-3742A648EDB7}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
663
665
|
{531D1AB8-1297-4DE2-9B9B-3742A648EDB7}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
664
666
|
{531D1AB8-1297-4DE2-9B9B-3742A648EDB7}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
667
|
+
{4C02F0E3-90F6-4ACD-9D34-EDFF301B058D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
668
|
+
{4C02F0E3-90F6-4ACD-9D34-EDFF301B058D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
669
|
+
{4C02F0E3-90F6-4ACD-9D34-EDFF301B058D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
670
|
+
{4C02F0E3-90F6-4ACD-9D34-EDFF301B058D}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
665
671
|
EndGlobalSection
|
|
666
672
|
GlobalSection(SolutionProperties) = preSolution
|
|
667
673
|
HideSolutionNode = FALSE
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// This file was auto-generated based on version 2.0.
|
|
1
|
+
// This file was auto-generated based on version 2.0.1 of the canonical data.
|
|
2
2
|
|
|
3
3
|
module AllYourBaseTest
|
|
4
4
|
|
|
@@ -104,7 +104,7 @@ let ``Leading zeros`` () =
|
|
|
104
104
|
rebase inputBase inputDigits outputBase |> should equal expected
|
|
105
105
|
|
|
106
106
|
[<Fact(Skip = "Remove to run test")>]
|
|
107
|
-
let ``
|
|
107
|
+
let ``Input base is one`` () =
|
|
108
108
|
let inputBase = 1
|
|
109
109
|
let inputDigits = []
|
|
110
110
|
let outputBase = 10
|
|
@@ -112,7 +112,7 @@ let ``First base is one`` () =
|
|
|
112
112
|
rebase inputBase inputDigits outputBase |> should equal expected
|
|
113
113
|
|
|
114
114
|
[<Fact(Skip = "Remove to run test")>]
|
|
115
|
-
let ``
|
|
115
|
+
let ``Input base is zero`` () =
|
|
116
116
|
let inputBase = 0
|
|
117
117
|
let inputDigits = []
|
|
118
118
|
let outputBase = 10
|
|
@@ -120,7 +120,7 @@ let ``First base is zero`` () =
|
|
|
120
120
|
rebase inputBase inputDigits outputBase |> should equal expected
|
|
121
121
|
|
|
122
122
|
[<Fact(Skip = "Remove to run test")>]
|
|
123
|
-
let ``
|
|
123
|
+
let ``Input base is negative`` () =
|
|
124
124
|
let inputBase = -2
|
|
125
125
|
let inputDigits = [1]
|
|
126
126
|
let outputBase = 10
|
|
@@ -144,7 +144,7 @@ let ``Invalid positive digit`` () =
|
|
|
144
144
|
rebase inputBase inputDigits outputBase |> should equal expected
|
|
145
145
|
|
|
146
146
|
[<Fact(Skip = "Remove to run test")>]
|
|
147
|
-
let ``
|
|
147
|
+
let ``Output base is one`` () =
|
|
148
148
|
let inputBase = 2
|
|
149
149
|
let inputDigits = [1; 0; 1; 0; 1; 0]
|
|
150
150
|
let outputBase = 1
|
|
@@ -152,7 +152,7 @@ let ``Second base is one`` () =
|
|
|
152
152
|
rebase inputBase inputDigits outputBase |> should equal expected
|
|
153
153
|
|
|
154
154
|
[<Fact(Skip = "Remove to run test")>]
|
|
155
|
-
let ``
|
|
155
|
+
let ``Output base is zero`` () =
|
|
156
156
|
let inputBase = 10
|
|
157
157
|
let inputDigits = [7]
|
|
158
158
|
let outputBase = 0
|
|
@@ -160,7 +160,7 @@ let ``Second base is zero`` () =
|
|
|
160
160
|
rebase inputBase inputDigits outputBase |> should equal expected
|
|
161
161
|
|
|
162
162
|
[<Fact(Skip = "Remove to run test")>]
|
|
163
|
-
let ``
|
|
163
|
+
let ``Output base is negative`` () =
|
|
164
164
|
let inputBase = 2
|
|
165
165
|
let inputDigits = [1]
|
|
166
166
|
let outputBase = -7
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
<PackageReference Include="xunit" Version="2.3.1" />
|
|
18
18
|
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" />
|
|
19
19
|
<PackageReference Include="FsUnit.xUnit" Version="3.0.0" />
|
|
20
|
+
<PackageReference Include="FsCheck.Xunit" Version="2.10.4" />
|
|
20
21
|
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.1" />
|
|
21
22
|
</ItemGroup>
|
|
22
23
|
|