trackler 2.2.1.115 → 2.2.1.116
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/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
|
+
}
|