trackler 2.0.8.34 → 2.0.8.35

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/tracks/c/exercises/phone-number/src/example.c +6 -6
  4. data/tracks/c/exercises/phone-number/test/test_phone_number.c +50 -5
  5. data/tracks/csharp/exercises/beer-song/BeerSong.cs +2 -2
  6. data/tracks/csharp/exercises/beer-song/BeerSongTest.cs +390 -0
  7. data/tracks/csharp/exercises/beer-song/Example.cs +3 -8
  8. data/tracks/csharp/exercises/wordy/Example.cs +3 -3
  9. data/tracks/csharp/exercises/wordy/Wordy.cs +2 -2
  10. data/tracks/csharp/exercises/wordy/WordyTest.cs +35 -35
  11. data/tracks/csharp/generators/Data/CanonicalDataValue.cs +17 -3
  12. data/tracks/csharp/generators/Exercises/BeerSongExercise.cs +33 -0
  13. data/tracks/csharp/generators/Exercises/EqualityExercise.cs +6 -1
  14. data/tracks/csharp/generators/Exercises/FoodChainExercise.cs +1 -1
  15. data/tracks/csharp/generators/Exercises/HelloWorldExercise.cs +9 -0
  16. data/tracks/csharp/generators/Exercises/NthPrimeExercise.cs +7 -8
  17. data/tracks/csharp/generators/Exercises/WordyExercise.cs +20 -0
  18. data/tracks/csharp/generators/Methods/TestMethodOptions.cs +1 -0
  19. data/tracks/elixir/README.md +1 -1
  20. data/tracks/go/config.json +9 -0
  21. data/tracks/go/exercises/accumulate/accumulate.go +5 -0
  22. data/tracks/go/exercises/change/cases_test.go +83 -0
  23. data/tracks/go/exercises/change/change_test.go +48 -0
  24. data/tracks/go/exercises/change/example.go +153 -0
  25. data/tracks/go/exercises/change/example_gen.go +96 -0
  26. data/tracks/java/exercises/beer-song/src/example/java/BeerSong.java +4 -7
  27. data/tracks/java/exercises/beer-song/src/test/java/BeerSongTest.java +15 -7
  28. data/tracks/julia/img/icon.png +0 -0
  29. data/tracks/julia/img/icon.svg +49 -11
  30. data/tracks/objective-c/exercises/bracket-push/BracketPushExample.h +0 -1
  31. data/tracks/objective-c/exercises/bracket-push/BracketPushExample.m +41 -379
  32. data/tracks/objective-c/exercises/bracket-push/BracketPushTest.m +12 -32
  33. data/tracks/objective-c/exercises/sublist/SublistExample.h +8 -1
  34. data/tracks/objective-c/exercises/sublist/SublistExample.m +27 -42
  35. data/tracks/objective-c/exercises/sublist/SublistTest.m +17 -20
  36. data/tracks/python/exercises/say/say_test.py +16 -11
  37. data/tracks/scala/exercises/pangram/src/test/scala/PangramTest.scala +6 -5
  38. data/tracks/swift/exercises/bob/Sources/BobExample.swift +2 -2
  39. data/tracks/swift/exercises/bob/Tests/BobTests/BobTests.swift +8 -8
  40. metadata +11 -3
  41. data/tracks/csharp/exercises/beer-song/BeerTest.cs +0 -22
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 467e8b1c3c1e08aa0d2a39ab3da213a0d3887255
4
- data.tar.gz: 4ccd48c1a3f3cb53a0cc24d007f192237918ffa1
3
+ metadata.gz: 054faf35a16a669389adcb9bc30f2534bb094f29
4
+ data.tar.gz: 25f6a0ee7eef086e1602b81992e373d413ea6a3c
5
5
  SHA512:
6
- metadata.gz: 64dd3dca50f78d5bcd3986c94dad46d5f0e82769c06d1489295a5c3bae081178c1f77758e197937a704b5041345604df5cd3f2e8ea61dceded2f1f3f8414214e
7
- data.tar.gz: d67de57f391f6180ddbff1fb9086ede70aa7155b51f94942d294c805af4b7bb0783a675d2c8f1cc66d82514e6e3b323d70f993f6d81565e043f8ade560dae4a2
6
+ metadata.gz: 0a576c089311d4e93506f3482dbefa4ce87dda1791c05a1e657ff010f94acc30a2cf711c2d32b7d64f6c3370402771096555d08673926e98bab8a28f311e2f89
7
+ data.tar.gz: 726ca1d529eec0a0977cd87f41c497aa627811f6f15c1b54ae06a5b191df96269debf4e9b4530624ae2a277ed9fc064774b0c7c6db6091ab515da5c2d7b677a6
@@ -1,3 +1,3 @@
1
1
  module Trackler
2
- VERSION = "2.0.8.34"
2
+ VERSION = "2.0.8.35"
3
3
  end
@@ -14,6 +14,7 @@
14
14
  #define EXTENSION_OFFSET (AREA_CODE_LENGTH + EXCHANGE_LENGTH)
15
15
 
16
16
  #define INVALID_NUMBER_RESULT "0000000000"
17
+ #define VALID_NON_DIGIT_CHARS " .-()"
17
18
 
18
19
  static void remove_leading_digit(char *phone_number)
19
20
  {
@@ -25,14 +26,17 @@ static void remove_leading_digit(char *phone_number)
25
26
  char *phone_number_clean(const char *input)
26
27
  {
27
28
  char *output = calloc(VALID_NUMBER_LENGTH + 2, sizeof(char));
28
-
29
29
  size_t j = 0;
30
+
30
31
  for (size_t i = 0; i < strlen(input); i++) {
31
32
  if (isdigit(input[i])) {
32
- if (j > VALID_NUMBER_LENGTH) {
33
+ if (j > VALID_NUMBER_LENGTH + 1) {
33
34
  break;
34
35
  }
35
36
  output[j++] = input[i];
37
+ } else if (strchr(VALID_NON_DIGIT_CHARS, input[i]) == NULL) {
38
+ strcpy(output, INVALID_NUMBER_RESULT);
39
+ return output;
36
40
  }
37
41
  }
38
42
 
@@ -45,7 +49,6 @@ char *phone_number_clean(const char *input)
45
49
  strcpy(output, INVALID_NUMBER_RESULT);
46
50
  }
47
51
  }
48
-
49
52
  return output;
50
53
  }
51
54
 
@@ -53,7 +56,6 @@ char *phone_number_get_area_code(const char *input)
53
56
  {
54
57
  char *output = phone_number_clean(input);
55
58
  output[3] = '\0';
56
-
57
59
  return output;
58
60
  }
59
61
 
@@ -64,8 +66,6 @@ char *phone_number_format(const char *input)
64
66
 
65
67
  sprintf(output, "(%.3s) %.3s-%.4s", cleaned_input,
66
68
  &cleaned_input[AREA_CODE_LENGTH], &cleaned_input[EXTENSION_OFFSET]);
67
-
68
69
  free(cleaned_input);
69
-
70
70
  return output;
71
71
  }
@@ -27,6 +27,22 @@ void test_cleans_numbers_with_dots(void)
27
27
  test_phone_number_clean(input, expected);
28
28
  }
29
29
 
30
+ void test_cleans_numbers_with_multiple_spaces(void)
31
+ {
32
+ const char input[] = "123 456 7890 ";
33
+ const char expected[] = "1234567890";
34
+
35
+ test_phone_number_clean(input, expected);
36
+ }
37
+
38
+ void test_invalid_when_9_digits(void)
39
+ {
40
+ const char input[] = "123456789";
41
+ const char expected[] = "0000000000";
42
+
43
+ test_phone_number_clean(input, expected);
44
+ }
45
+
30
46
  void test_valid_when_11_digits_and_first_digit_is_1(void)
31
47
  {
32
48
  const char input[] = "11234567890";
@@ -35,7 +51,7 @@ void test_valid_when_11_digits_and_first_digit_is_1(void)
35
51
  test_phone_number_clean(input, expected);
36
52
  }
37
53
 
38
- void test_invalid_when_11_digits(void)
54
+ void test_invalid_when_11_digits_and_first_digit_not_1(void)
39
55
  {
40
56
  const char input[] = "21234567890";
41
57
  const char expected[] = "0000000000";
@@ -43,9 +59,33 @@ void test_invalid_when_11_digits(void)
43
59
  test_phone_number_clean(input, expected);
44
60
  }
45
61
 
46
- void test_invalid_when_9_digits(void)
62
+ void test_invalid_when_more_than_11_digits(void)
47
63
  {
48
- const char input[] = "123456789";
64
+ const char input[] = "121234567890";
65
+ const char expected[] = "0000000000";
66
+
67
+ test_phone_number_clean(input, expected);
68
+ }
69
+
70
+ void test_invalid_with_letters(void)
71
+ {
72
+ const char input[] = "123-abc-7890";
73
+ const char expected[] = "0000000000";
74
+
75
+ test_phone_number_clean(input, expected);
76
+ }
77
+
78
+ void test_invalid_with_punctuations(void)
79
+ {
80
+ const char input[] = "123-@:!-7890";
81
+ const char expected[] = "0000000000";
82
+
83
+ test_phone_number_clean(input, expected);
84
+ }
85
+
86
+ void test_invalid_with_right_number_of_digits_but_letters_mixed_in(void)
87
+ {
88
+ const char input[] = "1a2b3c4d5e6f7g8h9i0j";
49
89
  const char expected[] = "0000000000";
50
90
 
51
91
  test_phone_number_clean(input, expected);
@@ -96,9 +136,14 @@ int main(void)
96
136
 
97
137
  RUN_TEST(test_cleans_parens_dashes_and_spaces_from_the_number);
98
138
  RUN_TEST(test_cleans_numbers_with_dots);
99
- RUN_TEST(test_valid_when_11_digits_and_first_digit_is_1);
100
- RUN_TEST(test_invalid_when_11_digits);
139
+ RUN_TEST(test_cleans_numbers_with_multiple_spaces);
101
140
  RUN_TEST(test_invalid_when_9_digits);
141
+ RUN_TEST(test_valid_when_11_digits_and_first_digit_is_1);
142
+ RUN_TEST(test_invalid_when_11_digits_and_first_digit_not_1);
143
+ RUN_TEST(test_invalid_when_more_than_11_digits);
144
+ RUN_TEST(test_invalid_with_letters);
145
+ RUN_TEST(test_invalid_with_punctuations);
146
+ RUN_TEST(test_invalid_with_right_number_of_digits_but_letters_mixed_in);
102
147
  RUN_TEST(test_returns_area_code);
103
148
  RUN_TEST(test_formats_a_number);
104
149
  RUN_TEST(test_cleans_number_before_formatting);
@@ -1,13 +1,13 @@
1
1
  using System;
2
2
 
3
- public static class Beer
3
+ public static class BeerSong
4
4
  {
5
5
  public static string Verse(int number)
6
6
  {
7
7
  throw new NotImplementedException("You need to implement this function.");
8
8
  }
9
9
 
10
- public static string Sing(int start, int stop)
10
+ public static string Verses(int begin, int end)
11
11
  {
12
12
  throw new NotImplementedException("You need to implement this function.");
13
13
  }
@@ -0,0 +1,390 @@
1
+ using Xunit;
2
+
3
+ public class BeerSongTest
4
+ {
5
+ [Fact]
6
+ public void First_generic_verse()
7
+ {
8
+ var expected =
9
+ "99 bottles of beer on the wall, 99 bottles of beer.\n"+
10
+ "Take one down and pass it around, 98 bottles of beer on the wall.\n"+
11
+ "";
12
+ Assert.Equal(expected, BeerSong.Verse(99));
13
+ }
14
+
15
+ [Fact]
16
+ public void Last_generic_verse()
17
+ {
18
+ var expected =
19
+ "3 bottles of beer on the wall, 3 bottles of beer.\n"+
20
+ "Take one down and pass it around, 2 bottles of beer on the wall.\n"+
21
+ "";
22
+ Assert.Equal(expected, BeerSong.Verse(3));
23
+ }
24
+
25
+ [Fact]
26
+ public void Verse_2()
27
+ {
28
+ var expected =
29
+ "2 bottles of beer on the wall, 2 bottles of beer.\n"+
30
+ "Take one down and pass it around, 1 bottle of beer on the wall.\n"+
31
+ "";
32
+ Assert.Equal(expected, BeerSong.Verse(2));
33
+ }
34
+
35
+ [Fact]
36
+ public void Verse_1()
37
+ {
38
+ var expected =
39
+ "1 bottle of beer on the wall, 1 bottle of beer.\n"+
40
+ "Take it down and pass it around, no more bottles of beer on the wall.\n"+
41
+ "";
42
+ Assert.Equal(expected, BeerSong.Verse(1));
43
+ }
44
+
45
+ [Fact]
46
+ public void Verse_0()
47
+ {
48
+ var expected =
49
+ "No more bottles of beer on the wall, no more bottles of beer.\n"+
50
+ "Go to the store and buy some more, 99 bottles of beer on the wall.\n"+
51
+ "";
52
+ Assert.Equal(expected, BeerSong.Verse(0));
53
+ }
54
+
55
+ [Fact]
56
+ public void First_two_verses()
57
+ {
58
+ var expected =
59
+ "99 bottles of beer on the wall, 99 bottles of beer.\n"+
60
+ "Take one down and pass it around, 98 bottles of beer on the wall.\n"+
61
+ "\n"+
62
+ "98 bottles of beer on the wall, 98 bottles of beer.\n"+
63
+ "Take one down and pass it around, 97 bottles of beer on the wall.\n"+
64
+ "";
65
+ Assert.Equal(expected, BeerSong.Verses(99, 98));
66
+ }
67
+
68
+ [Fact]
69
+ public void Last_three_verses()
70
+ {
71
+ var expected =
72
+ "2 bottles of beer on the wall, 2 bottles of beer.\n"+
73
+ "Take one down and pass it around, 1 bottle of beer on the wall.\n"+
74
+ "\n"+
75
+ "1 bottle of beer on the wall, 1 bottle of beer.\n"+
76
+ "Take it down and pass it around, no more bottles of beer on the wall.\n"+
77
+ "\n"+
78
+ "No more bottles of beer on the wall, no more bottles of beer.\n"+
79
+ "Go to the store and buy some more, 99 bottles of beer on the wall.\n"+
80
+ "";
81
+ Assert.Equal(expected, BeerSong.Verses(2, 0));
82
+ }
83
+
84
+ [Fact]
85
+ public void All_verses()
86
+ {
87
+ var expected =
88
+ "99 bottles of beer on the wall, 99 bottles of beer.\n"+
89
+ "Take one down and pass it around, 98 bottles of beer on the wall.\n"+
90
+ "\n"+
91
+ "98 bottles of beer on the wall, 98 bottles of beer.\n"+
92
+ "Take one down and pass it around, 97 bottles of beer on the wall.\n"+
93
+ "\n"+
94
+ "97 bottles of beer on the wall, 97 bottles of beer.\n"+
95
+ "Take one down and pass it around, 96 bottles of beer on the wall.\n"+
96
+ "\n"+
97
+ "96 bottles of beer on the wall, 96 bottles of beer.\n"+
98
+ "Take one down and pass it around, 95 bottles of beer on the wall.\n"+
99
+ "\n"+
100
+ "95 bottles of beer on the wall, 95 bottles of beer.\n"+
101
+ "Take one down and pass it around, 94 bottles of beer on the wall.\n"+
102
+ "\n"+
103
+ "94 bottles of beer on the wall, 94 bottles of beer.\n"+
104
+ "Take one down and pass it around, 93 bottles of beer on the wall.\n"+
105
+ "\n"+
106
+ "93 bottles of beer on the wall, 93 bottles of beer.\n"+
107
+ "Take one down and pass it around, 92 bottles of beer on the wall.\n"+
108
+ "\n"+
109
+ "92 bottles of beer on the wall, 92 bottles of beer.\n"+
110
+ "Take one down and pass it around, 91 bottles of beer on the wall.\n"+
111
+ "\n"+
112
+ "91 bottles of beer on the wall, 91 bottles of beer.\n"+
113
+ "Take one down and pass it around, 90 bottles of beer on the wall.\n"+
114
+ "\n"+
115
+ "90 bottles of beer on the wall, 90 bottles of beer.\n"+
116
+ "Take one down and pass it around, 89 bottles of beer on the wall.\n"+
117
+ "\n"+
118
+ "89 bottles of beer on the wall, 89 bottles of beer.\n"+
119
+ "Take one down and pass it around, 88 bottles of beer on the wall.\n"+
120
+ "\n"+
121
+ "88 bottles of beer on the wall, 88 bottles of beer.\n"+
122
+ "Take one down and pass it around, 87 bottles of beer on the wall.\n"+
123
+ "\n"+
124
+ "87 bottles of beer on the wall, 87 bottles of beer.\n"+
125
+ "Take one down and pass it around, 86 bottles of beer on the wall.\n"+
126
+ "\n"+
127
+ "86 bottles of beer on the wall, 86 bottles of beer.\n"+
128
+ "Take one down and pass it around, 85 bottles of beer on the wall.\n"+
129
+ "\n"+
130
+ "85 bottles of beer on the wall, 85 bottles of beer.\n"+
131
+ "Take one down and pass it around, 84 bottles of beer on the wall.\n"+
132
+ "\n"+
133
+ "84 bottles of beer on the wall, 84 bottles of beer.\n"+
134
+ "Take one down and pass it around, 83 bottles of beer on the wall.\n"+
135
+ "\n"+
136
+ "83 bottles of beer on the wall, 83 bottles of beer.\n"+
137
+ "Take one down and pass it around, 82 bottles of beer on the wall.\n"+
138
+ "\n"+
139
+ "82 bottles of beer on the wall, 82 bottles of beer.\n"+
140
+ "Take one down and pass it around, 81 bottles of beer on the wall.\n"+
141
+ "\n"+
142
+ "81 bottles of beer on the wall, 81 bottles of beer.\n"+
143
+ "Take one down and pass it around, 80 bottles of beer on the wall.\n"+
144
+ "\n"+
145
+ "80 bottles of beer on the wall, 80 bottles of beer.\n"+
146
+ "Take one down and pass it around, 79 bottles of beer on the wall.\n"+
147
+ "\n"+
148
+ "79 bottles of beer on the wall, 79 bottles of beer.\n"+
149
+ "Take one down and pass it around, 78 bottles of beer on the wall.\n"+
150
+ "\n"+
151
+ "78 bottles of beer on the wall, 78 bottles of beer.\n"+
152
+ "Take one down and pass it around, 77 bottles of beer on the wall.\n"+
153
+ "\n"+
154
+ "77 bottles of beer on the wall, 77 bottles of beer.\n"+
155
+ "Take one down and pass it around, 76 bottles of beer on the wall.\n"+
156
+ "\n"+
157
+ "76 bottles of beer on the wall, 76 bottles of beer.\n"+
158
+ "Take one down and pass it around, 75 bottles of beer on the wall.\n"+
159
+ "\n"+
160
+ "75 bottles of beer on the wall, 75 bottles of beer.\n"+
161
+ "Take one down and pass it around, 74 bottles of beer on the wall.\n"+
162
+ "\n"+
163
+ "74 bottles of beer on the wall, 74 bottles of beer.\n"+
164
+ "Take one down and pass it around, 73 bottles of beer on the wall.\n"+
165
+ "\n"+
166
+ "73 bottles of beer on the wall, 73 bottles of beer.\n"+
167
+ "Take one down and pass it around, 72 bottles of beer on the wall.\n"+
168
+ "\n"+
169
+ "72 bottles of beer on the wall, 72 bottles of beer.\n"+
170
+ "Take one down and pass it around, 71 bottles of beer on the wall.\n"+
171
+ "\n"+
172
+ "71 bottles of beer on the wall, 71 bottles of beer.\n"+
173
+ "Take one down and pass it around, 70 bottles of beer on the wall.\n"+
174
+ "\n"+
175
+ "70 bottles of beer on the wall, 70 bottles of beer.\n"+
176
+ "Take one down and pass it around, 69 bottles of beer on the wall.\n"+
177
+ "\n"+
178
+ "69 bottles of beer on the wall, 69 bottles of beer.\n"+
179
+ "Take one down and pass it around, 68 bottles of beer on the wall.\n"+
180
+ "\n"+
181
+ "68 bottles of beer on the wall, 68 bottles of beer.\n"+
182
+ "Take one down and pass it around, 67 bottles of beer on the wall.\n"+
183
+ "\n"+
184
+ "67 bottles of beer on the wall, 67 bottles of beer.\n"+
185
+ "Take one down and pass it around, 66 bottles of beer on the wall.\n"+
186
+ "\n"+
187
+ "66 bottles of beer on the wall, 66 bottles of beer.\n"+
188
+ "Take one down and pass it around, 65 bottles of beer on the wall.\n"+
189
+ "\n"+
190
+ "65 bottles of beer on the wall, 65 bottles of beer.\n"+
191
+ "Take one down and pass it around, 64 bottles of beer on the wall.\n"+
192
+ "\n"+
193
+ "64 bottles of beer on the wall, 64 bottles of beer.\n"+
194
+ "Take one down and pass it around, 63 bottles of beer on the wall.\n"+
195
+ "\n"+
196
+ "63 bottles of beer on the wall, 63 bottles of beer.\n"+
197
+ "Take one down and pass it around, 62 bottles of beer on the wall.\n"+
198
+ "\n"+
199
+ "62 bottles of beer on the wall, 62 bottles of beer.\n"+
200
+ "Take one down and pass it around, 61 bottles of beer on the wall.\n"+
201
+ "\n"+
202
+ "61 bottles of beer on the wall, 61 bottles of beer.\n"+
203
+ "Take one down and pass it around, 60 bottles of beer on the wall.\n"+
204
+ "\n"+
205
+ "60 bottles of beer on the wall, 60 bottles of beer.\n"+
206
+ "Take one down and pass it around, 59 bottles of beer on the wall.\n"+
207
+ "\n"+
208
+ "59 bottles of beer on the wall, 59 bottles of beer.\n"+
209
+ "Take one down and pass it around, 58 bottles of beer on the wall.\n"+
210
+ "\n"+
211
+ "58 bottles of beer on the wall, 58 bottles of beer.\n"+
212
+ "Take one down and pass it around, 57 bottles of beer on the wall.\n"+
213
+ "\n"+
214
+ "57 bottles of beer on the wall, 57 bottles of beer.\n"+
215
+ "Take one down and pass it around, 56 bottles of beer on the wall.\n"+
216
+ "\n"+
217
+ "56 bottles of beer on the wall, 56 bottles of beer.\n"+
218
+ "Take one down and pass it around, 55 bottles of beer on the wall.\n"+
219
+ "\n"+
220
+ "55 bottles of beer on the wall, 55 bottles of beer.\n"+
221
+ "Take one down and pass it around, 54 bottles of beer on the wall.\n"+
222
+ "\n"+
223
+ "54 bottles of beer on the wall, 54 bottles of beer.\n"+
224
+ "Take one down and pass it around, 53 bottles of beer on the wall.\n"+
225
+ "\n"+
226
+ "53 bottles of beer on the wall, 53 bottles of beer.\n"+
227
+ "Take one down and pass it around, 52 bottles of beer on the wall.\n"+
228
+ "\n"+
229
+ "52 bottles of beer on the wall, 52 bottles of beer.\n"+
230
+ "Take one down and pass it around, 51 bottles of beer on the wall.\n"+
231
+ "\n"+
232
+ "51 bottles of beer on the wall, 51 bottles of beer.\n"+
233
+ "Take one down and pass it around, 50 bottles of beer on the wall.\n"+
234
+ "\n"+
235
+ "50 bottles of beer on the wall, 50 bottles of beer.\n"+
236
+ "Take one down and pass it around, 49 bottles of beer on the wall.\n"+
237
+ "\n"+
238
+ "49 bottles of beer on the wall, 49 bottles of beer.\n"+
239
+ "Take one down and pass it around, 48 bottles of beer on the wall.\n"+
240
+ "\n"+
241
+ "48 bottles of beer on the wall, 48 bottles of beer.\n"+
242
+ "Take one down and pass it around, 47 bottles of beer on the wall.\n"+
243
+ "\n"+
244
+ "47 bottles of beer on the wall, 47 bottles of beer.\n"+
245
+ "Take one down and pass it around, 46 bottles of beer on the wall.\n"+
246
+ "\n"+
247
+ "46 bottles of beer on the wall, 46 bottles of beer.\n"+
248
+ "Take one down and pass it around, 45 bottles of beer on the wall.\n"+
249
+ "\n"+
250
+ "45 bottles of beer on the wall, 45 bottles of beer.\n"+
251
+ "Take one down and pass it around, 44 bottles of beer on the wall.\n"+
252
+ "\n"+
253
+ "44 bottles of beer on the wall, 44 bottles of beer.\n"+
254
+ "Take one down and pass it around, 43 bottles of beer on the wall.\n"+
255
+ "\n"+
256
+ "43 bottles of beer on the wall, 43 bottles of beer.\n"+
257
+ "Take one down and pass it around, 42 bottles of beer on the wall.\n"+
258
+ "\n"+
259
+ "42 bottles of beer on the wall, 42 bottles of beer.\n"+
260
+ "Take one down and pass it around, 41 bottles of beer on the wall.\n"+
261
+ "\n"+
262
+ "41 bottles of beer on the wall, 41 bottles of beer.\n"+
263
+ "Take one down and pass it around, 40 bottles of beer on the wall.\n"+
264
+ "\n"+
265
+ "40 bottles of beer on the wall, 40 bottles of beer.\n"+
266
+ "Take one down and pass it around, 39 bottles of beer on the wall.\n"+
267
+ "\n"+
268
+ "39 bottles of beer on the wall, 39 bottles of beer.\n"+
269
+ "Take one down and pass it around, 38 bottles of beer on the wall.\n"+
270
+ "\n"+
271
+ "38 bottles of beer on the wall, 38 bottles of beer.\n"+
272
+ "Take one down and pass it around, 37 bottles of beer on the wall.\n"+
273
+ "\n"+
274
+ "37 bottles of beer on the wall, 37 bottles of beer.\n"+
275
+ "Take one down and pass it around, 36 bottles of beer on the wall.\n"+
276
+ "\n"+
277
+ "36 bottles of beer on the wall, 36 bottles of beer.\n"+
278
+ "Take one down and pass it around, 35 bottles of beer on the wall.\n"+
279
+ "\n"+
280
+ "35 bottles of beer on the wall, 35 bottles of beer.\n"+
281
+ "Take one down and pass it around, 34 bottles of beer on the wall.\n"+
282
+ "\n"+
283
+ "34 bottles of beer on the wall, 34 bottles of beer.\n"+
284
+ "Take one down and pass it around, 33 bottles of beer on the wall.\n"+
285
+ "\n"+
286
+ "33 bottles of beer on the wall, 33 bottles of beer.\n"+
287
+ "Take one down and pass it around, 32 bottles of beer on the wall.\n"+
288
+ "\n"+
289
+ "32 bottles of beer on the wall, 32 bottles of beer.\n"+
290
+ "Take one down and pass it around, 31 bottles of beer on the wall.\n"+
291
+ "\n"+
292
+ "31 bottles of beer on the wall, 31 bottles of beer.\n"+
293
+ "Take one down and pass it around, 30 bottles of beer on the wall.\n"+
294
+ "\n"+
295
+ "30 bottles of beer on the wall, 30 bottles of beer.\n"+
296
+ "Take one down and pass it around, 29 bottles of beer on the wall.\n"+
297
+ "\n"+
298
+ "29 bottles of beer on the wall, 29 bottles of beer.\n"+
299
+ "Take one down and pass it around, 28 bottles of beer on the wall.\n"+
300
+ "\n"+
301
+ "28 bottles of beer on the wall, 28 bottles of beer.\n"+
302
+ "Take one down and pass it around, 27 bottles of beer on the wall.\n"+
303
+ "\n"+
304
+ "27 bottles of beer on the wall, 27 bottles of beer.\n"+
305
+ "Take one down and pass it around, 26 bottles of beer on the wall.\n"+
306
+ "\n"+
307
+ "26 bottles of beer on the wall, 26 bottles of beer.\n"+
308
+ "Take one down and pass it around, 25 bottles of beer on the wall.\n"+
309
+ "\n"+
310
+ "25 bottles of beer on the wall, 25 bottles of beer.\n"+
311
+ "Take one down and pass it around, 24 bottles of beer on the wall.\n"+
312
+ "\n"+
313
+ "24 bottles of beer on the wall, 24 bottles of beer.\n"+
314
+ "Take one down and pass it around, 23 bottles of beer on the wall.\n"+
315
+ "\n"+
316
+ "23 bottles of beer on the wall, 23 bottles of beer.\n"+
317
+ "Take one down and pass it around, 22 bottles of beer on the wall.\n"+
318
+ "\n"+
319
+ "22 bottles of beer on the wall, 22 bottles of beer.\n"+
320
+ "Take one down and pass it around, 21 bottles of beer on the wall.\n"+
321
+ "\n"+
322
+ "21 bottles of beer on the wall, 21 bottles of beer.\n"+
323
+ "Take one down and pass it around, 20 bottles of beer on the wall.\n"+
324
+ "\n"+
325
+ "20 bottles of beer on the wall, 20 bottles of beer.\n"+
326
+ "Take one down and pass it around, 19 bottles of beer on the wall.\n"+
327
+ "\n"+
328
+ "19 bottles of beer on the wall, 19 bottles of beer.\n"+
329
+ "Take one down and pass it around, 18 bottles of beer on the wall.\n"+
330
+ "\n"+
331
+ "18 bottles of beer on the wall, 18 bottles of beer.\n"+
332
+ "Take one down and pass it around, 17 bottles of beer on the wall.\n"+
333
+ "\n"+
334
+ "17 bottles of beer on the wall, 17 bottles of beer.\n"+
335
+ "Take one down and pass it around, 16 bottles of beer on the wall.\n"+
336
+ "\n"+
337
+ "16 bottles of beer on the wall, 16 bottles of beer.\n"+
338
+ "Take one down and pass it around, 15 bottles of beer on the wall.\n"+
339
+ "\n"+
340
+ "15 bottles of beer on the wall, 15 bottles of beer.\n"+
341
+ "Take one down and pass it around, 14 bottles of beer on the wall.\n"+
342
+ "\n"+
343
+ "14 bottles of beer on the wall, 14 bottles of beer.\n"+
344
+ "Take one down and pass it around, 13 bottles of beer on the wall.\n"+
345
+ "\n"+
346
+ "13 bottles of beer on the wall, 13 bottles of beer.\n"+
347
+ "Take one down and pass it around, 12 bottles of beer on the wall.\n"+
348
+ "\n"+
349
+ "12 bottles of beer on the wall, 12 bottles of beer.\n"+
350
+ "Take one down and pass it around, 11 bottles of beer on the wall.\n"+
351
+ "\n"+
352
+ "11 bottles of beer on the wall, 11 bottles of beer.\n"+
353
+ "Take one down and pass it around, 10 bottles of beer on the wall.\n"+
354
+ "\n"+
355
+ "10 bottles of beer on the wall, 10 bottles of beer.\n"+
356
+ "Take one down and pass it around, 9 bottles of beer on the wall.\n"+
357
+ "\n"+
358
+ "9 bottles of beer on the wall, 9 bottles of beer.\n"+
359
+ "Take one down and pass it around, 8 bottles of beer on the wall.\n"+
360
+ "\n"+
361
+ "8 bottles of beer on the wall, 8 bottles of beer.\n"+
362
+ "Take one down and pass it around, 7 bottles of beer on the wall.\n"+
363
+ "\n"+
364
+ "7 bottles of beer on the wall, 7 bottles of beer.\n"+
365
+ "Take one down and pass it around, 6 bottles of beer on the wall.\n"+
366
+ "\n"+
367
+ "6 bottles of beer on the wall, 6 bottles of beer.\n"+
368
+ "Take one down and pass it around, 5 bottles of beer on the wall.\n"+
369
+ "\n"+
370
+ "5 bottles of beer on the wall, 5 bottles of beer.\n"+
371
+ "Take one down and pass it around, 4 bottles of beer on the wall.\n"+
372
+ "\n"+
373
+ "4 bottles of beer on the wall, 4 bottles of beer.\n"+
374
+ "Take one down and pass it around, 3 bottles of beer on the wall.\n"+
375
+ "\n"+
376
+ "3 bottles of beer on the wall, 3 bottles of beer.\n"+
377
+ "Take one down and pass it around, 2 bottles of beer on the wall.\n"+
378
+ "\n"+
379
+ "2 bottles of beer on the wall, 2 bottles of beer.\n"+
380
+ "Take one down and pass it around, 1 bottle of beer on the wall.\n"+
381
+ "\n"+
382
+ "1 bottle of beer on the wall, 1 bottle of beer.\n"+
383
+ "Take it down and pass it around, no more bottles of beer on the wall.\n"+
384
+ "\n"+
385
+ "No more bottles of beer on the wall, no more bottles of beer.\n"+
386
+ "Go to the store and buy some more, 99 bottles of beer on the wall.\n"+
387
+ "";
388
+ Assert.Equal(expected, BeerSong.Verses(99, 0));
389
+ }
390
+ }