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
@@ -12,53 +12,63 @@ void main() {
|
|
12
12
|
|
13
13
|
void simpleTests() {
|
14
14
|
test("count one word", () {
|
15
|
-
Map<String, int>
|
16
|
-
expect(
|
15
|
+
final Map<String, int> result = myWordCounter.countWords("word");
|
16
|
+
expect(result, equals({"word": 1}));
|
17
17
|
}, skip: false);
|
18
|
+
|
18
19
|
test("count one of each word", () {
|
19
|
-
Map<String, int>
|
20
|
-
expect(
|
20
|
+
final Map<String, int> result = myWordCounter.countWords("one of each");
|
21
|
+
expect(result, equals({"one": 1, "of": 1, "each": 1}));
|
21
22
|
}, skip: true);
|
23
|
+
|
22
24
|
test("multiple occurrences of a word", () {
|
23
|
-
Map<String, int>
|
24
|
-
expect(
|
25
|
+
final Map<String, int> result = myWordCounter.countWords("one fish two fish red fish blue fish");
|
26
|
+
expect(result, equals({"one": 1, "fish": 4, "two": 1, "red": 1, "blue": 1}));
|
25
27
|
}, skip: true);
|
26
28
|
}
|
27
29
|
|
28
30
|
void ignoreSpecialCharacters() {
|
29
31
|
test("handles cramped lists", () {
|
30
|
-
Map<String, int>
|
31
|
-
expect(
|
32
|
+
final Map<String, int> result = myWordCounter.countWords("one,two,three");
|
33
|
+
expect(result, equals({"one": 1, "two": 1, "three": 1}));
|
32
34
|
}, skip: true);
|
35
|
+
|
33
36
|
test("handles expanded lists", () {
|
34
|
-
Map<String, int>
|
35
|
-
expect(
|
37
|
+
final Map<String, int> result = myWordCounter.countWords("one,\ntwo,\nthree");
|
38
|
+
expect(result, equals({"one": 1, "two": 1, "three": 1}));
|
36
39
|
}, skip: true);
|
40
|
+
|
37
41
|
test("ignore punctuation", () {
|
38
|
-
Map<String, int>
|
39
|
-
expect(
|
42
|
+
final Map<String, int> result = myWordCounter.countWords("car: carpet as java: javascript!!&@\$%^&");
|
43
|
+
expect(result, equals({"car": 1, "carpet": 1, "as": 1, "java": 1, "javascript": 1}));
|
40
44
|
}, skip: true);
|
41
45
|
|
42
46
|
test("with quotations", () {
|
43
|
-
Map<String, int>
|
44
|
-
expect(
|
47
|
+
final Map<String, int> result = myWordCounter.countWords("Joe can't tell between 'large' and large.");
|
48
|
+
expect(result, equals({"joe": 1, "can't": 1, "tell": 1, "between": 1, "large": 2, "and": 1}));
|
45
49
|
}, skip: true);
|
46
50
|
}
|
47
51
|
|
48
52
|
void notJustWords() {
|
49
53
|
test("include numbers", () {
|
50
|
-
Map<String, int>
|
51
|
-
expect(
|
54
|
+
final Map<String, int> result = myWordCounter.countWords("testing, 1, 2 testing");
|
55
|
+
expect(result, equals({"testing": 2, "1": 1, "2": 1}));
|
52
56
|
}, skip: true);
|
53
57
|
}
|
54
58
|
|
55
59
|
void edgeCases() {
|
56
60
|
test("normalize case", () {
|
57
|
-
Map<String, int>
|
58
|
-
expect(
|
61
|
+
final Map<String, int> result = myWordCounter.countWords("go Go GO Stop stop");
|
62
|
+
expect(result, equals({"go": 3, "stop": 2}));
|
59
63
|
}, skip: true);
|
64
|
+
|
60
65
|
test("with apostrophes", () {
|
61
|
-
Map<String, int>
|
62
|
-
expect(
|
66
|
+
final Map<String, int> result = myWordCounter.countWords("First: don't laugh. Then: don't cry.");
|
67
|
+
expect(result, equals({"first": 1, "don't": 2, "laugh": 1, "then": 1, "cry": 1}));
|
68
|
+
}, skip: true);
|
69
|
+
|
70
|
+
test("multiple spaces not detected as a word", () {
|
71
|
+
final Map<String, int> result = myWordCounter.countWords(" multiple whitespaces");
|
72
|
+
expect(result, equals({"multiple": 1, "whitespaces": 1}));
|
63
73
|
}, skip: true);
|
64
74
|
}
|
@@ -0,0 +1,58 @@
|
|
1
|
+
import 'dart:async';
|
2
|
+
import 'dart:io';
|
3
|
+
import 'package:io/io.dart';
|
4
|
+
|
5
|
+
class CommonUtils {
|
6
|
+
ProcessManager _manager;
|
7
|
+
|
8
|
+
CommonUtils() {
|
9
|
+
this._manager = new ProcessManager();
|
10
|
+
}
|
11
|
+
|
12
|
+
/// Fetches the configlet file if it doesn't exist already, and returns the
|
13
|
+
/// exit code.
|
14
|
+
int fetchConfiglet() {
|
15
|
+
File configletFile = new File('bin/configlet');
|
16
|
+
|
17
|
+
if (!configletFile.existsSync()) {
|
18
|
+
print('Fetching configlet...');
|
19
|
+
return _exit(Process.runSync('bin/fetch-configlet', []).exitCode);
|
20
|
+
}
|
21
|
+
|
22
|
+
return 0;
|
23
|
+
}
|
24
|
+
|
25
|
+
/// Returns a [Future] with the exit code resulting from running the
|
26
|
+
/// [executable] with [arguments].
|
27
|
+
Future<int> runCmd(String executable, [List<String> arguments = const []]) async {
|
28
|
+
Process spawn = await _manager.spawn(executable, arguments);
|
29
|
+
return _exit(await spawn.exitCode);
|
30
|
+
}
|
31
|
+
|
32
|
+
/// Returns a [Future] with the exit code resulting from running the
|
33
|
+
/// [executable] with [arguments].
|
34
|
+
///
|
35
|
+
/// If [executable] isn't executable, returns a [Future] with exit code 1 and
|
36
|
+
/// shows an error message.
|
37
|
+
Future<int> runCmdIfExecutable(String executable, [List<String> arguments = const []]) async {
|
38
|
+
final result = isExecutable(executable);
|
39
|
+
|
40
|
+
if (result is bool && !result || result is Future && !await result) {
|
41
|
+
print('Unable to run "$executable". Make sure that it\'s executable and that you have permissions to run it.');
|
42
|
+
return new Future.value(1);
|
43
|
+
}
|
44
|
+
|
45
|
+
return runCmd(executable, arguments);
|
46
|
+
}
|
47
|
+
|
48
|
+
/// Terminates the global `stdin` listener.
|
49
|
+
Future<Null> terminate() async {
|
50
|
+
await ProcessManager.terminateStdIn();
|
51
|
+
}
|
52
|
+
}
|
53
|
+
|
54
|
+
/// Returns [exitCode] and shows an error message if it is different from 0.
|
55
|
+
int _exit(int exitCode) {
|
56
|
+
if (exitCode != 0) print('Failed. Error code: $exitCode.');
|
57
|
+
return exitCode;
|
58
|
+
}
|
data/tracks/dart/pubspec.yaml
CHANGED
data/tracks/scala/config.json
CHANGED
@@ -85,7 +85,7 @@
|
|
85
85
|
{
|
86
86
|
"uuid": "825e94e5-6fc8-4dce-befe-74e1516fae14",
|
87
87
|
"slug": "flatten-array",
|
88
|
-
"core":
|
88
|
+
"core": false,
|
89
89
|
"unlocked_by": "accumulate",
|
90
90
|
"difficulty": 2,
|
91
91
|
"topics": [
|
@@ -97,7 +97,7 @@
|
|
97
97
|
{
|
98
98
|
"uuid": "65a76aba-a485-222d-84ba-e9a445b25be6",
|
99
99
|
"slug": "collatz-conjecture",
|
100
|
-
"core":
|
100
|
+
"core": false,
|
101
101
|
"unlocked_by": "leap",
|
102
102
|
"difficulty": 2,
|
103
103
|
"topics": [
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import org.scalatest.{Matchers, FunSuite}
|
2
2
|
|
3
|
-
/** @version 1.
|
3
|
+
/** @version 1.1.0 */
|
4
4
|
class SpaceAgeTest extends FunSuite with Matchers {
|
5
5
|
|
6
6
|
test("age on Earth") {
|
@@ -41,4 +41,4 @@ class SpaceAgeTest extends FunSuite with Matchers {
|
|
41
41
|
pending
|
42
42
|
SpaceAge.onNeptune(8.210123456E9) should be (1.58)
|
43
43
|
}
|
44
|
-
}
|
44
|
+
}
|
@@ -1,52 +1,47 @@
|
|
1
|
-
|
2
1
|
import org.scalatest.{Matchers, FunSuite}
|
3
2
|
|
4
|
-
/** @version 1.
|
3
|
+
/** @version 1.1.0 */
|
5
4
|
class SpiralMatrixTest extends FunSuite with Matchers {
|
6
5
|
|
7
6
|
test("empty spiral") {
|
8
|
-
SpiralMatrix.spiralMatrix(0) should be
|
9
|
-
List()
|
10
|
-
)
|
7
|
+
SpiralMatrix.spiralMatrix(0) should be(List())
|
11
8
|
}
|
12
9
|
|
13
10
|
test("trivial spiral") {
|
14
11
|
pending
|
15
|
-
SpiralMatrix.spiralMatrix(1) should be
|
16
|
-
List(1)))
|
12
|
+
SpiralMatrix.spiralMatrix(1) should be(List(List(1)))
|
17
13
|
}
|
18
14
|
|
19
15
|
test("spiral of size 2") {
|
20
16
|
pending
|
21
|
-
SpiralMatrix.spiralMatrix(2) should be
|
22
|
-
|
23
|
-
List(4, 3)))
|
17
|
+
SpiralMatrix.spiralMatrix(2) should be(List(List(1, 2),
|
18
|
+
List(4, 3)))
|
24
19
|
}
|
25
20
|
|
26
21
|
test("spiral of size 3") {
|
27
22
|
pending
|
28
|
-
SpiralMatrix.spiralMatrix(3) should be
|
29
|
-
List(1, 2, 3),
|
30
|
-
|
31
|
-
|
23
|
+
SpiralMatrix.spiralMatrix(3) should be(
|
24
|
+
List(List(1, 2, 3),
|
25
|
+
List(8, 9, 4),
|
26
|
+
List(7, 6, 5)))
|
32
27
|
}
|
33
28
|
|
34
29
|
test("spiral of size 4") {
|
35
30
|
pending
|
36
|
-
SpiralMatrix.spiralMatrix(4) should be
|
37
|
-
List(
|
38
|
-
|
39
|
-
|
40
|
-
|
31
|
+
SpiralMatrix.spiralMatrix(4) should be(
|
32
|
+
List(List(1, 2, 3, 4),
|
33
|
+
List(12, 13, 14, 5),
|
34
|
+
List(11, 16, 15, 6),
|
35
|
+
List(10, 9, 8, 7)))
|
41
36
|
}
|
42
37
|
|
43
38
|
test("spiral of size 5") {
|
44
39
|
pending
|
45
|
-
SpiralMatrix.spiralMatrix(5) should be
|
46
|
-
List(
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
40
|
+
SpiralMatrix.spiralMatrix(5) should be(
|
41
|
+
List(List(1, 2, 3, 4, 5),
|
42
|
+
List(16, 17, 18, 19, 6),
|
43
|
+
List(15, 24, 25, 20, 7),
|
44
|
+
List(14, 23, 22, 21, 8),
|
45
|
+
List(13, 12, 11, 10, 9)))
|
51
46
|
}
|
52
47
|
}
|
@@ -1,89 +1,97 @@
|
|
1
1
|
import org.scalatest.{Matchers, FunSuite}
|
2
2
|
|
3
|
-
/** @version 1.
|
3
|
+
/** @version 1.1.0 */
|
4
4
|
class SublistTest extends FunSuite with Matchers {
|
5
5
|
|
6
6
|
test("empty lists") {
|
7
|
-
Sublist.sublist(List(), List()) should be
|
7
|
+
Sublist.sublist(List(), List()) should be(Sublist.Equal)
|
8
8
|
}
|
9
9
|
|
10
10
|
test("empty list within non empty list") {
|
11
11
|
pending
|
12
|
-
Sublist.sublist(List(), List(1, 2, 3)) should be
|
12
|
+
Sublist.sublist(List(), List(1, 2, 3)) should be(Sublist.Sublist)
|
13
13
|
}
|
14
14
|
|
15
15
|
test("non empty list contains empty list") {
|
16
16
|
pending
|
17
|
-
Sublist.sublist(List(1, 2, 3), List()) should be
|
17
|
+
Sublist.sublist(List(1, 2, 3), List()) should be(Sublist.Superlist)
|
18
18
|
}
|
19
19
|
|
20
20
|
test("list equals itself") {
|
21
21
|
pending
|
22
|
-
Sublist.sublist(List(1, 2, 3), List(1, 2, 3)) should be
|
22
|
+
Sublist.sublist(List(1, 2, 3), List(1, 2, 3)) should be(Sublist.Equal)
|
23
23
|
}
|
24
24
|
|
25
25
|
test("different lists") {
|
26
26
|
pending
|
27
|
-
Sublist.sublist(List(1, 2, 3), List(2, 3, 4)) should be
|
27
|
+
Sublist.sublist(List(1, 2, 3), List(2, 3, 4)) should be(Sublist.Unequal)
|
28
28
|
}
|
29
29
|
|
30
30
|
test("false start") {
|
31
31
|
pending
|
32
|
-
Sublist.sublist(List(1, 2, 5), List(0, 1, 2, 3, 1, 2, 5, 6)) should be
|
32
|
+
Sublist.sublist(List(1, 2, 5), List(0, 1, 2, 3, 1, 2, 5, 6)) should be(
|
33
|
+
Sublist.Sublist)
|
33
34
|
}
|
34
35
|
|
35
36
|
test("consecutive") {
|
36
37
|
pending
|
37
|
-
Sublist.sublist(List(1, 1, 2), List(0, 1, 1, 1, 2, 1, 2)) should be
|
38
|
+
Sublist.sublist(List(1, 1, 2), List(0, 1, 1, 1, 2, 1, 2)) should be(
|
39
|
+
Sublist.Sublist)
|
38
40
|
}
|
39
41
|
|
40
42
|
test("sublist at start") {
|
41
43
|
pending
|
42
|
-
Sublist.sublist(List(0, 1, 2), List(0, 1, 2, 3, 4, 5)) should be
|
44
|
+
Sublist.sublist(List(0, 1, 2), List(0, 1, 2, 3, 4, 5)) should be(
|
45
|
+
Sublist.Sublist)
|
43
46
|
}
|
44
47
|
|
45
48
|
test("sublist in middle") {
|
46
49
|
pending
|
47
|
-
Sublist.sublist(List(2, 3, 4), List(0, 1, 2, 3, 4, 5)) should be
|
50
|
+
Sublist.sublist(List(2, 3, 4), List(0, 1, 2, 3, 4, 5)) should be(
|
51
|
+
Sublist.Sublist)
|
48
52
|
}
|
49
53
|
|
50
54
|
test("sublist at end") {
|
51
55
|
pending
|
52
|
-
Sublist.sublist(List(3, 4, 5), List(0, 1, 2, 3, 4, 5)) should be
|
56
|
+
Sublist.sublist(List(3, 4, 5), List(0, 1, 2, 3, 4, 5)) should be(
|
57
|
+
Sublist.Sublist)
|
53
58
|
}
|
54
59
|
|
55
60
|
test("at start of superlist") {
|
56
61
|
pending
|
57
|
-
Sublist.sublist(List(0, 1, 2, 3, 4, 5), List(0, 1, 2)) should be
|
62
|
+
Sublist.sublist(List(0, 1, 2, 3, 4, 5), List(0, 1, 2)) should be(
|
63
|
+
Sublist.Superlist)
|
58
64
|
}
|
59
65
|
|
60
66
|
test("in middle of superlist") {
|
61
67
|
pending
|
62
|
-
Sublist.sublist(List(0, 1, 2, 3, 4, 5), List(2, 3)) should be
|
68
|
+
Sublist.sublist(List(0, 1, 2, 3, 4, 5), List(2, 3)) should be(
|
69
|
+
Sublist.Superlist)
|
63
70
|
}
|
64
71
|
|
65
72
|
test("at end of superlist") {
|
66
73
|
pending
|
67
|
-
Sublist.sublist(List(0, 1, 2, 3, 4, 5), List(3, 4, 5)) should be
|
74
|
+
Sublist.sublist(List(0, 1, 2, 3, 4, 5), List(3, 4, 5)) should be(
|
75
|
+
Sublist.Superlist)
|
68
76
|
}
|
69
77
|
|
70
78
|
test("first list missing element from second list") {
|
71
79
|
pending
|
72
|
-
Sublist.sublist(List(1, 3), List(1, 2, 3)) should be
|
80
|
+
Sublist.sublist(List(1, 3), List(1, 2, 3)) should be(Sublist.Unequal)
|
73
81
|
}
|
74
82
|
|
75
83
|
test("second list missing element from first list") {
|
76
84
|
pending
|
77
|
-
Sublist.sublist(List(1, 2, 3), List(1, 3)) should be
|
85
|
+
Sublist.sublist(List(1, 2, 3), List(1, 3)) should be(Sublist.Unequal)
|
78
86
|
}
|
79
87
|
|
80
88
|
test("order matters to a list") {
|
81
89
|
pending
|
82
|
-
Sublist.sublist(List(1, 2, 3), List(3, 2, 1)) should be
|
90
|
+
Sublist.sublist(List(1, 2, 3), List(3, 2, 1)) should be(Sublist.Unequal)
|
83
91
|
}
|
84
92
|
|
85
93
|
test("same digits but different numbers") {
|
86
94
|
pending
|
87
|
-
Sublist.sublist(List(1, 0, 1), List(10, 1)) should be
|
95
|
+
Sublist.sublist(List(1, 0, 1), List(10, 1)) should be(Sublist.Unequal)
|
88
96
|
}
|
89
|
-
}
|
97
|
+
}
|
@@ -1,69 +1,69 @@
|
|
1
1
|
import org.scalatest.{Matchers, FunSuite}
|
2
2
|
|
3
|
-
/** @version 1.
|
3
|
+
/** @version 1.2.0 */
|
4
4
|
class SumOfMultiplesTest extends FunSuite with Matchers {
|
5
5
|
|
6
6
|
test("multiples of 3 or 5 up to 1") {
|
7
|
-
SumOfMultiples.sum(Set(3, 5), 1) should be
|
7
|
+
SumOfMultiples.sum(Set(3, 5), 1) should be(0)
|
8
8
|
}
|
9
9
|
|
10
10
|
test("multiples of 3 or 5 up to 4") {
|
11
11
|
pending
|
12
|
-
SumOfMultiples.sum(Set(3, 5), 4) should be
|
12
|
+
SumOfMultiples.sum(Set(3, 5), 4) should be(3)
|
13
13
|
}
|
14
14
|
|
15
15
|
test("multiples of 3 up to 7") {
|
16
16
|
pending
|
17
|
-
SumOfMultiples.sum(Set(3), 7) should be
|
17
|
+
SumOfMultiples.sum(Set(3), 7) should be(9)
|
18
18
|
}
|
19
19
|
|
20
20
|
test("multiples of 3 or 5 up to 10") {
|
21
21
|
pending
|
22
|
-
SumOfMultiples.sum(Set(3, 5), 10) should be
|
22
|
+
SumOfMultiples.sum(Set(3, 5), 10) should be(23)
|
23
23
|
}
|
24
24
|
|
25
25
|
test("multiples of 3 or 5 up to 100") {
|
26
26
|
pending
|
27
|
-
SumOfMultiples.sum(Set(3, 5), 100) should be
|
27
|
+
SumOfMultiples.sum(Set(3, 5), 100) should be(2318)
|
28
28
|
}
|
29
29
|
|
30
30
|
test("multiples of 3 or 5 up to 1000") {
|
31
31
|
pending
|
32
|
-
SumOfMultiples.sum(Set(3, 5), 1000) should be
|
32
|
+
SumOfMultiples.sum(Set(3, 5), 1000) should be(233168)
|
33
33
|
}
|
34
34
|
|
35
35
|
test("multiples of 7, 13 or 17 up to 20") {
|
36
36
|
pending
|
37
|
-
SumOfMultiples.sum(Set(7, 13, 17), 20) should be
|
37
|
+
SumOfMultiples.sum(Set(7, 13, 17), 20) should be(51)
|
38
38
|
}
|
39
39
|
|
40
40
|
test("multiples of 4 or 6 up to 15") {
|
41
41
|
pending
|
42
|
-
SumOfMultiples.sum(Set(4, 6), 15) should be
|
42
|
+
SumOfMultiples.sum(Set(4, 6), 15) should be(30)
|
43
43
|
}
|
44
44
|
|
45
45
|
test("multiples of 5, 6 or 8 up to 150") {
|
46
46
|
pending
|
47
|
-
SumOfMultiples.sum(Set(5, 6, 8), 150) should be
|
47
|
+
SumOfMultiples.sum(Set(5, 6, 8), 150) should be(4419)
|
48
48
|
}
|
49
49
|
|
50
50
|
test("multiples of 5 or 25 up to 51") {
|
51
51
|
pending
|
52
|
-
SumOfMultiples.sum(Set(5, 25), 51) should be
|
52
|
+
SumOfMultiples.sum(Set(5, 25), 51) should be(275)
|
53
53
|
}
|
54
54
|
|
55
55
|
test("multiples of 43 or 47 up to 10000") {
|
56
56
|
pending
|
57
|
-
SumOfMultiples.sum(Set(43, 47), 10000) should be
|
57
|
+
SumOfMultiples.sum(Set(43, 47), 10000) should be(2203160)
|
58
58
|
}
|
59
59
|
|
60
60
|
test("multiples of 1 up to 100") {
|
61
61
|
pending
|
62
|
-
SumOfMultiples.sum(Set(1), 100) should be
|
62
|
+
SumOfMultiples.sum(Set(1), 100) should be(4950)
|
63
63
|
}
|
64
64
|
|
65
65
|
test("multiples of an empty list up to 10000") {
|
66
66
|
pending
|
67
|
-
SumOfMultiples.sum(Set(), 10000) should be
|
67
|
+
SumOfMultiples.sum(Set(), 10000) should be(0)
|
68
68
|
}
|
69
|
-
}
|
69
|
+
}
|