trackler 2.1.0.34 → 2.1.0.36

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.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/tracks/coq/config.json +3 -5
  4. data/tracks/csharp/.gitignore +5 -1
  5. data/tracks/csharp/exercises/acronym/AcronymTest.cs +3 -7
  6. data/tracks/csharp/exercises/atbash-cipher/AtbashCipherTest.cs +2 -0
  7. data/tracks/csharp/exercises/beer-song/BeerSongTest.cs +9 -7
  8. data/tracks/csharp/exercises/bob/Bob.cs +1 -1
  9. data/tracks/csharp/exercises/bob/BobTest.cs +79 -37
  10. data/tracks/csharp/exercises/bob/Example.cs +1 -1
  11. data/tracks/csharp/exercises/food-chain/FoodChainTest.cs +2 -0
  12. data/tracks/csharp/exercises/hello-world/HelloWorldTest.cs +5 -3
  13. data/tracks/csharp/exercises/isogram/IsogramTest.cs +8 -0
  14. data/tracks/csharp/exercises/leap/LeapTest.cs +2 -0
  15. data/tracks/csharp/exercises/luhn/LuhnTest.cs +2 -0
  16. data/tracks/csharp/exercises/nth-prime/NthPrimeTest.cs +2 -0
  17. data/tracks/csharp/exercises/perfect-numbers/PerfectNumbersTest.cs +2 -0
  18. data/tracks/csharp/exercises/pig-latin/PigLatinTest.cs +2 -0
  19. data/tracks/csharp/exercises/raindrops/RaindropsTest.cs +2 -0
  20. data/tracks/csharp/exercises/roman-numerals/RomanNumeralsTest.cs +2 -0
  21. data/tracks/csharp/exercises/rotational-cipher/RotationalCipherTest.cs +2 -0
  22. data/tracks/csharp/exercises/wordy/WordyTest.cs +2 -0
  23. data/tracks/csharp/generators/Classes/TestClass.cs +1 -0
  24. data/tracks/csharp/generators/Classes/TestClassRenderer.cs +4 -1
  25. data/tracks/csharp/generators/Exercises/Bob.cs +20 -0
  26. data/tracks/csharp/generators/Exercises/Exercise.cs +2 -1
  27. data/tracks/csharp/generators/Methods/TestMethodGenerator.cs +4 -0
  28. data/tracks/delphi/exercises/hello-world/uTestHelloWorld.pas +12 -1
  29. data/tracks/elixir/config.json +58 -7
  30. data/tracks/go/config.json +5 -6
  31. data/tracks/go/exercises/anagram/anagram_test.go +2 -2
  32. data/tracks/go/exercises/anagram/example.go +2 -3
  33. data/tracks/java/.travis.yml +9 -9
  34. data/tracks/java/bin/fetch-configlet +1 -1
  35. data/tracks/java/bin/journey-test.sh +23 -17
  36. data/tracks/java/bin/unit-tests.sh +2 -2
  37. data/tracks/julia/exercises/rotational-cipher/runtests.jl +13 -13
  38. data/tracks/julia/runtests.jl +13 -0
  39. data/tracks/lisp/config.json +174 -120
  40. data/tracks/lua/README.md +9 -8
  41. data/tracks/ocaml/config.json +0 -5
  42. data/tracks/php/config.json +424 -402
  43. data/tracks/ruby/README.md +6 -0
  44. data/tracks/scala/config.json +0 -7
  45. data/tracks/typescript/config.json +27 -13
  46. metadata +3 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d22c04389af0b5417f36244e838a0596d2f744f9
4
- data.tar.gz: 7e869044483231d71d7915aa6a7d638fc26968c5
3
+ metadata.gz: 6b811907abfe87f2a895d0d1e6b7ce113922fbc1
4
+ data.tar.gz: 17ffdbc50f11cf05aecbe6a800bd7d6414e29fa5
5
5
  SHA512:
6
- metadata.gz: 8a2caec63e49e0cfc500ba3326640ab7b0fcc227c4682e30983deadcc0324a66e906303c0cab405c37b5869dfed333d492611629eca8fba6b1b115acd37ce49e
7
- data.tar.gz: bf80d001b43642fe319539dfb584a93c91c88bde4e507a03aa43901529895e6e2984114734f18404b97f95898c29380962be953a7d19a9d60385ea22c817d789
6
+ metadata.gz: 312a430e4335107c35b178d708e15ae72cd7eed754e8eb0e0d4465e2e1cf054eab4133ef6283478452f706b3027416d230c75eb10ed7ea3a71c9cd95ae6cfd5b
7
+ data.tar.gz: 27c7d2aca14113fdcabfd20ccfe0c1b97980ee9a26e78c9b110dc19a24e5a60d693bc4ea1b95d7818e26f643554452e0960fabe6e986a3628750cfa18ba4b31f
@@ -1,3 +1,3 @@
1
1
  module Trackler
2
- VERSION = "2.1.0.34"
2
+ VERSION = "2.1.0.36"
3
3
  end
@@ -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
 
@@ -12,4 +12,8 @@ TestResult.xml
12
12
  obj/
13
13
  bin/
14
14
  *.userprefs
15
- .idea/
15
+ .idea/
16
+ .dotnet/
17
+ .fake/
18
+ .paket/
19
+ paket-files/
@@ -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 AtbashCipherTest
@@ -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 =
@@ -2,7 +2,7 @@ using System;
2
2
 
3
3
  public static class Bob
4
4
  {
5
- public static string Hey(string statement)
5
+ public static string Response(string statement)
6
6
  {
7
7
  throw new NotImplementedException("You need to implement this function.");
8
8
  }
@@ -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.Hey("Tom-ay-to, tom-aaaah-to."));
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.Hey("WATCH OUT!"));
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 Asking_a_question ()
18
+ public void Shouting_gibberish()
19
19
  {
20
- Assert.Equal("Sure.", Bob.Hey("Does this cryogenic chamber make me look fat?"));
20
+ Assert.Equal("Whoa, chill out!", Bob.Response("FCECDFCAAB"));
21
21
  }
22
22
 
23
23
  [Fact(Skip = "Remove to run test")]
24
- public void Asking_a_question_with_a_trailing_space()
24
+ public void Asking_a_question()
25
25
  {
26
- Assert.Equal("Sure.", Bob.Hey("Do I like my spacebar too much? "));
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.Hey("You are, what, like 15?"));
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 Talking_forcefully ()
36
+ public void Asking_gibberish()
37
37
  {
38
- Assert.Equal("Whatever.", Bob.Hey("Let's go make out behind the gym!"));
38
+ Assert.Equal("Sure.", Bob.Response("fffbbcbeab?"));
39
39
  }
40
40
 
41
41
  [Fact(Skip = "Remove to run test")]
42
- public void Using_acronyms_in_regular_search ()
42
+ public void Talking_forcefully()
43
43
  {
44
- Assert.Equal("Whatever.", Bob.Hey("It's OK if you don't want to go to the DMV."));
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 Forceful_questions ()
48
+ public void Using_acronyms_in_regular_speech()
49
49
  {
50
- Assert.Equal("Whoa, chill out!", Bob.Hey("WHAT THE HELL WERE YOU THINKING?"));
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 Shouting_numbers ()
54
+ public void Forceful_question()
55
55
  {
56
- Assert.Equal("Whoa, chill out!", Bob.Hey("1, 2, 3 GO!"));
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 Only_numbers ()
60
+ public void Shouting_numbers()
61
61
  {
62
- Assert.Equal("Whatever.", Bob.Hey("1, 2, 3"));
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 Question_with_only_numbers ()
66
+ public void Only_numbers()
67
67
  {
68
- Assert.Equal("Sure.", Bob.Hey("4?"));
68
+ Assert.Equal("Whatever.", Bob.Response("1, 2, 3"));
69
69
  }
70
70
 
71
71
  [Fact(Skip = "Remove to run test")]
72
- public void Shouting_with_special_characters ()
72
+ public void Question_with_only_numbers()
73
73
  {
74
- Assert.Equal("Whoa, chill out!", Bob.Hey("ZOMG THE %^*@#$(*^ ZOMBIES ARE COMING!!11!!1!"));
74
+ Assert.Equal("Sure.", Bob.Response("4?"));
75
75
  }
76
76
 
77
77
  [Fact(Skip = "Remove to run test")]
78
- public void Shouting_with_no_exclamation_mark ()
78
+ public void Shouting_with_special_characters()
79
79
  {
80
- Assert.Equal("Whoa, chill out!", Bob.Hey("I HATE YOU"));
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 Statement_containing_question_mark ()
84
+ public void Shouting_with_no_exclamation_mark()
85
85
  {
86
- Assert.Equal("Whatever.", Bob.Hey("Ending with ? means a question."));
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 Prattling_on ()
90
+ public void Statement_containing_question_mark()
91
91
  {
92
- Assert.Equal("Sure.", Bob.Hey("Wait! Hang on. Are you going to be OK?"));
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 Silence ()
96
+ public void Non_letters_with_question()
97
97
  {
98
- Assert.Equal("Fine. Be that way!", Bob.Hey(""));
98
+ Assert.Equal("Sure.", Bob.Response(":) ?"));
99
99
  }
100
100
 
101
101
  [Fact(Skip = "Remove to run test")]
102
- public void Prolonged_silence ()
102
+ public void Prattling_on()
103
103
  {
104
- Assert.Equal("Fine. Be that way!", Bob.Hey(" "));
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 Multiple_line_question ()
108
+ public void Silence()
109
109
  {
110
- Assert.Equal("Whatever.", Bob.Hey("Does this cryogenic chamber make me look fat?\nno"));
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,6 +1,6 @@
1
1
  public static class Bob
2
2
  {
3
- public static string Hey(string statement)
3
+ public static string Response(string statement)
4
4
  {
5
5
  if (IsSilence(statement))
6
6
  return "Fine. Be that way!";
@@ -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 FoodChainTest
@@ -1,10 +1,12 @@
1
- using Xunit;
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 Say_hi()
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
  }
@@ -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 LeapTest
@@ -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 LuhnTest
@@ -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
  using System;
3
5
 
@@ -1,3 +1,5 @@
1
+ // This file was auto-generated based on version 1.0.1 of the canonical data.
2
+
1
3
  using Xunit;
2
4
  using System;
3
5
 
@@ -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 PigLatinTest
@@ -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 RaindropsTest
@@ -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 RomanNumeralsTest
@@ -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 RotationalCipherTest
@@ -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
  using System;
3
5
 
@@ -10,5 +10,6 @@ namespace Generators.Classes
10
10
  public string BeforeTestMethods { get; set; }
11
11
  public TestMethod[] TestMethods { get; set; }
12
12
  public string AfterTestMethods { get; set; }
13
+ public string CanonicalDataVersion { get; set; }
13
14
  }
14
15
  }
@@ -7,7 +7,9 @@ namespace Generators.Classes
7
7
  public static class TestClassRenderer
8
8
  {
9
9
  private const string TestClassTemplate =
10
- @"{UsingNamespaces}
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);
@@ -56,6 +56,10 @@ namespace Generators.Methods
56
56
  switch (val)
57
57
  {
58
58
  case string s:
59
+ s = s
60
+ .Replace("\n", "\\n")
61
+ .Replace("\r", "\\r")
62
+ .Replace("\t", "\\t");
59
63
  return $"\"{s}\"";
60
64
  default:
61
65
  return val;
@@ -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
- assert.AreEqual('Hello, World!', Hello);
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