trackler 2.2.1.115 → 2.2.1.116
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/yacht/canonical-data.json +251 -0
- data/problem-specifications/exercises/yacht/description.md +34 -0
- data/problem-specifications/exercises/yacht/metadata.yml +5 -0
- data/tracks/c/docs/C_STYLE_GUIDE.md +4 -4
- data/tracks/csharp/config.json +1 -1
- data/tracks/dart/.travis.yml +2 -4
- data/tracks/dart/CONTRIBUTING.md +2 -6
- data/tracks/dart/bin/check_formatting.dart +17 -0
- data/tracks/dart/bin/presubmit.dart +20 -0
- data/tracks/dart/config.json +1 -1
- data/tracks/dart/exercises/hamming/lib/example.dart +1 -1
- data/tracks/dart/exercises/hamming/test/hamming_test.dart +33 -20
- data/tracks/dart/exercises/word-count/pubspec.yaml +1 -1
- data/tracks/dart/exercises/word-count/test/word_count_test.dart +30 -20
- data/tracks/dart/lib/src/utils.dart +58 -0
- data/tracks/dart/pubspec.yaml +1 -0
- data/tracks/python/.github/stale.yml +1 -0
- data/tracks/scala/config.json +2 -2
- data/tracks/scala/exercises/space-age/src/test/scala/SpaceAgeTest.scala +2 -2
- data/tracks/scala/exercises/spiral-matrix/src/test/scala/SpiralMatrixTest.scala +20 -25
- data/tracks/scala/exercises/sublist/src/test/scala/SublistTest.scala +27 -19
- data/tracks/scala/exercises/sum-of-multiples/src/test/scala/SumOfMultiplesTest.scala +15 -15
- data/tracks/scala/testgen/src/main/scala/SpaceAgeTestGenerator.scala +9 -8
- data/tracks/scala/testgen/src/main/scala/SpiralMatrixTestGenerator.scala +2 -4
- data/tracks/scala/testgen/src/main/scala/SublistTestGenerator.scala +3 -3
- data/tracks/scala/testgen/src/main/scala/SumOfMultiplesTestGenerator.scala +6 -6
- data/tracks/scala/testgen/src/main/scala/testgen/TestSuiteBuilder.scala +8 -0
- data/tracks/typescript/config.json +45 -15
- data/tracks/typescript/exercises/bracket-push/README.md +36 -0
- data/tracks/typescript/exercises/bracket-push/bracket-push.example.ts +50 -0
- data/tracks/typescript/exercises/bracket-push/bracket-push.test.ts +73 -0
- data/tracks/typescript/exercises/bracket-push/bracket-push.ts +0 -0
- data/tracks/typescript/exercises/bracket-push/package.json +36 -0
- data/tracks/typescript/exercises/bracket-push/tsconfig.json +22 -0
- data/tracks/typescript/exercises/bracket-push/tslint.json +127 -0
- data/tracks/typescript/exercises/bracket-push/yarn.lock +2624 -0
- data/tracks/typescript/exercises/variable-length-quantity/README.md +64 -0
- data/tracks/typescript/exercises/variable-length-quantity/package.json +36 -0
- data/tracks/typescript/exercises/variable-length-quantity/tsconfig.json +22 -0
- data/tracks/typescript/exercises/variable-length-quantity/tslint.json +127 -0
- data/tracks/typescript/exercises/variable-length-quantity/variable-length-quantity.example.ts +55 -0
- data/tracks/typescript/exercises/variable-length-quantity/variable-length-quantity.test.ts +115 -0
- data/tracks/typescript/exercises/variable-length-quantity/variable-length-quantity.ts +0 -0
- data/tracks/typescript/exercises/variable-length-quantity/yarn.lock +2624 -0
- metadata +24 -5
- data/tracks/dart/bin/check_formatting +0 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0aae28d0f054933886687244d59d5cac2b1e40e2
|
4
|
+
data.tar.gz: 224c04be34690e5137ab56043c4b023631dce533
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a93c8b0204daf3f7460f2af8f9ce338c46f93a0637eefe73b19b74c74a710c8b3bd407cf4678298bf81051aeb047ae8898ed1511fca6c6f7a73303f04c68a5a0
|
7
|
+
data.tar.gz: 21785aa9e8b63124a89b4535d889da17fc0b265cd2ac1b3ed98c561849f051035d0938bda4eac0224cb49d68b3c0eb877ccb7fb5ad191272ba49ee7ecdb491fc
|
data/lib/trackler/version.rb
CHANGED
@@ -0,0 +1,251 @@
|
|
1
|
+
{
|
2
|
+
"exercise":"yacht",
|
3
|
+
"version":"1.0.0",
|
4
|
+
"comments":[
|
5
|
+
"The dice are represented always as a list of exactly five integers",
|
6
|
+
"with values between 1 and 6 inclusive. The category is an string.",
|
7
|
+
"the categories are 'ones' to 'sixes',",
|
8
|
+
"Then 'full house',",
|
9
|
+
" 'four of a kind'",
|
10
|
+
" 'little straight' 1-5",
|
11
|
+
" 'big straight' 2-6",
|
12
|
+
" 'choice', sometimes called Chance",
|
13
|
+
" 'yacht', or five of a kind"
|
14
|
+
],
|
15
|
+
"cases":[
|
16
|
+
{
|
17
|
+
"description":"Yacht",
|
18
|
+
"property":"score",
|
19
|
+
"input":{
|
20
|
+
"dice":[5, 5, 5, 5, 5],
|
21
|
+
"category":"yacht"
|
22
|
+
},
|
23
|
+
"expected":50
|
24
|
+
},
|
25
|
+
{
|
26
|
+
"description":"Not Yacht",
|
27
|
+
"property":"score",
|
28
|
+
"input":{
|
29
|
+
"dice":[1, 3, 3, 2, 5],
|
30
|
+
"category":"yacht"
|
31
|
+
},
|
32
|
+
"expected":0
|
33
|
+
},
|
34
|
+
{
|
35
|
+
"description":"Ones",
|
36
|
+
"property":"score",
|
37
|
+
"input":{
|
38
|
+
"dice":[1, 1, 1, 3, 5],
|
39
|
+
"category":"ones"
|
40
|
+
},
|
41
|
+
"expected":3
|
42
|
+
},
|
43
|
+
{
|
44
|
+
"description":"Ones, out of order",
|
45
|
+
"property":"score",
|
46
|
+
"input":{
|
47
|
+
"dice":[3, 1, 1, 5, 1],
|
48
|
+
"category":"ones"
|
49
|
+
},
|
50
|
+
"expected":3
|
51
|
+
},
|
52
|
+
{
|
53
|
+
"description":"No ones",
|
54
|
+
"property":"score",
|
55
|
+
"input":{
|
56
|
+
"dice":[4, 3, 6, 5, 5],
|
57
|
+
"category":"ones"
|
58
|
+
},
|
59
|
+
"expected":0
|
60
|
+
},
|
61
|
+
{
|
62
|
+
"description":"Twos",
|
63
|
+
"property":"score",
|
64
|
+
"input":{
|
65
|
+
"dice":[2, 3, 4, 5, 6],
|
66
|
+
"category":"twos"
|
67
|
+
},
|
68
|
+
"expected":2
|
69
|
+
},
|
70
|
+
{
|
71
|
+
"description":"Fours",
|
72
|
+
"property":"score",
|
73
|
+
"input":{
|
74
|
+
"dice":[1, 4, 1, 4, 1],
|
75
|
+
"category":"fours"
|
76
|
+
},
|
77
|
+
"expected":8
|
78
|
+
},
|
79
|
+
{
|
80
|
+
"description":"Yacht counted as threes",
|
81
|
+
"property":"score",
|
82
|
+
"input":{
|
83
|
+
"dice":[3, 3, 3, 3, 3],
|
84
|
+
"category":"threes"
|
85
|
+
},
|
86
|
+
"expected":15
|
87
|
+
},
|
88
|
+
{
|
89
|
+
"description":"Yacht of 3s counted as fives",
|
90
|
+
"property":"score",
|
91
|
+
"input":{
|
92
|
+
"dice":[3, 3, 3, 3, 3],
|
93
|
+
"category":"fives"
|
94
|
+
},
|
95
|
+
"expected":0
|
96
|
+
},
|
97
|
+
{
|
98
|
+
"description":"Sixes",
|
99
|
+
"property":"score",
|
100
|
+
"input":{
|
101
|
+
"dice":[2, 3, 4, 5 ,6],
|
102
|
+
"category":"sixes"
|
103
|
+
},
|
104
|
+
"expected":6
|
105
|
+
},
|
106
|
+
{
|
107
|
+
"description":"Full house two small, three big",
|
108
|
+
"property":"score",
|
109
|
+
"input":{
|
110
|
+
"dice":[2, 2, 4, 4, 4],
|
111
|
+
"category":"full house"
|
112
|
+
},
|
113
|
+
"expected":16
|
114
|
+
},
|
115
|
+
{
|
116
|
+
"description":"Full house three small, two big",
|
117
|
+
"property":"score",
|
118
|
+
"input":{
|
119
|
+
"dice":[5, 3, 3, 5, 3],
|
120
|
+
"category":"full house"
|
121
|
+
},
|
122
|
+
"expected":19
|
123
|
+
},
|
124
|
+
{
|
125
|
+
"description":"Two pair is not a full house",
|
126
|
+
"property":"score",
|
127
|
+
"input":{
|
128
|
+
"dice":[2, 2, 4, 4, 5],
|
129
|
+
"category":"full house"
|
130
|
+
},
|
131
|
+
"expected":0
|
132
|
+
},
|
133
|
+
{
|
134
|
+
"description":"Yacht is not a full house",
|
135
|
+
"property":"score",
|
136
|
+
"input":{
|
137
|
+
"dice":[2, 2, 2, 2, 2],
|
138
|
+
"category":"full house"
|
139
|
+
},
|
140
|
+
"expected":0
|
141
|
+
},
|
142
|
+
{
|
143
|
+
"description":"Four of a Kind",
|
144
|
+
"property":"score",
|
145
|
+
"input":{
|
146
|
+
"dice":[6, 6, 4, 6, 6],
|
147
|
+
"category":"four of a kind"
|
148
|
+
},
|
149
|
+
"expected":24
|
150
|
+
},
|
151
|
+
{
|
152
|
+
"description":"Yacht can be scored as Four of a Kind",
|
153
|
+
"property":"score",
|
154
|
+
"input":{
|
155
|
+
"dice":[3, 3, 3, 3, 3],
|
156
|
+
"category":"four of a kind"
|
157
|
+
},
|
158
|
+
"expected":12
|
159
|
+
},
|
160
|
+
{
|
161
|
+
"description":"Full house is not Four of a Kind",
|
162
|
+
"property":"score",
|
163
|
+
"input":{
|
164
|
+
"dice":[3, 3, 3, 5, 5],
|
165
|
+
"category":"four of a kind"
|
166
|
+
},
|
167
|
+
"expected":0
|
168
|
+
},
|
169
|
+
{
|
170
|
+
"description":"Little Straight",
|
171
|
+
"property":"score",
|
172
|
+
"input":{
|
173
|
+
"dice":[3, 5, 4, 1, 2],
|
174
|
+
"category":"little straight"
|
175
|
+
},
|
176
|
+
"expected":30
|
177
|
+
},
|
178
|
+
{
|
179
|
+
"description":"Little Straight as Big Straight",
|
180
|
+
"property":"score",
|
181
|
+
"input":{
|
182
|
+
"dice":[1, 2, 3, 4, 5],
|
183
|
+
"category":"big straight"
|
184
|
+
},
|
185
|
+
"expected":0
|
186
|
+
},
|
187
|
+
{
|
188
|
+
"description":"Four in order but not a little straight",
|
189
|
+
"property":"score",
|
190
|
+
"input":{
|
191
|
+
"dice":[1, 1, 2, 3, 4],
|
192
|
+
"category":"little straight"
|
193
|
+
},
|
194
|
+
"expected":0
|
195
|
+
},
|
196
|
+
{
|
197
|
+
"description":"No pairs but not a little straight",
|
198
|
+
"property":"score",
|
199
|
+
"input":{
|
200
|
+
"dice":[1, 2, 3, 4, 6],
|
201
|
+
"category":"little straight"
|
202
|
+
},
|
203
|
+
"expected":0
|
204
|
+
},
|
205
|
+
{
|
206
|
+
"description":"Minimum is 1, maximum is 5, but not a little straight",
|
207
|
+
"property":"score",
|
208
|
+
"input":{
|
209
|
+
"dice":[1, 1, 3, 4, 5],
|
210
|
+
"category":"little straight"
|
211
|
+
},
|
212
|
+
"expected":0
|
213
|
+
},
|
214
|
+
{
|
215
|
+
"description":"Big Straight",
|
216
|
+
"property":"score",
|
217
|
+
"input":{
|
218
|
+
"dice":[4, 6, 2, 5, 3],
|
219
|
+
"category":"big straight"
|
220
|
+
},
|
221
|
+
"expected":30
|
222
|
+
},
|
223
|
+
{
|
224
|
+
"description":"Big Straight as little straight",
|
225
|
+
"property":"score",
|
226
|
+
"input":{
|
227
|
+
"dice":[6, 5, 4, 3, 2],
|
228
|
+
"category":"little straight"
|
229
|
+
},
|
230
|
+
"expected":0
|
231
|
+
},
|
232
|
+
{
|
233
|
+
"description":"Choice",
|
234
|
+
"property":"score",
|
235
|
+
"input":{
|
236
|
+
"dice":[3, 3, 5, 6, 6],
|
237
|
+
"category":"choice"
|
238
|
+
},
|
239
|
+
"expected":23
|
240
|
+
},
|
241
|
+
{
|
242
|
+
"description":"Yacht as choice",
|
243
|
+
"property":"score",
|
244
|
+
"input":{
|
245
|
+
"dice":[2, 2, 2, 2, 2],
|
246
|
+
"category":"choice"
|
247
|
+
},
|
248
|
+
"expected":10
|
249
|
+
}
|
250
|
+
]
|
251
|
+
}
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# Score a single throw of dice in *Yacht*
|
2
|
+
|
3
|
+
The dice game [Yacht](https://en.wikipedia.org/wiki/Yacht_(dice_game)) is from
|
4
|
+
the same family as Poker Dice, Generala and particularly Yahtzee, of which it
|
5
|
+
is a precursor. In the game, five dice are rolled and the result can be entered
|
6
|
+
in any of twelve categories. The score of a throw of the dice depends on
|
7
|
+
category chosen.
|
8
|
+
|
9
|
+
## Scores in Yacht
|
10
|
+
|
11
|
+
Category Score Example
|
12
|
+
Ones 1 × number of ones 1 1 1 4 5 scores 3
|
13
|
+
Twos 2 × number of twos 2 2 3 4 5 scores 4
|
14
|
+
Threes 3 × number of threes 3 3 3 3 3 scores 15
|
15
|
+
Fours 4 × number of fours 1 2 3 3 5 scores 0
|
16
|
+
Fives 5 × number of fives 5 1 5 2 5 scores 15
|
17
|
+
Sixes 6 × number of sixes 2 3 4 5 6 scores 6
|
18
|
+
Full House Total of the dice 3 3 3 5 5 scores 19
|
19
|
+
Four of a Kind Total of the four dice 4 4 4 4 6 scores 16
|
20
|
+
Little Straight 30 points 1 2 3 4 5 scores 30
|
21
|
+
Big Straight 30 points 2 3 4 5 6 scores 30
|
22
|
+
Choice Sum of the dice 2 3 3 4 6 scores 18
|
23
|
+
Yacht 50 points 4 4 4 4 4 scores 50
|
24
|
+
|
25
|
+
If the dice do not satisfy the requirements of a category, the score is zero.
|
26
|
+
If, for example, *Four Of A Kind* is entered in the *Yacht* category, zero
|
27
|
+
points are scored. A *Yacht* scores zero if entered in the *Full House* category.
|
28
|
+
|
29
|
+
## Task
|
30
|
+
Given a list of values for five dice and a category, your solution should return
|
31
|
+
the score of the dice for that category. If the dice do not satisfy the requirements
|
32
|
+
of the category your solution should return 0. You can assume that five values
|
33
|
+
will always be presented, and the value of each will be between one and six
|
34
|
+
inclusively. You should not assume that the dice are ordered.
|
@@ -118,10 +118,7 @@ Like most C source files, a test file begins with includes.
|
|
118
118
|
// any other includes here
|
119
119
|
```
|
120
120
|
|
121
|
-
The includes are then followed by
|
122
|
-
The names of such helper functions should not use the `test_` prefix.
|
123
|
-
|
124
|
-
Next, there are the `setUp()` and `tearDown()` functions.
|
121
|
+
The includes are then followed by the `setUp()` and `tearDown()` functions.
|
125
122
|
So far, no exercise uses these (the function bodies are empty) yet they must remain in place to allow the test files to compile correctly across all platforms.
|
126
123
|
|
127
124
|
```c
|
@@ -134,6 +131,9 @@ void tearDown(void)
|
|
134
131
|
}
|
135
132
|
```
|
136
133
|
|
134
|
+
Next are any helper functions that are used by the test functions.
|
135
|
+
The names of such helper functions should not use the `test_` prefix.
|
136
|
+
|
137
137
|
Next are the test functions themselves.
|
138
138
|
The names of these functions use a `test_` prefix.
|
139
139
|
Excepting the first, each test function should have `TEST_IGNORE();` as its first statement.
|
data/tracks/csharp/config.json
CHANGED
data/tracks/dart/.travis.yml
CHANGED
data/tracks/dart/CONTRIBUTING.md
CHANGED
@@ -31,12 +31,8 @@ Please keep the following in mind:
|
|
31
31
|
* Sensitive information (email address, real names, etc)
|
32
32
|
|
33
33
|
- Please run the following commands before submitting your PR:
|
34
|
-
* `pub run
|
35
|
-
* `bin/
|
36
|
-
* `bin/configlet lint --track-id dart .` - Checks the config.json for formatting issues
|
37
|
-
* `bin/configlet fmt .` - Formats the config.json
|
38
|
-
* `bin/check_formatting` - Checks All the Dart files for formatting issues
|
39
|
-
* `pub run dart_style:format -l 120 -w .` - Formats all the Dart files
|
34
|
+
* `pub run bin/check_formatting.dart` - Checks the config.json and all Dart files for formatting issues
|
35
|
+
* `pub run bin/presubmit.dart` - Runs the test for Dart exercises, and formats config.json and all Dart files
|
40
36
|
|
41
37
|
- Once a Pull Request is approved, the contributing branch will be rebased onto the latest version of our master branch.
|
42
38
|
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import 'dart:async';
|
2
|
+
import 'package:exercism_dart/src/utils.dart';
|
3
|
+
|
4
|
+
Future<Null> main() async {
|
5
|
+
final CommonUtils utils = new CommonUtils();
|
6
|
+
|
7
|
+
if (utils.fetchConfiglet() == 0) {
|
8
|
+
print('Checking config.json formatting...');
|
9
|
+
await utils.runCmdIfExecutable('bin/configlet', ['lint', '--track-id', 'dart', '.']);
|
10
|
+
}
|
11
|
+
|
12
|
+
print('Checking all Dart files formatting...');
|
13
|
+
await utils.runCmd('pub', ['run', 'dart_style:format', '-l', '120', '-n', '.']);
|
14
|
+
|
15
|
+
await utils.terminate();
|
16
|
+
print('Done!');
|
17
|
+
}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import 'dart:async';
|
2
|
+
import 'package:exercism_dart/src/utils.dart';
|
3
|
+
|
4
|
+
Future<Null> main() async {
|
5
|
+
final CommonUtils utils = new CommonUtils();
|
6
|
+
|
7
|
+
if (utils.fetchConfiglet() == 0) {
|
8
|
+
print('Formatting config.json...');
|
9
|
+
await utils.runCmdIfExecutable('bin/configlet', ['fmt', '.']);
|
10
|
+
}
|
11
|
+
|
12
|
+
print('Formatting all Dart files...');
|
13
|
+
await utils.runCmd('pub', ['run', 'dart_style:format', '-l', '120', '-w', '.']);
|
14
|
+
|
15
|
+
print('Running tests...');
|
16
|
+
await utils.runCmd('pub', ['run', 'test']);
|
17
|
+
|
18
|
+
await utils.terminate();
|
19
|
+
print('Done!');
|
20
|
+
}
|
data/tracks/dart/config.json
CHANGED
@@ -1,71 +1,84 @@
|
|
1
|
-
import
|
2
|
-
import
|
1
|
+
import 'package:test/test.dart';
|
2
|
+
import 'package:hamming/hamming.dart';
|
3
3
|
|
4
4
|
/// Test cases match one-to-one with those described
|
5
5
|
/// in the problem specification found here:
|
6
6
|
/// https://github.com/exercism/problem-specifications/blob/master/exercises/hamming/canonical-data.json
|
7
7
|
void main() {
|
8
|
-
final hamming = new Hamming();
|
8
|
+
final Hamming hamming = new Hamming();
|
9
9
|
|
10
|
-
group(
|
10
|
+
group('Hamming', () {
|
11
11
|
test("empty strands", () {
|
12
|
-
|
13
|
-
|
12
|
+
final int result = hamming.distance("", "");
|
13
|
+
expect(result, equals(0));
|
14
|
+
}, skip: false);
|
14
15
|
|
15
16
|
test("identical strands", () {
|
16
|
-
|
17
|
+
final int result = hamming.distance("A", "A");
|
18
|
+
expect(result, equals(0));
|
17
19
|
}, skip: true);
|
18
20
|
|
19
21
|
test("long identical strands", () {
|
20
|
-
|
22
|
+
final int result = hamming.distance("GGACTGA", "GGACTGA");
|
23
|
+
expect(result, equals(0));
|
21
24
|
}, skip: true);
|
22
25
|
|
23
26
|
test("complete distance in single nucleotide strands", () {
|
24
|
-
|
27
|
+
final int result = hamming.distance("A", "G");
|
28
|
+
expect(result, equals(1));
|
25
29
|
}, skip: true);
|
26
30
|
|
27
31
|
test("complete distance in small strands", () {
|
28
|
-
|
32
|
+
final int result = hamming.distance("AG", "CT");
|
33
|
+
expect(result, equals(2));
|
29
34
|
}, skip: true);
|
30
35
|
|
31
36
|
test("small distance in small strands", () {
|
32
|
-
|
37
|
+
final int result = hamming.distance("AT", "CT");
|
38
|
+
expect(result, equals(1));
|
33
39
|
}, skip: true);
|
34
40
|
|
35
41
|
test("small distance", () {
|
36
|
-
|
42
|
+
final int result = hamming.distance("GGACG", "GGTCG");
|
43
|
+
expect(result, equals(1));
|
37
44
|
}, skip: true);
|
38
45
|
|
39
46
|
test("small distance in long strands", () {
|
40
|
-
|
47
|
+
final int result = hamming.distance("ACCAGGG", "ACTATGG");
|
48
|
+
expect(result, equals(2));
|
41
49
|
}, skip: true);
|
42
50
|
|
43
51
|
test("non-unique character in first strand", () {
|
44
|
-
|
52
|
+
final int result = hamming.distance("AAG", "AAA");
|
53
|
+
expect(result, equals(1));
|
45
54
|
}, skip: true);
|
46
55
|
|
47
56
|
test("non-unique character in second strand", () {
|
48
|
-
|
57
|
+
final int result = hamming.distance("AAA", "AAG");
|
58
|
+
expect(result, equals(1));
|
49
59
|
}, skip: true);
|
50
60
|
|
51
61
|
test("same nucleotides in different positions", () {
|
52
|
-
|
62
|
+
final int result = hamming.distance("TAG", "GAT");
|
63
|
+
expect(result, equals(2));
|
53
64
|
}, skip: true);
|
54
65
|
|
55
66
|
test("large distance", () {
|
56
|
-
|
67
|
+
final int result = hamming.distance("GATACA", "GCATAA");
|
68
|
+
expect(result, equals(4));
|
57
69
|
}, skip: true);
|
58
70
|
|
59
71
|
test("large distance in off-by-one strand", () {
|
60
|
-
|
72
|
+
final int result = hamming.distance("GGACGGATTCTG", "AGGACGGATTCT");
|
73
|
+
expect(result, equals(9));
|
61
74
|
}, skip: true);
|
62
75
|
|
63
76
|
test("disallow first strand longer", () {
|
64
|
-
expect(() => hamming.
|
77
|
+
expect(() => hamming.distance("AATG", "AAA"), throwsArgumentError);
|
65
78
|
}, skip: true);
|
66
79
|
|
67
80
|
test("disallow second strand longer", () {
|
68
|
-
expect(() => hamming.
|
81
|
+
expect(() => hamming.distance("ATA", "AGTG"), throwsArgumentError);
|
69
82
|
}, skip: true);
|
70
83
|
});
|
71
84
|
}
|