trackler 2.2.1.108 → 2.2.1.109
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/java/exercises/hamming/.meta/version +1 -1
- data/tracks/java/exercises/kindergarten-garden/.meta/version +1 -1
- data/tracks/java/exercises/rotational-cipher/.meta/version +1 -1
- data/tracks/java/exercises/scrabble-score/.meta/version +1 -1
- data/tracks/java/exercises/secret-handshake/.meta/version +1 -1
- data/tracks/java/exercises/twelve-days/.meta/version +1 -1
- data/tracks/ocaml/tools/test-generator/src/model.ml +21 -0
- data/tracks/ocaml/tools/test-generator/src/ocaml_special_cases.ml +4 -5
- data/tracks/ocaml/tools/test-generator/src/parser.ml +16 -4
- data/tracks/ocaml/tools/test-generator/src/test_gen.ml +2 -2
- data/tracks/ocaml/tools/test-generator/src/utils.ml +1 -1
- data/tracks/ocaml/tools/test-generator/templates/ocaml/all-your-base/test.ml +1 -1
- data/tracks/ocaml/tools/test-generator/templates/ocaml/bob/test.ml +2 -2
- data/tracks/ocaml/tools/test-generator/templates/ocaml/bracket-push/test.ml +1 -1
- data/tracks/ocaml/tools/test-generator/templates/ocaml/dominoes/test.ml +1 -1
- data/tracks/ocaml/tools/test-generator/templates/ocaml/leap/test.ml +2 -2
- data/tracks/ocaml/tools/test-generator/templates/ocaml/luhn/test.ml +1 -1
- data/tracks/ocaml/tools/test-generator/templates/ocaml/minesweeper/test.ml +1 -1
- data/tracks/ocaml/tools/test-generator/templates/ocaml/palindrome-products/test.ml +1 -1
- data/tracks/ocaml/tools/test-generator/templates/ocaml/pangram/test.ml +1 -1
- data/tracks/ocaml/tools/test-generator/templates/ocaml/prime-factors/test.ml +1 -1
- data/tracks/ocaml/tools/test-generator/templates/ocaml/rectangles/test.ml +1 -1
- data/tracks/ocaml/tools/test-generator/templates/ocaml/run-length-encoding/test.ml +3 -3
- data/tracks/ocaml/tools/test-generator/templates/ocaml/say/test.ml +1 -1
- data/tracks/ocaml/tools/test-generator/templates/ocaml/word-count/test.ml +1 -1
- data/tracks/ocaml/tools/test-generator/test/beer-song.json +382 -31
- data/tracks/ocaml/tools/test-generator/test/clock.json +484 -333
- data/tracks/ocaml/tools/test-generator/test/difference_of_squares.json +38 -26
- data/tracks/ocaml/tools/test-generator/test/hello_world.json +12 -18
- data/tracks/ocaml/tools/test-generator/test/leap.json +33 -34
- data/tracks/ocaml/tools/test-generator/test/parser_test.ml +18 -14
- data/tracks/ocaml/tools/test-generator/test/with-methods-key.json +1 -1
- data/tracks/rust/exercises/allergies/Cargo.toml +1 -1
- data/tracks/rust/exercises/atbash-cipher/Cargo.toml +1 -1
- data/tracks/rust/exercises/binary-search/Cargo.toml +1 -1
- data/tracks/rust/exercises/bob/Cargo.toml +1 -1
- data/tracks/rust/exercises/bracket-push/Cargo.toml +1 -1
- data/tracks/rust/exercises/collatz-conjecture/Cargo.toml +1 -1
- data/tracks/rust/exercises/difference-of-squares/Cargo.toml +1 -1
- data/tracks/rust/exercises/dominoes/Cargo.toml +1 -1
- data/tracks/rust/exercises/gigasecond/Cargo.toml +1 -1
- data/tracks/rust/exercises/grains/Cargo.toml +1 -1
- data/tracks/rust/exercises/hello-world/Cargo.toml +1 -1
- data/tracks/rust/exercises/isogram/Cargo.toml +1 -1
- data/tracks/rust/exercises/largest-series-product/Cargo.toml +1 -1
- data/tracks/rust/exercises/minesweeper/Cargo.toml +1 -1
- data/tracks/rust/exercises/pascals-triangle/Cargo.toml +1 -1
- data/tracks/rust/exercises/perfect-numbers/Cargo.toml +1 -1
- data/tracks/rust/exercises/poker/Cargo.toml +1 -1
- data/tracks/rust/exercises/prime-factors/Cargo.toml +1 -1
- data/tracks/rust/exercises/queen-attack/Cargo.toml +1 -1
- data/tracks/rust/exercises/raindrops/Cargo.toml +1 -1
- data/tracks/rust/exercises/react/Cargo.toml +1 -1
- data/tracks/rust/exercises/rectangles/Cargo.toml +1 -1
- data/tracks/rust/exercises/robot-simulator/Cargo.toml +1 -1
- data/tracks/rust/exercises/run-length-encoding/Cargo.toml +1 -1
- data/tracks/rust/exercises/saddle-points/Cargo.toml +1 -1
- data/tracks/rust/exercises/say/Cargo.toml +1 -1
- data/tracks/rust/exercises/scrabble-score/Cargo.toml +1 -1
- data/tracks/rust/exercises/sieve/Cargo.toml +1 -1
- data/tracks/rust/exercises/space-age/Cargo.toml +1 -1
- data/tracks/rust/exercises/tournament/Cargo.toml +1 -1
- data/tracks/rust/exercises/variable-length-quantity/Cargo.toml +1 -1
- data/tracks/rust/exercises/wordy/Cargo.toml +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3036bb821ee32c887913d7896ef3433df01821d3
|
4
|
+
data.tar.gz: 374c6ddaecd208bf6192cb39c88c95e8c07dc209
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b1110d7ba12be2e740884e5c73a74a2b11b9fca4ff42517f68174460064aab88ffc84af4af2b07289f0ec9e91d903a921aee60fad0e239976a491492bf8e1e0d
|
7
|
+
data.tar.gz: 30f98519f62e225ae41edb727517e9b7b9e340db588daa9625ed075e10f85bcb3be844e646c6f0d7e9a8172077bae86fd9acfbd7b0250c167e105aade9a54d86
|
data/lib/trackler/version.rb
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.0
|
1
|
+
2.1.0
|
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.1.0
|
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.2.0
|
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.1.0
|
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.2.0
|
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.1.0
|
@@ -28,3 +28,24 @@ let rec json_to_string (j: json): string = match j with
|
|
28
28
|
| `List xs -> "[" ^ String.concat ~sep:"; " (List.map ~f:json_to_string xs) ^ "]"
|
29
29
|
| `Assoc xs -> "[" ^ String.concat ~sep:"; "
|
30
30
|
(List.map xs ~f:(fun (k,v) -> "(\"" ^ String.escaped k ^ "\", " ^ json_to_string v ^ ")")) ^ "]"
|
31
|
+
|
32
|
+
let list_to_string = String.concat ~sep:"; "
|
33
|
+
|
34
|
+
let json_assoc_to_string (xs: (string * json) list): string =
|
35
|
+
List.map xs ~f:(fun (k, j) -> k ^ ": " ^ (json_to_string j))
|
36
|
+
|> list_to_string
|
37
|
+
|
38
|
+
let case_to_string {description; parameters}: string =
|
39
|
+
"{description: " ^ description ^ "; parameters: " ^ (json_assoc_to_string parameters) ^ "}"
|
40
|
+
|
41
|
+
let cases_to_string cases = list_to_string (List.map ~f:case_to_string cases)
|
42
|
+
|
43
|
+
let test_to_string {name; cases}: string =
|
44
|
+
"{name: " ^ name ^ "; cases: " ^ (cases_to_string cases) ^ "}"
|
45
|
+
|
46
|
+
let tests_to_string tests: string =
|
47
|
+
"[" ^ list_to_string (List.map tests ~f:test_to_string) ^ "]"
|
48
|
+
|
49
|
+
let tests_to_string = function
|
50
|
+
| Single case -> cases_to_string case
|
51
|
+
| Suite tests -> tests_to_string tests
|
@@ -69,22 +69,22 @@ let edit_bowling_expected (value: json) = match value with
|
|
69
69
|
|
70
70
|
let edit_say (ps: (string * json) list) =
|
71
71
|
let edit = function
|
72
|
-
| ("
|
72
|
+
| ("number", v) -> ("number", let v = json_to_string v in if Int.of_string v >= 0 then "(" ^ v ^ "L)" else v ^ "L")
|
73
73
|
| ("expected", v) -> ("expected", optional_int_or_string ~none:(-1) v)
|
74
74
|
| (k, ps) -> (k, json_to_string ps) in
|
75
75
|
List.map ps ~f:edit
|
76
76
|
|
77
77
|
let edit_all_your_base (ps: (string * json) list): (string * string) list =
|
78
78
|
let edit = function
|
79
|
-
| ("
|
80
|
-
| ("
|
79
|
+
| ("outputBase", v) -> let v = json_to_string v in ("outputBase", if Int.of_string v >= 0 then v else "(" ^ v ^ ")")
|
80
|
+
| ("inputBase", v) -> let v = json_to_string v in ("inputBase", if Int.of_string v >= 0 then v else "(" ^ v ^ ")")
|
81
81
|
| ("expected", v) -> ("expected", optional_int_list v)
|
82
82
|
| (k, v) -> (k, json_to_string v) in
|
83
83
|
List.map ps ~f:edit
|
84
84
|
|
85
85
|
let edit_dominoes (ps: (string * json) list): (string * string) list =
|
86
86
|
let edit (p: (string * json)) = match p with
|
87
|
-
| ("
|
87
|
+
| ("dominoes", `List j) -> ("dominoes", "[" ^ (List.map ~f:two_elt_list_to_tuple j |> String.concat ~sep:"; ") ^ "]")
|
88
88
|
| (k, v) -> (k, json_to_string v) in
|
89
89
|
List.map ps ~f:edit
|
90
90
|
|
@@ -149,7 +149,6 @@ let ocaml_edit_parameters ~(slug: string) (parameters: (string * json) list) = m
|
|
149
149
|
| ("dominoes", ps) -> edit_dominoes ps
|
150
150
|
| ("forth", ps) -> edit_expected ~f:option_of_null ps
|
151
151
|
| ("hamming", ps) -> edit_expected ~f:(optional_int ~none:(-1)) ps
|
152
|
-
| ("hello-world", ps) -> default_value ~key:"name" ~value:"None" (optional_strings ~f:(fun _ -> true) parameters)
|
153
152
|
| ("palindrome-products", ps) -> edit_palindrome_products ps
|
154
153
|
| ("phone-number", ps) -> edit_expected ~f:option_of_null ps
|
155
154
|
| ("say", ps) -> edit_say ps
|
@@ -8,12 +8,22 @@ type error =
|
|
8
8
|
TestMustHaveKeyCalledCases of string | ExpectingListOfCases | ExpectingMapForCase |
|
9
9
|
NoDescription | BadDescription | UnrecognizedJson [@@deriving eq, show]
|
10
10
|
|
11
|
+
let extract_parameters case =
|
12
|
+
let open Result.Monad_infix in
|
13
|
+
find_note case "input" UnrecognizedJson >>= fun input ->
|
14
|
+
let input = to_assoc_note UnrecognizedJson input in
|
15
|
+
find_note case "expected" UnrecognizedJson >>= fun expected ->
|
16
|
+
match input with
|
17
|
+
| Ok input -> Ok (("expected", expected) :: input)
|
18
|
+
| e -> e
|
19
|
+
|
11
20
|
let parse_case_assoc (parameters: (string * json) list): (case, error) Result.t =
|
12
21
|
let find name e = List.Assoc.find parameters ~equal:String.equal name |> Result.of_option ~error:e in
|
13
22
|
let test_parameters = List.Assoc.remove parameters ~equal:String.equal "description" in
|
14
23
|
let open Result.Monad_infix in
|
15
24
|
find "description" NoDescription >>=
|
16
25
|
to_string_note BadDescription >>= fun description ->
|
26
|
+
extract_parameters test_parameters >>= fun test_parameters ->
|
17
27
|
Ok {description = description; parameters = test_parameters}
|
18
28
|
|
19
29
|
let parse_case (s: json): (case, error) Result.t = match s with
|
@@ -22,8 +32,8 @@ let parse_case (s: json): (case, error) Result.t = match s with
|
|
22
32
|
|
23
33
|
let parse_cases (text: string) (cases_key: string): (json, error) Result.t =
|
24
34
|
match from_string text |> member cases_key with
|
25
|
-
|
26
|
-
|
35
|
+
| `Null -> Error (TestMustHaveKeyCalledCases cases_key)
|
36
|
+
| json -> Ok json
|
27
37
|
|
28
38
|
let parse_single (text: string) (cases_key: string): (tests, error) Result.t =
|
29
39
|
let open Result.Monad_infix in
|
@@ -37,11 +47,13 @@ let rec to_cases case: (case list, error) Result.t =
|
|
37
47
|
find_note case "description" NoDescription >>= to_string_note BadDescription >>= fun desc ->
|
38
48
|
let cases = List.Assoc.find case ~equal:String.equal "cases" in
|
39
49
|
match cases with
|
40
|
-
| Some cases ->
|
50
|
+
| Some cases ->
|
51
|
+
to_list_note UnrecognizedJson cases >>= fun cases ->
|
41
52
|
List.map cases ~f:(to_assoc_note UnrecognizedJson) |> sequence >>= fun x ->
|
42
53
|
List.map x ~f:to_cases |> sequence |> Result.map ~f:List.concat
|
43
54
|
| None ->
|
44
|
-
|
55
|
+
extract_parameters case >>= fun parameters ->
|
56
|
+
Result.return [{description = desc; parameters = parameters}]
|
45
57
|
|
46
58
|
let convert_cases_description_to_name desc =
|
47
59
|
String.lowercase desc |> String.substr_replace_all ~pattern:" " ~with_:"_"
|
@@ -13,7 +13,7 @@ let is_directory =
|
|
13
13
|
|
14
14
|
let home_dir = Option.value_exn (Sys.getenv "HOME")
|
15
15
|
|
16
|
-
let default_generated name = Option.value ~default:(home_dir ^ "/.
|
16
|
+
let default_generated name = Option.value ~default:(home_dir ^ "/.exercism-" ^ name ^ "-generated")
|
17
17
|
|
18
18
|
let command =
|
19
19
|
let open Command.Let_syntax in
|
@@ -23,7 +23,7 @@ let command =
|
|
23
23
|
[%map_open
|
24
24
|
let language = flag "l" (optional string) ~doc:"language to generate tests for"
|
25
25
|
and templates_folder = flag "t" (optional_with_default "./templates" is_directory) ~doc:"string Directory containing templates."
|
26
|
-
and canonical_data_folder = flag "c" (optional_with_default "
|
26
|
+
and canonical_data_folder = flag "c" (optional_with_default "../../../problem-specifications/exercises" is_directory) ~doc:"string Directory containing canonical data."
|
27
27
|
and output_folder = flag "-o" (optional string) ~doc:"string Directory to output generated tests."
|
28
28
|
and generated_folder = flag "-g" (optional string) ~doc:"string Directory to backup generated tests."
|
29
29
|
and filter = flag "-f" (optional string) ~doc:"string Filter out files not matching this string."
|
@@ -12,7 +12,7 @@ let ae exp got _test_ctxt =
|
|
12
12
|
let tests = [
|
13
13
|
(* TEST
|
14
14
|
"$description" >::
|
15
|
-
ae $expected (convert_bases ~from:$
|
15
|
+
ae $expected (convert_bases ~from:$inputBase ~digits:$digits ~target:$outputBase);
|
16
16
|
END TEST *)
|
17
17
|
]
|
18
18
|
|
@@ -1,12 +1,12 @@
|
|
1
1
|
open OUnit2
|
2
2
|
open Bob
|
3
3
|
|
4
|
-
let ae exp got _test_ctxt = assert_equal ~printer:
|
4
|
+
let ae exp got _test_ctxt = assert_equal ~printer:(fun x -> x) exp got
|
5
5
|
|
6
6
|
let tests = [
|
7
7
|
(* TEST
|
8
8
|
"$description" >::
|
9
|
-
ae $expected (response_for $
|
9
|
+
ae $expected (response_for $heyBob);
|
10
10
|
END TEST *)
|
11
11
|
]
|
12
12
|
|
@@ -2,12 +2,12 @@ open Core
|
|
2
2
|
open OUnit2
|
3
3
|
open Leap
|
4
4
|
|
5
|
-
let ae exp got _test_ctxt = assert_equal exp got ~printer:
|
5
|
+
let ae exp got _test_ctxt = assert_equal exp got ~printer:Bool.to_string
|
6
6
|
|
7
7
|
let tests = [
|
8
8
|
(* TEST
|
9
9
|
"$description" >::
|
10
|
-
ae $expected (leap_year $
|
10
|
+
ae $expected (leap_year $year);
|
11
11
|
END TEST *)
|
12
12
|
]
|
13
13
|
|
@@ -7,7 +7,7 @@ let ae exp got _test_ctxt = assert_equal exp got ~printer:Fn.id
|
|
7
7
|
let (* SUITE run-length_encode_a_string *)encode_tests = [
|
8
8
|
(* TEST
|
9
9
|
"$description" >::
|
10
|
-
ae $expected (encode $
|
10
|
+
ae $expected (encode $string);
|
11
11
|
END TEST *)
|
12
12
|
]
|
13
13
|
(* END SUITE *)
|
@@ -15,7 +15,7 @@ let (* SUITE run-length_encode_a_string *)encode_tests = [
|
|
15
15
|
let (* SUITE run-length_decode_a_string *)decode_tests = [
|
16
16
|
(* TEST
|
17
17
|
"$description" >::
|
18
|
-
ae $expected (decode $
|
18
|
+
ae $expected (decode $string);
|
19
19
|
END TEST *)
|
20
20
|
]
|
21
21
|
(* END SUITE *)
|
@@ -23,7 +23,7 @@ let (* SUITE run-length_decode_a_string *)decode_tests = [
|
|
23
23
|
let (* SUITE encode_and_then_decode *)encode_and_then_decode_tests = [
|
24
24
|
(* TEST
|
25
25
|
"$description" >::
|
26
|
-
ae $expected (encode $
|
26
|
+
ae $expected (encode $string |> decode);
|
27
27
|
END TEST *)
|
28
28
|
]
|
29
29
|
(* END SUITE *)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"exercise": "beer-song",
|
3
|
-
"version": "1.0
|
3
|
+
"version": "2.1.0",
|
4
4
|
"cases": [
|
5
5
|
{
|
6
6
|
"description": "verse",
|
@@ -10,33 +10,63 @@
|
|
10
10
|
"cases": [
|
11
11
|
{
|
12
12
|
"description": "first generic verse",
|
13
|
-
"property": "
|
14
|
-
"
|
15
|
-
|
13
|
+
"property": "recite",
|
14
|
+
"input": {
|
15
|
+
"startBottles": 99,
|
16
|
+
"takeDown": 1
|
17
|
+
},
|
18
|
+
"expected": [
|
19
|
+
"99 bottles of beer on the wall, 99 bottles of beer.",
|
20
|
+
"Take one down and pass it around, 98 bottles of beer on the wall."
|
21
|
+
]
|
16
22
|
},
|
17
23
|
{
|
18
24
|
"description": "last generic verse",
|
19
|
-
"property": "
|
20
|
-
"
|
21
|
-
|
25
|
+
"property": "recite",
|
26
|
+
"input": {
|
27
|
+
"startBottles": 3,
|
28
|
+
"takeDown": 1
|
29
|
+
},
|
30
|
+
"expected": [
|
31
|
+
"3 bottles of beer on the wall, 3 bottles of beer.",
|
32
|
+
"Take one down and pass it around, 2 bottles of beer on the wall."
|
33
|
+
]
|
22
34
|
},
|
23
35
|
{
|
24
|
-
"description": "verse 2",
|
25
|
-
"property": "
|
26
|
-
"
|
27
|
-
|
36
|
+
"description": "verse with 2 bottles",
|
37
|
+
"property": "recite",
|
38
|
+
"input": {
|
39
|
+
"startBottles": 2,
|
40
|
+
"takeDown": 1
|
41
|
+
},
|
42
|
+
"expected": [
|
43
|
+
"2 bottles of beer on the wall, 2 bottles of beer.",
|
44
|
+
"Take one down and pass it around, 1 bottle of beer on the wall."
|
45
|
+
]
|
28
46
|
},
|
29
47
|
{
|
30
|
-
"description": "verse 1",
|
31
|
-
"property": "
|
32
|
-
"
|
33
|
-
|
48
|
+
"description": "verse with 1 bottle",
|
49
|
+
"property": "recite",
|
50
|
+
"input": {
|
51
|
+
"startBottles": 1,
|
52
|
+
"takeDown": 1
|
53
|
+
},
|
54
|
+
"expected": [
|
55
|
+
"1 bottle of beer on the wall, 1 bottle of beer.",
|
56
|
+
"Take it down and pass it around, no more bottles of beer on the wall."
|
57
|
+
]
|
34
58
|
},
|
35
59
|
{
|
36
|
-
"description": "verse 0",
|
37
|
-
"property": "
|
38
|
-
"
|
39
|
-
|
60
|
+
"description": "verse with 0 bottles",
|
61
|
+
"property": "recite",
|
62
|
+
"input": {
|
63
|
+
"startBottles": 0,
|
64
|
+
"takeDown": 1
|
65
|
+
},
|
66
|
+
"expected": [
|
67
|
+
"No more bottles of beer on the wall, no more bottles of beer.",
|
68
|
+
"Go to the store and buy some more, 99 bottles of beer on the wall."
|
69
|
+
]
|
40
70
|
}
|
41
71
|
]
|
42
72
|
}
|
@@ -50,24 +80,345 @@
|
|
50
80
|
"cases": [
|
51
81
|
{
|
52
82
|
"description": "first two verses",
|
53
|
-
"property": "
|
54
|
-
"
|
55
|
-
|
56
|
-
|
83
|
+
"property": "recite",
|
84
|
+
"input": {
|
85
|
+
"startBottles": 99,
|
86
|
+
"takeDown": 2
|
87
|
+
},
|
88
|
+
"expected": [
|
89
|
+
"99 bottles of beer on the wall, 99 bottles of beer.",
|
90
|
+
"Take one down and pass it around, 98 bottles of beer on the wall.",
|
91
|
+
"",
|
92
|
+
"98 bottles of beer on the wall, 98 bottles of beer.",
|
93
|
+
"Take one down and pass it around, 97 bottles of beer on the wall."
|
94
|
+
]
|
57
95
|
},
|
58
96
|
{
|
59
97
|
"description": "last three verses",
|
60
|
-
"property": "
|
61
|
-
"
|
62
|
-
|
63
|
-
|
98
|
+
"property": "recite",
|
99
|
+
"input": {
|
100
|
+
"startBottles": 2,
|
101
|
+
"takeDown": 3
|
102
|
+
},
|
103
|
+
"expected": [
|
104
|
+
"2 bottles of beer on the wall, 2 bottles of beer.",
|
105
|
+
"Take one down and pass it around, 1 bottle of beer on the wall.",
|
106
|
+
"",
|
107
|
+
"1 bottle of beer on the wall, 1 bottle of beer.",
|
108
|
+
"Take it down and pass it around, no more bottles of beer on the wall.",
|
109
|
+
"",
|
110
|
+
"No more bottles of beer on the wall, no more bottles of beer.",
|
111
|
+
"Go to the store and buy some more, 99 bottles of beer on the wall."
|
112
|
+
]
|
64
113
|
},
|
65
114
|
{
|
66
115
|
"description": "all verses",
|
67
|
-
"property": "
|
68
|
-
"
|
69
|
-
|
70
|
-
"expected": "99 bottles of beer on the wall, 99 bottles of beer.\nTake one down and pass it around, 98 bottles of beer on the wall.\n\n98 bottles of beer on the wall, 98 bottles of beer.\nTake one down and pass it around, 97 bottles of beer on the wall.\n\n97 bottles of beer on the wall, 97 bottles of beer.\nTake one down and pass it around, 96 bottles of beer on the wall.\n\n96 bottles of beer on the wall, 96 bottles of beer.\nTake one down and pass it around, 95 bottles of beer on the wall.\n\n95 bottles of beer on the wall, 95 bottles of beer.\nTake one down and pass it around, 94 bottles of beer on the wall.\n\n94 bottles of beer on the wall, 94 bottles of beer.\nTake one down and pass it around, 93 bottles of beer on the wall.\n\n93 bottles of beer on the wall, 93 bottles of beer.\nTake one down and pass it around, 92 bottles of beer on the wall.\n\n92 bottles of beer on the wall, 92 bottles of beer.\nTake one down and pass it around, 91 bottles of beer on the wall.\n\n91 bottles of beer on the wall, 91 bottles of beer.\nTake one down and pass it around, 90 bottles of beer on the wall.\n\n90 bottles of beer on the wall, 90 bottles of beer.\nTake one down and pass it around, 89 bottles of beer on the wall.\n\n89 bottles of beer on the wall, 89 bottles of beer.\nTake one down and pass it around, 88 bottles of beer on the wall.\n\n88 bottles of beer on the wall, 88 bottles of beer.\nTake one down and pass it around, 87 bottles of beer on the wall.\n\n87 bottles of beer on the wall, 87 bottles of beer.\nTake one down and pass it around, 86 bottles of beer on the wall.\n\n86 bottles of beer on the wall, 86 bottles of beer.\nTake one down and pass it around, 85 bottles of beer on the wall.\n\n85 bottles of beer on the wall, 85 bottles of beer.\nTake one down and pass it around, 84 bottles of beer on the wall.\n\n84 bottles of beer on the wall, 84 bottles of beer.\nTake one down and pass it around, 83 bottles of beer on the wall.\n\n83 bottles of beer on the wall, 83 bottles of beer.\nTake one down and pass it around, 82 bottles of beer on the wall.\n\n82 bottles of beer on the wall, 82 bottles of beer.\nTake one down and pass it around, 81 bottles of beer on the wall.\n\n81 bottles of beer on the wall, 81 bottles of beer.\nTake one down and pass it around, 80 bottles of beer on the wall.\n\n80 bottles of beer on the wall, 80 bottles of beer.\nTake one down and pass it around, 79 bottles of beer on the wall.\n\n79 bottles of beer on the wall, 79 bottles of beer.\nTake one down and pass it around, 78 bottles of beer on the wall.\n\n78 bottles of beer on the wall, 78 bottles of beer.\nTake one down and pass it around, 77 bottles of beer on the wall.\n\n77 bottles of beer on the wall, 77 bottles of beer.\nTake one down and pass it around, 76 bottles of beer on the wall.\n\n76 bottles of beer on the wall, 76 bottles of beer.\nTake one down and pass it around, 75 bottles of beer on the wall.\n\n75 bottles of beer on the wall, 75 bottles of beer.\nTake one down and pass it around, 74 bottles of beer on the wall.\n\n74 bottles of beer on the wall, 74 bottles of beer.\nTake one down and pass it around, 73 bottles of beer on the wall.\n\n73 bottles of beer on the wall, 73 bottles of beer.\nTake one down and pass it around, 72 bottles of beer on the wall.\n\n72 bottles of beer on the wall, 72 bottles of beer.\nTake one down and pass it around, 71 bottles of beer on the wall.\n\n71 bottles of beer on the wall, 71 bottles of beer.\nTake one down and pass it around, 70 bottles of beer on the wall.\n\n70 bottles of beer on the wall, 70 bottles of beer.\nTake one down and pass it around, 69 bottles of beer on the wall.\n\n69 bottles of beer on the wall, 69 bottles of beer.\nTake one down and pass it around, 68 bottles of beer on the wall.\n\n68 bottles of beer on the wall, 68 bottles of beer.\nTake one down and pass it around, 67 bottles of beer on the wall.\n\n67 bottles of beer on the wall, 67 bottles of beer.\nTake one down and pass it around, 66 bottles of beer on the wall.\n\n66 bottles of beer on the wall, 66 bottles of beer.\nTake one down and pass it around, 65 bottles of beer on the wall.\n\n65 bottles of beer on the wall, 65 bottles of beer.\nTake one down and pass it around, 64 bottles of beer on the wall.\n\n64 bottles of beer on the wall, 64 bottles of beer.\nTake one down and pass it around, 63 bottles of beer on the wall.\n\n63 bottles of beer on the wall, 63 bottles of beer.\nTake one down and pass it around, 62 bottles of beer on the wall.\n\n62 bottles of beer on the wall, 62 bottles of beer.\nTake one down and pass it around, 61 bottles of beer on the wall.\n\n61 bottles of beer on the wall, 61 bottles of beer.\nTake one down and pass it around, 60 bottles of beer on the wall.\n\n60 bottles of beer on the wall, 60 bottles of beer.\nTake one down and pass it around, 59 bottles of beer on the wall.\n\n59 bottles of beer on the wall, 59 bottles of beer.\nTake one down and pass it around, 58 bottles of beer on the wall.\n\n58 bottles of beer on the wall, 58 bottles of beer.\nTake one down and pass it around, 57 bottles of beer on the wall.\n\n57 bottles of beer on the wall, 57 bottles of beer.\nTake one down and pass it around, 56 bottles of beer on the wall.\n\n56 bottles of beer on the wall, 56 bottles of beer.\nTake one down and pass it around, 55 bottles of beer on the wall.\n\n55 bottles of beer on the wall, 55 bottles of beer.\nTake one down and pass it around, 54 bottles of beer on the wall.\n\n54 bottles of beer on the wall, 54 bottles of beer.\nTake one down and pass it around, 53 bottles of beer on the wall.\n\n53 bottles of beer on the wall, 53 bottles of beer.\nTake one down and pass it around, 52 bottles of beer on the wall.\n\n52 bottles of beer on the wall, 52 bottles of beer.\nTake one down and pass it around, 51 bottles of beer on the wall.\n\n51 bottles of beer on the wall, 51 bottles of beer.\nTake one down and pass it around, 50 bottles of beer on the wall.\n\n50 bottles of beer on the wall, 50 bottles of beer.\nTake one down and pass it around, 49 bottles of beer on the wall.\n\n49 bottles of beer on the wall, 49 bottles of beer.\nTake one down and pass it around, 48 bottles of beer on the wall.\n\n48 bottles of beer on the wall, 48 bottles of beer.\nTake one down and pass it around, 47 bottles of beer on the wall.\n\n47 bottles of beer on the wall, 47 bottles of beer.\nTake one down and pass it around, 46 bottles of beer on the wall.\n\n46 bottles of beer on the wall, 46 bottles of beer.\nTake one down and pass it around, 45 bottles of beer on the wall.\n\n45 bottles of beer on the wall, 45 bottles of beer.\nTake one down and pass it around, 44 bottles of beer on the wall.\n\n44 bottles of beer on the wall, 44 bottles of beer.\nTake one down and pass it around, 43 bottles of beer on the wall.\n\n43 bottles of beer on the wall, 43 bottles of beer.\nTake one down and pass it around, 42 bottles of beer on the wall.\n\n42 bottles of beer on the wall, 42 bottles of beer.\nTake one down and pass it around, 41 bottles of beer on the wall.\n\n41 bottles of beer on the wall, 41 bottles of beer.\nTake one down and pass it around, 40 bottles of beer on the wall.\n\n40 bottles of beer on the wall, 40 bottles of beer.\nTake one down and pass it around, 39 bottles of beer on the wall.\n\n39 bottles of beer on the wall, 39 bottles of beer.\nTake one down and pass it around, 38 bottles of beer on the wall.\n\n38 bottles of beer on the wall, 38 bottles of beer.\nTake one down and pass it around, 37 bottles of beer on the wall.\n\n37 bottles of beer on the wall, 37 bottles of beer.\nTake one down and pass it around, 36 bottles of beer on the wall.\n\n36 bottles of beer on the wall, 36 bottles of beer.\nTake one down and pass it around, 35 bottles of beer on the wall.\n\n35 bottles of beer on the wall, 35 bottles of beer.\nTake one down and pass it around, 34 bottles of beer on the wall.\n\n34 bottles of beer on the wall, 34 bottles of beer.\nTake one down and pass it around, 33 bottles of beer on the wall.\n\n33 bottles of beer on the wall, 33 bottles of beer.\nTake one down and pass it around, 32 bottles of beer on the wall.\n\n32 bottles of beer on the wall, 32 bottles of beer.\nTake one down and pass it around, 31 bottles of beer on the wall.\n\n31 bottles of beer on the wall, 31 bottles of beer.\nTake one down and pass it around, 30 bottles of beer on the wall.\n\n30 bottles of beer on the wall, 30 bottles of beer.\nTake one down and pass it around, 29 bottles of beer on the wall.\n\n29 bottles of beer on the wall, 29 bottles of beer.\nTake one down and pass it around, 28 bottles of beer on the wall.\n\n28 bottles of beer on the wall, 28 bottles of beer.\nTake one down and pass it around, 27 bottles of beer on the wall.\n\n27 bottles of beer on the wall, 27 bottles of beer.\nTake one down and pass it around, 26 bottles of beer on the wall.\n\n26 bottles of beer on the wall, 26 bottles of beer.\nTake one down and pass it around, 25 bottles of beer on the wall.\n\n25 bottles of beer on the wall, 25 bottles of beer.\nTake one down and pass it around, 24 bottles of beer on the wall.\n\n24 bottles of beer on the wall, 24 bottles of beer.\nTake one down and pass it around, 23 bottles of beer on the wall.\n\n23 bottles of beer on the wall, 23 bottles of beer.\nTake one down and pass it around, 22 bottles of beer on the wall.\n\n22 bottles of beer on the wall, 22 bottles of beer.\nTake one down and pass it around, 21 bottles of beer on the wall.\n\n21 bottles of beer on the wall, 21 bottles of beer.\nTake one down and pass it around, 20 bottles of beer on the wall.\n\n20 bottles of beer on the wall, 20 bottles of beer.\nTake one down and pass it around, 19 bottles of beer on the wall.\n\n19 bottles of beer on the wall, 19 bottles of beer.\nTake one down and pass it around, 18 bottles of beer on the wall.\n\n18 bottles of beer on the wall, 18 bottles of beer.\nTake one down and pass it around, 17 bottles of beer on the wall.\n\n17 bottles of beer on the wall, 17 bottles of beer.\nTake one down and pass it around, 16 bottles of beer on the wall.\n\n16 bottles of beer on the wall, 16 bottles of beer.\nTake one down and pass it around, 15 bottles of beer on the wall.\n\n15 bottles of beer on the wall, 15 bottles of beer.\nTake one down and pass it around, 14 bottles of beer on the wall.\n\n14 bottles of beer on the wall, 14 bottles of beer.\nTake one down and pass it around, 13 bottles of beer on the wall.\n\n13 bottles of beer on the wall, 13 bottles of beer.\nTake one down and pass it around, 12 bottles of beer on the wall.\n\n12 bottles of beer on the wall, 12 bottles of beer.\nTake one down and pass it around, 11 bottles of beer on the wall.\n\n11 bottles of beer on the wall, 11 bottles of beer.\nTake one down and pass it around, 10 bottles of beer on the wall.\n\n10 bottles of beer on the wall, 10 bottles of beer.\nTake one down and pass it around, 9 bottles of beer on the wall.\n\n9 bottles of beer on the wall, 9 bottles of beer.\nTake one down and pass it around, 8 bottles of beer on the wall.\n\n8 bottles of beer on the wall, 8 bottles of beer.\nTake one down and pass it around, 7 bottles of beer on the wall.\n\n7 bottles of beer on the wall, 7 bottles of beer.\nTake one down and pass it around, 6 bottles of beer on the wall.\n\n6 bottles of beer on the wall, 6 bottles of beer.\nTake one down and pass it around, 5 bottles of beer on the wall.\n\n5 bottles of beer on the wall, 5 bottles of beer.\nTake one down and pass it around, 4 bottles of beer on the wall.\n\n4 bottles of beer on the wall, 4 bottles of beer.\nTake one down and pass it around, 3 bottles of beer on the wall.\n\n3 bottles of beer on the wall, 3 bottles of beer.\nTake one down and pass it around, 2 bottles of beer on the wall.\n\n2 bottles of beer on the wall, 2 bottles of beer.\nTake one down and pass it around, 1 bottle of beer on the wall.\n\n1 bottle of beer on the wall, 1 bottle of beer.\nTake it down and pass it around, no more bottles of beer on the wall.\n\nNo more bottles of beer on the wall, no more bottles of beer.\nGo to the store and buy some more, 99 bottles of beer on the wall.\n"
|
116
|
+
"property": "recite",
|
117
|
+
"input": {
|
118
|
+
"startBottles": 99,
|
119
|
+
"takeDown": 100
|
120
|
+
},
|
121
|
+
"expected": [
|
122
|
+
"99 bottles of beer on the wall, 99 bottles of beer.",
|
123
|
+
"Take one down and pass it around, 98 bottles of beer on the wall.",
|
124
|
+
"",
|
125
|
+
"98 bottles of beer on the wall, 98 bottles of beer.",
|
126
|
+
"Take one down and pass it around, 97 bottles of beer on the wall.",
|
127
|
+
"",
|
128
|
+
"97 bottles of beer on the wall, 97 bottles of beer.",
|
129
|
+
"Take one down and pass it around, 96 bottles of beer on the wall.",
|
130
|
+
"",
|
131
|
+
"96 bottles of beer on the wall, 96 bottles of beer.",
|
132
|
+
"Take one down and pass it around, 95 bottles of beer on the wall.",
|
133
|
+
"",
|
134
|
+
"95 bottles of beer on the wall, 95 bottles of beer.",
|
135
|
+
"Take one down and pass it around, 94 bottles of beer on the wall.",
|
136
|
+
"",
|
137
|
+
"94 bottles of beer on the wall, 94 bottles of beer.",
|
138
|
+
"Take one down and pass it around, 93 bottles of beer on the wall.",
|
139
|
+
"",
|
140
|
+
"93 bottles of beer on the wall, 93 bottles of beer.",
|
141
|
+
"Take one down and pass it around, 92 bottles of beer on the wall.",
|
142
|
+
"",
|
143
|
+
"92 bottles of beer on the wall, 92 bottles of beer.",
|
144
|
+
"Take one down and pass it around, 91 bottles of beer on the wall.",
|
145
|
+
"",
|
146
|
+
"91 bottles of beer on the wall, 91 bottles of beer.",
|
147
|
+
"Take one down and pass it around, 90 bottles of beer on the wall.",
|
148
|
+
"",
|
149
|
+
"90 bottles of beer on the wall, 90 bottles of beer.",
|
150
|
+
"Take one down and pass it around, 89 bottles of beer on the wall.",
|
151
|
+
"",
|
152
|
+
"89 bottles of beer on the wall, 89 bottles of beer.",
|
153
|
+
"Take one down and pass it around, 88 bottles of beer on the wall.",
|
154
|
+
"",
|
155
|
+
"88 bottles of beer on the wall, 88 bottles of beer.",
|
156
|
+
"Take one down and pass it around, 87 bottles of beer on the wall.",
|
157
|
+
"",
|
158
|
+
"87 bottles of beer on the wall, 87 bottles of beer.",
|
159
|
+
"Take one down and pass it around, 86 bottles of beer on the wall.",
|
160
|
+
"",
|
161
|
+
"86 bottles of beer on the wall, 86 bottles of beer.",
|
162
|
+
"Take one down and pass it around, 85 bottles of beer on the wall.",
|
163
|
+
"",
|
164
|
+
"85 bottles of beer on the wall, 85 bottles of beer.",
|
165
|
+
"Take one down and pass it around, 84 bottles of beer on the wall.",
|
166
|
+
"",
|
167
|
+
"84 bottles of beer on the wall, 84 bottles of beer.",
|
168
|
+
"Take one down and pass it around, 83 bottles of beer on the wall.",
|
169
|
+
"",
|
170
|
+
"83 bottles of beer on the wall, 83 bottles of beer.",
|
171
|
+
"Take one down and pass it around, 82 bottles of beer on the wall.",
|
172
|
+
"",
|
173
|
+
"82 bottles of beer on the wall, 82 bottles of beer.",
|
174
|
+
"Take one down and pass it around, 81 bottles of beer on the wall.",
|
175
|
+
"",
|
176
|
+
"81 bottles of beer on the wall, 81 bottles of beer.",
|
177
|
+
"Take one down and pass it around, 80 bottles of beer on the wall.",
|
178
|
+
"",
|
179
|
+
"80 bottles of beer on the wall, 80 bottles of beer.",
|
180
|
+
"Take one down and pass it around, 79 bottles of beer on the wall.",
|
181
|
+
"",
|
182
|
+
"79 bottles of beer on the wall, 79 bottles of beer.",
|
183
|
+
"Take one down and pass it around, 78 bottles of beer on the wall.",
|
184
|
+
"",
|
185
|
+
"78 bottles of beer on the wall, 78 bottles of beer.",
|
186
|
+
"Take one down and pass it around, 77 bottles of beer on the wall.",
|
187
|
+
"",
|
188
|
+
"77 bottles of beer on the wall, 77 bottles of beer.",
|
189
|
+
"Take one down and pass it around, 76 bottles of beer on the wall.",
|
190
|
+
"",
|
191
|
+
"76 bottles of beer on the wall, 76 bottles of beer.",
|
192
|
+
"Take one down and pass it around, 75 bottles of beer on the wall.",
|
193
|
+
"",
|
194
|
+
"75 bottles of beer on the wall, 75 bottles of beer.",
|
195
|
+
"Take one down and pass it around, 74 bottles of beer on the wall.",
|
196
|
+
"",
|
197
|
+
"74 bottles of beer on the wall, 74 bottles of beer.",
|
198
|
+
"Take one down and pass it around, 73 bottles of beer on the wall.",
|
199
|
+
"",
|
200
|
+
"73 bottles of beer on the wall, 73 bottles of beer.",
|
201
|
+
"Take one down and pass it around, 72 bottles of beer on the wall.",
|
202
|
+
"",
|
203
|
+
"72 bottles of beer on the wall, 72 bottles of beer.",
|
204
|
+
"Take one down and pass it around, 71 bottles of beer on the wall.",
|
205
|
+
"",
|
206
|
+
"71 bottles of beer on the wall, 71 bottles of beer.",
|
207
|
+
"Take one down and pass it around, 70 bottles of beer on the wall.",
|
208
|
+
"",
|
209
|
+
"70 bottles of beer on the wall, 70 bottles of beer.",
|
210
|
+
"Take one down and pass it around, 69 bottles of beer on the wall.",
|
211
|
+
"",
|
212
|
+
"69 bottles of beer on the wall, 69 bottles of beer.",
|
213
|
+
"Take one down and pass it around, 68 bottles of beer on the wall.",
|
214
|
+
"",
|
215
|
+
"68 bottles of beer on the wall, 68 bottles of beer.",
|
216
|
+
"Take one down and pass it around, 67 bottles of beer on the wall.",
|
217
|
+
"",
|
218
|
+
"67 bottles of beer on the wall, 67 bottles of beer.",
|
219
|
+
"Take one down and pass it around, 66 bottles of beer on the wall.",
|
220
|
+
"",
|
221
|
+
"66 bottles of beer on the wall, 66 bottles of beer.",
|
222
|
+
"Take one down and pass it around, 65 bottles of beer on the wall.",
|
223
|
+
"",
|
224
|
+
"65 bottles of beer on the wall, 65 bottles of beer.",
|
225
|
+
"Take one down and pass it around, 64 bottles of beer on the wall.",
|
226
|
+
"",
|
227
|
+
"64 bottles of beer on the wall, 64 bottles of beer.",
|
228
|
+
"Take one down and pass it around, 63 bottles of beer on the wall.",
|
229
|
+
"",
|
230
|
+
"63 bottles of beer on the wall, 63 bottles of beer.",
|
231
|
+
"Take one down and pass it around, 62 bottles of beer on the wall.",
|
232
|
+
"",
|
233
|
+
"62 bottles of beer on the wall, 62 bottles of beer.",
|
234
|
+
"Take one down and pass it around, 61 bottles of beer on the wall.",
|
235
|
+
"",
|
236
|
+
"61 bottles of beer on the wall, 61 bottles of beer.",
|
237
|
+
"Take one down and pass it around, 60 bottles of beer on the wall.",
|
238
|
+
"",
|
239
|
+
"60 bottles of beer on the wall, 60 bottles of beer.",
|
240
|
+
"Take one down and pass it around, 59 bottles of beer on the wall.",
|
241
|
+
"",
|
242
|
+
"59 bottles of beer on the wall, 59 bottles of beer.",
|
243
|
+
"Take one down and pass it around, 58 bottles of beer on the wall.",
|
244
|
+
"",
|
245
|
+
"58 bottles of beer on the wall, 58 bottles of beer.",
|
246
|
+
"Take one down and pass it around, 57 bottles of beer on the wall.",
|
247
|
+
"",
|
248
|
+
"57 bottles of beer on the wall, 57 bottles of beer.",
|
249
|
+
"Take one down and pass it around, 56 bottles of beer on the wall.",
|
250
|
+
"",
|
251
|
+
"56 bottles of beer on the wall, 56 bottles of beer.",
|
252
|
+
"Take one down and pass it around, 55 bottles of beer on the wall.",
|
253
|
+
"",
|
254
|
+
"55 bottles of beer on the wall, 55 bottles of beer.",
|
255
|
+
"Take one down and pass it around, 54 bottles of beer on the wall.",
|
256
|
+
"",
|
257
|
+
"54 bottles of beer on the wall, 54 bottles of beer.",
|
258
|
+
"Take one down and pass it around, 53 bottles of beer on the wall.",
|
259
|
+
"",
|
260
|
+
"53 bottles of beer on the wall, 53 bottles of beer.",
|
261
|
+
"Take one down and pass it around, 52 bottles of beer on the wall.",
|
262
|
+
"",
|
263
|
+
"52 bottles of beer on the wall, 52 bottles of beer.",
|
264
|
+
"Take one down and pass it around, 51 bottles of beer on the wall.",
|
265
|
+
"",
|
266
|
+
"51 bottles of beer on the wall, 51 bottles of beer.",
|
267
|
+
"Take one down and pass it around, 50 bottles of beer on the wall.",
|
268
|
+
"",
|
269
|
+
"50 bottles of beer on the wall, 50 bottles of beer.",
|
270
|
+
"Take one down and pass it around, 49 bottles of beer on the wall.",
|
271
|
+
"",
|
272
|
+
"49 bottles of beer on the wall, 49 bottles of beer.",
|
273
|
+
"Take one down and pass it around, 48 bottles of beer on the wall.",
|
274
|
+
"",
|
275
|
+
"48 bottles of beer on the wall, 48 bottles of beer.",
|
276
|
+
"Take one down and pass it around, 47 bottles of beer on the wall.",
|
277
|
+
"",
|
278
|
+
"47 bottles of beer on the wall, 47 bottles of beer.",
|
279
|
+
"Take one down and pass it around, 46 bottles of beer on the wall.",
|
280
|
+
"",
|
281
|
+
"46 bottles of beer on the wall, 46 bottles of beer.",
|
282
|
+
"Take one down and pass it around, 45 bottles of beer on the wall.",
|
283
|
+
"",
|
284
|
+
"45 bottles of beer on the wall, 45 bottles of beer.",
|
285
|
+
"Take one down and pass it around, 44 bottles of beer on the wall.",
|
286
|
+
"",
|
287
|
+
"44 bottles of beer on the wall, 44 bottles of beer.",
|
288
|
+
"Take one down and pass it around, 43 bottles of beer on the wall.",
|
289
|
+
"",
|
290
|
+
"43 bottles of beer on the wall, 43 bottles of beer.",
|
291
|
+
"Take one down and pass it around, 42 bottles of beer on the wall.",
|
292
|
+
"",
|
293
|
+
"42 bottles of beer on the wall, 42 bottles of beer.",
|
294
|
+
"Take one down and pass it around, 41 bottles of beer on the wall.",
|
295
|
+
"",
|
296
|
+
"41 bottles of beer on the wall, 41 bottles of beer.",
|
297
|
+
"Take one down and pass it around, 40 bottles of beer on the wall.",
|
298
|
+
"",
|
299
|
+
"40 bottles of beer on the wall, 40 bottles of beer.",
|
300
|
+
"Take one down and pass it around, 39 bottles of beer on the wall.",
|
301
|
+
"",
|
302
|
+
"39 bottles of beer on the wall, 39 bottles of beer.",
|
303
|
+
"Take one down and pass it around, 38 bottles of beer on the wall.",
|
304
|
+
"",
|
305
|
+
"38 bottles of beer on the wall, 38 bottles of beer.",
|
306
|
+
"Take one down and pass it around, 37 bottles of beer on the wall.",
|
307
|
+
"",
|
308
|
+
"37 bottles of beer on the wall, 37 bottles of beer.",
|
309
|
+
"Take one down and pass it around, 36 bottles of beer on the wall.",
|
310
|
+
"",
|
311
|
+
"36 bottles of beer on the wall, 36 bottles of beer.",
|
312
|
+
"Take one down and pass it around, 35 bottles of beer on the wall.",
|
313
|
+
"",
|
314
|
+
"35 bottles of beer on the wall, 35 bottles of beer.",
|
315
|
+
"Take one down and pass it around, 34 bottles of beer on the wall.",
|
316
|
+
"",
|
317
|
+
"34 bottles of beer on the wall, 34 bottles of beer.",
|
318
|
+
"Take one down and pass it around, 33 bottles of beer on the wall.",
|
319
|
+
"",
|
320
|
+
"33 bottles of beer on the wall, 33 bottles of beer.",
|
321
|
+
"Take one down and pass it around, 32 bottles of beer on the wall.",
|
322
|
+
"",
|
323
|
+
"32 bottles of beer on the wall, 32 bottles of beer.",
|
324
|
+
"Take one down and pass it around, 31 bottles of beer on the wall.",
|
325
|
+
"",
|
326
|
+
"31 bottles of beer on the wall, 31 bottles of beer.",
|
327
|
+
"Take one down and pass it around, 30 bottles of beer on the wall.",
|
328
|
+
"",
|
329
|
+
"30 bottles of beer on the wall, 30 bottles of beer.",
|
330
|
+
"Take one down and pass it around, 29 bottles of beer on the wall.",
|
331
|
+
"",
|
332
|
+
"29 bottles of beer on the wall, 29 bottles of beer.",
|
333
|
+
"Take one down and pass it around, 28 bottles of beer on the wall.",
|
334
|
+
"",
|
335
|
+
"28 bottles of beer on the wall, 28 bottles of beer.",
|
336
|
+
"Take one down and pass it around, 27 bottles of beer on the wall.",
|
337
|
+
"",
|
338
|
+
"27 bottles of beer on the wall, 27 bottles of beer.",
|
339
|
+
"Take one down and pass it around, 26 bottles of beer on the wall.",
|
340
|
+
"",
|
341
|
+
"26 bottles of beer on the wall, 26 bottles of beer.",
|
342
|
+
"Take one down and pass it around, 25 bottles of beer on the wall.",
|
343
|
+
"",
|
344
|
+
"25 bottles of beer on the wall, 25 bottles of beer.",
|
345
|
+
"Take one down and pass it around, 24 bottles of beer on the wall.",
|
346
|
+
"",
|
347
|
+
"24 bottles of beer on the wall, 24 bottles of beer.",
|
348
|
+
"Take one down and pass it around, 23 bottles of beer on the wall.",
|
349
|
+
"",
|
350
|
+
"23 bottles of beer on the wall, 23 bottles of beer.",
|
351
|
+
"Take one down and pass it around, 22 bottles of beer on the wall.",
|
352
|
+
"",
|
353
|
+
"22 bottles of beer on the wall, 22 bottles of beer.",
|
354
|
+
"Take one down and pass it around, 21 bottles of beer on the wall.",
|
355
|
+
"",
|
356
|
+
"21 bottles of beer on the wall, 21 bottles of beer.",
|
357
|
+
"Take one down and pass it around, 20 bottles of beer on the wall.",
|
358
|
+
"",
|
359
|
+
"20 bottles of beer on the wall, 20 bottles of beer.",
|
360
|
+
"Take one down and pass it around, 19 bottles of beer on the wall.",
|
361
|
+
"",
|
362
|
+
"19 bottles of beer on the wall, 19 bottles of beer.",
|
363
|
+
"Take one down and pass it around, 18 bottles of beer on the wall.",
|
364
|
+
"",
|
365
|
+
"18 bottles of beer on the wall, 18 bottles of beer.",
|
366
|
+
"Take one down and pass it around, 17 bottles of beer on the wall.",
|
367
|
+
"",
|
368
|
+
"17 bottles of beer on the wall, 17 bottles of beer.",
|
369
|
+
"Take one down and pass it around, 16 bottles of beer on the wall.",
|
370
|
+
"",
|
371
|
+
"16 bottles of beer on the wall, 16 bottles of beer.",
|
372
|
+
"Take one down and pass it around, 15 bottles of beer on the wall.",
|
373
|
+
"",
|
374
|
+
"15 bottles of beer on the wall, 15 bottles of beer.",
|
375
|
+
"Take one down and pass it around, 14 bottles of beer on the wall.",
|
376
|
+
"",
|
377
|
+
"14 bottles of beer on the wall, 14 bottles of beer.",
|
378
|
+
"Take one down and pass it around, 13 bottles of beer on the wall.",
|
379
|
+
"",
|
380
|
+
"13 bottles of beer on the wall, 13 bottles of beer.",
|
381
|
+
"Take one down and pass it around, 12 bottles of beer on the wall.",
|
382
|
+
"",
|
383
|
+
"12 bottles of beer on the wall, 12 bottles of beer.",
|
384
|
+
"Take one down and pass it around, 11 bottles of beer on the wall.",
|
385
|
+
"",
|
386
|
+
"11 bottles of beer on the wall, 11 bottles of beer.",
|
387
|
+
"Take one down and pass it around, 10 bottles of beer on the wall.",
|
388
|
+
"",
|
389
|
+
"10 bottles of beer on the wall, 10 bottles of beer.",
|
390
|
+
"Take one down and pass it around, 9 bottles of beer on the wall.",
|
391
|
+
"",
|
392
|
+
"9 bottles of beer on the wall, 9 bottles of beer.",
|
393
|
+
"Take one down and pass it around, 8 bottles of beer on the wall.",
|
394
|
+
"",
|
395
|
+
"8 bottles of beer on the wall, 8 bottles of beer.",
|
396
|
+
"Take one down and pass it around, 7 bottles of beer on the wall.",
|
397
|
+
"",
|
398
|
+
"7 bottles of beer on the wall, 7 bottles of beer.",
|
399
|
+
"Take one down and pass it around, 6 bottles of beer on the wall.",
|
400
|
+
"",
|
401
|
+
"6 bottles of beer on the wall, 6 bottles of beer.",
|
402
|
+
"Take one down and pass it around, 5 bottles of beer on the wall.",
|
403
|
+
"",
|
404
|
+
"5 bottles of beer on the wall, 5 bottles of beer.",
|
405
|
+
"Take one down and pass it around, 4 bottles of beer on the wall.",
|
406
|
+
"",
|
407
|
+
"4 bottles of beer on the wall, 4 bottles of beer.",
|
408
|
+
"Take one down and pass it around, 3 bottles of beer on the wall.",
|
409
|
+
"",
|
410
|
+
"3 bottles of beer on the wall, 3 bottles of beer.",
|
411
|
+
"Take one down and pass it around, 2 bottles of beer on the wall.",
|
412
|
+
"",
|
413
|
+
"2 bottles of beer on the wall, 2 bottles of beer.",
|
414
|
+
"Take one down and pass it around, 1 bottle of beer on the wall.",
|
415
|
+
"",
|
416
|
+
"1 bottle of beer on the wall, 1 bottle of beer.",
|
417
|
+
"Take it down and pass it around, no more bottles of beer on the wall.",
|
418
|
+
"",
|
419
|
+
"No more bottles of beer on the wall, no more bottles of beer.",
|
420
|
+
"Go to the store and buy some more, 99 bottles of beer on the wall."
|
421
|
+
]
|
71
422
|
}
|
72
423
|
]
|
73
424
|
}
|