trackler 2.1.0.34 → 2.1.0.36
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/tracks/coq/config.json +3 -5
- data/tracks/csharp/.gitignore +5 -1
- data/tracks/csharp/exercises/acronym/AcronymTest.cs +3 -7
- data/tracks/csharp/exercises/atbash-cipher/AtbashCipherTest.cs +2 -0
- data/tracks/csharp/exercises/beer-song/BeerSongTest.cs +9 -7
- data/tracks/csharp/exercises/bob/Bob.cs +1 -1
- data/tracks/csharp/exercises/bob/BobTest.cs +79 -37
- data/tracks/csharp/exercises/bob/Example.cs +1 -1
- data/tracks/csharp/exercises/food-chain/FoodChainTest.cs +2 -0
- data/tracks/csharp/exercises/hello-world/HelloWorldTest.cs +5 -3
- data/tracks/csharp/exercises/isogram/IsogramTest.cs +8 -0
- data/tracks/csharp/exercises/leap/LeapTest.cs +2 -0
- data/tracks/csharp/exercises/luhn/LuhnTest.cs +2 -0
- data/tracks/csharp/exercises/nth-prime/NthPrimeTest.cs +2 -0
- data/tracks/csharp/exercises/perfect-numbers/PerfectNumbersTest.cs +2 -0
- data/tracks/csharp/exercises/pig-latin/PigLatinTest.cs +2 -0
- data/tracks/csharp/exercises/raindrops/RaindropsTest.cs +2 -0
- data/tracks/csharp/exercises/roman-numerals/RomanNumeralsTest.cs +2 -0
- data/tracks/csharp/exercises/rotational-cipher/RotationalCipherTest.cs +2 -0
- data/tracks/csharp/exercises/wordy/WordyTest.cs +2 -0
- data/tracks/csharp/generators/Classes/TestClass.cs +1 -0
- data/tracks/csharp/generators/Classes/TestClassRenderer.cs +4 -1
- data/tracks/csharp/generators/Exercises/Bob.cs +20 -0
- data/tracks/csharp/generators/Exercises/Exercise.cs +2 -1
- data/tracks/csharp/generators/Methods/TestMethodGenerator.cs +4 -0
- data/tracks/delphi/exercises/hello-world/uTestHelloWorld.pas +12 -1
- data/tracks/elixir/config.json +58 -7
- data/tracks/go/config.json +5 -6
- data/tracks/go/exercises/anagram/anagram_test.go +2 -2
- data/tracks/go/exercises/anagram/example.go +2 -3
- data/tracks/java/.travis.yml +9 -9
- data/tracks/java/bin/fetch-configlet +1 -1
- data/tracks/java/bin/journey-test.sh +23 -17
- data/tracks/java/bin/unit-tests.sh +2 -2
- data/tracks/julia/exercises/rotational-cipher/runtests.jl +13 -13
- data/tracks/julia/runtests.jl +13 -0
- data/tracks/lisp/config.json +174 -120
- data/tracks/lua/README.md +9 -8
- data/tracks/ocaml/config.json +0 -5
- data/tracks/php/config.json +424 -402
- data/tracks/ruby/README.md +6 -0
- data/tracks/scala/config.json +0 -7
- data/tracks/typescript/config.json +27 -13
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6b811907abfe87f2a895d0d1e6b7ce113922fbc1
|
4
|
+
data.tar.gz: 17ffdbc50f11cf05aecbe6a800bd7d6414e29fa5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 312a430e4335107c35b178d708e15ae72cd7eed754e8eb0e0d4465e2e1cf054eab4133ef6283478452f706b3027416d230c75eb10ed7ea3a71c9cd95ae6cfd5b
|
7
|
+
data.tar.gz: 27c7d2aca14113fdcabfd20ccfe0c1b97980ee9a26e78c9b110dc19a24e5a60d693bc4ea1b95d7818e26f643554452e0960fabe6e986a3628750cfa18ba4b31f
|
data/lib/trackler/version.rb
CHANGED
data/tracks/coq/config.json
CHANGED
@@ -9,28 +9,26 @@
|
|
9
9
|
"slug": "hello-world",
|
10
10
|
"difficulty": 1,
|
11
11
|
"topics": [
|
12
|
+
|
12
13
|
]
|
13
14
|
},
|
14
15
|
{
|
15
16
|
"slug": "rna-transcription",
|
16
17
|
"difficulty": 1,
|
17
18
|
"topics": [
|
19
|
+
|
18
20
|
]
|
19
21
|
},
|
20
22
|
{
|
21
23
|
"slug": "tautology",
|
22
24
|
"difficulty": 1,
|
23
25
|
"topics": [
|
26
|
+
|
24
27
|
]
|
25
28
|
}
|
26
29
|
],
|
27
30
|
"deprecated": [
|
28
31
|
|
29
|
-
],
|
30
|
-
"ignored": [
|
31
|
-
"bin",
|
32
|
-
"img",
|
33
|
-
"docs"
|
34
32
|
],
|
35
33
|
"foregone": [
|
36
34
|
|
data/tracks/csharp/.gitignore
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
// This file was auto-generated based on version 1.1.0 of the canonical data.
|
2
|
+
|
1
3
|
using Xunit;
|
2
4
|
|
3
5
|
public class AcronymTest
|
@@ -14,12 +16,6 @@ public class AcronymTest
|
|
14
16
|
Assert.Equal("ROR", Acronym.Abbreviate("Ruby on Rails"));
|
15
17
|
}
|
16
18
|
|
17
|
-
[Fact(Skip = "Remove to run test")]
|
18
|
-
public void PascalCase()
|
19
|
-
{
|
20
|
-
Assert.Equal("HTML", Acronym.Abbreviate("HyperText Markup Language"));
|
21
|
-
}
|
22
|
-
|
23
19
|
[Fact(Skip = "Remove to run test")]
|
24
20
|
public void Punctuation()
|
25
21
|
{
|
@@ -43,4 +39,4 @@ public class AcronymTest
|
|
43
39
|
{
|
44
40
|
Assert.Equal("CMOS", Acronym.Abbreviate("Complementary metal-oxide semiconductor"));
|
45
41
|
}
|
46
|
-
}
|
42
|
+
}
|
@@ -1,3 +1,5 @@
|
|
1
|
+
// This file was auto-generated based on version 1.0.0 of the canonical data.
|
2
|
+
|
1
3
|
using Xunit;
|
2
4
|
|
3
5
|
public class BeerSongTest
|
@@ -12,7 +14,7 @@ public class BeerSongTest
|
|
12
14
|
Assert.Equal(expected, BeerSong.Verse(99));
|
13
15
|
}
|
14
16
|
|
15
|
-
[Fact]
|
17
|
+
[Fact(Skip = "Remove to run test")]
|
16
18
|
public void Last_generic_verse()
|
17
19
|
{
|
18
20
|
var expected =
|
@@ -22,7 +24,7 @@ public class BeerSongTest
|
|
22
24
|
Assert.Equal(expected, BeerSong.Verse(3));
|
23
25
|
}
|
24
26
|
|
25
|
-
[Fact]
|
27
|
+
[Fact(Skip = "Remove to run test")]
|
26
28
|
public void Verse_2()
|
27
29
|
{
|
28
30
|
var expected =
|
@@ -32,7 +34,7 @@ public class BeerSongTest
|
|
32
34
|
Assert.Equal(expected, BeerSong.Verse(2));
|
33
35
|
}
|
34
36
|
|
35
|
-
[Fact]
|
37
|
+
[Fact(Skip = "Remove to run test")]
|
36
38
|
public void Verse_1()
|
37
39
|
{
|
38
40
|
var expected =
|
@@ -42,7 +44,7 @@ public class BeerSongTest
|
|
42
44
|
Assert.Equal(expected, BeerSong.Verse(1));
|
43
45
|
}
|
44
46
|
|
45
|
-
[Fact]
|
47
|
+
[Fact(Skip = "Remove to run test")]
|
46
48
|
public void Verse_0()
|
47
49
|
{
|
48
50
|
var expected =
|
@@ -52,7 +54,7 @@ public class BeerSongTest
|
|
52
54
|
Assert.Equal(expected, BeerSong.Verse(0));
|
53
55
|
}
|
54
56
|
|
55
|
-
[Fact]
|
57
|
+
[Fact(Skip = "Remove to run test")]
|
56
58
|
public void First_two_verses()
|
57
59
|
{
|
58
60
|
var expected =
|
@@ -65,7 +67,7 @@ public class BeerSongTest
|
|
65
67
|
Assert.Equal(expected, BeerSong.Verses(99, 98));
|
66
68
|
}
|
67
69
|
|
68
|
-
[Fact]
|
70
|
+
[Fact(Skip = "Remove to run test")]
|
69
71
|
public void Last_three_verses()
|
70
72
|
{
|
71
73
|
var expected =
|
@@ -81,7 +83,7 @@ public class BeerSongTest
|
|
81
83
|
Assert.Equal(expected, BeerSong.Verses(2, 0));
|
82
84
|
}
|
83
85
|
|
84
|
-
[Fact]
|
86
|
+
[Fact(Skip = "Remove to run test")]
|
85
87
|
public void All_verses()
|
86
88
|
{
|
87
89
|
var expected =
|
@@ -3,110 +3,152 @@ using Xunit;
|
|
3
3
|
public class BobTest
|
4
4
|
{
|
5
5
|
[Fact]
|
6
|
-
public void Stating_something
|
6
|
+
public void Stating_something()
|
7
7
|
{
|
8
|
-
Assert.Equal("Whatever.", Bob.
|
8
|
+
Assert.Equal("Whatever.", Bob.Response("Tom-ay-to, tom-aaaah-to."));
|
9
9
|
}
|
10
10
|
|
11
11
|
[Fact(Skip = "Remove to run test")]
|
12
|
-
public void Shouting
|
12
|
+
public void Shouting()
|
13
13
|
{
|
14
|
-
Assert.Equal("Whoa, chill out!", Bob.
|
14
|
+
Assert.Equal("Whoa, chill out!", Bob.Response("WATCH OUT!"));
|
15
15
|
}
|
16
16
|
|
17
17
|
[Fact(Skip = "Remove to run test")]
|
18
|
-
public void
|
18
|
+
public void Shouting_gibberish()
|
19
19
|
{
|
20
|
-
Assert.Equal("
|
20
|
+
Assert.Equal("Whoa, chill out!", Bob.Response("FCECDFCAAB"));
|
21
21
|
}
|
22
22
|
|
23
23
|
[Fact(Skip = "Remove to run test")]
|
24
|
-
public void
|
24
|
+
public void Asking_a_question()
|
25
25
|
{
|
26
|
-
Assert.Equal("Sure.", Bob.
|
26
|
+
Assert.Equal("Sure.", Bob.Response("Does this cryogenic chamber make me look fat?"));
|
27
27
|
}
|
28
28
|
|
29
29
|
[Fact(Skip = "Remove to run test")]
|
30
|
-
public void Asking_a_numeric_question
|
30
|
+
public void Asking_a_numeric_question()
|
31
31
|
{
|
32
|
-
Assert.Equal("Sure.", Bob.
|
32
|
+
Assert.Equal("Sure.", Bob.Response("You are, what, like 15?"));
|
33
33
|
}
|
34
34
|
|
35
35
|
[Fact(Skip = "Remove to run test")]
|
36
|
-
public void
|
36
|
+
public void Asking_gibberish()
|
37
37
|
{
|
38
|
-
Assert.Equal("
|
38
|
+
Assert.Equal("Sure.", Bob.Response("fffbbcbeab?"));
|
39
39
|
}
|
40
40
|
|
41
41
|
[Fact(Skip = "Remove to run test")]
|
42
|
-
public void
|
42
|
+
public void Talking_forcefully()
|
43
43
|
{
|
44
|
-
Assert.Equal("Whatever.", Bob.
|
44
|
+
Assert.Equal("Whatever.", Bob.Response("Let's go make out behind the gym!"));
|
45
45
|
}
|
46
46
|
|
47
47
|
[Fact(Skip = "Remove to run test")]
|
48
|
-
public void
|
48
|
+
public void Using_acronyms_in_regular_speech()
|
49
49
|
{
|
50
|
-
Assert.Equal("
|
50
|
+
Assert.Equal("Whatever.", Bob.Response("It's OK if you don't want to go to the DMV."));
|
51
51
|
}
|
52
52
|
|
53
53
|
[Fact(Skip = "Remove to run test")]
|
54
|
-
public void
|
54
|
+
public void Forceful_question()
|
55
55
|
{
|
56
|
-
Assert.Equal("Whoa, chill out!", Bob.
|
56
|
+
Assert.Equal("Whoa, chill out!", Bob.Response("WHAT THE HELL WERE YOU THINKING?"));
|
57
57
|
}
|
58
58
|
|
59
59
|
[Fact(Skip = "Remove to run test")]
|
60
|
-
public void
|
60
|
+
public void Shouting_numbers()
|
61
61
|
{
|
62
|
-
Assert.Equal("
|
62
|
+
Assert.Equal("Whoa, chill out!", Bob.Response("1, 2, 3 GO!"));
|
63
63
|
}
|
64
64
|
|
65
65
|
[Fact(Skip = "Remove to run test")]
|
66
|
-
public void
|
66
|
+
public void Only_numbers()
|
67
67
|
{
|
68
|
-
Assert.Equal("
|
68
|
+
Assert.Equal("Whatever.", Bob.Response("1, 2, 3"));
|
69
69
|
}
|
70
70
|
|
71
71
|
[Fact(Skip = "Remove to run test")]
|
72
|
-
public void
|
72
|
+
public void Question_with_only_numbers()
|
73
73
|
{
|
74
|
-
Assert.Equal("
|
74
|
+
Assert.Equal("Sure.", Bob.Response("4?"));
|
75
75
|
}
|
76
76
|
|
77
77
|
[Fact(Skip = "Remove to run test")]
|
78
|
-
public void
|
78
|
+
public void Shouting_with_special_characters()
|
79
79
|
{
|
80
|
-
Assert.Equal("Whoa, chill out!", Bob.
|
80
|
+
Assert.Equal("Whoa, chill out!", Bob.Response("ZOMG THE %^*@#$(*^ ZOMBIES ARE COMING!!11!!1!"));
|
81
81
|
}
|
82
82
|
|
83
83
|
[Fact(Skip = "Remove to run test")]
|
84
|
-
public void
|
84
|
+
public void Shouting_with_no_exclamation_mark()
|
85
85
|
{
|
86
|
-
Assert.Equal("
|
86
|
+
Assert.Equal("Whoa, chill out!", Bob.Response("I HATE YOU"));
|
87
87
|
}
|
88
88
|
|
89
89
|
[Fact(Skip = "Remove to run test")]
|
90
|
-
public void
|
90
|
+
public void Statement_containing_question_mark()
|
91
91
|
{
|
92
|
-
Assert.Equal("
|
92
|
+
Assert.Equal("Whatever.", Bob.Response("Ending with ? means a question."));
|
93
93
|
}
|
94
94
|
|
95
95
|
[Fact(Skip = "Remove to run test")]
|
96
|
-
public void
|
96
|
+
public void Non_letters_with_question()
|
97
97
|
{
|
98
|
-
Assert.Equal("
|
98
|
+
Assert.Equal("Sure.", Bob.Response(":) ?"));
|
99
99
|
}
|
100
100
|
|
101
101
|
[Fact(Skip = "Remove to run test")]
|
102
|
-
public void
|
102
|
+
public void Prattling_on()
|
103
103
|
{
|
104
|
-
Assert.Equal("
|
104
|
+
Assert.Equal("Sure.", Bob.Response("Wait! Hang on. Are you going to be OK?"));
|
105
105
|
}
|
106
106
|
|
107
107
|
[Fact(Skip = "Remove to run test")]
|
108
|
-
public void
|
108
|
+
public void Silence()
|
109
109
|
{
|
110
|
-
Assert.Equal("
|
110
|
+
Assert.Equal("Fine. Be that way!", Bob.Response(""));
|
111
111
|
}
|
112
|
-
|
112
|
+
|
113
|
+
[Fact(Skip = "Remove to run test")]
|
114
|
+
public void Prolonged_silence()
|
115
|
+
{
|
116
|
+
Assert.Equal("Fine. Be that way!", Bob.Response(" "));
|
117
|
+
}
|
118
|
+
|
119
|
+
[Fact(Skip = "Remove to run test")]
|
120
|
+
public void Alternate_silence()
|
121
|
+
{
|
122
|
+
Assert.Equal("Fine. Be that way!", Bob.Response("\t\t\t\t\t\t\t\t\t\t"));
|
123
|
+
}
|
124
|
+
|
125
|
+
[Fact(Skip = "Remove to run test")]
|
126
|
+
public void Multiple_line_question()
|
127
|
+
{
|
128
|
+
Assert.Equal("Whatever.", Bob.Response("\nDoes this cryogenic chamber make me look fat?\nno"));
|
129
|
+
}
|
130
|
+
|
131
|
+
[Fact(Skip = "Remove to run test")]
|
132
|
+
public void Starting_with_whitespace()
|
133
|
+
{
|
134
|
+
Assert.Equal("Whatever.", Bob.Response(" hmmmmmmm..."));
|
135
|
+
}
|
136
|
+
|
137
|
+
[Fact(Skip = "Remove to run test")]
|
138
|
+
public void Ending_with_whitespace()
|
139
|
+
{
|
140
|
+
Assert.Equal("Sure.", Bob.Response("Okay if like my spacebar quite a bit? "));
|
141
|
+
}
|
142
|
+
|
143
|
+
[Fact(Skip = "Remove to run test")]
|
144
|
+
public void Other_whitespace()
|
145
|
+
{
|
146
|
+
Assert.Equal("Fine. Be that way!", Bob.Response("\n\r \t"));
|
147
|
+
}
|
148
|
+
|
149
|
+
[Fact(Skip = "Remove to run test")]
|
150
|
+
public void Non_question_ending_with_whitespace()
|
151
|
+
{
|
152
|
+
Assert.Equal("Whatever.", Bob.Response("This is a statement ending with whitespace "));
|
153
|
+
}
|
154
|
+
}
|
@@ -1,10 +1,12 @@
|
|
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 HelloWorldTest
|
4
6
|
{
|
5
7
|
[Fact]
|
6
|
-
public void
|
8
|
+
public void Say_hi_()
|
7
9
|
{
|
8
10
|
Assert.Equal("Hello, World!", HelloWorld.Hello());
|
9
11
|
}
|
10
|
-
}
|
12
|
+
}
|
@@ -1,3 +1,5 @@
|
|
1
|
+
// This file was auto-generated based on version 1.1.0 of the canonical data.
|
2
|
+
|
1
3
|
using Xunit;
|
2
4
|
|
3
5
|
public class IsogramTest
|
@@ -49,4 +51,10 @@ public class IsogramTest
|
|
49
51
|
{
|
50
52
|
Assert.True(Isogram.IsIsogram("Emily Jung Schwartzkopf"));
|
51
53
|
}
|
54
|
+
|
55
|
+
[Fact(Skip = "Remove to run test")]
|
56
|
+
public void Duplicated_character_in_the_middle()
|
57
|
+
{
|
58
|
+
Assert.False(Isogram.IsIsogram("accentor"));
|
59
|
+
}
|
52
60
|
}
|
@@ -7,7 +7,9 @@ namespace Generators.Classes
|
|
7
7
|
public static class TestClassRenderer
|
8
8
|
{
|
9
9
|
private const string TestClassTemplate =
|
10
|
-
@"{
|
10
|
+
@"// This file was auto-generated based on version {CanonicalDataVersion} of the canonical data.
|
11
|
+
|
12
|
+
{UsingNamespaces}
|
11
13
|
|
12
14
|
public class {ClassName}
|
13
15
|
{
|
@@ -16,6 +18,7 @@ public class {ClassName}
|
|
16
18
|
|
17
19
|
public static string Render(TestClass testClass) =>
|
18
20
|
TestClassTemplate
|
21
|
+
.Replace("{CanonicalDataVersion}", testClass.CanonicalDataVersion)
|
19
22
|
.Replace("{UsingNamespaces}", RenderUsingNamespaces(testClass))
|
20
23
|
.Replace("{ClassName}", testClass.ClassName)
|
21
24
|
.Replace("{Body}", RenderBody(testClass));
|
@@ -0,0 +1,20 @@
|
|
1
|
+
using Generators.Data;
|
2
|
+
using Generators.Methods;
|
3
|
+
|
4
|
+
namespace Generators.Exercises
|
5
|
+
{
|
6
|
+
public class BobExercise : EqualityExercise
|
7
|
+
{
|
8
|
+
public BobExercise() : base("bob")
|
9
|
+
{
|
10
|
+
}
|
11
|
+
|
12
|
+
protected override TestMethodData CreateTestMethodData(CanonicalData canonicalData, CanonicalDataCase canonicalDataCase, int index)
|
13
|
+
{
|
14
|
+
var testMethodData = base.CreateTestMethodData(canonicalData, canonicalDataCase, index);
|
15
|
+
testMethodData.Options.InputProperty = "input";
|
16
|
+
|
17
|
+
return testMethodData;
|
18
|
+
}
|
19
|
+
}
|
20
|
+
}
|
@@ -27,7 +27,8 @@ namespace Generators.Exercises
|
|
27
27
|
var testClass = new TestClass
|
28
28
|
{
|
29
29
|
ClassName = Name.Transform(To.TestClassName),
|
30
|
-
TestMethods = CreateTestMethods(canonicalData).ToArray()
|
30
|
+
TestMethods = CreateTestMethods(canonicalData).ToArray(),
|
31
|
+
CanonicalDataVersion = canonicalData.Version
|
31
32
|
};
|
32
33
|
|
33
34
|
AddTestMethodUsingNamespaces(testClass);
|
@@ -65,8 +65,19 @@ implementation
|
|
65
65
|
uses uHelloWorld;
|
66
66
|
|
67
67
|
procedure HelloWorldTest.Say_hi;
|
68
|
+
var
|
69
|
+
Expected: string;
|
70
|
+
Actual: string;
|
68
71
|
begin
|
69
|
-
|
72
|
+
Expected := 'Hello, World!'; //Expected: This is what is expected to be returned by the function/method (Hello)
|
73
|
+
Actual := Hello; //Actual: This is what is actually returned by the function/method (Hello)
|
74
|
+
Assert.AreEqual(Expected, Actual);
|
75
|
+
|
76
|
+
//As you progress in this track you will find that not every exercise has Expected and
|
77
|
+
//Actual defined as explicitly as they have been above. Often times you may find
|
78
|
+
//that the Expected outcome is inserted as an inline statement and the the call
|
79
|
+
//to the method being tested will be inserted in the Actual position of AreEqual like so:
|
80
|
+
//Assert.AreEqual('Hello, World!', Hello);
|
70
81
|
end;
|
71
82
|
|
72
83
|
initialization
|