trackler 2.1.0.48 → 2.1.0.49
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.
- checksums.yaml +4 -4
- data/.gitmodules +88 -82
- data/CONTRIBUTING.md +5 -5
- data/fixtures/{common → problem-specifications}/exercises/apple/canonical-data.json +0 -0
- data/fixtures/{common → problem-specifications}/exercises/apple/description.md +0 -0
- data/fixtures/{common → problem-specifications}/exercises/apple/metadata.yml +0 -0
- data/fixtures/{common → problem-specifications}/exercises/banana/description.md +0 -0
- data/fixtures/{common → problem-specifications}/exercises/banana/metadata.yml +0 -0
- data/fixtures/{common → problem-specifications}/exercises/cherry/description.md +0 -0
- data/fixtures/{common → problem-specifications}/exercises/cherry/metadata.yml +0 -0
- data/fixtures/{common → problem-specifications}/exercises/dog/description.md +0 -0
- data/fixtures/{common → problem-specifications}/exercises/dog/metadata.yml +0 -0
- data/fixtures/{common → problem-specifications}/exercises/fish/.deprecated +0 -0
- data/fixtures/{common → problem-specifications}/exercises/fish/canonical-data.json +0 -0
- data/fixtures/{common → problem-specifications}/exercises/fish/description.md +0 -0
- data/fixtures/{common → problem-specifications}/exercises/fish/metadata.yml +0 -0
- data/fixtures/{common → problem-specifications}/exercises/hello-world/description.md +0 -0
- data/fixtures/{common → problem-specifications}/exercises/hello-world/metadata.yml +0 -0
- data/fixtures/{common → problem-specifications}/exercises/imbe/description.md +0 -0
- data/fixtures/{common → problem-specifications}/exercises/imbe/metadata.yml +0 -0
- data/fixtures/{common → problem-specifications}/exercises/mango/canonical-data.json +0 -0
- data/fixtures/{common → problem-specifications}/exercises/mango/description.md +0 -0
- data/fixtures/{common → problem-specifications}/exercises/mango/metadata.yml +0 -0
- data/fixtures/{common → problem-specifications}/exercises/no-metadata/description.md +0 -0
- data/fixtures/{common → problem-specifications}/exercises/one/description.md +0 -0
- data/fixtures/{common → problem-specifications}/exercises/one/metadata.yml +0 -0
- data/fixtures/{common → problem-specifications}/exercises/three/description.md +0 -0
- data/fixtures/{common → problem-specifications}/exercises/three/metadata.yml +0 -0
- data/fixtures/{common → problem-specifications}/exercises/two/description.md +0 -0
- data/fixtures/{common → problem-specifications}/exercises/two/metadata.yml +0 -0
- data/fixtures/tracks/animal/exercises/fish/included-via-symlink.txt +1 -0
- data/lib/trackler/guaranteed_file.rb +3 -3
- data/lib/trackler/specification.rb +4 -4
- data/lib/trackler/specifications.rb +1 -1
- data/lib/trackler/version.rb +1 -1
- data/{common → problem-specifications}/.gitignore +0 -0
- data/{common → problem-specifications}/.travis.yml +0 -0
- data/{common → problem-specifications}/CONTRIBUTING.md +11 -51
- data/{common → problem-specifications}/LICENSE +0 -0
- data/{common → problem-specifications}/README.md +2 -9
- data/{common → problem-specifications}/TOPICS.txt +0 -0
- data/{common → problem-specifications}/bin/check_required_files_present +0 -0
- data/{common → problem-specifications}/bin/transfer_blurb_to_description.rb +2 -2
- data/{common → problem-specifications}/canonical-schema.json +0 -0
- data/{common → problem-specifications}/exercises/accumulate/description.md +0 -0
- data/{common → problem-specifications}/exercises/accumulate/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/acronym/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/acronym/description.md +0 -0
- data/{common → problem-specifications}/exercises/acronym/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/all-your-base/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/all-your-base/description.md +0 -0
- data/{common → problem-specifications}/exercises/all-your-base/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/allergies/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/allergies/description.md +0 -0
- data/{common → problem-specifications}/exercises/allergies/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/alphametics/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/alphametics/description.md +0 -0
- data/{common → problem-specifications}/exercises/alphametics/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/anagram/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/anagram/description.md +0 -0
- data/{common → problem-specifications}/exercises/anagram/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/atbash-cipher/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/atbash-cipher/description.md +0 -0
- data/{common → problem-specifications}/exercises/atbash-cipher/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/bank-account/description.md +0 -0
- data/{common → problem-specifications}/exercises/bank-account/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/beer-song/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/beer-song/description.md +0 -0
- data/{common → problem-specifications}/exercises/beer-song/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/binary-search-tree/description.md +0 -0
- data/{common → problem-specifications}/exercises/binary-search-tree/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/binary-search/canonical-data.json +2 -2
- data/{common → problem-specifications}/exercises/binary-search/description.md +0 -0
- data/{common → problem-specifications}/exercises/binary-search/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/binary/.deprecated +1 -1
- data/{common → problem-specifications}/exercises/binary/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/binary/description.md +0 -0
- data/{common → problem-specifications}/exercises/binary/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/bob/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/bob/description.md +0 -0
- data/{common → problem-specifications}/exercises/bob/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/book-store/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/book-store/description.md +0 -0
- data/{common → problem-specifications}/exercises/book-store/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/bowling/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/bowling/description.md +0 -0
- data/{common → problem-specifications}/exercises/bowling/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/bracket-push/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/bracket-push/description.md +0 -0
- data/{common → problem-specifications}/exercises/bracket-push/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/change/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/change/description.md +0 -0
- data/{common → problem-specifications}/exercises/change/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/circular-buffer/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/circular-buffer/description.md +0 -0
- data/{common → problem-specifications}/exercises/circular-buffer/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/clock/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/clock/description.md +0 -0
- data/{common → problem-specifications}/exercises/clock/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/collatz-conjecture/canonical-data.json +2 -2
- data/{common → problem-specifications}/exercises/collatz-conjecture/description.md +0 -0
- data/{common → problem-specifications}/exercises/collatz-conjecture/metadata.yml +0 -0
- data/problem-specifications/exercises/complex-numbers/canonical-data.json +270 -0
- data/problem-specifications/exercises/complex-numbers/description.md +3 -0
- data/problem-specifications/exercises/complex-numbers/metadata.yml +4 -0
- data/{common → problem-specifications}/exercises/connect/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/connect/description.md +0 -0
- data/{common → problem-specifications}/exercises/connect/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/counter/.deprecated +1 -1
- data/{common → problem-specifications}/exercises/counter/description.md +1 -1
- data/{common → problem-specifications}/exercises/counter/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/crypto-square/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/crypto-square/description.md +0 -0
- data/{common → problem-specifications}/exercises/crypto-square/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/custom-set/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/custom-set/description.md +0 -0
- data/{common → problem-specifications}/exercises/custom-set/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/diamond/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/diamond/description.md +0 -0
- data/{common → problem-specifications}/exercises/diamond/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/difference-of-squares/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/difference-of-squares/description.md +0 -0
- data/{common → problem-specifications}/exercises/difference-of-squares/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/diffie-hellman/description.md +0 -0
- data/{common → problem-specifications}/exercises/diffie-hellman/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/dominoes/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/dominoes/description.md +0 -0
- data/{common → problem-specifications}/exercises/dominoes/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/dot-dsl/description.md +0 -0
- data/{common → problem-specifications}/exercises/dot-dsl/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/error-handling/description.md +0 -0
- data/{common → problem-specifications}/exercises/error-handling/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/etl/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/etl/description.md +0 -0
- data/{common → problem-specifications}/exercises/etl/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/flatten-array/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/flatten-array/description.md +0 -0
- data/{common → problem-specifications}/exercises/flatten-array/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/food-chain/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/food-chain/description.md +0 -0
- data/{common → problem-specifications}/exercises/food-chain/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/forth/canonical-data.json +10 -1
- data/{common → problem-specifications}/exercises/forth/description.md +0 -0
- data/{common → problem-specifications}/exercises/forth/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/gigasecond/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/gigasecond/description.md +0 -0
- data/{common → problem-specifications}/exercises/gigasecond/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/go-counting/description.md +0 -0
- data/{common → problem-specifications}/exercises/go-counting/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/grade-school/description.md +0 -0
- data/{common → problem-specifications}/exercises/grade-school/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/grains/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/grains/description.md +0 -0
- data/{common → problem-specifications}/exercises/grains/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/grep/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/grep/description.md +0 -0
- data/{common → problem-specifications}/exercises/grep/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/hamming/canonical-data.json +8 -8
- data/{common → problem-specifications}/exercises/hamming/description.md +0 -0
- data/{common → problem-specifications}/exercises/hamming/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/hangman/description.md +0 -0
- data/{common → problem-specifications}/exercises/hangman/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/hello-world/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/hello-world/description.md +0 -0
- data/{common → problem-specifications}/exercises/hello-world/metadata.yml +0 -0
- data/{common/exercises/octal → problem-specifications/exercises/hexadecimal}/.deprecated +1 -1
- data/{common → problem-specifications}/exercises/hexadecimal/description.md +0 -0
- data/{common → problem-specifications}/exercises/hexadecimal/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/house/description.md +0 -0
- data/{common → problem-specifications}/exercises/house/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/isogram/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/isogram/description.md +0 -0
- data/{common → problem-specifications}/exercises/isogram/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/kindergarten-garden/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/kindergarten-garden/description.md +0 -0
- data/{common → problem-specifications}/exercises/kindergarten-garden/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/largest-series-product/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/largest-series-product/description.md +0 -0
- data/{common → problem-specifications}/exercises/largest-series-product/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/leap/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/leap/description.md +0 -0
- data/{common → problem-specifications}/exercises/leap/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/ledger/description.md +0 -0
- data/{common → problem-specifications}/exercises/ledger/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/lens-person/description.md +0 -0
- data/{common → problem-specifications}/exercises/lens-person/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/linked-list/description.md +0 -0
- data/{common → problem-specifications}/exercises/linked-list/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/list-ops/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/list-ops/description.md +0 -0
- data/{common → problem-specifications}/exercises/list-ops/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/luhn/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/luhn/description.md +0 -0
- data/{common → problem-specifications}/exercises/luhn/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/markdown/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/markdown/description.md +0 -0
- data/{common → problem-specifications}/exercises/markdown/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/matrix/description.md +0 -0
- data/{common → problem-specifications}/exercises/matrix/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/meetup/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/meetup/description.md +0 -0
- data/{common → problem-specifications}/exercises/meetup/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/minesweeper/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/minesweeper/description.md +0 -0
- data/{common → problem-specifications}/exercises/minesweeper/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/nth-prime/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/nth-prime/description.md +0 -0
- data/{common → problem-specifications}/exercises/nth-prime/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/nucleotide-codons/.deprecated +1 -1
- data/{common → problem-specifications}/exercises/nucleotide-codons/description.md +0 -0
- data/{common → problem-specifications}/exercises/nucleotide-codons/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/nucleotide-count/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/nucleotide-count/description.md +0 -0
- data/{common → problem-specifications}/exercises/nucleotide-count/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/ocr-numbers/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/ocr-numbers/description.md +0 -0
- data/{common → problem-specifications}/exercises/ocr-numbers/metadata.yml +0 -0
- data/{common/exercises/hexadecimal → problem-specifications/exercises/octal}/.deprecated +1 -1
- data/{common → problem-specifications}/exercises/octal/description.md +0 -0
- data/{common → problem-specifications}/exercises/octal/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/paasio/description.md +0 -0
- data/{common → problem-specifications}/exercises/paasio/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/palindrome-products/description.md +0 -0
- data/{common → problem-specifications}/exercises/palindrome-products/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/pangram/canonical-data.json +2 -2
- data/{common → problem-specifications}/exercises/pangram/description.md +2 -2
- data/{common → problem-specifications}/exercises/pangram/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/parallel-letter-frequency/description.md +0 -0
- data/{common → problem-specifications}/exercises/parallel-letter-frequency/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/pascals-triangle/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/pascals-triangle/description.md +0 -0
- data/{common → problem-specifications}/exercises/pascals-triangle/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/perfect-numbers/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/perfect-numbers/description.md +0 -0
- data/{common → problem-specifications}/exercises/perfect-numbers/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/phone-number/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/phone-number/description.md +12 -10
- data/{common → problem-specifications}/exercises/phone-number/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/pig-latin/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/pig-latin/description.md +0 -0
- data/{common → problem-specifications}/exercises/pig-latin/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/point-mutations/.deprecated +1 -1
- data/{common → problem-specifications}/exercises/point-mutations/description.md +0 -0
- data/{common → problem-specifications}/exercises/point-mutations/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/poker/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/poker/description.md +0 -0
- data/{common → problem-specifications}/exercises/poker/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/pov/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/pov/description.md +0 -0
- data/{common → problem-specifications}/exercises/pov/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/prime-factors/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/prime-factors/description.md +0 -0
- data/{common → problem-specifications}/exercises/prime-factors/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/protein-translation/description.md +0 -0
- data/{common → problem-specifications}/exercises/protein-translation/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/proverb/description.md +0 -0
- data/{common → problem-specifications}/exercises/proverb/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/pythagorean-triplet/description.md +0 -0
- data/{common → problem-specifications}/exercises/pythagorean-triplet/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/queen-attack/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/queen-attack/description.md +0 -0
- data/{common → problem-specifications}/exercises/queen-attack/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/rail-fence-cipher/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/rail-fence-cipher/description.md +0 -0
- data/{common → problem-specifications}/exercises/rail-fence-cipher/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/raindrops/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/raindrops/description.md +0 -0
- data/{common → problem-specifications}/exercises/raindrops/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/react/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/react/description.md +0 -0
- data/{common → problem-specifications}/exercises/react/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/rectangles/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/rectangles/description.md +0 -0
- data/{common → problem-specifications}/exercises/rectangles/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/rna-transcription/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/rna-transcription/description.md +0 -0
- data/{common → problem-specifications}/exercises/rna-transcription/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/robot-name/description.md +0 -0
- data/{common → problem-specifications}/exercises/robot-name/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/robot-simulator/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/robot-simulator/description.md +0 -0
- data/{common → problem-specifications}/exercises/robot-simulator/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/roman-numerals/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/roman-numerals/description.md +0 -0
- data/{common → problem-specifications}/exercises/roman-numerals/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/rotational-cipher/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/rotational-cipher/description.md +0 -0
- data/{common → problem-specifications}/exercises/rotational-cipher/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/run-length-encoding/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/run-length-encoding/description.md +0 -0
- data/{common → problem-specifications}/exercises/run-length-encoding/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/saddle-points/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/saddle-points/description.md +0 -0
- data/{common → problem-specifications}/exercises/saddle-points/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/say/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/say/description.md +0 -0
- data/{common → problem-specifications}/exercises/say/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/scale-generator/description.md +0 -0
- data/{common → problem-specifications}/exercises/scale-generator/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/scrabble-score/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/scrabble-score/description.md +0 -0
- data/{common → problem-specifications}/exercises/scrabble-score/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/secret-handshake/canonical-data.json +2 -2
- data/{common → problem-specifications}/exercises/secret-handshake/description.md +0 -0
- data/{common → problem-specifications}/exercises/secret-handshake/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/series/description.md +0 -0
- data/{common → problem-specifications}/exercises/series/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/sgf-parsing/description.md +0 -0
- data/{common → problem-specifications}/exercises/sgf-parsing/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/sieve/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/sieve/description.md +0 -0
- data/{common → problem-specifications}/exercises/sieve/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/simple-cipher/description.md +0 -0
- data/{common → problem-specifications}/exercises/simple-cipher/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/simple-linked-list/description.md +0 -0
- data/{common → problem-specifications}/exercises/simple-linked-list/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/space-age/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/space-age/description.md +0 -0
- data/{common → problem-specifications}/exercises/space-age/metadata.yml +0 -0
- data/problem-specifications/exercises/spiral-matrix/canonical-data.json +52 -0
- data/problem-specifications/exercises/spiral-matrix/description.md +22 -0
- data/problem-specifications/exercises/spiral-matrix/metadata.yml +4 -0
- data/{common → problem-specifications}/exercises/strain/description.md +0 -0
- data/{common → problem-specifications}/exercises/strain/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/sublist/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/sublist/description.md +0 -0
- data/{common → problem-specifications}/exercises/sublist/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/sum-of-multiples/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/sum-of-multiples/description.md +0 -0
- data/{common → problem-specifications}/exercises/sum-of-multiples/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/tournament/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/tournament/description.md +0 -0
- data/{common → problem-specifications}/exercises/tournament/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/transpose/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/transpose/description.md +0 -0
- data/{common → problem-specifications}/exercises/transpose/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/tree-building/description.md +0 -0
- data/{common → problem-specifications}/exercises/tree-building/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/triangle/canonical-data.json +1 -1
- data/{common → problem-specifications}/exercises/triangle/description.md +0 -0
- data/{common → problem-specifications}/exercises/triangle/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/trinary/.deprecated +1 -1
- data/{common → problem-specifications}/exercises/trinary/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/trinary/description.md +0 -0
- data/{common → problem-specifications}/exercises/trinary/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/twelve-days/description.md +0 -0
- data/{common → problem-specifications}/exercises/twelve-days/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/two-bucket/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/two-bucket/description.md +0 -0
- data/{common → problem-specifications}/exercises/two-bucket/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/two-fer/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/two-fer/description.md +0 -0
- data/{common → problem-specifications}/exercises/two-fer/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/variable-length-quantity/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/variable-length-quantity/description.md +0 -0
- data/{common → problem-specifications}/exercises/variable-length-quantity/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/word-count/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/word-count/description.md +0 -0
- data/{common → problem-specifications}/exercises/word-count/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/word-search/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/word-search/description.md +0 -0
- data/{common → problem-specifications}/exercises/word-search/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/wordy/canonical-data.json +0 -0
- data/{common → problem-specifications}/exercises/wordy/description.md +0 -0
- data/{common → problem-specifications}/exercises/wordy/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/zebra-puzzle/description.md +0 -0
- data/{common → problem-specifications}/exercises/zebra-puzzle/metadata.yml +0 -0
- data/{common → problem-specifications}/exercises/zipper/description.md +0 -0
- data/{common → problem-specifications}/exercises/zipper/metadata.yml +0 -0
- data/{common → problem-specifications}/package.json +2 -2
- data/{common → problem-specifications}/yarn.lock +0 -0
- data/trackler.gemspec +1 -1
- data/tracks/bash/config.json +7 -0
- data/tracks/bash/exercises/pangram/example.sh +7 -0
- data/tracks/bash/exercises/pangram/pangram_tests.sh +47 -0
- data/tracks/c/config.json +19 -0
- data/tracks/c/exercises/acronym/makefile +15 -0
- data/tracks/c/exercises/acronym/src/example.c +44 -0
- data/tracks/c/exercises/acronym/src/example.h +6 -0
- data/tracks/c/exercises/acronym/test/test_acronym.c +68 -0
- data/tracks/c/exercises/acronym/test/vendor/unity.c +1300 -0
- data/tracks/c/exercises/acronym/test/vendor/unity.h +274 -0
- data/tracks/c/exercises/acronym/test/vendor/unity_internals.h +701 -0
- data/tracks/c/exercises/isogram/makefile +15 -0
- data/tracks/c/exercises/isogram/src/example.c +26 -0
- data/tracks/c/exercises/isogram/src/example.h +8 -0
- data/tracks/c/exercises/isogram/test/test_isogram.c +66 -0
- data/tracks/c/exercises/isogram/test/vendor/unity.c +1300 -0
- data/tracks/c/exercises/isogram/test/vendor/unity.h +274 -0
- data/tracks/c/exercises/isogram/test/vendor/unity_internals.h +701 -0
- data/tracks/{dartlang → chapel}/.gitignore +0 -0
- data/tracks/{dartlang → chapel}/.travis.yml +0 -0
- data/tracks/{dartlang → chapel}/LICENSE +0 -0
- data/tracks/chapel/README.md +11 -0
- data/tracks/{dartlang → chapel}/bin/fetch-configlet +0 -0
- data/tracks/{dartlang → chapel}/config.json +3 -3
- data/tracks/{dartlang → chapel}/docs/ABOUT.md +0 -0
- data/tracks/{dartlang → chapel}/docs/EXERCISE_README_INSERT.md +0 -0
- data/tracks/{dartlang → chapel}/docs/INSTALLATION.md +0 -0
- data/tracks/{dartlang → chapel}/docs/LEARNING.md +0 -0
- data/tracks/{dartlang → chapel}/docs/RESOURCES.md +0 -0
- data/tracks/{dartlang → chapel}/docs/TESTS.md +0 -0
- data/tracks/{dartlang/img → chapel/exercises}/.keep +0 -0
- data/tracks/chapel/img/.keep +0 -0
- data/tracks/clojurescript/README.md +1 -1
- data/tracks/clojurescript/config.json +1 -1
- data/tracks/coffeescript/config.json +1 -1
- data/tracks/coldfusion/config.json +1 -1
- data/tracks/coq/README.md +1 -1
- data/tracks/coq/config.json +1 -1
- data/tracks/coq/docs/EXERCISE_README_INSERT.md +1 -1
- data/tracks/cpp/CMakeLists.txt +1 -0
- data/tracks/cpp/config.json +8 -0
- data/tracks/cpp/exercises/allergies/CMakeLists.txt +52 -0
- data/tracks/cpp/exercises/allergies/allergies_test.cpp +148 -0
- data/tracks/cpp/exercises/allergies/example.cpp +30 -0
- data/tracks/cpp/exercises/allergies/example.h +36 -0
- data/tracks/csharp/build.ps1 +2 -2
- data/tracks/csharp/build.sh +2 -2
- data/tracks/csharp/exercises/all-your-base/AllYourBase.cs +1 -1
- data/tracks/csharp/exercises/all-your-base/AllYourBaseTest.cs +103 -102
- data/tracks/csharp/exercises/all-your-base/Example.cs +1 -1
- data/tracks/csharp/exercises/beer-song/BeerSongTest.cs +322 -322
- data/tracks/csharp/exercises/bob/BobTest.cs +2 -0
- data/tracks/csharp/exercises/book-store/BookStore.cs +1 -1
- data/tracks/csharp/exercises/book-store/BookStoreTest.cs +42 -28
- data/tracks/csharp/exercises/book-store/Example.cs +5 -5
- data/tracks/csharp/exercises/food-chain/FoodChainTest.cs +96 -96
- data/tracks/csharp/exercises/nth-prime/NthPrimeTest.cs +1 -2
- data/tracks/csharp/exercises/perfect-numbers/PerfectNumbersTest.cs +2 -3
- data/tracks/csharp/exercises/transpose/Example.cs +14 -14
- data/tracks/csharp/exercises/transpose/TransposeTest.cs +34 -44
- data/tracks/csharp/exercises/wordy/WordyTest.cs +2 -3
- data/tracks/csharp/generators/Exercise.cs +23 -0
- data/tracks/csharp/generators/ExerciseCollection.cs +33 -0
- data/tracks/csharp/generators/Exercises/Acronym.cs +6 -0
- data/tracks/csharp/generators/Exercises/AllYourBase.cs +22 -0
- data/tracks/csharp/generators/Exercises/AtbashCipher.cs +6 -0
- data/tracks/csharp/generators/Exercises/BeerSong.cs +11 -0
- data/tracks/csharp/generators/Exercises/Bob.cs +2 -16
- data/tracks/csharp/generators/Exercises/BookStore.cs +16 -0
- data/tracks/csharp/generators/Exercises/FoodChain.cs +16 -0
- data/tracks/csharp/generators/Exercises/HelloWorld.cs +6 -0
- data/tracks/csharp/generators/Exercises/Isogram.cs +6 -0
- data/tracks/csharp/generators/Exercises/Leap.cs +11 -0
- data/tracks/csharp/generators/Exercises/Luhn.cs +11 -0
- data/tracks/csharp/generators/Exercises/NthPrime.cs +13 -0
- data/tracks/csharp/generators/Exercises/PerfectNumbers.cs +21 -0
- data/tracks/csharp/generators/Exercises/PigLatin.cs +6 -0
- data/tracks/csharp/generators/Exercises/Raindrops.cs +6 -0
- data/tracks/csharp/generators/Exercises/RomanNumerals.cs +15 -0
- data/tracks/csharp/generators/Exercises/RotationalCipher.cs +6 -0
- data/tracks/csharp/generators/Exercises/Transpose.cs +19 -0
- data/tracks/csharp/generators/Exercises/Wordy.cs +13 -0
- data/tracks/csharp/generators/Generators.csproj +8 -2
- data/tracks/csharp/generators/{Data → Input}/CanonicalData.cs +1 -3
- data/tracks/csharp/generators/Input/CanonicalDataCase.cs +37 -0
- data/tracks/csharp/generators/Input/CanonicalDataCaseJsonConverter.cs +43 -0
- data/tracks/csharp/generators/{Data → Input}/CanonicalDataCasesJsonConverter.cs +6 -11
- data/tracks/csharp/generators/{Data → Input}/CanonicalDataParser.cs +1 -1
- data/tracks/csharp/generators/Output/BooleanTestMethodGenerator.cs +13 -0
- data/tracks/csharp/generators/Output/EqualityTestMethodGenerator.cs +10 -0
- data/tracks/csharp/generators/Output/ExceptionTestMethodGenerator.cs +12 -0
- data/tracks/csharp/generators/Output/NameExtensions.cs +35 -0
- data/tracks/csharp/generators/Output/TestClass.cs +12 -0
- data/tracks/csharp/generators/Output/TestClass.liquid +20 -0
- data/tracks/csharp/generators/Output/TestClassFile.cs +22 -0
- data/tracks/csharp/generators/Output/TestClassGenerator.cs +30 -0
- data/tracks/csharp/generators/Output/TestClassRenderer.cs +26 -0
- data/tracks/csharp/generators/Output/TestMethod.cs +10 -0
- data/tracks/csharp/generators/Output/TestMethodGenerator.cs +95 -0
- data/tracks/csharp/generators/Output/UnescapedValue.cs +11 -0
- data/tracks/csharp/generators/Output/ValueFormatter.cs +100 -0
- data/tracks/csharp/generators/Program.cs +10 -42
- data/tracks/csharp/generators/Properties/launchSettings.json +7 -0
- data/tracks/csharp/generators/{Methods/TestedMethodType.cs → TestedMethodType.cs} +1 -1
- data/tracks/{dlang → d}/.gitignore +0 -0
- data/tracks/{dlang → d}/.travis.yml +0 -0
- data/tracks/{dlang → d}/LICENSE +0 -0
- data/tracks/{dlang → d}/README.md +1 -1
- data/tracks/{dlang → d}/bin/fetch-configlet +0 -0
- data/tracks/{dlang → d}/bin/test-all-exercises +0 -0
- data/tracks/{dlang → d}/bin/test-exercise +0 -0
- data/tracks/{dlang → d}/config.json +2 -2
- data/tracks/{dlang → d}/docs/ABOUT.md +0 -0
- data/tracks/{dlang → d}/docs/EXERCISE_README_INSERT.md +0 -0
- data/tracks/{dlang → d}/docs/INSTALLATION.md +0 -0
- data/tracks/{dlang → d}/docs/LEARNING.md +0 -0
- data/tracks/{dlang → d}/docs/RESOURCES.md +0 -0
- data/tracks/{dlang → d}/docs/TESTS.md +0 -0
- data/tracks/{dlang → d}/exercises/bob/dub.sdl +0 -0
- data/tracks/{dlang → d}/exercises/bob/example/bob.d +0 -0
- data/tracks/{dlang → d}/exercises/bob/source/bob.d +0 -0
- data/tracks/{dlang → d}/exercises/circular-buffer/dub.sdl +0 -0
- data/tracks/{dlang → d}/exercises/circular-buffer/example/circular_buffer.d +1 -1
- data/tracks/{dlang → d}/exercises/circular-buffer/source/circular_buffer.d +2 -2
- data/tracks/{dlang → d}/exercises/crypto-square/dub.sdl +0 -0
- data/tracks/{dlang → d}/exercises/crypto-square/example/crypto_square.d +0 -0
- data/tracks/{dlang → d}/exercises/crypto-square/source/crypto_square.d +0 -0
- data/tracks/{dlang → d}/exercises/difference-of-squares/dub.sdl +0 -0
- data/tracks/{dlang → d}/exercises/difference-of-squares/example/difference_of_squares.d +0 -0
- data/tracks/{dlang → d}/exercises/difference-of-squares/source/difference_of_squares.d +0 -0
- data/tracks/{dlang → d}/exercises/etl/dub.sdl +0 -0
- data/tracks/{dlang → d}/exercises/etl/example/etl.d +2 -1
- data/tracks/{dlang → d}/exercises/etl/source/etl.d +0 -0
- data/tracks/{dlang → d}/exercises/gigasecond/dub.sdl +0 -0
- data/tracks/{dlang → d}/exercises/gigasecond/example/gigasecond.d +0 -0
- data/tracks/{dlang → d}/exercises/gigasecond/source/gigasecond.d +0 -0
- data/tracks/{dlang → d}/exercises/hamming/dub.sdl +0 -0
- data/tracks/{dlang → d}/exercises/hamming/example/hamming.d +2 -1
- data/tracks/{dlang → d}/exercises/hamming/source/hamming.d +2 -0
- data/tracks/{dlang → d}/exercises/hello-world/dub.sdl +0 -0
- data/tracks/{dlang → d}/exercises/hello-world/example/hello_world.d +0 -0
- data/tracks/{dlang → d}/exercises/hello-world/source/hello_world.d +0 -0
- data/tracks/{dlang → d}/exercises/leap/dub.sdl +0 -0
- data/tracks/{dlang → d}/exercises/leap/example/leap.d +0 -0
- data/tracks/{dlang → d}/exercises/leap/source/leap.d +0 -0
- data/tracks/{dlang → d}/exercises/nucleotide-count/dub.sdl +0 -0
- data/tracks/{dlang → d}/exercises/nucleotide-count/example/nucleotide_count.d +2 -1
- data/tracks/{dlang → d}/exercises/nucleotide-count/source/nucleotide_count.d +2 -0
- data/tracks/{dlang → d}/exercises/pangram/dub.sdl +0 -0
- data/tracks/{dlang → d}/exercises/pangram/example/pangram.d +0 -0
- data/tracks/{dlang → d}/exercises/pangram/source/pangram.d +0 -0
- data/tracks/{dlang → d}/exercises/raindrops/dub.sdl +0 -0
- data/tracks/{dlang → d}/exercises/raindrops/example/raindrops.d +0 -0
- data/tracks/{dlang → d}/exercises/raindrops/source/raindrops.d +0 -0
- data/tracks/{dlang → d}/exercises/react/dub.sdl +0 -0
- data/tracks/{dlang → d}/exercises/react/example/react.d +0 -0
- data/tracks/{dlang → d}/exercises/react/source/react.d +0 -0
- data/tracks/{dlang → d}/exercises/rna-transcription/dub.sdl +0 -0
- data/tracks/{dlang → d}/exercises/rna-transcription/example/rna_transcription.d +4 -1
- data/tracks/{dlang → d}/exercises/rna-transcription/source/rna_transcription.d +1 -1
- data/tracks/{dlang → d}/exercises/robot-name/dub.sdl +0 -0
- data/tracks/{dlang → d}/exercises/robot-name/example/robot_name.d +0 -0
- data/tracks/{dlang → d}/exercises/robot-name/source/robot_name.d +0 -0
- data/tracks/{dlang → d}/exercises/roman-numerals/dub.sdl +0 -0
- data/tracks/{dlang → d}/exercises/roman-numerals/example/roman_numerals.d +0 -0
- data/tracks/{dlang → d}/exercises/roman-numerals/source/roman_numerals.d +0 -0
- data/tracks/{dlang → d}/exercises/series/dub.sdl +0 -0
- data/tracks/{dlang → d}/exercises/series/example/series.d +1 -1
- data/tracks/{dlang → d}/exercises/series/source/series.d +1 -1
- data/tracks/{dlang → d}/exercises/triangle/dub.sdl +0 -0
- data/tracks/{dlang → d}/exercises/triangle/example/triangle.d +1 -2
- data/tracks/{dlang → d}/exercises/triangle/source/triangle.d +1 -3
- data/tracks/{dlang → d}/img/icon.png +0 -0
- data/tracks/{dartlang → dart}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- data/tracks/dart/.gitignore +24 -0
- data/tracks/dart/.travis.yml +27 -0
- data/tracks/dart/LICENSE +21 -0
- data/tracks/{dartlang → dart}/README.md +1 -1
- data/tracks/dart/analysis_options.yaml +7 -0
- data/tracks/dart/bin/fetch-configlet +32 -0
- data/tracks/dart/config.json +79 -0
- data/tracks/dart/docs/ABOUT.md +0 -0
- data/tracks/dart/docs/EXERCISE_README_INSERT.md +0 -0
- data/tracks/dart/docs/INSTALLATION.md +0 -0
- data/tracks/dart/docs/LEARNING.md +0 -0
- data/tracks/dart/docs/RESOURCES.md +0 -0
- data/tracks/dart/docs/TESTS.md +0 -0
- data/tracks/dart/exercises/bob/lib/bob.dart +3 -0
- data/tracks/dart/exercises/bob/lib/example.dart +17 -0
- data/tracks/dart/exercises/bob/pubspec.lock +281 -0
- data/tracks/dart/exercises/bob/pubspec.yaml +3 -0
- data/tracks/dart/exercises/bob/test/bob_test.dart +118 -0
- data/tracks/dart/exercises/difference-of-squares/lib/difference_of_squares.dart +3 -0
- data/tracks/dart/exercises/difference-of-squares/lib/example.dart +13 -0
- data/tracks/dart/exercises/difference-of-squares/pubspec.lock +281 -0
- data/tracks/dart/exercises/difference-of-squares/pubspec.yaml +3 -0
- data/tracks/dart/exercises/difference-of-squares/test/difference_of_squares_test.dart +50 -0
- data/tracks/dart/exercises/gigasecond/lib/example.dart +7 -0
- data/tracks/dart/exercises/gigasecond/lib/gigasecond.dart +3 -0
- data/tracks/dart/exercises/gigasecond/pubspec.lock +281 -0
- data/tracks/dart/exercises/gigasecond/pubspec.yaml +3 -0
- data/tracks/dart/exercises/gigasecond/test/gigasecond_test.dart +39 -0
- data/tracks/dart/exercises/hamming/lib/example.dart +17 -0
- data/tracks/dart/exercises/hamming/lib/hamming.dart +3 -0
- data/tracks/dart/exercises/hamming/pubspec.lock +281 -0
- data/tracks/dart/exercises/hamming/pubspec.yaml +3 -0
- data/tracks/dart/exercises/hamming/test/hamming_test.dart +54 -0
- data/tracks/dart/exercises/hello-world/lib/example.dart +3 -0
- data/tracks/dart/exercises/hello-world/lib/hello_world.dart +5 -0
- data/tracks/dart/exercises/hello-world/pubspec.lock +281 -0
- data/tracks/dart/exercises/hello-world/pubspec.yaml +3 -0
- data/tracks/dart/exercises/hello-world/test/hello_world_test.dart +24 -0
- data/tracks/dart/exercises/leap/lib/example.dart +13 -0
- data/tracks/dart/exercises/leap/lib/leap.dart +3 -0
- data/tracks/dart/exercises/leap/pubspec.lock +281 -0
- data/tracks/dart/exercises/leap/pubspec.yaml +3 -0
- data/tracks/dart/exercises/leap/test/leap_test.dart +30 -0
- data/tracks/dart/exercises/rna-transcription/lib/example.dart +18 -0
- data/tracks/dart/exercises/rna-transcription/lib/rna_transcription.dart +3 -0
- data/tracks/dart/exercises/rna-transcription/pubspec.lock +281 -0
- data/tracks/dart/exercises/rna-transcription/pubspec.yaml +3 -0
- data/tracks/dart/exercises/rna-transcription/test/rna_transcription_test.dart +48 -0
- data/tracks/dart/img/.keep +0 -0
- data/tracks/dart/img/icon.png +0 -0
- data/tracks/dart/img/icon.svg +37 -0
- data/tracks/dart/pubspec.lock +287 -0
- data/tracks/dart/pubspec.yaml +8 -0
- data/tracks/dart/test/exercises_test.dart +90 -0
- data/tracks/dart/tool/create-exercise +124 -0
- data/tracks/delphi/README.md +1 -1
- data/tracks/delphi/exercises/bank-account/uBankAccountTests.pas +12 -10
- data/tracks/delphi/exercises/hamming/uHammingExample.pas +5 -5
- data/tracks/delphi/exercises/hamming/uHammingTests.pas +46 -48
- data/tracks/ecmascript/.babelrc +3 -0
- data/tracks/ecmascript/config.json +25 -1
- data/tracks/ecmascript/exercises/accumulate/package.json +59 -11
- data/tracks/ecmascript/exercises/acronym/package.json +59 -11
- data/tracks/ecmascript/exercises/all-your-base/package.json +59 -11
- data/tracks/ecmascript/exercises/allergies/package.json +59 -11
- data/tracks/ecmascript/exercises/alphametics/alphametics.spec.js +95 -0
- data/tracks/ecmascript/exercises/alphametics/example.js +99 -0
- data/tracks/ecmascript/exercises/alphametics/package.json +122 -0
- data/tracks/ecmascript/exercises/anagram/package.json +59 -11
- data/tracks/ecmascript/exercises/atbash-cipher/package.json +59 -11
- data/tracks/ecmascript/exercises/beer-song/package.json +59 -11
- data/tracks/ecmascript/exercises/binary-search-tree/package.json +59 -11
- data/tracks/ecmascript/exercises/binary-search/package.json +59 -11
- data/tracks/ecmascript/exercises/binary/package.json +59 -11
- data/tracks/ecmascript/exercises/bob/package.json +59 -11
- data/tracks/ecmascript/exercises/bracket-push/package.json +59 -11
- data/tracks/ecmascript/exercises/circular-buffer/package.json +59 -11
- data/tracks/ecmascript/exercises/clock/package.json +59 -11
- data/tracks/ecmascript/exercises/connect/package.json +59 -11
- data/tracks/ecmascript/exercises/crypto-square/package.json +59 -11
- data/tracks/ecmascript/exercises/custom-set/package.json +59 -11
- data/tracks/ecmascript/exercises/diamond/package.json +59 -11
- data/tracks/ecmascript/exercises/difference-of-squares/package.json +59 -11
- data/tracks/ecmascript/exercises/etl/package.json +59 -11
- data/tracks/ecmascript/exercises/flatten-array/example.js +11 -0
- data/tracks/ecmascript/exercises/flatten-array/flatten-array.spec.js +41 -0
- data/tracks/ecmascript/exercises/flatten-array/package.json +74 -0
- data/tracks/ecmascript/exercises/food-chain/package.json +59 -11
- data/tracks/ecmascript/exercises/gigasecond/package.json +59 -11
- data/tracks/ecmascript/exercises/grade-school/package.json +59 -11
- data/tracks/ecmascript/exercises/grains/package.json +59 -11
- data/tracks/ecmascript/exercises/hamming/package.json +59 -11
- data/tracks/ecmascript/exercises/hello-world/package.json +59 -11
- data/tracks/ecmascript/exercises/hexadecimal/package.json +59 -11
- data/tracks/ecmascript/exercises/isogram/package.json +59 -11
- data/tracks/ecmascript/exercises/kindergarten-garden/package.json +59 -11
- data/tracks/ecmascript/exercises/largest-series-product/package.json +59 -11
- data/tracks/ecmascript/exercises/leap/package.json +59 -11
- data/tracks/ecmascript/exercises/linked-list/package.json +59 -11
- data/tracks/ecmascript/exercises/list-ops/example.js +77 -0
- data/tracks/ecmascript/exercises/list-ops/list-ops.spec.js +133 -0
- data/tracks/ecmascript/exercises/list-ops/package.json +74 -0
- data/tracks/ecmascript/exercises/luhn/package.json +59 -11
- data/tracks/ecmascript/exercises/matrix/package.json +59 -11
- data/tracks/ecmascript/exercises/meetup/package.json +59 -11
- data/tracks/ecmascript/exercises/nth-prime/package.json +59 -11
- data/tracks/ecmascript/exercises/ocr-numbers/package.json +59 -11
- data/tracks/ecmascript/exercises/octal/package.json +59 -11
- data/tracks/ecmascript/exercises/package.json +6 -8
- data/tracks/ecmascript/exercises/palindrome-products/package.json +59 -11
- data/tracks/ecmascript/exercises/pangram/package.json +59 -11
- data/tracks/ecmascript/exercises/pascals-triangle/package.json +59 -11
- data/tracks/ecmascript/exercises/perfect-numbers/package.json +59 -11
- data/tracks/ecmascript/exercises/phone-number/package.json +59 -11
- data/tracks/ecmascript/exercises/pig-latin/package.json +59 -11
- data/tracks/ecmascript/exercises/prime-factors/package.json +59 -11
- data/tracks/ecmascript/exercises/pythagorean-triplet/package.json +59 -11
- data/tracks/ecmascript/exercises/queen-attack/package.json +59 -11
- data/tracks/ecmascript/exercises/raindrops/package.json +59 -11
- data/tracks/ecmascript/exercises/rna-transcription/package.json +59 -11
- data/tracks/ecmascript/exercises/robot-name/package.json +59 -11
- data/tracks/ecmascript/exercises/robot-simulator/package.json +59 -11
- data/tracks/ecmascript/exercises/roman-numerals/package.json +59 -11
- data/tracks/ecmascript/exercises/saddle-points/package.json +59 -11
- data/tracks/ecmascript/exercises/say/package.json +59 -11
- data/tracks/ecmascript/exercises/scrabble-score/package.json +59 -11
- data/tracks/ecmascript/exercises/secret-handshake/package.json +59 -11
- data/tracks/ecmascript/exercises/series/package.json +59 -11
- data/tracks/ecmascript/exercises/sieve/package.json +59 -11
- data/tracks/ecmascript/exercises/simple-cipher/package.json +59 -11
- data/tracks/ecmascript/exercises/space-age/package.json +59 -11
- data/tracks/ecmascript/exercises/strain/package.json +59 -11
- data/tracks/ecmascript/exercises/sum-of-multiples/package.json +59 -11
- data/tracks/ecmascript/exercises/triangle/package.json +59 -11
- data/tracks/ecmascript/exercises/trinary/package.json +59 -11
- data/tracks/ecmascript/exercises/two-bucket/package.json +59 -11
- data/tracks/ecmascript/exercises/word-count/package.json +59 -11
- data/tracks/ecmascript/exercises/wordy/package.json +59 -11
- data/tracks/ecmascript/package-lock.json +2835 -0
- data/tracks/ecmascript/package.json +59 -11
- data/tracks/elixir/config.json +7 -0
- data/tracks/elixir/exercises/collatz-conjecture/collatz_conjecture.exs +12 -0
- data/tracks/elixir/exercises/collatz-conjecture/collatz_conjecture_test.exs +54 -0
- data/tracks/elixir/exercises/collatz-conjecture/example.exs +20 -0
- data/tracks/erlang/.github/stale.yml +2 -0
- data/tracks/erlang/exercises/rna-transcription/test/rna_transcription_tests.erl +3 -3
- data/tracks/factor/docs/INSTALLATION.md +27 -18
- data/tracks/factor/docs/TESTS.md +10 -6
- data/tracks/fortran/README.md +1 -1
- data/tracks/fortran/config.json +1 -1
- data/tracks/go/exercises/clock/.meta/gen.go +58 -65
- data/tracks/go/exercises/clock/cases_test.go +0 -4
- data/tracks/go/gen/gen.go +4 -0
- data/tracks/go/gen/property.go +70 -0
- data/tracks/groovy/README.md +1 -1
- data/tracks/groovy/config.json +2 -4
- data/tracks/groovy/exercises/roman-numerals/Example.groovy +10 -10
- data/tracks/groovy/exercises/roman-numerals/Roman.groovy +33 -0
- data/tracks/groovy/exercises/roman-numerals/RomanSpec.groovy +35 -0
- data/tracks/haskell/bin/test-example +7 -3
- data/tracks/haskell/bin/test-stub +5 -1
- data/tracks/haskell/config.json +6 -0
- data/tracks/haskell/exercises/pangram/package.yaml +1 -1
- data/tracks/haskell/exercises/pangram/test/Tests.hs +1 -1
- data/tracks/haskell/exercises/simple-linked-list/test/Tests.hs +4 -4
- data/tracks/haskell/exercises/spiral-matrix/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/spiral-matrix/examples/success-standard/src/Spiral.hs +17 -0
- data/tracks/haskell/exercises/spiral-matrix/package.yaml +20 -0
- data/tracks/haskell/exercises/spiral-matrix/src/Spiral.hs +4 -0
- data/tracks/haskell/exercises/spiral-matrix/stack.yaml +1 -0
- data/tracks/haskell/exercises/spiral-matrix/test/Tests.hs +40 -0
- data/tracks/haxe/README.md +1 -1
- data/tracks/haxe/config.json +1 -1
- data/tracks/java/CONTRIBUTING.md +8 -0
- data/tracks/java/POLICIES.md +2 -2
- data/tracks/java/README.md +9 -9
- data/tracks/java/config.json +40 -5
- data/tracks/java/docs/ABOUT.md +1 -1
- data/tracks/java/docs/MAINTAINING.md +1 -1
- data/tracks/java/exercises/bank-account/HINTS.md +11 -0
- data/tracks/java/exercises/bank-account/build.gradle +18 -0
- data/tracks/java/exercises/bank-account/src/example/java/BankAccount.java +53 -0
- data/tracks/java/exercises/bank-account/src/example/java/BankAccountActionInvalidException.java +6 -0
- data/tracks/java/exercises/bank-account/src/main/java/BankAccountActionInvalidException.java +6 -0
- data/tracks/java/exercises/bank-account/src/test/java/BankAccountTest.java +201 -0
- data/tracks/java/exercises/clock/{HINT.md → HINTS.md} +0 -0
- data/tracks/java/exercises/food-chain/build.gradle +17 -0
- data/tracks/java/exercises/food-chain/src/example/java/FoodChain.java +77 -0
- data/tracks/java/exercises/food-chain/src/main/java/.keep +0 -0
- data/tracks/java/exercises/food-chain/src/test/java/FoodChainTest.java +204 -0
- data/tracks/java/exercises/hamming/src/test/java/HammingTest.java +68 -26
- data/tracks/java/exercises/hello-world/HINTS.md +4 -0
- data/tracks/java/exercises/hello-world/TUTORIAL.md +111 -395
- data/tracks/java/exercises/hello-world/src/example/java/Greeter.java +7 -0
- data/tracks/java/exercises/hello-world/src/main/java/{HelloWorld.java → Greeter.java} +4 -2
- data/tracks/java/exercises/hello-world/src/test/java/GreeterTest.java +12 -0
- data/tracks/java/exercises/isogram/{HINT.md → HINTS.md} +0 -0
- data/tracks/java/exercises/kindergarten-garden/src/test/java/KindergartenGardenTest.java +4 -4
- data/tracks/java/exercises/minesweeper/src/example/java/MinesweeperBoard.java +5 -41
- data/tracks/java/exercises/minesweeper/src/test/java/MinesweeperBoardTest.java +39 -90
- data/tracks/java/exercises/palindrome-products/src/test/java/PalindromeCalculatorTest.java +3 -1
- data/tracks/java/exercises/pangram/src/test/java/PangramCheckerTest.java +8 -18
- data/tracks/java/exercises/perfect-numbers/src/test/java/NaturalNumberTest.java +0 -1
- data/tracks/java/exercises/poker/build.gradle +18 -0
- data/tracks/java/exercises/poker/src/example/java/Card.java +25 -0
- data/tracks/java/exercises/poker/src/example/java/Hand.java +104 -0
- data/tracks/java/exercises/poker/src/example/java/Poker.java +27 -0
- data/tracks/java/exercises/poker/src/main/java/Poker.java +2 -0
- data/tracks/java/exercises/poker/src/test/java/PokerTest.java +164 -0
- data/tracks/java/exercises/settings.gradle +5 -0
- data/tracks/java/exercises/simple-cipher/{HINT.md → HINTS.md} +0 -0
- data/tracks/java/exercises/transpose/build.gradle +17 -0
- data/tracks/java/exercises/transpose/src/example/java/Transpose.java +41 -0
- data/tracks/java/exercises/transpose/src/main/java/.keep +0 -0
- data/tracks/java/exercises/transpose/src/test/java/TransposeTest.java +264 -0
- data/tracks/java/exercises/two-fer/HINTS.md +38 -0
- data/tracks/java/exercises/two-fer/build.gradle +17 -0
- data/tracks/java/exercises/two-fer/src/example/java/Twofer.java +5 -0
- data/tracks/java/exercises/two-fer/src/main/java/Twofer.java +5 -0
- data/tracks/java/exercises/two-fer/src/test/java/TwoferTest.java +41 -0
- data/tracks/javascript/config.json +9 -0
- data/tracks/javascript/exercises/hello-world/HINTS.md +10 -27
- data/tracks/javascript/exercises/hello-world/hello-world.js +1 -1
- data/tracks/javascript/exercises/hello-world/hello-world.spec.js +2 -10
- data/tracks/javascript/exercises/phone-number/example.js +2 -2
- data/tracks/javascript/exercises/phone-number/phone-number.spec.js +51 -46
- data/tracks/javascript/exercises/simple-linked-list/example.js +119 -0
- data/tracks/javascript/exercises/simple-linked-list/simple-linked-list.spec.js +160 -0
- data/tracks/julia/config.json +11 -0
- data/tracks/julia/exercises/complex-numbers/HINTS.md +11 -0
- data/tracks/julia/exercises/complex-numbers/complex-numbers.jl +0 -0
- data/tracks/julia/exercises/complex-numbers/example.jl +41 -0
- data/tracks/julia/exercises/complex-numbers/runtests.jl +74 -0
- data/tracks/kotlin/README.md +8 -8
- data/tracks/kotlin/bin/journey-test.sh +1 -1
- data/tracks/kotlin/exercises/allergies/src/example/kotlin/Allergen.kt +1 -0
- data/tracks/kotlin/exercises/hamming/src/test/kotlin/HammingTest.kt +64 -14
- data/tracks/kotlin/exercises/hello-world/TUTORIAL.md +1 -2
- data/tracks/kotlin/exercises/pangram/src/test/kotlin/PangramTest.kt +5 -9
- data/tracks/kotlin/exercises/phone-number/src/example/kotlin/PhoneNumber.kt +1 -1
- data/tracks/kotlin/exercises/phone-number/src/test/kotlin/PhoneNumberTest.kt +21 -13
- data/tracks/kotlin/exercises/rna-transcription/src/test/kotlin/RnaTranscriptionTest.kt +15 -18
- data/tracks/kotlin/gradle/wrapper/gradle-wrapper.jar +0 -0
- data/tracks/kotlin/gradle/wrapper/gradle-wrapper.properties +2 -2
- data/tracks/nasm/config.json +1 -1
- data/tracks/nim/README.md +2 -2
- data/tracks/nim/config.json +1 -1
- data/tracks/ocaml/exercises/all-your-base/test.ml +8 -8
- data/tracks/ocaml/exercises/bowling/test.ml +14 -15
- data/tracks/ocaml/exercises/hamming/test.ml +3 -3
- data/tracks/ocaml/tools/test-generator/templates/ocaml/bowling/test.ml +1 -1
- data/tracks/perl5/.travis.yml +1 -1
- data/tracks/perl5/README.md +1 -1
- data/tracks/perl5/bin/README.md +35 -0
- data/tracks/perl5/bin/cpanfile +4 -0
- data/tracks/perl5/bin/exercise-gen.pl +60 -0
- data/tracks/perl5/config.json +7 -0
- data/tracks/perl5/docs/INSTALLATION.md +23 -3
- data/tracks/perl5/exercises/bob/Bob.pm +4 -17
- data/tracks/perl5/exercises/bob/Example.pm +10 -11
- data/tracks/perl5/exercises/bob/bob.t +198 -51
- data/tracks/perl5/exercises/bob/example.yaml +41 -0
- data/tracks/perl5/exercises/hello-world/Example.pm +10 -0
- data/tracks/perl5/exercises/hello-world/HelloWorld.pm +10 -0
- data/tracks/perl5/exercises/hello-world/example.yaml +33 -0
- data/tracks/perl5/exercises/hello-world/hello-world.t +64 -0
- data/tracks/perl5/exercises/leap/Example.pm +9 -8
- data/tracks/perl5/exercises/leap/Leap.pm +11 -0
- data/tracks/perl5/exercises/leap/example.yaml +41 -0
- data/tracks/perl5/exercises/leap/leap.t +74 -17
- data/tracks/perl5/templates/module.mustache +8 -0
- data/tracks/perl5/templates/test.mustache +58 -0
- data/tracks/perl6/.travis.yml +1 -1
- data/tracks/perl6/README.md +1 -1
- data/tracks/perl6/bin/README.md +3 -3
- data/tracks/perl6/bin/exercise-gen.pl6 +2 -2
- data/tracks/perl6/exercises/all-your-base/all-your-base.t +6 -4
- data/tracks/perl6/exercises/allergies/allergies.t +6 -4
- data/tracks/perl6/exercises/anagram/anagram.t +6 -4
- data/tracks/perl6/exercises/atbash-cipher/atbash-cipher.t +6 -4
- data/tracks/perl6/exercises/bob/bob.t +6 -4
- data/tracks/perl6/exercises/clock/clock.t +6 -4
- data/tracks/perl6/exercises/flatten-array/flatten-array.t +6 -4
- data/tracks/perl6/exercises/grains/grains.t +6 -4
- data/tracks/perl6/exercises/hello-world/hello-world.t +6 -4
- data/tracks/perl6/exercises/leap/leap.t +6 -4
- data/tracks/perl6/exercises/luhn/luhn.t +6 -4
- data/tracks/perl6/exercises/phone-number/phone-number.t +6 -4
- data/tracks/perl6/exercises/raindrops/raindrops.t +6 -4
- data/tracks/perl6/exercises/rna-transcription/rna-transcription.t +15 -13
- data/tracks/perl6/exercises/scrabble-score/scrabble-score.t +6 -4
- data/tracks/perl6/exercises/space-age/space-age.t +6 -4
- data/tracks/perl6/exercises/word-count/word-count.t +6 -4
- data/tracks/perl6/exercises/wordy/wordy.t +6 -4
- data/tracks/perl6/templates/test.mustache +8 -7
- data/tracks/plsql/config.json +1 -1
- data/tracks/prolog/README.md +6 -6
- data/tracks/prolog/config.json +1 -1
- data/tracks/r/bin/run_tests.R +18 -10
- data/tracks/r/exercises/anagram/test_anagram.R +1 -1
- data/tracks/r/exercises/bob/test_bob.R +1 -1
- data/tracks/r/exercises/difference-of-squares/test_difference-of-squares.R +1 -1
- data/tracks/r/exercises/grains/test_grains.R +1 -1
- data/tracks/r/exercises/hamming/test_hamming.R +1 -1
- data/tracks/r/exercises/hello-world/test_hello-world.R +1 -1
- data/tracks/r/exercises/isogram/test_isogram.R +1 -1
- data/tracks/r/exercises/largest-series-product/test_largest-series-product.R +1 -1
- data/tracks/r/exercises/leap/test_leap.R +1 -1
- data/tracks/r/exercises/luhn/test_luhn.R +1 -1
- data/tracks/r/exercises/pascals-triangle/test_pascals-triangle.R +1 -1
- data/tracks/r/exercises/perfect-numbers/example.R +17 -1
- data/tracks/r/exercises/perfect-numbers/test_perfect-numbers.R +50 -33
- data/tracks/r/exercises/phone-number/test_phone-number.R +1 -1
- data/tracks/r/exercises/prime-factors/test_prime-factors.R +1 -1
- data/tracks/r/exercises/raindrops/test_raindrops.R +1 -1
- data/tracks/r/exercises/rna-transcription/test_rna-transcription.R +9 -9
- data/tracks/r/exercises/rotational-cipher/test_rotational-cipher.R +1 -1
- data/tracks/r/exercises/scrabble-score/test_scrabble-score.R +1 -1
- data/tracks/r/exercises/secret-handshake/test_secret-handshake.R +1 -1
- data/tracks/r/exercises/sieve/test_sieve.R +1 -1
- data/tracks/r/exercises/space-age/test_space-age.R +1 -1
- data/tracks/r/exercises/sum-of-multiples/test_sum-of-multiples.R +1 -1
- data/tracks/r/exercises/tournament/test_tournament.R +1 -1
- data/tracks/r/exercises/word-count/test_word-count.R +1 -1
- data/tracks/ruby/README.md +9 -9
- data/tracks/ruby/config.json +12 -0
- data/tracks/ruby/exercises/collatz-conjecture/.meta/.version +1 -0
- data/tracks/ruby/exercises/collatz-conjecture/.meta/generator/collatz_conjecture_case.rb +31 -0
- data/tracks/ruby/exercises/collatz-conjecture/.meta/solutions/collatz_conjecture.rb +22 -0
- data/tracks/ruby/exercises/collatz-conjecture/collatz_conjecture_test.rb +58 -0
- data/tracks/ruby/lib/generator/command_line.rb +6 -7
- data/tracks/ruby/lib/generator/command_line/generator_optparser.rb +2 -2
- data/tracks/ruby/lib/generator/files/metadata_files.rb +3 -3
- data/tracks/ruby/lib/generator/files/track_files.rb +22 -3
- data/tracks/ruby/lib/generator/implementation.rb +7 -5
- data/tracks/ruby/lib/generator/repository.rb +12 -0
- data/tracks/ruby/lib/generator/template_values.rb +1 -1
- data/tracks/ruby/lib/helper.rb +1 -1
- data/tracks/ruby/test/generator/command_line/generator_optparser_test.rb +2 -2
- data/tracks/ruby/test/generator/command_line_test.rb +2 -2
- data/tracks/ruby/test/generator/files/metadata_files_test.rb +2 -2
- data/tracks/ruby/test/generator/files/track_files_test.rb +9 -4
- data/tracks/ruby/test/generator/implementation_test.rb +11 -4
- data/tracks/ruby/test/generator/repository_test.rb +10 -0
- data/tracks/ruby/test/generator/template_values_test.rb +2 -4
- data/tracks/rust/exercises/bob/Cargo.toml +1 -1
- data/tracks/rust/exercises/bob/example.rs +4 -3
- data/tracks/rust/exercises/bob/tests/bob.rs +110 -9
- data/tracks/scala/config.json +0 -1
- data/tracks/scala/exercises/anagram/example.scala +7 -7
- data/tracks/scala/exercises/anagram/src/test/scala/AnagramTest.scala +73 -46
- data/tracks/scala/exercises/etl/example.scala +1 -1
- data/tracks/scala/exercises/etl/src/test/scala/EtlTest.scala +20 -34
- data/tracks/scala/exercises/grains/src/test/scala/GrainsTest.scala +21 -14
- data/tracks/scala/exercises/secret-handshake/example.scala +3 -3
- data/tracks/scala/exercises/secret-handshake/src/test/scala/SecretHandshakeTest.scala +28 -29
- data/tracks/scala/exercises/sieve/example.scala +1 -1
- data/tracks/scala/exercises/sieve/src/test/scala/SieveTest.scala +25 -23
- data/tracks/scala/exercises/triangle/example.scala +6 -22
- data/tracks/scala/exercises/triangle/src/test/scala/TriangleTest.scala +66 -19
- data/tracks/scala/testgen/src/main/scala/AnagramTestGenerator.scala +15 -0
- data/tracks/scala/testgen/src/main/scala/EtlTestGenerator.scala +52 -0
- data/tracks/scala/testgen/src/main/scala/GrainsTestGenerator.scala +50 -0
- data/tracks/scala/testgen/src/main/scala/SecretHandshakeTestGenerator.scala +15 -0
- data/tracks/scala/testgen/src/main/scala/SieveTestGenerator.scala +15 -0
- data/tracks/scala/testgen/src/main/scala/TriangleTestGenerator.scala +37 -0
- data/tracks/scala/testgen/src/main/scala/testgen/TestSuiteBuilder.scala +3 -0
- data/tracks/scheme/README.org +2 -2
- data/tracks/scheme/config.json +1 -1
- data/tracks/smalltalk/.gitignore +4 -0
- data/tracks/smalltalk/.travis.yml +5 -0
- data/tracks/smalltalk/LICENSE +21 -0
- data/tracks/smalltalk/README.md +11 -0
- data/tracks/smalltalk/bin/fetch-configlet +32 -0
- data/tracks/smalltalk/config.json +16 -0
- data/tracks/smalltalk/docs/ABOUT.md +0 -0
- data/tracks/smalltalk/docs/EXERCISE_README_INSERT.md +0 -0
- data/tracks/smalltalk/docs/INSTALLATION.md +0 -0
- data/tracks/smalltalk/docs/LEARNING.md +0 -0
- data/tracks/smalltalk/docs/RESOURCES.md +0 -0
- data/tracks/smalltalk/docs/TESTS.md +0 -0
- data/tracks/smalltalk/exercises/.keep +0 -0
- data/tracks/smalltalk/img/.keep +0 -0
- data/tracks/sml/config.json +1 -8
- data/tracks/tcl/README.md +1 -1
- data/tracks/tcl/config.json +1 -1
- data/tracks/teco/config.json +1 -1
- data/tracks/typescript/Makefile +1 -1
- data/tracks/typescript/appveyor.yml +18 -0
- data/tracks/typescript/common/package.json +7 -7
- data/tracks/typescript/common/tsconfig.json +1 -0
- data/tracks/typescript/common/yarn.lock +718 -1152
- data/tracks/typescript/config.json +45 -42
- data/tracks/typescript/exercises/anagram/package.json +7 -7
- data/tracks/typescript/exercises/anagram/tsconfig.json +1 -0
- data/tracks/typescript/exercises/anagram/yarn.lock +718 -1152
- data/tracks/typescript/exercises/beer-song/package.json +7 -7
- data/tracks/typescript/exercises/beer-song/tsconfig.json +1 -0
- data/tracks/typescript/exercises/beer-song/yarn.lock +718 -1152
- data/tracks/typescript/exercises/bob/package.json +7 -7
- data/tracks/typescript/exercises/bob/tsconfig.json +1 -0
- data/tracks/typescript/exercises/bob/yarn.lock +718 -1152
- data/tracks/typescript/exercises/difference-of-squares/package.json +7 -7
- data/tracks/typescript/exercises/difference-of-squares/tsconfig.json +1 -0
- data/tracks/typescript/exercises/difference-of-squares/yarn.lock +718 -1152
- data/tracks/typescript/exercises/etl/package.json +7 -7
- data/tracks/typescript/exercises/etl/tsconfig.json +1 -0
- data/tracks/typescript/exercises/etl/yarn.lock +718 -1152
- data/tracks/typescript/exercises/food-chain/package.json +7 -7
- data/tracks/typescript/exercises/food-chain/tsconfig.json +1 -0
- data/tracks/typescript/exercises/food-chain/yarn.lock +718 -1152
- data/tracks/typescript/exercises/gigasecond/package.json +7 -7
- data/tracks/typescript/exercises/gigasecond/tsconfig.json +1 -0
- data/tracks/typescript/exercises/gigasecond/yarn.lock +718 -1152
- data/tracks/typescript/exercises/grade-school/package.json +7 -7
- data/tracks/typescript/exercises/grade-school/tsconfig.json +1 -0
- data/tracks/typescript/exercises/grade-school/yarn.lock +718 -1152
- data/tracks/typescript/exercises/hamming/package.json +7 -7
- data/tracks/typescript/exercises/hamming/tsconfig.json +1 -0
- data/tracks/typescript/exercises/hamming/yarn.lock +718 -1152
- data/tracks/typescript/exercises/hello-world/package.json +7 -7
- data/tracks/typescript/exercises/hello-world/tsconfig.json +1 -0
- data/tracks/typescript/exercises/hello-world/yarn.lock +718 -1152
- data/tracks/typescript/exercises/leap/package.json +7 -7
- data/tracks/typescript/exercises/leap/tsconfig.json +1 -0
- data/tracks/typescript/exercises/leap/yarn.lock +718 -1152
- data/tracks/typescript/exercises/pangram/package.json +7 -7
- data/tracks/typescript/exercises/pangram/tsconfig.json +1 -0
- data/tracks/typescript/exercises/pangram/yarn.lock +718 -1152
- data/tracks/typescript/exercises/phone-number/package.json +7 -7
- data/tracks/typescript/exercises/phone-number/tsconfig.json +1 -0
- data/tracks/typescript/exercises/phone-number/yarn.lock +718 -1152
- data/tracks/typescript/exercises/raindrops/package.json +7 -7
- data/tracks/typescript/exercises/raindrops/tsconfig.json +1 -0
- data/tracks/typescript/exercises/raindrops/yarn.lock +718 -1152
- data/tracks/typescript/exercises/rna-transcription/package.json +7 -7
- data/tracks/typescript/exercises/rna-transcription/tsconfig.json +1 -0
- data/tracks/typescript/exercises/rna-transcription/yarn.lock +718 -1152
- data/tracks/typescript/exercises/robot-name/package.json +7 -7
- data/tracks/typescript/exercises/robot-name/robot-name.test.ts +0 -5
- data/tracks/typescript/exercises/robot-name/tsconfig.json +1 -0
- data/tracks/typescript/exercises/robot-name/yarn.lock +718 -1152
- data/tracks/typescript/exercises/say/package.json +7 -7
- data/tracks/typescript/exercises/say/tsconfig.json +1 -0
- data/tracks/typescript/exercises/say/yarn.lock +718 -1152
- data/tracks/typescript/exercises/scrabble-score/package.json +7 -7
- data/tracks/typescript/exercises/scrabble-score/scrabble-score.example.ts +1 -1
- data/tracks/typescript/exercises/scrabble-score/tsconfig.json +1 -0
- data/tracks/typescript/exercises/scrabble-score/yarn.lock +718 -1152
- data/tracks/typescript/exercises/space-age/package.json +7 -7
- data/tracks/typescript/exercises/space-age/tsconfig.json +1 -0
- data/tracks/typescript/exercises/space-age/yarn.lock +718 -1152
- data/tracks/typescript/exercises/word-count/package.json +7 -7
- data/tracks/typescript/exercises/word-count/tsconfig.json +1 -0
- data/tracks/typescript/exercises/word-count/yarn.lock +718 -1152
- data/tracks/typescript/exercises/wordy/package.json +7 -7
- data/tracks/typescript/exercises/wordy/tsconfig.json +1 -0
- data/tracks/typescript/exercises/wordy/yarn.lock +718 -1152
- data/tracks/vimscript/exercises/rna-transcription/example.vim +1 -1
- data/tracks/vimscript/exercises/rna-transcription/rna_transcription.vader +40 -16
- data/tracks/vimscript/exercises/rna-transcription/rna_transcription.vim +2 -4
- metadata +670 -497
- data/fixtures/tracks/animal/exercises/fish/included-via-symlink.txt +0 -1
- data/tracks/csharp/generators/Classes/TestClass.cs +0 -15
- data/tracks/csharp/generators/Classes/TestClassNameTransformer.cs +0 -9
- data/tracks/csharp/generators/Classes/TestClassRenderer.cs +0 -40
- data/tracks/csharp/generators/Classes/TestedClassNameTransformer.cs +0 -9
- data/tracks/csharp/generators/Data/CanonicalDataCase.cs +0 -24
- data/tracks/csharp/generators/Data/CanonicalDataCaseJsonConverter.cs +0 -32
- data/tracks/csharp/generators/Data/CanonicalDataValue.cs +0 -24
- data/tracks/csharp/generators/Data/ExerciseCollection.cs +0 -23
- data/tracks/csharp/generators/Exercises/AcronymExercise.cs +0 -20
- data/tracks/csharp/generators/Exercises/AtbashCipherExercise.cs +0 -20
- data/tracks/csharp/generators/Exercises/BeerSongExercise.cs +0 -33
- data/tracks/csharp/generators/Exercises/BooleanExercise.cs +0 -14
- data/tracks/csharp/generators/Exercises/EqualityExercise.cs +0 -19
- data/tracks/csharp/generators/Exercises/Exercise.cs +0 -81
- data/tracks/csharp/generators/Exercises/FoodChainExercise.cs +0 -27
- data/tracks/csharp/generators/Exercises/HelloWorldExercise.cs +0 -9
- data/tracks/csharp/generators/Exercises/IsogramExercise.cs +0 -9
- data/tracks/csharp/generators/Exercises/LeapExercise.cs +0 -9
- data/tracks/csharp/generators/Exercises/LuhnExercise.cs +0 -9
- data/tracks/csharp/generators/Exercises/NthPrimeExercise.cs +0 -22
- data/tracks/csharp/generators/Exercises/PerfectNumbersExercise.cs +0 -29
- data/tracks/csharp/generators/Exercises/PigLatinExercise.cs +0 -9
- data/tracks/csharp/generators/Exercises/RaindropsExercise.cs +0 -20
- data/tracks/csharp/generators/Exercises/RomanNumeralsExercise.cs +0 -30
- data/tracks/csharp/generators/Exercises/RotationalCipherExercise.cs +0 -23
- data/tracks/csharp/generators/Exercises/WordyExercise.cs +0 -20
- data/tracks/csharp/generators/Helpers/StringExtensions.cs +0 -8
- data/tracks/csharp/generators/Helpers/To.cs +0 -13
- data/tracks/csharp/generators/Methods/BooleanTestMethodGenerator.cs +0 -32
- data/tracks/csharp/generators/Methods/EqualityTestMethodGenerator.cs +0 -49
- data/tracks/csharp/generators/Methods/ExceptionTestMethodGenerator.cs +0 -30
- data/tracks/csharp/generators/Methods/TestMethod.cs +0 -12
- data/tracks/csharp/generators/Methods/TestMethodData.cs +0 -12
- data/tracks/csharp/generators/Methods/TestMethodGenerator.cs +0 -80
- data/tracks/csharp/generators/Methods/TestMethodNameTransformer.cs +0 -23
- data/tracks/csharp/generators/Methods/TestMethodOptions.cs +0 -15
- data/tracks/csharp/generators/Methods/TestMethodRenderer.cs +0 -26
- data/tracks/csharp/generators/Methods/TestedMethodNameTransformer.cs +0 -9
- data/tracks/groovy/exercises/roman-numerals/RomanTest.groovy +0 -96
- data/tracks/java/exercises/hello-world/GETTING_STARTED.md +0 -54
- data/tracks/java/exercises/hello-world/HINT.md +0 -7
- data/tracks/java/exercises/hello-world/src/example/java/HelloWorld.java +0 -9
- data/tracks/java/exercises/hello-world/src/test/java/HelloWorldTest.java +0 -32
- data/tracks/kotlin/exercises/allergies/src/example/kotlin/Allergen.kt +0 -10
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
// This file was auto-generated based on version 1.1.0 of the canonical data.
|
|
2
|
+
|
|
2
3
|
using Xunit;
|
|
3
4
|
|
|
4
5
|
public class AllYourBaseTest
|
|
@@ -6,197 +7,197 @@ public class AllYourBaseTest
|
|
|
6
7
|
[Fact]
|
|
7
8
|
public void Single_bit_one_to_decimal()
|
|
8
9
|
{
|
|
9
|
-
|
|
10
|
-
var inputDigits = new
|
|
11
|
-
|
|
12
|
-
var
|
|
13
|
-
Assert.Equal(
|
|
10
|
+
var inputBase = 2;
|
|
11
|
+
var inputDigits = new[] { 1 };
|
|
12
|
+
var outputBase = 10;
|
|
13
|
+
var expected = new[] { 1 };
|
|
14
|
+
Assert.Equal(expected, AllYourBase.Rebase(inputBase, inputDigits, outputBase));
|
|
14
15
|
}
|
|
15
16
|
|
|
16
17
|
[Fact(Skip = "Remove to run test")]
|
|
17
18
|
public void Binary_to_single_decimal()
|
|
18
19
|
{
|
|
19
|
-
|
|
20
|
-
var inputDigits = new
|
|
21
|
-
|
|
22
|
-
var
|
|
23
|
-
Assert.Equal(
|
|
20
|
+
var inputBase = 2;
|
|
21
|
+
var inputDigits = new[] { 1, 0, 1 };
|
|
22
|
+
var outputBase = 10;
|
|
23
|
+
var expected = new[] { 5 };
|
|
24
|
+
Assert.Equal(expected, AllYourBase.Rebase(inputBase, inputDigits, outputBase));
|
|
24
25
|
}
|
|
25
26
|
|
|
26
27
|
[Fact(Skip = "Remove to run test")]
|
|
27
28
|
public void Single_decimal_to_binary()
|
|
28
|
-
{
|
|
29
|
-
|
|
30
|
-
var inputDigits = new
|
|
31
|
-
|
|
32
|
-
var
|
|
33
|
-
Assert.Equal(
|
|
29
|
+
{
|
|
30
|
+
var inputBase = 10;
|
|
31
|
+
var inputDigits = new[] { 5 };
|
|
32
|
+
var outputBase = 2;
|
|
33
|
+
var expected = new[] { 1, 0, 1 };
|
|
34
|
+
Assert.Equal(expected, AllYourBase.Rebase(inputBase, inputDigits, outputBase));
|
|
34
35
|
}
|
|
35
36
|
|
|
36
37
|
[Fact(Skip = "Remove to run test")]
|
|
37
38
|
public void Binary_to_multiple_decimal()
|
|
38
39
|
{
|
|
39
|
-
|
|
40
|
-
var inputDigits = new
|
|
41
|
-
|
|
42
|
-
var
|
|
43
|
-
Assert.Equal(
|
|
40
|
+
var inputBase = 2;
|
|
41
|
+
var inputDigits = new[] { 1, 0, 1, 0, 1, 0 };
|
|
42
|
+
var outputBase = 10;
|
|
43
|
+
var expected = new[] { 4, 2 };
|
|
44
|
+
Assert.Equal(expected, AllYourBase.Rebase(inputBase, inputDigits, outputBase));
|
|
44
45
|
}
|
|
45
46
|
|
|
46
47
|
[Fact(Skip = "Remove to run test")]
|
|
47
48
|
public void Decimal_to_binary()
|
|
48
49
|
{
|
|
49
|
-
|
|
50
|
-
var inputDigits = new
|
|
51
|
-
|
|
52
|
-
var
|
|
53
|
-
Assert.Equal(
|
|
50
|
+
var inputBase = 10;
|
|
51
|
+
var inputDigits = new[] { 4, 2 };
|
|
52
|
+
var outputBase = 2;
|
|
53
|
+
var expected = new[] { 1, 0, 1, 0, 1, 0 };
|
|
54
|
+
Assert.Equal(expected, AllYourBase.Rebase(inputBase, inputDigits, outputBase));
|
|
54
55
|
}
|
|
55
56
|
|
|
56
57
|
[Fact(Skip = "Remove to run test")]
|
|
57
58
|
public void Trinary_to_hexadecimal()
|
|
58
59
|
{
|
|
59
|
-
|
|
60
|
-
var inputDigits = new
|
|
61
|
-
|
|
62
|
-
var
|
|
63
|
-
Assert.Equal(
|
|
60
|
+
var inputBase = 3;
|
|
61
|
+
var inputDigits = new[] { 1, 1, 2, 0 };
|
|
62
|
+
var outputBase = 16;
|
|
63
|
+
var expected = new[] { 2, 10 };
|
|
64
|
+
Assert.Equal(expected, AllYourBase.Rebase(inputBase, inputDigits, outputBase));
|
|
64
65
|
}
|
|
65
66
|
|
|
66
67
|
[Fact(Skip = "Remove to run test")]
|
|
67
68
|
public void Hexadecimal_to_trinary()
|
|
68
69
|
{
|
|
69
|
-
|
|
70
|
-
var inputDigits = new
|
|
71
|
-
|
|
72
|
-
var
|
|
73
|
-
Assert.Equal(
|
|
70
|
+
var inputBase = 16;
|
|
71
|
+
var inputDigits = new[] { 2, 10 };
|
|
72
|
+
var outputBase = 3;
|
|
73
|
+
var expected = new[] { 1, 1, 2, 0 };
|
|
74
|
+
Assert.Equal(expected, AllYourBase.Rebase(inputBase, inputDigits, outputBase));
|
|
74
75
|
}
|
|
75
76
|
|
|
76
77
|
[Fact(Skip = "Remove to run test")]
|
|
77
|
-
public void
|
|
78
|
+
public void Number_15_bit_integer()
|
|
78
79
|
{
|
|
79
|
-
|
|
80
|
-
var inputDigits = new
|
|
81
|
-
|
|
82
|
-
var
|
|
83
|
-
Assert.Equal(
|
|
80
|
+
var inputBase = 97;
|
|
81
|
+
var inputDigits = new[] { 3, 46, 60 };
|
|
82
|
+
var outputBase = 73;
|
|
83
|
+
var expected = new[] { 6, 10, 45 };
|
|
84
|
+
Assert.Equal(expected, AllYourBase.Rebase(inputBase, inputDigits, outputBase));
|
|
84
85
|
}
|
|
85
86
|
|
|
86
87
|
[Fact(Skip = "Remove to run test")]
|
|
87
|
-
public void
|
|
88
|
+
public void Empty_list()
|
|
88
89
|
{
|
|
89
|
-
|
|
90
|
+
var inputBase = 2;
|
|
90
91
|
var inputDigits = new int[0];
|
|
91
|
-
|
|
92
|
-
Assert.Throws<ArgumentException>(() =>
|
|
92
|
+
var outputBase = 10;
|
|
93
|
+
Assert.Throws<System.ArgumentException>(() => AllYourBase.Rebase(inputBase, inputDigits, outputBase));
|
|
93
94
|
}
|
|
94
95
|
|
|
95
96
|
[Fact(Skip = "Remove to run test")]
|
|
96
97
|
public void Single_zero()
|
|
97
98
|
{
|
|
98
|
-
|
|
99
|
-
var inputDigits = new
|
|
100
|
-
|
|
101
|
-
Assert.Throws<ArgumentException>(() =>
|
|
99
|
+
var inputBase = 10;
|
|
100
|
+
var inputDigits = new[] { 0 };
|
|
101
|
+
var outputBase = 2;
|
|
102
|
+
Assert.Throws<System.ArgumentException>(() => AllYourBase.Rebase(inputBase, inputDigits, outputBase));
|
|
102
103
|
}
|
|
103
104
|
|
|
104
105
|
[Fact(Skip = "Remove to run test")]
|
|
105
106
|
public void Multiple_zeros()
|
|
106
107
|
{
|
|
107
|
-
|
|
108
|
-
var inputDigits = new
|
|
109
|
-
|
|
110
|
-
Assert.Throws<ArgumentException>(() =>
|
|
108
|
+
var inputBase = 10;
|
|
109
|
+
var inputDigits = new[] { 0, 0, 0 };
|
|
110
|
+
var outputBase = 2;
|
|
111
|
+
Assert.Throws<System.ArgumentException>(() => AllYourBase.Rebase(inputBase, inputDigits, outputBase));
|
|
111
112
|
}
|
|
112
113
|
|
|
113
114
|
[Fact(Skip = "Remove to run test")]
|
|
114
115
|
public void Leading_zeros()
|
|
115
116
|
{
|
|
116
|
-
|
|
117
|
-
var inputDigits = new
|
|
118
|
-
|
|
119
|
-
Assert.Throws<ArgumentException>(() =>
|
|
117
|
+
var inputBase = 7;
|
|
118
|
+
var inputDigits = new[] { 0, 6, 0 };
|
|
119
|
+
var outputBase = 10;
|
|
120
|
+
Assert.Throws<System.ArgumentException>(() => AllYourBase.Rebase(inputBase, inputDigits, outputBase));
|
|
120
121
|
}
|
|
121
122
|
|
|
122
123
|
[Fact(Skip = "Remove to run test")]
|
|
123
|
-
public void
|
|
124
|
+
public void First_base_is_one()
|
|
124
125
|
{
|
|
125
|
-
|
|
126
|
-
var inputDigits = new []
|
|
127
|
-
|
|
128
|
-
Assert.Throws<ArgumentException>(() =>
|
|
126
|
+
var inputBase = 1;
|
|
127
|
+
var inputDigits = new int[0];
|
|
128
|
+
var outputBase = 10;
|
|
129
|
+
Assert.Throws<System.ArgumentException>(() => AllYourBase.Rebase(inputBase, inputDigits, outputBase));
|
|
129
130
|
}
|
|
130
131
|
|
|
131
132
|
[Fact(Skip = "Remove to run test")]
|
|
132
|
-
public void
|
|
133
|
+
public void First_base_is_zero()
|
|
133
134
|
{
|
|
134
|
-
|
|
135
|
-
var inputDigits = new []
|
|
136
|
-
|
|
137
|
-
Assert.Throws<ArgumentException>(() =>
|
|
135
|
+
var inputBase = 0;
|
|
136
|
+
var inputDigits = new int[0];
|
|
137
|
+
var outputBase = 10;
|
|
138
|
+
Assert.Throws<System.ArgumentException>(() => AllYourBase.Rebase(inputBase, inputDigits, outputBase));
|
|
138
139
|
}
|
|
139
140
|
|
|
140
141
|
[Fact(Skip = "Remove to run test")]
|
|
141
|
-
public void
|
|
142
|
+
public void First_base_is_negative()
|
|
142
143
|
{
|
|
143
|
-
|
|
144
|
-
var inputDigits = new[] { 1
|
|
145
|
-
|
|
146
|
-
Assert.Throws<ArgumentException>(() =>
|
|
144
|
+
var inputBase = -2;
|
|
145
|
+
var inputDigits = new[] { 1 };
|
|
146
|
+
var outputBase = 10;
|
|
147
|
+
Assert.Throws<System.ArgumentException>(() => AllYourBase.Rebase(inputBase, inputDigits, outputBase));
|
|
147
148
|
}
|
|
148
149
|
|
|
149
150
|
[Fact(Skip = "Remove to run test")]
|
|
150
|
-
public void
|
|
151
|
+
public void Negative_digit()
|
|
151
152
|
{
|
|
152
|
-
|
|
153
|
-
var inputDigits = new
|
|
154
|
-
|
|
155
|
-
Assert.Throws<ArgumentException>(() =>
|
|
153
|
+
var inputBase = 2;
|
|
154
|
+
var inputDigits = new[] { 1, -1, 1, 0, 1, 0 };
|
|
155
|
+
var outputBase = 10;
|
|
156
|
+
Assert.Throws<System.ArgumentException>(() => AllYourBase.Rebase(inputBase, inputDigits, outputBase));
|
|
156
157
|
}
|
|
157
158
|
|
|
158
159
|
[Fact(Skip = "Remove to run test")]
|
|
159
|
-
public void
|
|
160
|
+
public void Invalid_positive_digit()
|
|
160
161
|
{
|
|
161
|
-
|
|
162
|
-
var inputDigits = new
|
|
163
|
-
|
|
164
|
-
Assert.Throws<ArgumentException>(() =>
|
|
162
|
+
var inputBase = 2;
|
|
163
|
+
var inputDigits = new[] { 1, 2, 1, 0, 1, 0 };
|
|
164
|
+
var outputBase = 10;
|
|
165
|
+
Assert.Throws<System.ArgumentException>(() => AllYourBase.Rebase(inputBase, inputDigits, outputBase));
|
|
165
166
|
}
|
|
166
167
|
|
|
167
168
|
[Fact(Skip = "Remove to run test")]
|
|
168
|
-
public void
|
|
169
|
+
public void Second_base_is_one()
|
|
169
170
|
{
|
|
170
|
-
|
|
171
|
-
var inputDigits = new
|
|
172
|
-
|
|
173
|
-
Assert.Throws<ArgumentException>(() =>
|
|
171
|
+
var inputBase = 2;
|
|
172
|
+
var inputDigits = new[] { 1, 0, 1, 0, 1, 0 };
|
|
173
|
+
var outputBase = 1;
|
|
174
|
+
Assert.Throws<System.ArgumentException>(() => AllYourBase.Rebase(inputBase, inputDigits, outputBase));
|
|
174
175
|
}
|
|
175
176
|
|
|
176
177
|
[Fact(Skip = "Remove to run test")]
|
|
177
|
-
public void
|
|
178
|
+
public void Second_base_is_zero()
|
|
178
179
|
{
|
|
179
|
-
|
|
180
|
-
var inputDigits = new
|
|
181
|
-
|
|
182
|
-
Assert.Throws<ArgumentException>(() =>
|
|
180
|
+
var inputBase = 10;
|
|
181
|
+
var inputDigits = new[] { 7 };
|
|
182
|
+
var outputBase = 0;
|
|
183
|
+
Assert.Throws<System.ArgumentException>(() => AllYourBase.Rebase(inputBase, inputDigits, outputBase));
|
|
183
184
|
}
|
|
184
185
|
|
|
185
186
|
[Fact(Skip = "Remove to run test")]
|
|
186
187
|
public void Second_base_is_negative()
|
|
187
188
|
{
|
|
188
|
-
|
|
189
|
-
var inputDigits = new
|
|
190
|
-
|
|
191
|
-
Assert.Throws<ArgumentException>(() =>
|
|
189
|
+
var inputBase = 2;
|
|
190
|
+
var inputDigits = new[] { 1 };
|
|
191
|
+
var outputBase = -7;
|
|
192
|
+
Assert.Throws<System.ArgumentException>(() => AllYourBase.Rebase(inputBase, inputDigits, outputBase));
|
|
192
193
|
}
|
|
193
194
|
|
|
194
195
|
[Fact(Skip = "Remove to run test")]
|
|
195
196
|
public void Both_bases_are_negative()
|
|
196
197
|
{
|
|
197
|
-
|
|
198
|
-
var inputDigits = new
|
|
199
|
-
|
|
200
|
-
Assert.Throws<ArgumentException>(() =>
|
|
198
|
+
var inputBase = -2;
|
|
199
|
+
var inputDigits = new[] { 1 };
|
|
200
|
+
var outputBase = -7;
|
|
201
|
+
Assert.Throws<System.ArgumentException>(() => AllYourBase.Rebase(inputBase, inputDigits, outputBase));
|
|
201
202
|
}
|
|
202
203
|
}
|
|
@@ -8,8 +8,8 @@ public class BeerSongTest
|
|
|
8
8
|
public void First_generic_verse()
|
|
9
9
|
{
|
|
10
10
|
var expected =
|
|
11
|
-
"99 bottles of beer on the wall, 99 bottles of beer.\n"+
|
|
12
|
-
"Take one down and pass it around, 98 bottles of beer on the wall.\n"+
|
|
11
|
+
"99 bottles of beer on the wall, 99 bottles of beer.\n" +
|
|
12
|
+
"Take one down and pass it around, 98 bottles of beer on the wall.\n" +
|
|
13
13
|
"";
|
|
14
14
|
Assert.Equal(expected, BeerSong.Verse(99));
|
|
15
15
|
}
|
|
@@ -18,8 +18,8 @@ public void First_generic_verse()
|
|
|
18
18
|
public void Last_generic_verse()
|
|
19
19
|
{
|
|
20
20
|
var expected =
|
|
21
|
-
"3 bottles of beer on the wall, 3 bottles of beer.\n"+
|
|
22
|
-
"Take one down and pass it around, 2 bottles of beer on the wall.\n"+
|
|
21
|
+
"3 bottles of beer on the wall, 3 bottles of beer.\n" +
|
|
22
|
+
"Take one down and pass it around, 2 bottles of beer on the wall.\n" +
|
|
23
23
|
"";
|
|
24
24
|
Assert.Equal(expected, BeerSong.Verse(3));
|
|
25
25
|
}
|
|
@@ -28,8 +28,8 @@ public void Last_generic_verse()
|
|
|
28
28
|
public void Verse_2()
|
|
29
29
|
{
|
|
30
30
|
var expected =
|
|
31
|
-
"2 bottles of beer on the wall, 2 bottles of beer.\n"+
|
|
32
|
-
"Take one down and pass it around, 1 bottle of beer on the wall.\n"+
|
|
31
|
+
"2 bottles of beer on the wall, 2 bottles of beer.\n" +
|
|
32
|
+
"Take one down and pass it around, 1 bottle of beer on the wall.\n" +
|
|
33
33
|
"";
|
|
34
34
|
Assert.Equal(expected, BeerSong.Verse(2));
|
|
35
35
|
}
|
|
@@ -38,8 +38,8 @@ public void Verse_2()
|
|
|
38
38
|
public void Verse_1()
|
|
39
39
|
{
|
|
40
40
|
var expected =
|
|
41
|
-
"1 bottle of beer on the wall, 1 bottle of beer.\n"+
|
|
42
|
-
"Take it down and pass it around, no more bottles of beer on the wall.\n"+
|
|
41
|
+
"1 bottle of beer on the wall, 1 bottle of beer.\n" +
|
|
42
|
+
"Take it down and pass it around, no more bottles of beer on the wall.\n" +
|
|
43
43
|
"";
|
|
44
44
|
Assert.Equal(expected, BeerSong.Verse(1));
|
|
45
45
|
}
|
|
@@ -48,8 +48,8 @@ public void Verse_1()
|
|
|
48
48
|
public void Verse_0()
|
|
49
49
|
{
|
|
50
50
|
var expected =
|
|
51
|
-
"No more bottles of beer on the wall, no more bottles of beer.\n"+
|
|
52
|
-
"Go to the store and buy some more, 99 bottles of beer on the wall.\n"+
|
|
51
|
+
"No more bottles of beer on the wall, no more bottles of beer.\n" +
|
|
52
|
+
"Go to the store and buy some more, 99 bottles of beer on the wall.\n" +
|
|
53
53
|
"";
|
|
54
54
|
Assert.Equal(expected, BeerSong.Verse(0));
|
|
55
55
|
}
|
|
@@ -58,11 +58,11 @@ public void Verse_0()
|
|
|
58
58
|
public void First_two_verses()
|
|
59
59
|
{
|
|
60
60
|
var expected =
|
|
61
|
-
"99 bottles of beer on the wall, 99 bottles of beer.\n"+
|
|
62
|
-
"Take one down and pass it around, 98 bottles of beer on the wall.\n"+
|
|
63
|
-
"\n"+
|
|
64
|
-
"98 bottles of beer on the wall, 98 bottles of beer.\n"+
|
|
65
|
-
"Take one down and pass it around, 97 bottles of beer on the wall.\n"+
|
|
61
|
+
"99 bottles of beer on the wall, 99 bottles of beer.\n" +
|
|
62
|
+
"Take one down and pass it around, 98 bottles of beer on the wall.\n" +
|
|
63
|
+
"\n" +
|
|
64
|
+
"98 bottles of beer on the wall, 98 bottles of beer.\n" +
|
|
65
|
+
"Take one down and pass it around, 97 bottles of beer on the wall.\n" +
|
|
66
66
|
"";
|
|
67
67
|
Assert.Equal(expected, BeerSong.Verses(99, 98));
|
|
68
68
|
}
|
|
@@ -71,14 +71,14 @@ public void First_two_verses()
|
|
|
71
71
|
public void Last_three_verses()
|
|
72
72
|
{
|
|
73
73
|
var expected =
|
|
74
|
-
"2 bottles of beer on the wall, 2 bottles of beer.\n"+
|
|
75
|
-
"Take one down and pass it around, 1 bottle of beer on the wall.\n"+
|
|
76
|
-
"\n"+
|
|
77
|
-
"1 bottle of beer on the wall, 1 bottle of beer.\n"+
|
|
78
|
-
"Take it down and pass it around, no more bottles of beer on the wall.\n"+
|
|
79
|
-
"\n"+
|
|
80
|
-
"No more bottles of beer on the wall, no more bottles of beer.\n"+
|
|
81
|
-
"Go to the store and buy some more, 99 bottles of beer on the wall.\n"+
|
|
74
|
+
"2 bottles of beer on the wall, 2 bottles of beer.\n" +
|
|
75
|
+
"Take one down and pass it around, 1 bottle of beer on the wall.\n" +
|
|
76
|
+
"\n" +
|
|
77
|
+
"1 bottle of beer on the wall, 1 bottle of beer.\n" +
|
|
78
|
+
"Take it down and pass it around, no more bottles of beer on the wall.\n" +
|
|
79
|
+
"\n" +
|
|
80
|
+
"No more bottles of beer on the wall, no more bottles of beer.\n" +
|
|
81
|
+
"Go to the store and buy some more, 99 bottles of beer on the wall.\n" +
|
|
82
82
|
"";
|
|
83
83
|
Assert.Equal(expected, BeerSong.Verses(2, 0));
|
|
84
84
|
}
|
|
@@ -87,305 +87,305 @@ public void Last_three_verses()
|
|
|
87
87
|
public void All_verses()
|
|
88
88
|
{
|
|
89
89
|
var expected =
|
|
90
|
-
"99 bottles of beer on the wall, 99 bottles of beer.\n"+
|
|
91
|
-
"Take one down and pass it around, 98 bottles of beer on the wall.\n"+
|
|
92
|
-
"\n"+
|
|
93
|
-
"98 bottles of beer on the wall, 98 bottles of beer.\n"+
|
|
94
|
-
"Take one down and pass it around, 97 bottles of beer on the wall.\n"+
|
|
95
|
-
"\n"+
|
|
96
|
-
"97 bottles of beer on the wall, 97 bottles of beer.\n"+
|
|
97
|
-
"Take one down and pass it around, 96 bottles of beer on the wall.\n"+
|
|
98
|
-
"\n"+
|
|
99
|
-
"96 bottles of beer on the wall, 96 bottles of beer.\n"+
|
|
100
|
-
"Take one down and pass it around, 95 bottles of beer on the wall.\n"+
|
|
101
|
-
"\n"+
|
|
102
|
-
"95 bottles of beer on the wall, 95 bottles of beer.\n"+
|
|
103
|
-
"Take one down and pass it around, 94 bottles of beer on the wall.\n"+
|
|
104
|
-
"\n"+
|
|
105
|
-
"94 bottles of beer on the wall, 94 bottles of beer.\n"+
|
|
106
|
-
"Take one down and pass it around, 93 bottles of beer on the wall.\n"+
|
|
107
|
-
"\n"+
|
|
108
|
-
"93 bottles of beer on the wall, 93 bottles of beer.\n"+
|
|
109
|
-
"Take one down and pass it around, 92 bottles of beer on the wall.\n"+
|
|
110
|
-
"\n"+
|
|
111
|
-
"92 bottles of beer on the wall, 92 bottles of beer.\n"+
|
|
112
|
-
"Take one down and pass it around, 91 bottles of beer on the wall.\n"+
|
|
113
|
-
"\n"+
|
|
114
|
-
"91 bottles of beer on the wall, 91 bottles of beer.\n"+
|
|
115
|
-
"Take one down and pass it around, 90 bottles of beer on the wall.\n"+
|
|
116
|
-
"\n"+
|
|
117
|
-
"90 bottles of beer on the wall, 90 bottles of beer.\n"+
|
|
118
|
-
"Take one down and pass it around, 89 bottles of beer on the wall.\n"+
|
|
119
|
-
"\n"+
|
|
120
|
-
"89 bottles of beer on the wall, 89 bottles of beer.\n"+
|
|
121
|
-
"Take one down and pass it around, 88 bottles of beer on the wall.\n"+
|
|
122
|
-
"\n"+
|
|
123
|
-
"88 bottles of beer on the wall, 88 bottles of beer.\n"+
|
|
124
|
-
"Take one down and pass it around, 87 bottles of beer on the wall.\n"+
|
|
125
|
-
"\n"+
|
|
126
|
-
"87 bottles of beer on the wall, 87 bottles of beer.\n"+
|
|
127
|
-
"Take one down and pass it around, 86 bottles of beer on the wall.\n"+
|
|
128
|
-
"\n"+
|
|
129
|
-
"86 bottles of beer on the wall, 86 bottles of beer.\n"+
|
|
130
|
-
"Take one down and pass it around, 85 bottles of beer on the wall.\n"+
|
|
131
|
-
"\n"+
|
|
132
|
-
"85 bottles of beer on the wall, 85 bottles of beer.\n"+
|
|
133
|
-
"Take one down and pass it around, 84 bottles of beer on the wall.\n"+
|
|
134
|
-
"\n"+
|
|
135
|
-
"84 bottles of beer on the wall, 84 bottles of beer.\n"+
|
|
136
|
-
"Take one down and pass it around, 83 bottles of beer on the wall.\n"+
|
|
137
|
-
"\n"+
|
|
138
|
-
"83 bottles of beer on the wall, 83 bottles of beer.\n"+
|
|
139
|
-
"Take one down and pass it around, 82 bottles of beer on the wall.\n"+
|
|
140
|
-
"\n"+
|
|
141
|
-
"82 bottles of beer on the wall, 82 bottles of beer.\n"+
|
|
142
|
-
"Take one down and pass it around, 81 bottles of beer on the wall.\n"+
|
|
143
|
-
"\n"+
|
|
144
|
-
"81 bottles of beer on the wall, 81 bottles of beer.\n"+
|
|
145
|
-
"Take one down and pass it around, 80 bottles of beer on the wall.\n"+
|
|
146
|
-
"\n"+
|
|
147
|
-
"80 bottles of beer on the wall, 80 bottles of beer.\n"+
|
|
148
|
-
"Take one down and pass it around, 79 bottles of beer on the wall.\n"+
|
|
149
|
-
"\n"+
|
|
150
|
-
"79 bottles of beer on the wall, 79 bottles of beer.\n"+
|
|
151
|
-
"Take one down and pass it around, 78 bottles of beer on the wall.\n"+
|
|
152
|
-
"\n"+
|
|
153
|
-
"78 bottles of beer on the wall, 78 bottles of beer.\n"+
|
|
154
|
-
"Take one down and pass it around, 77 bottles of beer on the wall.\n"+
|
|
155
|
-
"\n"+
|
|
156
|
-
"77 bottles of beer on the wall, 77 bottles of beer.\n"+
|
|
157
|
-
"Take one down and pass it around, 76 bottles of beer on the wall.\n"+
|
|
158
|
-
"\n"+
|
|
159
|
-
"76 bottles of beer on the wall, 76 bottles of beer.\n"+
|
|
160
|
-
"Take one down and pass it around, 75 bottles of beer on the wall.\n"+
|
|
161
|
-
"\n"+
|
|
162
|
-
"75 bottles of beer on the wall, 75 bottles of beer.\n"+
|
|
163
|
-
"Take one down and pass it around, 74 bottles of beer on the wall.\n"+
|
|
164
|
-
"\n"+
|
|
165
|
-
"74 bottles of beer on the wall, 74 bottles of beer.\n"+
|
|
166
|
-
"Take one down and pass it around, 73 bottles of beer on the wall.\n"+
|
|
167
|
-
"\n"+
|
|
168
|
-
"73 bottles of beer on the wall, 73 bottles of beer.\n"+
|
|
169
|
-
"Take one down and pass it around, 72 bottles of beer on the wall.\n"+
|
|
170
|
-
"\n"+
|
|
171
|
-
"72 bottles of beer on the wall, 72 bottles of beer.\n"+
|
|
172
|
-
"Take one down and pass it around, 71 bottles of beer on the wall.\n"+
|
|
173
|
-
"\n"+
|
|
174
|
-
"71 bottles of beer on the wall, 71 bottles of beer.\n"+
|
|
175
|
-
"Take one down and pass it around, 70 bottles of beer on the wall.\n"+
|
|
176
|
-
"\n"+
|
|
177
|
-
"70 bottles of beer on the wall, 70 bottles of beer.\n"+
|
|
178
|
-
"Take one down and pass it around, 69 bottles of beer on the wall.\n"+
|
|
179
|
-
"\n"+
|
|
180
|
-
"69 bottles of beer on the wall, 69 bottles of beer.\n"+
|
|
181
|
-
"Take one down and pass it around, 68 bottles of beer on the wall.\n"+
|
|
182
|
-
"\n"+
|
|
183
|
-
"68 bottles of beer on the wall, 68 bottles of beer.\n"+
|
|
184
|
-
"Take one down and pass it around, 67 bottles of beer on the wall.\n"+
|
|
185
|
-
"\n"+
|
|
186
|
-
"67 bottles of beer on the wall, 67 bottles of beer.\n"+
|
|
187
|
-
"Take one down and pass it around, 66 bottles of beer on the wall.\n"+
|
|
188
|
-
"\n"+
|
|
189
|
-
"66 bottles of beer on the wall, 66 bottles of beer.\n"+
|
|
190
|
-
"Take one down and pass it around, 65 bottles of beer on the wall.\n"+
|
|
191
|
-
"\n"+
|
|
192
|
-
"65 bottles of beer on the wall, 65 bottles of beer.\n"+
|
|
193
|
-
"Take one down and pass it around, 64 bottles of beer on the wall.\n"+
|
|
194
|
-
"\n"+
|
|
195
|
-
"64 bottles of beer on the wall, 64 bottles of beer.\n"+
|
|
196
|
-
"Take one down and pass it around, 63 bottles of beer on the wall.\n"+
|
|
197
|
-
"\n"+
|
|
198
|
-
"63 bottles of beer on the wall, 63 bottles of beer.\n"+
|
|
199
|
-
"Take one down and pass it around, 62 bottles of beer on the wall.\n"+
|
|
200
|
-
"\n"+
|
|
201
|
-
"62 bottles of beer on the wall, 62 bottles of beer.\n"+
|
|
202
|
-
"Take one down and pass it around, 61 bottles of beer on the wall.\n"+
|
|
203
|
-
"\n"+
|
|
204
|
-
"61 bottles of beer on the wall, 61 bottles of beer.\n"+
|
|
205
|
-
"Take one down and pass it around, 60 bottles of beer on the wall.\n"+
|
|
206
|
-
"\n"+
|
|
207
|
-
"60 bottles of beer on the wall, 60 bottles of beer.\n"+
|
|
208
|
-
"Take one down and pass it around, 59 bottles of beer on the wall.\n"+
|
|
209
|
-
"\n"+
|
|
210
|
-
"59 bottles of beer on the wall, 59 bottles of beer.\n"+
|
|
211
|
-
"Take one down and pass it around, 58 bottles of beer on the wall.\n"+
|
|
212
|
-
"\n"+
|
|
213
|
-
"58 bottles of beer on the wall, 58 bottles of beer.\n"+
|
|
214
|
-
"Take one down and pass it around, 57 bottles of beer on the wall.\n"+
|
|
215
|
-
"\n"+
|
|
216
|
-
"57 bottles of beer on the wall, 57 bottles of beer.\n"+
|
|
217
|
-
"Take one down and pass it around, 56 bottles of beer on the wall.\n"+
|
|
218
|
-
"\n"+
|
|
219
|
-
"56 bottles of beer on the wall, 56 bottles of beer.\n"+
|
|
220
|
-
"Take one down and pass it around, 55 bottles of beer on the wall.\n"+
|
|
221
|
-
"\n"+
|
|
222
|
-
"55 bottles of beer on the wall, 55 bottles of beer.\n"+
|
|
223
|
-
"Take one down and pass it around, 54 bottles of beer on the wall.\n"+
|
|
224
|
-
"\n"+
|
|
225
|
-
"54 bottles of beer on the wall, 54 bottles of beer.\n"+
|
|
226
|
-
"Take one down and pass it around, 53 bottles of beer on the wall.\n"+
|
|
227
|
-
"\n"+
|
|
228
|
-
"53 bottles of beer on the wall, 53 bottles of beer.\n"+
|
|
229
|
-
"Take one down and pass it around, 52 bottles of beer on the wall.\n"+
|
|
230
|
-
"\n"+
|
|
231
|
-
"52 bottles of beer on the wall, 52 bottles of beer.\n"+
|
|
232
|
-
"Take one down and pass it around, 51 bottles of beer on the wall.\n"+
|
|
233
|
-
"\n"+
|
|
234
|
-
"51 bottles of beer on the wall, 51 bottles of beer.\n"+
|
|
235
|
-
"Take one down and pass it around, 50 bottles of beer on the wall.\n"+
|
|
236
|
-
"\n"+
|
|
237
|
-
"50 bottles of beer on the wall, 50 bottles of beer.\n"+
|
|
238
|
-
"Take one down and pass it around, 49 bottles of beer on the wall.\n"+
|
|
239
|
-
"\n"+
|
|
240
|
-
"49 bottles of beer on the wall, 49 bottles of beer.\n"+
|
|
241
|
-
"Take one down and pass it around, 48 bottles of beer on the wall.\n"+
|
|
242
|
-
"\n"+
|
|
243
|
-
"48 bottles of beer on the wall, 48 bottles of beer.\n"+
|
|
244
|
-
"Take one down and pass it around, 47 bottles of beer on the wall.\n"+
|
|
245
|
-
"\n"+
|
|
246
|
-
"47 bottles of beer on the wall, 47 bottles of beer.\n"+
|
|
247
|
-
"Take one down and pass it around, 46 bottles of beer on the wall.\n"+
|
|
248
|
-
"\n"+
|
|
249
|
-
"46 bottles of beer on the wall, 46 bottles of beer.\n"+
|
|
250
|
-
"Take one down and pass it around, 45 bottles of beer on the wall.\n"+
|
|
251
|
-
"\n"+
|
|
252
|
-
"45 bottles of beer on the wall, 45 bottles of beer.\n"+
|
|
253
|
-
"Take one down and pass it around, 44 bottles of beer on the wall.\n"+
|
|
254
|
-
"\n"+
|
|
255
|
-
"44 bottles of beer on the wall, 44 bottles of beer.\n"+
|
|
256
|
-
"Take one down and pass it around, 43 bottles of beer on the wall.\n"+
|
|
257
|
-
"\n"+
|
|
258
|
-
"43 bottles of beer on the wall, 43 bottles of beer.\n"+
|
|
259
|
-
"Take one down and pass it around, 42 bottles of beer on the wall.\n"+
|
|
260
|
-
"\n"+
|
|
261
|
-
"42 bottles of beer on the wall, 42 bottles of beer.\n"+
|
|
262
|
-
"Take one down and pass it around, 41 bottles of beer on the wall.\n"+
|
|
263
|
-
"\n"+
|
|
264
|
-
"41 bottles of beer on the wall, 41 bottles of beer.\n"+
|
|
265
|
-
"Take one down and pass it around, 40 bottles of beer on the wall.\n"+
|
|
266
|
-
"\n"+
|
|
267
|
-
"40 bottles of beer on the wall, 40 bottles of beer.\n"+
|
|
268
|
-
"Take one down and pass it around, 39 bottles of beer on the wall.\n"+
|
|
269
|
-
"\n"+
|
|
270
|
-
"39 bottles of beer on the wall, 39 bottles of beer.\n"+
|
|
271
|
-
"Take one down and pass it around, 38 bottles of beer on the wall.\n"+
|
|
272
|
-
"\n"+
|
|
273
|
-
"38 bottles of beer on the wall, 38 bottles of beer.\n"+
|
|
274
|
-
"Take one down and pass it around, 37 bottles of beer on the wall.\n"+
|
|
275
|
-
"\n"+
|
|
276
|
-
"37 bottles of beer on the wall, 37 bottles of beer.\n"+
|
|
277
|
-
"Take one down and pass it around, 36 bottles of beer on the wall.\n"+
|
|
278
|
-
"\n"+
|
|
279
|
-
"36 bottles of beer on the wall, 36 bottles of beer.\n"+
|
|
280
|
-
"Take one down and pass it around, 35 bottles of beer on the wall.\n"+
|
|
281
|
-
"\n"+
|
|
282
|
-
"35 bottles of beer on the wall, 35 bottles of beer.\n"+
|
|
283
|
-
"Take one down and pass it around, 34 bottles of beer on the wall.\n"+
|
|
284
|
-
"\n"+
|
|
285
|
-
"34 bottles of beer on the wall, 34 bottles of beer.\n"+
|
|
286
|
-
"Take one down and pass it around, 33 bottles of beer on the wall.\n"+
|
|
287
|
-
"\n"+
|
|
288
|
-
"33 bottles of beer on the wall, 33 bottles of beer.\n"+
|
|
289
|
-
"Take one down and pass it around, 32 bottles of beer on the wall.\n"+
|
|
290
|
-
"\n"+
|
|
291
|
-
"32 bottles of beer on the wall, 32 bottles of beer.\n"+
|
|
292
|
-
"Take one down and pass it around, 31 bottles of beer on the wall.\n"+
|
|
293
|
-
"\n"+
|
|
294
|
-
"31 bottles of beer on the wall, 31 bottles of beer.\n"+
|
|
295
|
-
"Take one down and pass it around, 30 bottles of beer on the wall.\n"+
|
|
296
|
-
"\n"+
|
|
297
|
-
"30 bottles of beer on the wall, 30 bottles of beer.\n"+
|
|
298
|
-
"Take one down and pass it around, 29 bottles of beer on the wall.\n"+
|
|
299
|
-
"\n"+
|
|
300
|
-
"29 bottles of beer on the wall, 29 bottles of beer.\n"+
|
|
301
|
-
"Take one down and pass it around, 28 bottles of beer on the wall.\n"+
|
|
302
|
-
"\n"+
|
|
303
|
-
"28 bottles of beer on the wall, 28 bottles of beer.\n"+
|
|
304
|
-
"Take one down and pass it around, 27 bottles of beer on the wall.\n"+
|
|
305
|
-
"\n"+
|
|
306
|
-
"27 bottles of beer on the wall, 27 bottles of beer.\n"+
|
|
307
|
-
"Take one down and pass it around, 26 bottles of beer on the wall.\n"+
|
|
308
|
-
"\n"+
|
|
309
|
-
"26 bottles of beer on the wall, 26 bottles of beer.\n"+
|
|
310
|
-
"Take one down and pass it around, 25 bottles of beer on the wall.\n"+
|
|
311
|
-
"\n"+
|
|
312
|
-
"25 bottles of beer on the wall, 25 bottles of beer.\n"+
|
|
313
|
-
"Take one down and pass it around, 24 bottles of beer on the wall.\n"+
|
|
314
|
-
"\n"+
|
|
315
|
-
"24 bottles of beer on the wall, 24 bottles of beer.\n"+
|
|
316
|
-
"Take one down and pass it around, 23 bottles of beer on the wall.\n"+
|
|
317
|
-
"\n"+
|
|
318
|
-
"23 bottles of beer on the wall, 23 bottles of beer.\n"+
|
|
319
|
-
"Take one down and pass it around, 22 bottles of beer on the wall.\n"+
|
|
320
|
-
"\n"+
|
|
321
|
-
"22 bottles of beer on the wall, 22 bottles of beer.\n"+
|
|
322
|
-
"Take one down and pass it around, 21 bottles of beer on the wall.\n"+
|
|
323
|
-
"\n"+
|
|
324
|
-
"21 bottles of beer on the wall, 21 bottles of beer.\n"+
|
|
325
|
-
"Take one down and pass it around, 20 bottles of beer on the wall.\n"+
|
|
326
|
-
"\n"+
|
|
327
|
-
"20 bottles of beer on the wall, 20 bottles of beer.\n"+
|
|
328
|
-
"Take one down and pass it around, 19 bottles of beer on the wall.\n"+
|
|
329
|
-
"\n"+
|
|
330
|
-
"19 bottles of beer on the wall, 19 bottles of beer.\n"+
|
|
331
|
-
"Take one down and pass it around, 18 bottles of beer on the wall.\n"+
|
|
332
|
-
"\n"+
|
|
333
|
-
"18 bottles of beer on the wall, 18 bottles of beer.\n"+
|
|
334
|
-
"Take one down and pass it around, 17 bottles of beer on the wall.\n"+
|
|
335
|
-
"\n"+
|
|
336
|
-
"17 bottles of beer on the wall, 17 bottles of beer.\n"+
|
|
337
|
-
"Take one down and pass it around, 16 bottles of beer on the wall.\n"+
|
|
338
|
-
"\n"+
|
|
339
|
-
"16 bottles of beer on the wall, 16 bottles of beer.\n"+
|
|
340
|
-
"Take one down and pass it around, 15 bottles of beer on the wall.\n"+
|
|
341
|
-
"\n"+
|
|
342
|
-
"15 bottles of beer on the wall, 15 bottles of beer.\n"+
|
|
343
|
-
"Take one down and pass it around, 14 bottles of beer on the wall.\n"+
|
|
344
|
-
"\n"+
|
|
345
|
-
"14 bottles of beer on the wall, 14 bottles of beer.\n"+
|
|
346
|
-
"Take one down and pass it around, 13 bottles of beer on the wall.\n"+
|
|
347
|
-
"\n"+
|
|
348
|
-
"13 bottles of beer on the wall, 13 bottles of beer.\n"+
|
|
349
|
-
"Take one down and pass it around, 12 bottles of beer on the wall.\n"+
|
|
350
|
-
"\n"+
|
|
351
|
-
"12 bottles of beer on the wall, 12 bottles of beer.\n"+
|
|
352
|
-
"Take one down and pass it around, 11 bottles of beer on the wall.\n"+
|
|
353
|
-
"\n"+
|
|
354
|
-
"11 bottles of beer on the wall, 11 bottles of beer.\n"+
|
|
355
|
-
"Take one down and pass it around, 10 bottles of beer on the wall.\n"+
|
|
356
|
-
"\n"+
|
|
357
|
-
"10 bottles of beer on the wall, 10 bottles of beer.\n"+
|
|
358
|
-
"Take one down and pass it around, 9 bottles of beer on the wall.\n"+
|
|
359
|
-
"\n"+
|
|
360
|
-
"9 bottles of beer on the wall, 9 bottles of beer.\n"+
|
|
361
|
-
"Take one down and pass it around, 8 bottles of beer on the wall.\n"+
|
|
362
|
-
"\n"+
|
|
363
|
-
"8 bottles of beer on the wall, 8 bottles of beer.\n"+
|
|
364
|
-
"Take one down and pass it around, 7 bottles of beer on the wall.\n"+
|
|
365
|
-
"\n"+
|
|
366
|
-
"7 bottles of beer on the wall, 7 bottles of beer.\n"+
|
|
367
|
-
"Take one down and pass it around, 6 bottles of beer on the wall.\n"+
|
|
368
|
-
"\n"+
|
|
369
|
-
"6 bottles of beer on the wall, 6 bottles of beer.\n"+
|
|
370
|
-
"Take one down and pass it around, 5 bottles of beer on the wall.\n"+
|
|
371
|
-
"\n"+
|
|
372
|
-
"5 bottles of beer on the wall, 5 bottles of beer.\n"+
|
|
373
|
-
"Take one down and pass it around, 4 bottles of beer on the wall.\n"+
|
|
374
|
-
"\n"+
|
|
375
|
-
"4 bottles of beer on the wall, 4 bottles of beer.\n"+
|
|
376
|
-
"Take one down and pass it around, 3 bottles of beer on the wall.\n"+
|
|
377
|
-
"\n"+
|
|
378
|
-
"3 bottles of beer on the wall, 3 bottles of beer.\n"+
|
|
379
|
-
"Take one down and pass it around, 2 bottles of beer on the wall.\n"+
|
|
380
|
-
"\n"+
|
|
381
|
-
"2 bottles of beer on the wall, 2 bottles of beer.\n"+
|
|
382
|
-
"Take one down and pass it around, 1 bottle of beer on the wall.\n"+
|
|
383
|
-
"\n"+
|
|
384
|
-
"1 bottle of beer on the wall, 1 bottle of beer.\n"+
|
|
385
|
-
"Take it down and pass it around, no more bottles of beer on the wall.\n"+
|
|
386
|
-
"\n"+
|
|
387
|
-
"No more bottles of beer on the wall, no more bottles of beer.\n"+
|
|
388
|
-
"Go to the store and buy some more, 99 bottles of beer on the wall.\n"+
|
|
90
|
+
"99 bottles of beer on the wall, 99 bottles of beer.\n" +
|
|
91
|
+
"Take one down and pass it around, 98 bottles of beer on the wall.\n" +
|
|
92
|
+
"\n" +
|
|
93
|
+
"98 bottles of beer on the wall, 98 bottles of beer.\n" +
|
|
94
|
+
"Take one down and pass it around, 97 bottles of beer on the wall.\n" +
|
|
95
|
+
"\n" +
|
|
96
|
+
"97 bottles of beer on the wall, 97 bottles of beer.\n" +
|
|
97
|
+
"Take one down and pass it around, 96 bottles of beer on the wall.\n" +
|
|
98
|
+
"\n" +
|
|
99
|
+
"96 bottles of beer on the wall, 96 bottles of beer.\n" +
|
|
100
|
+
"Take one down and pass it around, 95 bottles of beer on the wall.\n" +
|
|
101
|
+
"\n" +
|
|
102
|
+
"95 bottles of beer on the wall, 95 bottles of beer.\n" +
|
|
103
|
+
"Take one down and pass it around, 94 bottles of beer on the wall.\n" +
|
|
104
|
+
"\n" +
|
|
105
|
+
"94 bottles of beer on the wall, 94 bottles of beer.\n" +
|
|
106
|
+
"Take one down and pass it around, 93 bottles of beer on the wall.\n" +
|
|
107
|
+
"\n" +
|
|
108
|
+
"93 bottles of beer on the wall, 93 bottles of beer.\n" +
|
|
109
|
+
"Take one down and pass it around, 92 bottles of beer on the wall.\n" +
|
|
110
|
+
"\n" +
|
|
111
|
+
"92 bottles of beer on the wall, 92 bottles of beer.\n" +
|
|
112
|
+
"Take one down and pass it around, 91 bottles of beer on the wall.\n" +
|
|
113
|
+
"\n" +
|
|
114
|
+
"91 bottles of beer on the wall, 91 bottles of beer.\n" +
|
|
115
|
+
"Take one down and pass it around, 90 bottles of beer on the wall.\n" +
|
|
116
|
+
"\n" +
|
|
117
|
+
"90 bottles of beer on the wall, 90 bottles of beer.\n" +
|
|
118
|
+
"Take one down and pass it around, 89 bottles of beer on the wall.\n" +
|
|
119
|
+
"\n" +
|
|
120
|
+
"89 bottles of beer on the wall, 89 bottles of beer.\n" +
|
|
121
|
+
"Take one down and pass it around, 88 bottles of beer on the wall.\n" +
|
|
122
|
+
"\n" +
|
|
123
|
+
"88 bottles of beer on the wall, 88 bottles of beer.\n" +
|
|
124
|
+
"Take one down and pass it around, 87 bottles of beer on the wall.\n" +
|
|
125
|
+
"\n" +
|
|
126
|
+
"87 bottles of beer on the wall, 87 bottles of beer.\n" +
|
|
127
|
+
"Take one down and pass it around, 86 bottles of beer on the wall.\n" +
|
|
128
|
+
"\n" +
|
|
129
|
+
"86 bottles of beer on the wall, 86 bottles of beer.\n" +
|
|
130
|
+
"Take one down and pass it around, 85 bottles of beer on the wall.\n" +
|
|
131
|
+
"\n" +
|
|
132
|
+
"85 bottles of beer on the wall, 85 bottles of beer.\n" +
|
|
133
|
+
"Take one down and pass it around, 84 bottles of beer on the wall.\n" +
|
|
134
|
+
"\n" +
|
|
135
|
+
"84 bottles of beer on the wall, 84 bottles of beer.\n" +
|
|
136
|
+
"Take one down and pass it around, 83 bottles of beer on the wall.\n" +
|
|
137
|
+
"\n" +
|
|
138
|
+
"83 bottles of beer on the wall, 83 bottles of beer.\n" +
|
|
139
|
+
"Take one down and pass it around, 82 bottles of beer on the wall.\n" +
|
|
140
|
+
"\n" +
|
|
141
|
+
"82 bottles of beer on the wall, 82 bottles of beer.\n" +
|
|
142
|
+
"Take one down and pass it around, 81 bottles of beer on the wall.\n" +
|
|
143
|
+
"\n" +
|
|
144
|
+
"81 bottles of beer on the wall, 81 bottles of beer.\n" +
|
|
145
|
+
"Take one down and pass it around, 80 bottles of beer on the wall.\n" +
|
|
146
|
+
"\n" +
|
|
147
|
+
"80 bottles of beer on the wall, 80 bottles of beer.\n" +
|
|
148
|
+
"Take one down and pass it around, 79 bottles of beer on the wall.\n" +
|
|
149
|
+
"\n" +
|
|
150
|
+
"79 bottles of beer on the wall, 79 bottles of beer.\n" +
|
|
151
|
+
"Take one down and pass it around, 78 bottles of beer on the wall.\n" +
|
|
152
|
+
"\n" +
|
|
153
|
+
"78 bottles of beer on the wall, 78 bottles of beer.\n" +
|
|
154
|
+
"Take one down and pass it around, 77 bottles of beer on the wall.\n" +
|
|
155
|
+
"\n" +
|
|
156
|
+
"77 bottles of beer on the wall, 77 bottles of beer.\n" +
|
|
157
|
+
"Take one down and pass it around, 76 bottles of beer on the wall.\n" +
|
|
158
|
+
"\n" +
|
|
159
|
+
"76 bottles of beer on the wall, 76 bottles of beer.\n" +
|
|
160
|
+
"Take one down and pass it around, 75 bottles of beer on the wall.\n" +
|
|
161
|
+
"\n" +
|
|
162
|
+
"75 bottles of beer on the wall, 75 bottles of beer.\n" +
|
|
163
|
+
"Take one down and pass it around, 74 bottles of beer on the wall.\n" +
|
|
164
|
+
"\n" +
|
|
165
|
+
"74 bottles of beer on the wall, 74 bottles of beer.\n" +
|
|
166
|
+
"Take one down and pass it around, 73 bottles of beer on the wall.\n" +
|
|
167
|
+
"\n" +
|
|
168
|
+
"73 bottles of beer on the wall, 73 bottles of beer.\n" +
|
|
169
|
+
"Take one down and pass it around, 72 bottles of beer on the wall.\n" +
|
|
170
|
+
"\n" +
|
|
171
|
+
"72 bottles of beer on the wall, 72 bottles of beer.\n" +
|
|
172
|
+
"Take one down and pass it around, 71 bottles of beer on the wall.\n" +
|
|
173
|
+
"\n" +
|
|
174
|
+
"71 bottles of beer on the wall, 71 bottles of beer.\n" +
|
|
175
|
+
"Take one down and pass it around, 70 bottles of beer on the wall.\n" +
|
|
176
|
+
"\n" +
|
|
177
|
+
"70 bottles of beer on the wall, 70 bottles of beer.\n" +
|
|
178
|
+
"Take one down and pass it around, 69 bottles of beer on the wall.\n" +
|
|
179
|
+
"\n" +
|
|
180
|
+
"69 bottles of beer on the wall, 69 bottles of beer.\n" +
|
|
181
|
+
"Take one down and pass it around, 68 bottles of beer on the wall.\n" +
|
|
182
|
+
"\n" +
|
|
183
|
+
"68 bottles of beer on the wall, 68 bottles of beer.\n" +
|
|
184
|
+
"Take one down and pass it around, 67 bottles of beer on the wall.\n" +
|
|
185
|
+
"\n" +
|
|
186
|
+
"67 bottles of beer on the wall, 67 bottles of beer.\n" +
|
|
187
|
+
"Take one down and pass it around, 66 bottles of beer on the wall.\n" +
|
|
188
|
+
"\n" +
|
|
189
|
+
"66 bottles of beer on the wall, 66 bottles of beer.\n" +
|
|
190
|
+
"Take one down and pass it around, 65 bottles of beer on the wall.\n" +
|
|
191
|
+
"\n" +
|
|
192
|
+
"65 bottles of beer on the wall, 65 bottles of beer.\n" +
|
|
193
|
+
"Take one down and pass it around, 64 bottles of beer on the wall.\n" +
|
|
194
|
+
"\n" +
|
|
195
|
+
"64 bottles of beer on the wall, 64 bottles of beer.\n" +
|
|
196
|
+
"Take one down and pass it around, 63 bottles of beer on the wall.\n" +
|
|
197
|
+
"\n" +
|
|
198
|
+
"63 bottles of beer on the wall, 63 bottles of beer.\n" +
|
|
199
|
+
"Take one down and pass it around, 62 bottles of beer on the wall.\n" +
|
|
200
|
+
"\n" +
|
|
201
|
+
"62 bottles of beer on the wall, 62 bottles of beer.\n" +
|
|
202
|
+
"Take one down and pass it around, 61 bottles of beer on the wall.\n" +
|
|
203
|
+
"\n" +
|
|
204
|
+
"61 bottles of beer on the wall, 61 bottles of beer.\n" +
|
|
205
|
+
"Take one down and pass it around, 60 bottles of beer on the wall.\n" +
|
|
206
|
+
"\n" +
|
|
207
|
+
"60 bottles of beer on the wall, 60 bottles of beer.\n" +
|
|
208
|
+
"Take one down and pass it around, 59 bottles of beer on the wall.\n" +
|
|
209
|
+
"\n" +
|
|
210
|
+
"59 bottles of beer on the wall, 59 bottles of beer.\n" +
|
|
211
|
+
"Take one down and pass it around, 58 bottles of beer on the wall.\n" +
|
|
212
|
+
"\n" +
|
|
213
|
+
"58 bottles of beer on the wall, 58 bottles of beer.\n" +
|
|
214
|
+
"Take one down and pass it around, 57 bottles of beer on the wall.\n" +
|
|
215
|
+
"\n" +
|
|
216
|
+
"57 bottles of beer on the wall, 57 bottles of beer.\n" +
|
|
217
|
+
"Take one down and pass it around, 56 bottles of beer on the wall.\n" +
|
|
218
|
+
"\n" +
|
|
219
|
+
"56 bottles of beer on the wall, 56 bottles of beer.\n" +
|
|
220
|
+
"Take one down and pass it around, 55 bottles of beer on the wall.\n" +
|
|
221
|
+
"\n" +
|
|
222
|
+
"55 bottles of beer on the wall, 55 bottles of beer.\n" +
|
|
223
|
+
"Take one down and pass it around, 54 bottles of beer on the wall.\n" +
|
|
224
|
+
"\n" +
|
|
225
|
+
"54 bottles of beer on the wall, 54 bottles of beer.\n" +
|
|
226
|
+
"Take one down and pass it around, 53 bottles of beer on the wall.\n" +
|
|
227
|
+
"\n" +
|
|
228
|
+
"53 bottles of beer on the wall, 53 bottles of beer.\n" +
|
|
229
|
+
"Take one down and pass it around, 52 bottles of beer on the wall.\n" +
|
|
230
|
+
"\n" +
|
|
231
|
+
"52 bottles of beer on the wall, 52 bottles of beer.\n" +
|
|
232
|
+
"Take one down and pass it around, 51 bottles of beer on the wall.\n" +
|
|
233
|
+
"\n" +
|
|
234
|
+
"51 bottles of beer on the wall, 51 bottles of beer.\n" +
|
|
235
|
+
"Take one down and pass it around, 50 bottles of beer on the wall.\n" +
|
|
236
|
+
"\n" +
|
|
237
|
+
"50 bottles of beer on the wall, 50 bottles of beer.\n" +
|
|
238
|
+
"Take one down and pass it around, 49 bottles of beer on the wall.\n" +
|
|
239
|
+
"\n" +
|
|
240
|
+
"49 bottles of beer on the wall, 49 bottles of beer.\n" +
|
|
241
|
+
"Take one down and pass it around, 48 bottles of beer on the wall.\n" +
|
|
242
|
+
"\n" +
|
|
243
|
+
"48 bottles of beer on the wall, 48 bottles of beer.\n" +
|
|
244
|
+
"Take one down and pass it around, 47 bottles of beer on the wall.\n" +
|
|
245
|
+
"\n" +
|
|
246
|
+
"47 bottles of beer on the wall, 47 bottles of beer.\n" +
|
|
247
|
+
"Take one down and pass it around, 46 bottles of beer on the wall.\n" +
|
|
248
|
+
"\n" +
|
|
249
|
+
"46 bottles of beer on the wall, 46 bottles of beer.\n" +
|
|
250
|
+
"Take one down and pass it around, 45 bottles of beer on the wall.\n" +
|
|
251
|
+
"\n" +
|
|
252
|
+
"45 bottles of beer on the wall, 45 bottles of beer.\n" +
|
|
253
|
+
"Take one down and pass it around, 44 bottles of beer on the wall.\n" +
|
|
254
|
+
"\n" +
|
|
255
|
+
"44 bottles of beer on the wall, 44 bottles of beer.\n" +
|
|
256
|
+
"Take one down and pass it around, 43 bottles of beer on the wall.\n" +
|
|
257
|
+
"\n" +
|
|
258
|
+
"43 bottles of beer on the wall, 43 bottles of beer.\n" +
|
|
259
|
+
"Take one down and pass it around, 42 bottles of beer on the wall.\n" +
|
|
260
|
+
"\n" +
|
|
261
|
+
"42 bottles of beer on the wall, 42 bottles of beer.\n" +
|
|
262
|
+
"Take one down and pass it around, 41 bottles of beer on the wall.\n" +
|
|
263
|
+
"\n" +
|
|
264
|
+
"41 bottles of beer on the wall, 41 bottles of beer.\n" +
|
|
265
|
+
"Take one down and pass it around, 40 bottles of beer on the wall.\n" +
|
|
266
|
+
"\n" +
|
|
267
|
+
"40 bottles of beer on the wall, 40 bottles of beer.\n" +
|
|
268
|
+
"Take one down and pass it around, 39 bottles of beer on the wall.\n" +
|
|
269
|
+
"\n" +
|
|
270
|
+
"39 bottles of beer on the wall, 39 bottles of beer.\n" +
|
|
271
|
+
"Take one down and pass it around, 38 bottles of beer on the wall.\n" +
|
|
272
|
+
"\n" +
|
|
273
|
+
"38 bottles of beer on the wall, 38 bottles of beer.\n" +
|
|
274
|
+
"Take one down and pass it around, 37 bottles of beer on the wall.\n" +
|
|
275
|
+
"\n" +
|
|
276
|
+
"37 bottles of beer on the wall, 37 bottles of beer.\n" +
|
|
277
|
+
"Take one down and pass it around, 36 bottles of beer on the wall.\n" +
|
|
278
|
+
"\n" +
|
|
279
|
+
"36 bottles of beer on the wall, 36 bottles of beer.\n" +
|
|
280
|
+
"Take one down and pass it around, 35 bottles of beer on the wall.\n" +
|
|
281
|
+
"\n" +
|
|
282
|
+
"35 bottles of beer on the wall, 35 bottles of beer.\n" +
|
|
283
|
+
"Take one down and pass it around, 34 bottles of beer on the wall.\n" +
|
|
284
|
+
"\n" +
|
|
285
|
+
"34 bottles of beer on the wall, 34 bottles of beer.\n" +
|
|
286
|
+
"Take one down and pass it around, 33 bottles of beer on the wall.\n" +
|
|
287
|
+
"\n" +
|
|
288
|
+
"33 bottles of beer on the wall, 33 bottles of beer.\n" +
|
|
289
|
+
"Take one down and pass it around, 32 bottles of beer on the wall.\n" +
|
|
290
|
+
"\n" +
|
|
291
|
+
"32 bottles of beer on the wall, 32 bottles of beer.\n" +
|
|
292
|
+
"Take one down and pass it around, 31 bottles of beer on the wall.\n" +
|
|
293
|
+
"\n" +
|
|
294
|
+
"31 bottles of beer on the wall, 31 bottles of beer.\n" +
|
|
295
|
+
"Take one down and pass it around, 30 bottles of beer on the wall.\n" +
|
|
296
|
+
"\n" +
|
|
297
|
+
"30 bottles of beer on the wall, 30 bottles of beer.\n" +
|
|
298
|
+
"Take one down and pass it around, 29 bottles of beer on the wall.\n" +
|
|
299
|
+
"\n" +
|
|
300
|
+
"29 bottles of beer on the wall, 29 bottles of beer.\n" +
|
|
301
|
+
"Take one down and pass it around, 28 bottles of beer on the wall.\n" +
|
|
302
|
+
"\n" +
|
|
303
|
+
"28 bottles of beer on the wall, 28 bottles of beer.\n" +
|
|
304
|
+
"Take one down and pass it around, 27 bottles of beer on the wall.\n" +
|
|
305
|
+
"\n" +
|
|
306
|
+
"27 bottles of beer on the wall, 27 bottles of beer.\n" +
|
|
307
|
+
"Take one down and pass it around, 26 bottles of beer on the wall.\n" +
|
|
308
|
+
"\n" +
|
|
309
|
+
"26 bottles of beer on the wall, 26 bottles of beer.\n" +
|
|
310
|
+
"Take one down and pass it around, 25 bottles of beer on the wall.\n" +
|
|
311
|
+
"\n" +
|
|
312
|
+
"25 bottles of beer on the wall, 25 bottles of beer.\n" +
|
|
313
|
+
"Take one down and pass it around, 24 bottles of beer on the wall.\n" +
|
|
314
|
+
"\n" +
|
|
315
|
+
"24 bottles of beer on the wall, 24 bottles of beer.\n" +
|
|
316
|
+
"Take one down and pass it around, 23 bottles of beer on the wall.\n" +
|
|
317
|
+
"\n" +
|
|
318
|
+
"23 bottles of beer on the wall, 23 bottles of beer.\n" +
|
|
319
|
+
"Take one down and pass it around, 22 bottles of beer on the wall.\n" +
|
|
320
|
+
"\n" +
|
|
321
|
+
"22 bottles of beer on the wall, 22 bottles of beer.\n" +
|
|
322
|
+
"Take one down and pass it around, 21 bottles of beer on the wall.\n" +
|
|
323
|
+
"\n" +
|
|
324
|
+
"21 bottles of beer on the wall, 21 bottles of beer.\n" +
|
|
325
|
+
"Take one down and pass it around, 20 bottles of beer on the wall.\n" +
|
|
326
|
+
"\n" +
|
|
327
|
+
"20 bottles of beer on the wall, 20 bottles of beer.\n" +
|
|
328
|
+
"Take one down and pass it around, 19 bottles of beer on the wall.\n" +
|
|
329
|
+
"\n" +
|
|
330
|
+
"19 bottles of beer on the wall, 19 bottles of beer.\n" +
|
|
331
|
+
"Take one down and pass it around, 18 bottles of beer on the wall.\n" +
|
|
332
|
+
"\n" +
|
|
333
|
+
"18 bottles of beer on the wall, 18 bottles of beer.\n" +
|
|
334
|
+
"Take one down and pass it around, 17 bottles of beer on the wall.\n" +
|
|
335
|
+
"\n" +
|
|
336
|
+
"17 bottles of beer on the wall, 17 bottles of beer.\n" +
|
|
337
|
+
"Take one down and pass it around, 16 bottles of beer on the wall.\n" +
|
|
338
|
+
"\n" +
|
|
339
|
+
"16 bottles of beer on the wall, 16 bottles of beer.\n" +
|
|
340
|
+
"Take one down and pass it around, 15 bottles of beer on the wall.\n" +
|
|
341
|
+
"\n" +
|
|
342
|
+
"15 bottles of beer on the wall, 15 bottles of beer.\n" +
|
|
343
|
+
"Take one down and pass it around, 14 bottles of beer on the wall.\n" +
|
|
344
|
+
"\n" +
|
|
345
|
+
"14 bottles of beer on the wall, 14 bottles of beer.\n" +
|
|
346
|
+
"Take one down and pass it around, 13 bottles of beer on the wall.\n" +
|
|
347
|
+
"\n" +
|
|
348
|
+
"13 bottles of beer on the wall, 13 bottles of beer.\n" +
|
|
349
|
+
"Take one down and pass it around, 12 bottles of beer on the wall.\n" +
|
|
350
|
+
"\n" +
|
|
351
|
+
"12 bottles of beer on the wall, 12 bottles of beer.\n" +
|
|
352
|
+
"Take one down and pass it around, 11 bottles of beer on the wall.\n" +
|
|
353
|
+
"\n" +
|
|
354
|
+
"11 bottles of beer on the wall, 11 bottles of beer.\n" +
|
|
355
|
+
"Take one down and pass it around, 10 bottles of beer on the wall.\n" +
|
|
356
|
+
"\n" +
|
|
357
|
+
"10 bottles of beer on the wall, 10 bottles of beer.\n" +
|
|
358
|
+
"Take one down and pass it around, 9 bottles of beer on the wall.\n" +
|
|
359
|
+
"\n" +
|
|
360
|
+
"9 bottles of beer on the wall, 9 bottles of beer.\n" +
|
|
361
|
+
"Take one down and pass it around, 8 bottles of beer on the wall.\n" +
|
|
362
|
+
"\n" +
|
|
363
|
+
"8 bottles of beer on the wall, 8 bottles of beer.\n" +
|
|
364
|
+
"Take one down and pass it around, 7 bottles of beer on the wall.\n" +
|
|
365
|
+
"\n" +
|
|
366
|
+
"7 bottles of beer on the wall, 7 bottles of beer.\n" +
|
|
367
|
+
"Take one down and pass it around, 6 bottles of beer on the wall.\n" +
|
|
368
|
+
"\n" +
|
|
369
|
+
"6 bottles of beer on the wall, 6 bottles of beer.\n" +
|
|
370
|
+
"Take one down and pass it around, 5 bottles of beer on the wall.\n" +
|
|
371
|
+
"\n" +
|
|
372
|
+
"5 bottles of beer on the wall, 5 bottles of beer.\n" +
|
|
373
|
+
"Take one down and pass it around, 4 bottles of beer on the wall.\n" +
|
|
374
|
+
"\n" +
|
|
375
|
+
"4 bottles of beer on the wall, 4 bottles of beer.\n" +
|
|
376
|
+
"Take one down and pass it around, 3 bottles of beer on the wall.\n" +
|
|
377
|
+
"\n" +
|
|
378
|
+
"3 bottles of beer on the wall, 3 bottles of beer.\n" +
|
|
379
|
+
"Take one down and pass it around, 2 bottles of beer on the wall.\n" +
|
|
380
|
+
"\n" +
|
|
381
|
+
"2 bottles of beer on the wall, 2 bottles of beer.\n" +
|
|
382
|
+
"Take one down and pass it around, 1 bottle of beer on the wall.\n" +
|
|
383
|
+
"\n" +
|
|
384
|
+
"1 bottle of beer on the wall, 1 bottle of beer.\n" +
|
|
385
|
+
"Take it down and pass it around, no more bottles of beer on the wall.\n" +
|
|
386
|
+
"\n" +
|
|
387
|
+
"No more bottles of beer on the wall, no more bottles of beer.\n" +
|
|
388
|
+
"Go to the store and buy some more, 99 bottles of beer on the wall.\n" +
|
|
389
389
|
"";
|
|
390
390
|
Assert.Equal(expected, BeerSong.Verses(99, 0));
|
|
391
391
|
}
|