trackler 2.2.1.68 → 2.2.1.69
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
|