trackler 2.2.1.13 → 2.2.1.14
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/change/canonical-data.json +8 -1
- data/tracks/csharp/config.json +25 -26
- data/tracks/csharp/docs/SNIPPET.txt +7 -0
- data/tracks/csharp/exercises/house/Example.cs +5 -5
- data/tracks/csharp/exercises/house/House.cs +6 -1
- data/tracks/csharp/exercises/house/HouseTest.cs +208 -5
- data/tracks/csharp/exercises/phone-number/Example.cs +2 -1
- data/tracks/csharp/exercises/phone-number/PhoneNumberTest.cs +8 -7
- data/tracks/csharp/exercises/rna-transcription/Example.cs +2 -1
- data/tracks/csharp/exercises/rna-transcription/RnaTranscriptionTest.cs +4 -3
- data/tracks/csharp/exercises/say/SayTest.cs +20 -24
- data/tracks/csharp/exercises/sieve/Example.cs +6 -0
- data/tracks/csharp/exercises/sieve/SieveTest.cs +25 -17
- data/tracks/csharp/exercises/space-age/SpaceAgeTest.cs +19 -24
- data/tracks/csharp/exercises/sum-of-multiples/Example.cs +1 -1
- data/tracks/csharp/exercises/sum-of-multiples/SumOfMultiples.cs +1 -1
- data/tracks/csharp/exercises/sum-of-multiples/SumOfMultiplesTest.cs +48 -16
- data/tracks/csharp/generators/Exercises/House.cs +16 -0
- data/tracks/csharp/generators/Exercises/PhoneNumber.cs +3 -1
- data/tracks/csharp/generators/Exercises/RnaTranscription.cs +11 -1
- data/tracks/csharp/generators/Exercises/Say.cs +22 -0
- data/tracks/csharp/generators/Exercises/Sieve.cs +17 -0
- data/tracks/csharp/generators/Exercises/SpaceAge.cs +25 -0
- data/tracks/csharp/generators/Exercises/SumOfMultiples.cs +22 -0
- data/tracks/csharp/generators/Output/ValueFormatter.cs +4 -0
- data/tracks/dart/docs/ABOUT.md +21 -0
- data/tracks/ecmascript/README.md +1 -1
- data/tracks/ecmascript/config.json +15 -0
- data/tracks/ecmascript/exercises/proverb/README.md +63 -0
- data/tracks/ecmascript/exercises/proverb/example.js +23 -0
- data/tracks/ecmascript/exercises/proverb/package.json +69 -0
- data/tracks/ecmascript/exercises/proverb/proverb.spec.js +70 -0
- data/tracks/go/config.json +226 -226
- data/tracks/groovy/config.json +11 -0
- data/tracks/groovy/exercises/two-fer/Example.groovy +6 -0
- data/tracks/groovy/exercises/two-fer/README.md +62 -0
- data/tracks/groovy/exercises/two-fer/TwoFer.groovy +6 -0
- data/tracks/groovy/exercises/two-fer/TwoFerSpec.groovy +24 -0
- data/tracks/java/.travis.yml +2 -2
- data/tracks/java/bin/journey-test.sh +44 -1
- data/tracks/java/bin/run-journey-test-from-ci.sh +28 -0
- data/tracks/java/{docs/EXERCISE_README_INSERT.md → config/exercise-readme-insert.md} +0 -0
- data/tracks/java/exercises/bank-account/{HINTS.md → .meta/hints.md} +0 -0
- data/tracks/java/exercises/change/src/test/java/ChangeCalculatorTest.java +27 -2
- data/tracks/java/exercises/clock/{HINTS.md → .meta/hints.md} +0 -0
- data/tracks/java/exercises/hamming/{HINTS.md → .meta/hints.md} +0 -0
- data/tracks/java/exercises/hello-world/{HINTS.md → .meta/hints.md} +0 -0
- data/tracks/java/exercises/isogram/{HINTS.md → .meta/hints.md} +0 -0
- data/tracks/java/exercises/list-ops/{HINTS.md → .meta/hints.md} +0 -0
- data/tracks/java/exercises/pig-latin/src/example/java/PigLatinTranslator.java +17 -20
- data/tracks/java/exercises/simple-cipher/{HINTS.md → .meta/hints.md} +0 -0
- data/tracks/java/exercises/two-fer/{HINTS.md → .meta/hints.md} +0 -0
- data/tracks/kotlin/{docs/EXERCISE_README_INSERT.md → config/exercise-readme-insert.md} +0 -0
- data/tracks/kotlin/exercises/accumulate/README.md +1 -4
- data/tracks/kotlin/exercises/acronym/README.md +1 -1
- data/tracks/kotlin/exercises/all-your-base/README.md +1 -1
- data/tracks/kotlin/exercises/allergies/README.md +1 -1
- data/tracks/kotlin/exercises/anagram/README.md +1 -1
- data/tracks/kotlin/exercises/atbash-cipher/README.md +1 -1
- data/tracks/kotlin/exercises/bank-account/README.md +1 -1
- data/tracks/kotlin/exercises/beer-song/README.md +1 -1
- data/tracks/kotlin/exercises/binary-search/README.md +1 -1
- data/tracks/kotlin/exercises/binary/README.md +1 -1
- data/tracks/kotlin/exercises/bob/README.md +1 -1
- data/tracks/kotlin/exercises/bracket-push/README.md +1 -1
- data/tracks/kotlin/exercises/change/README.md +1 -1
- data/tracks/kotlin/exercises/clock/README.md +1 -1
- data/tracks/kotlin/exercises/collatz-conjecture/README.md +1 -1
- data/tracks/kotlin/exercises/complex-numbers/README.md +1 -1
- data/tracks/kotlin/exercises/diamond/README.md +1 -1
- data/tracks/kotlin/exercises/difference-of-squares/README.md +1 -1
- data/tracks/kotlin/exercises/etl/README.md +1 -1
- data/tracks/kotlin/exercises/flatten-array/README.md +1 -1
- data/tracks/kotlin/exercises/gigasecond/README.md +1 -1
- data/tracks/kotlin/exercises/grade-school/README.md +1 -1
- data/tracks/kotlin/exercises/grains/README.md +1 -1
- data/tracks/kotlin/exercises/hamming/README.md +1 -1
- data/tracks/kotlin/exercises/hello-world/README.md +1 -1
- data/tracks/kotlin/exercises/hexadecimal/README.md +1 -1
- data/tracks/kotlin/exercises/isogram/README.md +1 -1
- data/tracks/kotlin/exercises/largest-series-product/README.md +1 -1
- data/tracks/kotlin/exercises/leap/README.md +1 -1
- data/tracks/kotlin/exercises/linked-list/README.md +1 -1
- data/tracks/kotlin/exercises/list-ops/{HINTS.md → .meta/hints.md} +0 -0
- data/tracks/kotlin/exercises/list-ops/README.md +1 -1
- data/tracks/kotlin/exercises/luhn/README.md +1 -1
- data/tracks/kotlin/exercises/minesweeper/README.md +1 -1
- data/tracks/kotlin/exercises/nth-prime/README.md +1 -1
- data/tracks/kotlin/exercises/nucleotide-count/README.md +1 -1
- data/tracks/kotlin/exercises/pangram/README.md +1 -1
- data/tracks/kotlin/exercises/pascals-triangle/README.md +1 -1
- data/tracks/kotlin/exercises/perfect-numbers/README.md +1 -1
- data/tracks/kotlin/exercises/phone-number/README.md +1 -1
- data/tracks/kotlin/exercises/pig-latin/README.md +1 -1
- data/tracks/kotlin/exercises/prime-factors/README.md +1 -1
- data/tracks/kotlin/exercises/raindrops/README.md +1 -1
- data/tracks/kotlin/exercises/react/README.md +1 -1
- data/tracks/kotlin/exercises/rna-transcription/README.md +1 -1
- data/tracks/kotlin/exercises/robot-name/README.md +1 -1
- data/tracks/kotlin/exercises/robot-simulator/README.md +1 -1
- data/tracks/kotlin/exercises/roman-numerals/README.md +1 -1
- data/tracks/kotlin/exercises/saddle-points/README.md +1 -1
- data/tracks/kotlin/exercises/scrabble-score/README.md +1 -1
- data/tracks/kotlin/exercises/secret-handshake/README.md +1 -1
- data/tracks/kotlin/exercises/series/README.md +1 -1
- data/tracks/kotlin/exercises/sieve/README.md +1 -1
- data/tracks/kotlin/exercises/simple-cipher/README.md +2 -2
- data/tracks/kotlin/exercises/space-age/README.md +3 -2
- data/tracks/kotlin/exercises/spiral-matrix/README.md +1 -1
- data/tracks/kotlin/exercises/strain/README.md +1 -1
- data/tracks/kotlin/exercises/sublist/README.md +1 -1
- data/tracks/kotlin/exercises/sum-of-multiples/README.md +1 -1
- data/tracks/kotlin/exercises/triangle/README.md +1 -1
- data/tracks/kotlin/exercises/word-count/README.md +1 -1
- data/tracks/pony/exercises/atbash-cipher/example.pony +4 -3
- data/tracks/pony/exercises/beer-song/example.pony +10 -9
- data/tracks/pony/exercises/bob/example.pony +1 -1
- data/tracks/pony/exercises/difference-of-squares/example.pony +2 -2
- data/tracks/pony/exercises/hamming/example.pony +1 -1
- data/tracks/pony/exercises/hamming/test.pony +2 -2
- data/tracks/pony/exercises/leap/example.pony +1 -1
- data/tracks/pony/exercises/pascals-triangle/example.pony +2 -2
- data/tracks/pony/exercises/rna-transcription/test.pony +2 -2
- data/tracks/pony/exercises/roman-numerals/test.pony +2 -2
- data/tracks/python/config.json +22 -0
- data/tracks/python/docs/ABOUT.md +11 -3
- data/tracks/python/exercises/collatz-conjecture/README.md +61 -0
- data/tracks/python/exercises/collatz-conjecture/collatz_conjecture.py +2 -0
- data/tracks/python/exercises/collatz-conjecture/collatz_conjecture_test.py +32 -0
- data/tracks/python/exercises/collatz-conjecture/example.py +17 -0
- data/tracks/python/exercises/isogram/isogram.py +1 -1
- data/tracks/python/exercises/isogram/isogram_test.py +3 -0
- data/tracks/python/exercises/scale-generator/example.py +2 -0
- data/tracks/python/exercises/scale-generator/scale_generator_test.py +4 -0
- data/tracks/python/exercises/two-fer/README.md +29 -0
- data/tracks/python/exercises/two-fer/example.py +5 -0
- data/tracks/python/exercises/two-fer/two_fer.py +2 -0
- data/tracks/python/exercises/two-fer/two_fer_test.py +18 -0
- data/tracks/r/config/maintainers.json +2 -2
- data/tracks/ruby/config.json +2 -1
- data/tracks/scala/exercises/minesweeper/src/test/scala/MinesweeperTest.scala +85 -36
- data/tracks/scala/testgen/src/main/scala/MinesweeperTestGenerator.scala +15 -0
- data/tracks/vimscript/README.md +1 -1
- metadata +37 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 69d8a0c223e95766003538ba5109943e8eef13db
|
4
|
+
data.tar.gz: '000541378abedc95ec41d12a7ce16572ec43b5f0'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eb37a920f2bd96e4628d637bb5c946c1ba06c806a6aa87e0e8975ea8cd05c3b3c3b11faf93ba2a8ac67ce2c60ba8bfdc461e825a2226c0fcc9072b1f6331b503
|
7
|
+
data.tar.gz: ee47479dcc5d58ed396281d1370c9c1e2bfac02716e8229c86ee353ba85576f90e119767176a39e841f26a51b4edca23119e167d184f64e515c6916320f5de4b
|
data/lib/trackler/version.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"exercise": "change",
|
3
|
-
"version": "1.
|
3
|
+
"version": "1.1.0",
|
4
4
|
"comments": [
|
5
5
|
"Given an infinite supply of coins with different values, ",
|
6
6
|
"find the smallest number of coins needed to make a desired ",
|
@@ -51,6 +51,13 @@
|
|
51
51
|
"target": 21,
|
52
52
|
"expected": [2, 2, 2, 5, 10]
|
53
53
|
},
|
54
|
+
{
|
55
|
+
"description": "another possible change without unit coins available",
|
56
|
+
"property": "findFewestCoins",
|
57
|
+
"coins": [4, 5],
|
58
|
+
"target": 27,
|
59
|
+
"expected": [4, 4, 4, 5, 5, 5]
|
60
|
+
},
|
54
61
|
{
|
55
62
|
"description": "no coins make 0 change",
|
56
63
|
"property": "findFewestCoins",
|
data/tracks/csharp/config.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"language": "C#",
|
3
3
|
"active": true,
|
4
|
-
"blurb": "C# is a modern, object-oriented language with lots of great features, such as type-inference and async/await. The
|
4
|
+
"blurb": "C# is a modern, object-oriented language with lots of great features, such as type-inference and async/await. The tooling is excellent, and there is extensive, well-written documentation.",
|
5
5
|
"exercises": [
|
6
6
|
{
|
7
7
|
"uuid": "6c88f46b-5acb-4fae-a6ec-b48ae3f8168f",
|
@@ -47,25 +47,25 @@
|
|
47
47
|
]
|
48
48
|
},
|
49
49
|
{
|
50
|
-
"uuid": "
|
51
|
-
"slug": "
|
50
|
+
"uuid": "29ae7f8e-a009-4175-9350-a8c684c89730",
|
51
|
+
"slug": "raindrops",
|
52
52
|
"core": true,
|
53
|
-
"unlocked_by":
|
54
|
-
"difficulty":
|
53
|
+
"unlocked_by": null,
|
54
|
+
"difficulty": 2,
|
55
55
|
"topics": [
|
56
56
|
"Strings",
|
57
|
-
"
|
57
|
+
"Filtering"
|
58
58
|
]
|
59
59
|
},
|
60
60
|
{
|
61
|
-
"uuid": "
|
62
|
-
"slug": "
|
61
|
+
"uuid": "57f02d0e-7b75-473b-892d-26a7d980c4ce",
|
62
|
+
"slug": "two-fer",
|
63
63
|
"core": true,
|
64
|
-
"unlocked_by": null,
|
65
|
-
"difficulty":
|
64
|
+
"unlocked_by": "null",
|
65
|
+
"difficulty": 1,
|
66
66
|
"topics": [
|
67
|
-
"
|
68
|
-
"
|
67
|
+
"Strings",
|
68
|
+
"Optional values"
|
69
69
|
]
|
70
70
|
},
|
71
71
|
{
|
@@ -318,7 +318,7 @@
|
|
318
318
|
"unlocked_by": "raindrops",
|
319
319
|
"difficulty": 3,
|
320
320
|
"topics": [
|
321
|
-
"
|
321
|
+
"Strings",
|
322
322
|
"Algorithms"
|
323
323
|
]
|
324
324
|
},
|
@@ -338,7 +338,7 @@
|
|
338
338
|
"uuid": "75a2d5f0-5f5e-46a3-9dd2-3da415690e18",
|
339
339
|
"slug": "protein-translation",
|
340
340
|
"core": false,
|
341
|
-
"unlocked_by": "
|
341
|
+
"unlocked_by": "two-fer",
|
342
342
|
"difficulty": 3,
|
343
343
|
"topics": [
|
344
344
|
"Strings",
|
@@ -384,7 +384,7 @@
|
|
384
384
|
"unlocked_by": "raindrops",
|
385
385
|
"difficulty": 3,
|
386
386
|
"topics": [
|
387
|
-
"
|
387
|
+
"Strings",
|
388
388
|
"Algorithms"
|
389
389
|
]
|
390
390
|
},
|
@@ -424,7 +424,7 @@
|
|
424
424
|
"uuid": "4b7b65be-f777-4f64-94a0-4f9832f17a52",
|
425
425
|
"slug": "isogram",
|
426
426
|
"core": false,
|
427
|
-
"unlocked_by": "
|
427
|
+
"unlocked_by": "two-fer",
|
428
428
|
"difficulty": 3,
|
429
429
|
"topics": [
|
430
430
|
"Strings",
|
@@ -457,7 +457,7 @@
|
|
457
457
|
"uuid": "ddfb0a0e-8c58-4b9e-ad62-57d06ef10f5f",
|
458
458
|
"slug": "acronym",
|
459
459
|
"core": false,
|
460
|
-
"unlocked_by": "
|
460
|
+
"unlocked_by": "two-fer",
|
461
461
|
"difficulty": 4,
|
462
462
|
"topics": [
|
463
463
|
"Strings",
|
@@ -517,7 +517,7 @@
|
|
517
517
|
"unlocked_by": "raindrops",
|
518
518
|
"difficulty": 4,
|
519
519
|
"topics": [
|
520
|
-
"
|
520
|
+
"Strings",
|
521
521
|
"Algorithms"
|
522
522
|
]
|
523
523
|
},
|
@@ -552,7 +552,7 @@
|
|
552
552
|
"unlocked_by": "bob",
|
553
553
|
"difficulty": 4,
|
554
554
|
"topics": [
|
555
|
-
"
|
555
|
+
"Strings",
|
556
556
|
"Algorithms"
|
557
557
|
]
|
558
558
|
},
|
@@ -722,7 +722,7 @@
|
|
722
722
|
"unlocked_by": "allergies",
|
723
723
|
"difficulty": 5,
|
724
724
|
"topics": [
|
725
|
-
"
|
725
|
+
"Strings",
|
726
726
|
"Algorithms"
|
727
727
|
]
|
728
728
|
},
|
@@ -733,7 +733,7 @@
|
|
733
733
|
"unlocked_by": "markdown",
|
734
734
|
"difficulty": 5,
|
735
735
|
"topics": [
|
736
|
-
"
|
736
|
+
"Strings",
|
737
737
|
"Files",
|
738
738
|
"Searching"
|
739
739
|
]
|
@@ -813,7 +813,7 @@
|
|
813
813
|
"difficulty": 5,
|
814
814
|
"topics": [
|
815
815
|
"Globalization",
|
816
|
-
"
|
816
|
+
"Strings",
|
817
817
|
"Refactoring"
|
818
818
|
]
|
819
819
|
},
|
@@ -902,7 +902,7 @@
|
|
902
902
|
"unlocked_by": "kindergarten-garden",
|
903
903
|
"difficulty": 6,
|
904
904
|
"topics": [
|
905
|
-
"
|
905
|
+
"Strings",
|
906
906
|
"Parsing"
|
907
907
|
]
|
908
908
|
},
|
@@ -1081,7 +1081,7 @@
|
|
1081
1081
|
"unlocked_by": "saddle-points",
|
1082
1082
|
"difficulty": 8,
|
1083
1083
|
"topics": [
|
1084
|
-
"
|
1084
|
+
"Strings",
|
1085
1085
|
"Algorithms"
|
1086
1086
|
]
|
1087
1087
|
},
|
@@ -1114,8 +1114,7 @@
|
|
1114
1114
|
"difficulty": 8,
|
1115
1115
|
"topics": [
|
1116
1116
|
"Strings",
|
1117
|
-
"Transforming"
|
1118
|
-
"Text formatting"
|
1117
|
+
"Transforming"
|
1119
1118
|
]
|
1120
1119
|
},
|
1121
1120
|
{
|
@@ -33,14 +33,14 @@ public static class House
|
|
33
33
|
"belonged to",
|
34
34
|
""
|
35
35
|
};
|
36
|
-
|
37
|
-
public static string
|
36
|
+
|
37
|
+
public static string Verses(int first, int last)
|
38
38
|
{
|
39
|
-
var
|
40
|
-
return string.Join("\n\n", Enumerable.Range(
|
39
|
+
var numberOfVerses = last - first + 1;
|
40
|
+
return string.Join("\n\n", Enumerable.Range(first, numberOfVerses).Select(Verse));
|
41
41
|
}
|
42
42
|
|
43
|
-
|
43
|
+
public static string Verse(int number)
|
44
44
|
{
|
45
45
|
return string.Join("\n", Enumerable.Range(1, number).Reverse().Select(index => Line(number, index)));
|
46
46
|
}
|
@@ -2,7 +2,12 @@
|
|
2
2
|
|
3
3
|
public static class House
|
4
4
|
{
|
5
|
-
public static string
|
5
|
+
public static string Verse(int number)
|
6
|
+
{
|
7
|
+
throw new NotImplementedException("You need to implement this function.");
|
8
|
+
}
|
9
|
+
|
10
|
+
public static string Verses(int first, int last)
|
6
11
|
{
|
7
12
|
throw new NotImplementedException("You need to implement this function.");
|
8
13
|
}
|
@@ -1,11 +1,215 @@
|
|
1
|
-
|
1
|
+
// This file was auto-generated based on version 1.0.0 of the canonical data.
|
2
|
+
|
3
|
+
using Xunit;
|
2
4
|
|
3
5
|
public class HouseTest
|
4
6
|
{
|
5
7
|
[Fact]
|
6
|
-
public void
|
8
|
+
public void Verse_one_the_house_that_jack_built()
|
9
|
+
{
|
10
|
+
var expected = "This is the house that Jack built.";
|
11
|
+
Assert.Equal(expected, House.Verse(1));
|
12
|
+
}
|
13
|
+
|
14
|
+
[Fact(Skip = "Remove to run test")]
|
15
|
+
public void Verse_two_the_malt_that_lay()
|
16
|
+
{
|
17
|
+
var expected =
|
18
|
+
"This is the malt\n" +
|
19
|
+
"that lay in the house that Jack built.";
|
20
|
+
Assert.Equal(expected, House.Verse(2));
|
21
|
+
}
|
22
|
+
|
23
|
+
[Fact(Skip = "Remove to run test")]
|
24
|
+
public void Verse_three_the_rat_that_ate()
|
25
|
+
{
|
26
|
+
var expected =
|
27
|
+
"This is the rat\n" +
|
28
|
+
"that ate the malt\n" +
|
29
|
+
"that lay in the house that Jack built.";
|
30
|
+
Assert.Equal(expected, House.Verse(3));
|
31
|
+
}
|
32
|
+
|
33
|
+
[Fact(Skip = "Remove to run test")]
|
34
|
+
public void Verse_four_the_cat_that_killed()
|
35
|
+
{
|
36
|
+
var expected =
|
37
|
+
"This is the cat\n" +
|
38
|
+
"that killed the rat\n" +
|
39
|
+
"that ate the malt\n" +
|
40
|
+
"that lay in the house that Jack built.";
|
41
|
+
Assert.Equal(expected, House.Verse(4));
|
42
|
+
}
|
43
|
+
|
44
|
+
[Fact(Skip = "Remove to run test")]
|
45
|
+
public void Verse_five_the_dog_that_worried()
|
46
|
+
{
|
47
|
+
var expected =
|
48
|
+
"This is the dog\n" +
|
49
|
+
"that worried the cat\n" +
|
50
|
+
"that killed the rat\n" +
|
51
|
+
"that ate the malt\n" +
|
52
|
+
"that lay in the house that Jack built.";
|
53
|
+
Assert.Equal(expected, House.Verse(5));
|
54
|
+
}
|
55
|
+
|
56
|
+
[Fact(Skip = "Remove to run test")]
|
57
|
+
public void Verse_six_the_cow_with_the_crumpled_horn()
|
58
|
+
{
|
59
|
+
var expected =
|
60
|
+
"This is the cow with the crumpled horn\n" +
|
61
|
+
"that tossed the dog\n" +
|
62
|
+
"that worried the cat\n" +
|
63
|
+
"that killed the rat\n" +
|
64
|
+
"that ate the malt\n" +
|
65
|
+
"that lay in the house that Jack built.";
|
66
|
+
Assert.Equal(expected, House.Verse(6));
|
67
|
+
}
|
68
|
+
|
69
|
+
[Fact(Skip = "Remove to run test")]
|
70
|
+
public void Verse_seven_the_maiden_all_forlorn()
|
71
|
+
{
|
72
|
+
var expected =
|
73
|
+
"This is the maiden all forlorn\n" +
|
74
|
+
"that milked the cow with the crumpled horn\n" +
|
75
|
+
"that tossed the dog\n" +
|
76
|
+
"that worried the cat\n" +
|
77
|
+
"that killed the rat\n" +
|
78
|
+
"that ate the malt\n" +
|
79
|
+
"that lay in the house that Jack built.";
|
80
|
+
Assert.Equal(expected, House.Verse(7));
|
81
|
+
}
|
82
|
+
|
83
|
+
[Fact(Skip = "Remove to run test")]
|
84
|
+
public void Verse_eight_the_man_all_tattered_and_torn()
|
85
|
+
{
|
86
|
+
var expected =
|
87
|
+
"This is the man all tattered and torn\n" +
|
88
|
+
"that kissed the maiden all forlorn\n" +
|
89
|
+
"that milked the cow with the crumpled horn\n" +
|
90
|
+
"that tossed the dog\n" +
|
91
|
+
"that worried the cat\n" +
|
92
|
+
"that killed the rat\n" +
|
93
|
+
"that ate the malt\n" +
|
94
|
+
"that lay in the house that Jack built.";
|
95
|
+
Assert.Equal(expected, House.Verse(8));
|
96
|
+
}
|
97
|
+
|
98
|
+
[Fact(Skip = "Remove to run test")]
|
99
|
+
public void Verse_nine_the_priest_all_shaven_and_shorn()
|
100
|
+
{
|
101
|
+
var expected =
|
102
|
+
"This is the priest all shaven and shorn\n" +
|
103
|
+
"that married the man all tattered and torn\n" +
|
104
|
+
"that kissed the maiden all forlorn\n" +
|
105
|
+
"that milked the cow with the crumpled horn\n" +
|
106
|
+
"that tossed the dog\n" +
|
107
|
+
"that worried the cat\n" +
|
108
|
+
"that killed the rat\n" +
|
109
|
+
"that ate the malt\n" +
|
110
|
+
"that lay in the house that Jack built.";
|
111
|
+
Assert.Equal(expected, House.Verse(9));
|
112
|
+
}
|
113
|
+
|
114
|
+
[Fact(Skip = "Remove to run test")]
|
115
|
+
public void Verse_10_the_rooster_that_crowed_in_the_morn()
|
116
|
+
{
|
117
|
+
var expected =
|
118
|
+
"This is the rooster that crowed in the morn\n" +
|
119
|
+
"that woke the priest all shaven and shorn\n" +
|
120
|
+
"that married the man all tattered and torn\n" +
|
121
|
+
"that kissed the maiden all forlorn\n" +
|
122
|
+
"that milked the cow with the crumpled horn\n" +
|
123
|
+
"that tossed the dog\n" +
|
124
|
+
"that worried the cat\n" +
|
125
|
+
"that killed the rat\n" +
|
126
|
+
"that ate the malt\n" +
|
127
|
+
"that lay in the house that Jack built.";
|
128
|
+
Assert.Equal(expected, House.Verse(10));
|
129
|
+
}
|
130
|
+
|
131
|
+
[Fact(Skip = "Remove to run test")]
|
132
|
+
public void Verse_11_the_farmer_sowing_his_corn()
|
133
|
+
{
|
134
|
+
var expected =
|
135
|
+
"This is the farmer sowing his corn\n" +
|
136
|
+
"that kept the rooster that crowed in the morn\n" +
|
137
|
+
"that woke the priest all shaven and shorn\n" +
|
138
|
+
"that married the man all tattered and torn\n" +
|
139
|
+
"that kissed the maiden all forlorn\n" +
|
140
|
+
"that milked the cow with the crumpled horn\n" +
|
141
|
+
"that tossed the dog\n" +
|
142
|
+
"that worried the cat\n" +
|
143
|
+
"that killed the rat\n" +
|
144
|
+
"that ate the malt\n" +
|
145
|
+
"that lay in the house that Jack built.";
|
146
|
+
Assert.Equal(expected, House.Verse(11));
|
147
|
+
}
|
148
|
+
|
149
|
+
[Fact(Skip = "Remove to run test")]
|
150
|
+
public void Verse_12_the_horse_and_the_hound_and_the_horn()
|
151
|
+
{
|
152
|
+
var expected =
|
153
|
+
"This is the horse and the hound and the horn\n" +
|
154
|
+
"that belonged to the farmer sowing his corn\n" +
|
155
|
+
"that kept the rooster that crowed in the morn\n" +
|
156
|
+
"that woke the priest all shaven and shorn\n" +
|
157
|
+
"that married the man all tattered and torn\n" +
|
158
|
+
"that kissed the maiden all forlorn\n" +
|
159
|
+
"that milked the cow with the crumpled horn\n" +
|
160
|
+
"that tossed the dog\n" +
|
161
|
+
"that worried the cat\n" +
|
162
|
+
"that killed the rat\n" +
|
163
|
+
"that ate the malt\n" +
|
164
|
+
"that lay in the house that Jack built.";
|
165
|
+
Assert.Equal(expected, House.Verse(12));
|
166
|
+
}
|
167
|
+
|
168
|
+
[Fact(Skip = "Remove to run test")]
|
169
|
+
public void Multiple_verses()
|
7
170
|
{
|
8
|
-
|
171
|
+
var expected =
|
172
|
+
"This is the cat\n" +
|
173
|
+
"that killed the rat\n" +
|
174
|
+
"that ate the malt\n" +
|
175
|
+
"that lay in the house that Jack built.\n" +
|
176
|
+
"\n" +
|
177
|
+
"This is the dog\n" +
|
178
|
+
"that worried the cat\n" +
|
179
|
+
"that killed the rat\n" +
|
180
|
+
"that ate the malt\n" +
|
181
|
+
"that lay in the house that Jack built.\n" +
|
182
|
+
"\n" +
|
183
|
+
"This is the cow with the crumpled horn\n" +
|
184
|
+
"that tossed the dog\n" +
|
185
|
+
"that worried the cat\n" +
|
186
|
+
"that killed the rat\n" +
|
187
|
+
"that ate the malt\n" +
|
188
|
+
"that lay in the house that Jack built.\n" +
|
189
|
+
"\n" +
|
190
|
+
"This is the maiden all forlorn\n" +
|
191
|
+
"that milked the cow with the crumpled horn\n" +
|
192
|
+
"that tossed the dog\n" +
|
193
|
+
"that worried the cat\n" +
|
194
|
+
"that killed the rat\n" +
|
195
|
+
"that ate the malt\n" +
|
196
|
+
"that lay in the house that Jack built.\n" +
|
197
|
+
"\n" +
|
198
|
+
"This is the man all tattered and torn\n" +
|
199
|
+
"that kissed the maiden all forlorn\n" +
|
200
|
+
"that milked the cow with the crumpled horn\n" +
|
201
|
+
"that tossed the dog\n" +
|
202
|
+
"that worried the cat\n" +
|
203
|
+
"that killed the rat\n" +
|
204
|
+
"that ate the malt\n" +
|
205
|
+
"that lay in the house that Jack built.";
|
206
|
+
Assert.Equal(expected, House.Verses(4, 8));
|
207
|
+
}
|
208
|
+
|
209
|
+
[Fact(Skip = "Remove to run test")]
|
210
|
+
public void Full_rhyme()
|
211
|
+
{
|
212
|
+
var expected =
|
9
213
|
"This is the house that Jack built.\n" +
|
10
214
|
"\n" +
|
11
215
|
"This is the malt\n" +
|
@@ -95,7 +299,6 @@ public void Rhyme_is_correct()
|
|
95
299
|
"that killed the rat\n" +
|
96
300
|
"that ate the malt\n" +
|
97
301
|
"that lay in the house that Jack built.";
|
98
|
-
|
99
|
-
Assert.Equal(expected, House.Rhyme());
|
302
|
+
Assert.Equal(expected, House.Verses(1, 12));
|
100
303
|
}
|
101
304
|
}
|