trackler 2.2.1.99 → 2.2.1.100
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/lib/trackler/version.rb +1 -1
- data/problem-specifications/exercises/clock/canonical-data.json +303 -204
- data/problem-specifications/exercises/complex-numbers/canonical-data.json +104 -44
- data/problem-specifications/exercises/matrix/canonical-data.json +78 -0
- data/problem-specifications/exercises/word-count/canonical-data.json +12 -12
- data/tracks/bash/config.json +128 -110
- data/tracks/c/exercises/word-count/test/test_word_count.c +2 -2
- data/tracks/dart/CONTRIBUTING.md +2 -2
- data/tracks/dart/docs/EXERCISE_README_INSERT.md +0 -1
- data/tracks/dart/docs/INSTALLATION.md +17 -11
- data/tracks/fsharp/exercises/acronym/AcronymTest.fs +3 -7
- data/tracks/fsharp/exercises/anagram/AnagramTest.fs +1 -21
- data/tracks/fsharp/exercises/book-store/BookStoreTest.fs +1 -1
- data/tracks/fsharp/exercises/complex-numbers/ComplexNumbersTest.fs +25 -25
- data/tracks/fsharp/exercises/custom-set/CustomSetTest.fs +1 -1
- data/tracks/fsharp/exercises/food-chain/FoodChainTest.fs +1 -1
- data/tracks/fsharp/exercises/gigasecond/GigasecondTest.fs +1 -1
- data/tracks/fsharp/exercises/hamming/HammingTest.fs +1 -1
- data/tracks/fsharp/exercises/hello-world/HelloWorldTest.fs +1 -1
- data/tracks/fsharp/exercises/largest-series-product/LargestSeriesProductTest.fs +1 -1
- data/tracks/fsharp/exercises/leap/LeapTest.fs +1 -1
- data/tracks/fsharp/exercises/markdown/MarkdownTest.fs +19 -19
- data/tracks/fsharp/exercises/minesweeper/MinesweeperTest.fs +27 -27
- data/tracks/fsharp/exercises/nth-prime/NthPrimeTest.fs +1 -1
- data/tracks/fsharp/exercises/nucleotide-count/NucleotideCountTest.fs +1 -1
- data/tracks/fsharp/exercises/pangram/PangramTest.fs +1 -1
- data/tracks/fsharp/exercises/pascals-triangle/PascalsTriangleTest.fs +1 -1
- data/tracks/fsharp/exercises/perfect-numbers/PerfectNumbersTest.fs +1 -1
- data/tracks/fsharp/exercises/phone-number/PhoneNumberTest.fs +11 -3
- data/tracks/fsharp/exercises/pig-latin/PigLatinTest.fs +1 -1
- data/tracks/fsharp/exercises/protein-translation/Example.fs +2 -2
- data/tracks/fsharp/exercises/protein-translation/ProteinTranslation.fs +1 -1
- data/tracks/fsharp/exercises/protein-translation/ProteinTranslationTest.fs +94 -60
- data/tracks/fsharp/exercises/react/ReactTest.fs +1 -1
- data/tracks/fsharp/exercises/rna-transcription/RnaTranscriptionTest.fs +1 -1
- data/tracks/fsharp/exercises/roman-numerals/RomanNumeralsTest.fs +1 -1
- data/tracks/fsharp/exercises/rotational-cipher/RotationalCipherTest.fs +1 -1
- data/tracks/fsharp/exercises/say/Example.fs +1 -1
- data/tracks/fsharp/exercises/say/SayTest.fs +21 -24
- data/tracks/fsharp/exercises/scrabble-score/ScrabbleScoreTest.fs +1 -1
- data/tracks/fsharp/exercises/secret-handshake/Example.fs +2 -2
- data/tracks/fsharp/exercises/secret-handshake/SecretHandshake.fs +1 -1
- data/tracks/fsharp/exercises/secret-handshake/SecretHandshakeTest.fs +39 -22
- data/tracks/fsharp/exercises/sieve/Example.fs +1 -1
- data/tracks/fsharp/exercises/sieve/Sieve.fs +1 -1
- data/tracks/fsharp/exercises/sieve/SieveTest.fs +19 -21
- data/tracks/fsharp/exercises/spiral-matrix/SpiralMatrixTest.fs +1 -1
- data/tracks/fsharp/exercises/sum-of-multiples/Example.fs +1 -1
- data/tracks/fsharp/exercises/sum-of-multiples/SumOfMultiples.fs +1 -1
- data/tracks/fsharp/exercises/sum-of-multiples/SumOfMultiplesTest.fs +44 -14
- data/tracks/fsharp/exercises/twelve-days/TwelveDaysTest.fs +1 -1
- data/tracks/fsharp/exercises/two-fer/Example.fs +1 -1
- data/tracks/fsharp/exercises/two-fer/TwoFer.fs +1 -1
- data/tracks/fsharp/exercises/two-fer/TwoFerTest.fs +4 -4
- data/tracks/fsharp/exercises/word-count/Example.fs +2 -2
- data/tracks/fsharp/exercises/word-count/WordCount.fs +2 -2
- data/tracks/fsharp/exercises/word-count/WordCountTest.fs +80 -100
- data/tracks/fsharp/exercises/wordy/Example.fs +2 -3
- data/tracks/fsharp/exercises/wordy/Wordy.fs +1 -1
- data/tracks/fsharp/exercises/wordy/WordyTest.fs +51 -49
- data/tracks/fsharp/exercises/zebra-puzzle/Example.fs +4 -4
- data/tracks/fsharp/exercises/zebra-puzzle/ZebraPuzzleTest.fs +7 -8
- data/tracks/fsharp/generators/Common.fs +3 -1
- data/tracks/fsharp/generators/Exercise.fs +12 -1
- data/tracks/fsharp/generators/Generators.fs +89 -42
- data/tracks/fsharp/generators/Generators.fsproj +1 -0
- data/tracks/fsharp/generators/Options.fs +14 -7
- data/tracks/fsharp/generators/Program.fs +3 -0
- data/tracks/fsharp/generators/Rendering.fs +0 -1
- data/tracks/fsharp/generators/Track.fs +26 -0
- data/tracks/go/exercises/custom-set/.meta/gen.go +16 -14
- data/tracks/go/exercises/custom-set/cases_test.go +2 -2
- data/tracks/java/exercises/food-chain/.meta/version +1 -0
- data/tracks/java/exercises/sieve/.meta/version +1 -0
- data/tracks/java/exercises/sieve/src/test/java/SieveTest.java +17 -0
- data/tracks/java/exercises/twelve-days/.meta/version +1 -0
- data/tracks/java/exercises/twelve-days/src/test/java/TwelveDaysTest.java +15 -3
- data/tracks/java/exercises/two-fer/.meta/version +1 -0
- data/tracks/java/exercises/two-fer/src/test/java/TwoferTest.java +0 -9
- data/tracks/ocaml/config/exercise_readme.go.tmpl +38 -4
- data/tracks/ocaml/exercises/acronym/README.md +0 -2
- data/tracks/ocaml/exercises/all-your-base/README.md +1 -3
- data/tracks/ocaml/exercises/anagram/README.md +0 -1
- data/tracks/ocaml/exercises/atbash-cipher/README.md +2 -2
- data/tracks/ocaml/exercises/beer-song/README.md +2 -3
- data/tracks/ocaml/exercises/binary-search/README.md +0 -1
- data/tracks/ocaml/exercises/bob/README.md +2 -1
- data/tracks/ocaml/exercises/bowling/README.md +20 -7
- data/tracks/ocaml/exercises/bracket-push/README.md +0 -1
- data/tracks/ocaml/exercises/change/README.md +1 -2
- data/tracks/ocaml/exercises/connect/README.md +1 -3
- data/tracks/ocaml/exercises/custom-set/README.md +0 -2
- data/tracks/ocaml/exercises/difference-of-squares/README.md +0 -1
- data/tracks/ocaml/exercises/dominoes/README.md +3 -5
- data/tracks/ocaml/exercises/etl/README.md +3 -2
- data/tracks/ocaml/exercises/forth/README.md +0 -2
- data/tracks/ocaml/exercises/grade-school/README.md +0 -1
- data/tracks/ocaml/exercises/hamming/README.md +0 -1
- data/tracks/ocaml/exercises/hangman/README.md +0 -2
- data/tracks/ocaml/exercises/hello-world/README.md +0 -1
- data/tracks/ocaml/exercises/hexadecimal/README.md +0 -1
- data/tracks/ocaml/exercises/leap/README.md +1 -2
- data/tracks/ocaml/exercises/list-ops/README.md +0 -2
- data/tracks/ocaml/exercises/luhn/README.md +7 -8
- data/tracks/ocaml/exercises/meetup/README.md +16 -14
- data/tracks/ocaml/exercises/minesweeper/README.md +0 -2
- data/tracks/ocaml/exercises/nucleotide-count/README.md +8 -23
- data/tracks/ocaml/exercises/palindrome-products/README.md +0 -1
- data/tracks/ocaml/exercises/pangram/README.md +1 -2
- data/tracks/ocaml/exercises/phone-number/README.md +4 -4
- data/tracks/ocaml/exercises/prime-factors/README.md +0 -1
- data/tracks/ocaml/exercises/raindrops/README.md +0 -1
- data/tracks/ocaml/exercises/react/README.md +0 -2
- data/tracks/ocaml/{docs/EXERCISE_README_INSERT.md → exercises/rectangles/README.md} +67 -0
- data/tracks/ocaml/exercises/rna-transcription/README.md +1 -2
- data/tracks/ocaml/exercises/robot-name/README.md +0 -1
- data/tracks/ocaml/exercises/roman-numerals/README.md +1 -2
- data/tracks/ocaml/exercises/run-length-encoding/README.md +4 -5
- data/tracks/ocaml/exercises/say/README.md +0 -1
- data/tracks/ocaml/exercises/space-age/README.md +1 -2
- data/tracks/ocaml/exercises/triangle/README.md +8 -6
- data/tracks/ocaml/exercises/word-count/README.md +1 -3
- data/tracks/ocaml/exercises/zipper/README.md +1 -3
- data/tracks/perl6/.travis.yml +1 -1
- data/tracks/perl6/bin/README.md +1 -2
- data/tracks/perl6/bin/exercise-gen.pl6 +18 -18
- data/tracks/perl6/config.json +1 -0
- data/tracks/perl6/exercises/accumulate/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/accumulate/{Example.pm6 → .meta/solutions/Accumulate.pm6} +0 -0
- data/tracks/perl6/exercises/acronym/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/acronym/{Example.pm6 → .meta/solutions/Acronym.pm6} +0 -0
- data/tracks/perl6/exercises/all-your-base/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/all-your-base/{Example.pm6 → .meta/solutions/AllYourBase.pm6} +0 -0
- data/tracks/perl6/exercises/allergies/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/allergies/{Example.pm6 → .meta/solutions/Allergies.pm6} +0 -0
- data/tracks/perl6/exercises/anagram/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/anagram/{Example.pm6 → .meta/solutions/Anagram.pm6} +0 -0
- data/tracks/perl6/exercises/atbash-cipher/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/atbash-cipher/{Example.pm6 → .meta/solutions/AtbashCipher.pm6} +0 -0
- data/tracks/perl6/exercises/binary/{Example.pm6 → .meta/solutions/Trinary.pm6} +0 -0
- data/tracks/perl6/exercises/bob/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/bob/{Example.pm6 → .meta/solutions/Bob.pm6} +0 -0
- data/tracks/perl6/exercises/clock/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/clock/{Example.pm6 → .meta/solutions/Clock.pm6} +0 -0
- data/tracks/perl6/exercises/etl/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/etl/{Example.pm6 → .meta/solutions/ETL.pm6} +0 -0
- data/tracks/perl6/exercises/flatten-array/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/flatten-array/{Example.pm6 → .meta/solutions/FlattenArray.pm6} +0 -0
- data/tracks/perl6/exercises/grade-school/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/grade-school/{Example.pm6 → .meta/solutions/GradeSchool.pm6} +0 -0
- data/tracks/perl6/exercises/grains/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/grains/{Example.pm6 → .meta/solutions/Grains.pm6} +0 -0
- data/tracks/perl6/exercises/hamming/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/hamming/{Example.pm6 → .meta/solutions/Hamming.pm6} +0 -0
- data/tracks/perl6/exercises/hello-world/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/hello-world/{Example.pm6 → .meta/solutions/HelloWorld.pm6} +0 -0
- data/tracks/perl6/exercises/leap/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/leap/{Example.pm6 → .meta/solutions/Leap.pm6} +0 -0
- data/tracks/perl6/exercises/linked-list/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/linked-list/{Example.pm6 → .meta/solutions/LinkedList.pm6} +0 -0
- data/tracks/perl6/exercises/luhn/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/luhn/{Example.pm6 → .meta/solutions/Luhn.pm6} +0 -0
- data/tracks/perl6/exercises/meetup/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/meetup/{Example.pm6 → .meta/solutions/Meetup.pm6} +0 -0
- data/tracks/perl6/exercises/nucleotide-count/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/nucleotide-count/{Example.pm6 → .meta/solutions/NucleotideCount.pm6} +0 -0
- data/tracks/perl6/exercises/pangram/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/pangram/{Example.pm6 → .meta/solutions/Pangram.pm6} +0 -0
- data/tracks/perl6/exercises/phone-number/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/phone-number/{Example.pm6 → .meta/solutions/Phone.pm6} +0 -0
- data/tracks/perl6/exercises/raindrops/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/raindrops/{Example.pm6 → .meta/solutions/Raindrops.pm6} +0 -0
- data/tracks/perl6/exercises/rna-transcription/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/rna-transcription/{Example.pm6 → .meta/solutions/RNA.pm6} +0 -0
- data/tracks/perl6/exercises/robot-name/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/robot-name/{Example.pm6 → .meta/solutions/Robot.pm6} +0 -0
- data/tracks/perl6/exercises/roman-numerals/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/roman-numerals/{Example.pm6 → .meta/solutions/RomanNumerals.pm6} +0 -0
- data/tracks/perl6/exercises/scrabble-score/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/scrabble-score/{Example.pm6 → .meta/solutions/Scrabble.pm6} +0 -0
- data/tracks/perl6/exercises/space-age/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/space-age/{Example.pm6 → .meta/solutions/SpaceAge.pm6} +0 -0
- data/tracks/perl6/exercises/trinary/{Example.pm6 → .meta/solutions/Trinary.pm6} +0 -0
- data/tracks/perl6/exercises/two-fer/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/two-fer/{Example.pm6 → .meta/solutions/TwoFer.pm6} +0 -0
- data/tracks/perl6/exercises/word-count/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/word-count/{Example.pm6 → .meta/solutions/WordCount.pm6} +0 -0
- data/tracks/perl6/exercises/wordy/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/wordy/{Example.pm6 → .meta/solutions/Wordy.pm6} +0 -0
- data/tracks/perl6/t/generated-tests.t +2 -2
- data/tracks/python/config.json +12 -0
- data/tracks/python/exercises/bowling/.gitignore +0 -0
- data/tracks/python/exercises/bowling/bowling.py +11 -0
- data/tracks/python/exercises/bowling/bowling_test.py +193 -0
- data/tracks/python/exercises/bowling/example.py +149 -0
- data/tracks/python/exercises/say/say_test.py +1 -1
- data/tracks/ruby/README.md +121 -97
- data/tracks/ruby/config/exercise_readme.go.tmpl +23 -4
- data/tracks/ruby/exercises/accumulate/{HINTS.md → .meta/hints.md} +0 -0
- data/tracks/ruby/exercises/accumulate/README.md +3 -5
- data/tracks/ruby/exercises/acronym/README.md +3 -6
- data/tracks/ruby/exercises/all-your-base/README.md +4 -7
- data/tracks/ruby/exercises/allergies/README.md +3 -6
- data/tracks/ruby/exercises/alphametics/README.md +5 -8
- data/tracks/ruby/exercises/anagram/README.md +3 -5
- data/tracks/ruby/exercises/atbash-cipher/README.md +5 -6
- data/tracks/ruby/exercises/beer-song/README.md +5 -7
- data/tracks/ruby/exercises/binary-search-tree/README.md +3 -5
- data/tracks/ruby/exercises/binary-search/README.md +3 -5
- data/tracks/ruby/exercises/binary/README.md +5 -5
- data/tracks/ruby/exercises/bob/README.md +3 -5
- data/tracks/ruby/exercises/book-store/README.md +3 -5
- data/tracks/ruby/exercises/bowling/README.md +23 -11
- data/tracks/ruby/exercises/bracket-push/README.md +3 -5
- data/tracks/ruby/exercises/change/README.md +3 -5
- data/tracks/ruby/exercises/circular-buffer/README.md +16 -11
- data/tracks/ruby/exercises/clock/README.md +3 -5
- data/tracks/ruby/exercises/collatz-conjecture/README.md +4 -6
- data/tracks/ruby/exercises/complex-numbers/README.md +6 -8
- data/tracks/ruby/exercises/connect/README.md +4 -7
- data/tracks/ruby/exercises/crypto-square/README.md +3 -5
- data/tracks/ruby/exercises/custom-set/README.md +3 -6
- data/tracks/ruby/exercises/diamond/README.md +9 -11
- data/tracks/ruby/exercises/difference-of-squares/README.md +3 -5
- data/tracks/ruby/exercises/dominoes/README.md +6 -9
- data/tracks/ruby/exercises/etl/README.md +6 -6
- data/tracks/ruby/exercises/flatten-array/README.md +5 -8
- data/tracks/ruby/exercises/food-chain/README.md +4 -6
- data/tracks/ruby/exercises/gigasecond/README.md +3 -5
- data/tracks/ruby/exercises/grade-school/README.md +3 -6
- data/tracks/ruby/exercises/grains/README.md +3 -6
- data/tracks/ruby/exercises/hamming/README.md +3 -5
- data/tracks/ruby/exercises/hello-world/README.md +1 -3
- data/tracks/ruby/exercises/hexadecimal/README.md +3 -5
- data/tracks/ruby/exercises/house/README.md +5 -8
- data/tracks/ruby/exercises/isbn-verifier/README.md +4 -6
- data/tracks/ruby/exercises/isogram/README.md +5 -6
- data/tracks/ruby/exercises/kindergarten-garden/README.md +16 -18
- data/tracks/ruby/exercises/largest-series-product/README.md +3 -5
- data/tracks/ruby/exercises/leap/README.md +4 -6
- data/tracks/ruby/exercises/linked-list/README.md +13 -15
- data/tracks/ruby/exercises/list-ops/README.md +3 -6
- data/tracks/ruby/exercises/luhn/README.md +10 -12
- data/tracks/ruby/exercises/matrix/README.md +9 -9
- data/tracks/ruby/exercises/meetup/README.md +19 -18
- data/tracks/ruby/exercises/minesweeper/README.md +3 -6
- data/tracks/ruby/exercises/nth-prime/README.md +3 -5
- data/tracks/ruby/exercises/nucleotide-count/README.md +11 -27
- data/tracks/ruby/exercises/ocr-numbers/README.md +9 -11
- data/tracks/ruby/exercises/octal/README.md +9 -7
- data/tracks/ruby/exercises/palindrome-products/README.md +8 -17
- data/tracks/ruby/exercises/pangram/README.md +4 -6
- data/tracks/ruby/exercises/pascals-triangle/README.md +5 -7
- data/tracks/ruby/exercises/perfect-numbers/README.md +5 -7
- data/tracks/ruby/exercises/phone-number/README.md +7 -8
- data/tracks/ruby/exercises/pig-latin/README.md +3 -5
- data/tracks/ruby/exercises/point-mutations/README.md +3 -5
- data/tracks/ruby/exercises/poker/README.md +3 -5
- data/tracks/ruby/exercises/prime-factors/README.md +3 -5
- data/tracks/ruby/exercises/protein-translation/README.md +7 -10
- data/tracks/ruby/exercises/proverb/README.md +17 -14
- data/tracks/ruby/exercises/pythagorean-triplet/README.md +6 -8
- data/tracks/ruby/exercises/queen-attack/README.md +4 -6
- data/tracks/ruby/exercises/rail-fence-cipher/README.md +15 -12
- data/tracks/ruby/exercises/raindrops/README.md +3 -5
- data/tracks/ruby/exercises/rna-transcription/README.md +4 -6
- data/tracks/ruby/exercises/robot-name/{HINTS.md → .meta/hints.md} +0 -0
- data/tracks/ruby/exercises/robot-name/README.md +3 -5
- data/tracks/ruby/exercises/robot-simulator/README.md +3 -5
- data/tracks/ruby/exercises/roman-numerals/README.md +4 -6
- data/tracks/ruby/exercises/rotational-cipher/README.md +3 -5
- data/tracks/ruby/exercises/run-length-encoding/README.md +7 -9
- data/tracks/ruby/exercises/saddle-points/README.md +5 -7
- data/tracks/ruby/exercises/say/README.md +3 -5
- data/tracks/ruby/exercises/scale-generator/README.md +3 -7
- data/tracks/ruby/exercises/scrabble-score/README.md +6 -6
- data/tracks/ruby/exercises/secret-handshake/README.md +4 -6
- data/tracks/ruby/exercises/series/README.md +3 -5
- data/tracks/ruby/exercises/sieve/README.md +3 -5
- data/tracks/ruby/exercises/simple-cipher/README.md +7 -11
- data/tracks/ruby/exercises/simple-linked-list/README.md +3 -5
- data/tracks/ruby/exercises/space-age/README.md +4 -6
- data/tracks/ruby/exercises/strain/README.md +3 -5
- data/tracks/ruby/exercises/sum-of-multiples/README.md +6 -11
- data/tracks/ruby/exercises/tournament/README.md +8 -11
- data/tracks/ruby/exercises/transpose/README.md +10 -12
- data/tracks/ruby/exercises/triangle/README.md +12 -11
- data/tracks/ruby/exercises/trinary/README.md +4 -6
- data/tracks/ruby/exercises/twelve-days/README.md +4 -6
- data/tracks/ruby/exercises/two-bucket/README.md +13 -15
- data/tracks/ruby/exercises/two-fer/README.md +13 -39
- data/tracks/ruby/exercises/word-count/README.md +4 -7
- data/tracks/ruby/exercises/wordy/README.md +3 -10
- metadata +77 -68
- data/tracks/ruby/docs/EXERCISE_README_INSERT.md +0 -24
@@ -49,15 +49,13 @@ If you would like color output, you can `require 'minitest/pride'` in
|
|
49
49
|
the test file, or note the alternative instruction, below, for running
|
50
50
|
the test file.
|
51
51
|
|
52
|
-
|
53
|
-
directory. For example, if the test suite is called
|
54
|
-
`hello_world_test.rb`, you can run the following command:
|
52
|
+
Run the tests from the exercise directory using the following command:
|
55
53
|
|
56
|
-
ruby
|
54
|
+
ruby hamming_test.rb
|
57
55
|
|
58
56
|
To include color from the command line:
|
59
57
|
|
60
|
-
ruby -r minitest/pride
|
58
|
+
ruby -r minitest/pride hamming_test.rb
|
61
59
|
|
62
60
|
|
63
61
|
## Source
|
@@ -28,9 +28,7 @@ If you would like color output, you can `require 'minitest/pride'` in
|
|
28
28
|
the test file, or note the alternative instruction, below, for running
|
29
29
|
the test file.
|
30
30
|
|
31
|
-
|
32
|
-
directory. For example, if the test suite is called
|
33
|
-
`hello_world_test.rb`, you can run the following command:
|
31
|
+
Run the tests from the exercise directory using the following command:
|
34
32
|
|
35
33
|
ruby hello_world_test.rb
|
36
34
|
|
@@ -21,15 +21,13 @@ If you would like color output, you can `require 'minitest/pride'` in
|
|
21
21
|
the test file, or note the alternative instruction, below, for running
|
22
22
|
the test file.
|
23
23
|
|
24
|
-
|
25
|
-
directory. For example, if the test suite is called
|
26
|
-
`hello_world_test.rb`, you can run the following command:
|
24
|
+
Run the tests from the exercise directory using the following command:
|
27
25
|
|
28
|
-
ruby
|
26
|
+
ruby hexadecimal_test.rb
|
29
27
|
|
30
28
|
To include color from the command line:
|
31
29
|
|
32
|
-
ruby -r minitest/pride
|
30
|
+
ruby -r minitest/pride hexadecimal_test.rb
|
33
31
|
|
34
32
|
|
35
33
|
## Source
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# House
|
2
2
|
|
3
|
-
|
3
|
+
Recite the nursery rhyme 'This is the House that Jack Built'.
|
4
4
|
|
5
5
|
> [The] process of placing a phrase of clause within another phrase of
|
6
6
|
> clause is called embedding. It is through the processes of recursion
|
@@ -11,10 +11,9 @@ Output the nursery rhyme 'This is the House that Jack Built'.
|
|
11
11
|
|
12
12
|
- [papyr.com](http://papyr.com/hypertextbooks/grammar/ph_noun.htm)
|
13
13
|
|
14
|
-
|
15
14
|
The nursery rhyme reads as follows:
|
16
15
|
|
17
|
-
```
|
16
|
+
```text
|
18
17
|
This is the house that Jack built.
|
19
18
|
|
20
19
|
This is the malt
|
@@ -120,15 +119,13 @@ If you would like color output, you can `require 'minitest/pride'` in
|
|
120
119
|
the test file, or note the alternative instruction, below, for running
|
121
120
|
the test file.
|
122
121
|
|
123
|
-
|
124
|
-
directory. For example, if the test suite is called
|
125
|
-
`hello_world_test.rb`, you can run the following command:
|
122
|
+
Run the tests from the exercise directory using the following command:
|
126
123
|
|
127
|
-
ruby
|
124
|
+
ruby house_test.rb
|
128
125
|
|
129
126
|
To include color from the command line:
|
130
127
|
|
131
|
-
ruby -r minitest/pride
|
128
|
+
ruby -r minitest/pride house_test.rb
|
132
129
|
|
133
130
|
|
134
131
|
## Source
|
@@ -1,4 +1,4 @@
|
|
1
|
-
#
|
1
|
+
# ISBN Verifier
|
2
2
|
|
3
3
|
The [ISBN-10 verification process](https://en.wikipedia.org/wiki/International_Standard_Book_Number) is used to validate book identification
|
4
4
|
numbers. These normally contain dashes and look like: `3-598-21508-8`
|
@@ -54,15 +54,13 @@ If you would like color output, you can `require 'minitest/pride'` in
|
|
54
54
|
the test file, or note the alternative instruction, below, for running
|
55
55
|
the test file.
|
56
56
|
|
57
|
-
|
58
|
-
directory. For example, if the test suite is called
|
59
|
-
`hello_world_test.rb`, you can run the following command:
|
57
|
+
Run the tests from the exercise directory using the following command:
|
60
58
|
|
61
|
-
ruby
|
59
|
+
ruby isbn_verifier_test.rb
|
62
60
|
|
63
61
|
To include color from the command line:
|
64
62
|
|
65
|
-
ruby -r minitest/pride
|
63
|
+
ruby -r minitest/pride isbn_verifier_test.rb
|
66
64
|
|
67
65
|
|
68
66
|
## Source
|
@@ -2,13 +2,14 @@
|
|
2
2
|
|
3
3
|
Determine if a word or phrase is an isogram.
|
4
4
|
|
5
|
-
An isogram (also known as a "nonpattern word") is a word or phrase without a repeating letter.
|
5
|
+
An isogram (also known as a "nonpattern word") is a word or phrase without a repeating letter, however spaces and hyphens are allowed to appear multiple times.
|
6
6
|
|
7
7
|
Examples of isograms:
|
8
8
|
|
9
9
|
- lumberjacks
|
10
10
|
- background
|
11
11
|
- downstream
|
12
|
+
- six-year-old
|
12
13
|
|
13
14
|
The word *isograms*, however, is not an isogram, because the s repeats.
|
14
15
|
|
@@ -26,15 +27,13 @@ If you would like color output, you can `require 'minitest/pride'` in
|
|
26
27
|
the test file, or note the alternative instruction, below, for running
|
27
28
|
the test file.
|
28
29
|
|
29
|
-
|
30
|
-
directory. For example, if the test suite is called
|
31
|
-
`hello_world_test.rb`, you can run the following command:
|
30
|
+
Run the tests from the exercise directory using the following command:
|
32
31
|
|
33
|
-
ruby
|
32
|
+
ruby isogram_test.rb
|
34
33
|
|
35
34
|
To include color from the command line:
|
36
35
|
|
37
|
-
ruby -r minitest/pride
|
36
|
+
ruby -r minitest/pride isogram_test.rb
|
38
37
|
|
39
38
|
|
40
39
|
## Source
|
@@ -3,19 +3,19 @@
|
|
3
3
|
Given a diagram, determine which plants each child in the kindergarten class is
|
4
4
|
responsible for.
|
5
5
|
|
6
|
-
The kindergarten class is learning about growing plants. The
|
6
|
+
The kindergarten class is learning about growing plants. The teacher
|
7
7
|
thought it would be a good idea to give them actual seeds, plant them in
|
8
8
|
actual dirt, and grow actual plants.
|
9
9
|
|
10
10
|
They've chosen to grow grass, clover, radishes, and violets.
|
11
11
|
|
12
|
-
To this end,
|
13
|
-
|
14
|
-
|
12
|
+
To this end, the children have put little cups along the window sills, and
|
13
|
+
planted one type of plant in each cup, choosing randomly from the available
|
14
|
+
types of seeds.
|
15
15
|
|
16
|
-
```
|
16
|
+
```text
|
17
17
|
[window][window][window]
|
18
|
-
........................ # each dot represents a
|
18
|
+
........................ # each dot represents a cup
|
19
19
|
........................
|
20
20
|
```
|
21
21
|
|
@@ -25,27 +25,27 @@ There are 12 children in the class:
|
|
25
25
|
- Eve, Fred, Ginny, Harriet,
|
26
26
|
- Ileana, Joseph, Kincaid, and Larry.
|
27
27
|
|
28
|
-
Each child gets 4 cups, two on each row.
|
29
|
-
|
28
|
+
Each child gets 4 cups, two on each row. Their teacher assigns cups to
|
29
|
+
the children alphabetically by their names.
|
30
30
|
|
31
31
|
The following diagram represents Alice's plants:
|
32
32
|
|
33
|
-
```
|
33
|
+
```text
|
34
34
|
[window][window][window]
|
35
35
|
VR......................
|
36
36
|
RG......................
|
37
37
|
```
|
38
38
|
|
39
|
-
|
40
|
-
row
|
39
|
+
In the first row, nearest the windows, she has a violet and a radish. In the
|
40
|
+
second row she has a radish and some grass.
|
41
41
|
|
42
42
|
Your program will be given the plants from left-to-right starting with
|
43
43
|
the row nearest the windows. From this, it should be able to determine
|
44
|
-
which plants belong to
|
44
|
+
which plants belong to each student.
|
45
45
|
|
46
46
|
For example, if it's told that the garden looks like so:
|
47
47
|
|
48
|
-
```
|
48
|
+
```text
|
49
49
|
[window][window][window]
|
50
50
|
VRCGVVRVCGGCCGVRGCVCGCGV
|
51
51
|
VRCCCGCRRGVCGCRVVCVGCGCV
|
@@ -73,15 +73,13 @@ If you would like color output, you can `require 'minitest/pride'` in
|
|
73
73
|
the test file, or note the alternative instruction, below, for running
|
74
74
|
the test file.
|
75
75
|
|
76
|
-
|
77
|
-
directory. For example, if the test suite is called
|
78
|
-
`hello_world_test.rb`, you can run the following command:
|
76
|
+
Run the tests from the exercise directory using the following command:
|
79
77
|
|
80
|
-
ruby
|
78
|
+
ruby kindergarten_garden_test.rb
|
81
79
|
|
82
80
|
To include color from the command line:
|
83
81
|
|
84
|
-
ruby -r minitest/pride
|
82
|
+
ruby -r minitest/pride kindergarten_garden_test.rb
|
85
83
|
|
86
84
|
|
87
85
|
## Source
|
@@ -27,15 +27,13 @@ If you would like color output, you can `require 'minitest/pride'` in
|
|
27
27
|
the test file, or note the alternative instruction, below, for running
|
28
28
|
the test file.
|
29
29
|
|
30
|
-
|
31
|
-
directory. For example, if the test suite is called
|
32
|
-
`hello_world_test.rb`, you can run the following command:
|
30
|
+
Run the tests from the exercise directory using the following command:
|
33
31
|
|
34
|
-
ruby
|
32
|
+
ruby largest_series_product_test.rb
|
35
33
|
|
36
34
|
To include color from the command line:
|
37
35
|
|
38
|
-
ruby -r minitest/pride
|
36
|
+
ruby -r minitest/pride largest_series_product_test.rb
|
39
37
|
|
40
38
|
|
41
39
|
## Source
|
@@ -4,7 +4,7 @@ Given a year, report if it is a leap year.
|
|
4
4
|
|
5
5
|
The tricky thing here is that a leap year in the Gregorian calendar occurs:
|
6
6
|
|
7
|
-
```
|
7
|
+
```text
|
8
8
|
on every year that is evenly divisible by 4
|
9
9
|
except every year that is evenly divisible by 100
|
10
10
|
unless the year is also evenly divisible by 400
|
@@ -40,15 +40,13 @@ If you would like color output, you can `require 'minitest/pride'` in
|
|
40
40
|
the test file, or note the alternative instruction, below, for running
|
41
41
|
the test file.
|
42
42
|
|
43
|
-
|
44
|
-
directory. For example, if the test suite is called
|
45
|
-
`hello_world_test.rb`, you can run the following command:
|
43
|
+
Run the tests from the exercise directory using the following command:
|
46
44
|
|
47
|
-
ruby
|
45
|
+
ruby leap_test.rb
|
48
46
|
|
49
47
|
To include color from the command line:
|
50
48
|
|
51
|
-
ruby -r minitest/pride
|
49
|
+
ruby -r minitest/pride leap_test.rb
|
52
50
|
|
53
51
|
|
54
52
|
## Source
|
@@ -2,18 +2,18 @@
|
|
2
2
|
|
3
3
|
Implement a doubly linked list.
|
4
4
|
|
5
|
-
Like an array, a linked list is a simple linear data structure. Several
|
6
|
-
common data types can be implemented using linked lists, like queues,
|
5
|
+
Like an array, a linked list is a simple linear data structure. Several
|
6
|
+
common data types can be implemented using linked lists, like queues,
|
7
7
|
stacks, and associative arrays.
|
8
8
|
|
9
|
-
A linked list is a collection of data elements called *nodes*. In a
|
10
|
-
*singly linked list* each node holds a value and a link to the next node.
|
11
|
-
In a *doubly linked list* each node also holds a link to the previous
|
9
|
+
A linked list is a collection of data elements called *nodes*. In a
|
10
|
+
*singly linked list* each node holds a value and a link to the next node.
|
11
|
+
In a *doubly linked list* each node also holds a link to the previous
|
12
12
|
node.
|
13
13
|
|
14
|
-
You will write an implementation of a doubly linked list. Implement a
|
15
|
-
Node to hold a value and pointers to the next and previous nodes. Then
|
16
|
-
implement a List which holds references to the first and last node and
|
14
|
+
You will write an implementation of a doubly linked list. Implement a
|
15
|
+
Node to hold a value and pointers to the next and previous nodes. Then
|
16
|
+
implement a List which holds references to the first and last node and
|
17
17
|
offers an array-like interface for adding and removing items:
|
18
18
|
|
19
19
|
* `push` (*insert value at back*);
|
@@ -21,8 +21,8 @@ offers an array-like interface for adding and removing items:
|
|
21
21
|
* `shift` (*remove value at front*).
|
22
22
|
* `unshift` (*insert value at front*);
|
23
23
|
|
24
|
-
To keep your implementation simple, the tests will not cover error
|
25
|
-
conditions. Specifically: `pop` or `shift` will never be called on an
|
24
|
+
To keep your implementation simple, the tests will not cover error
|
25
|
+
conditions. Specifically: `pop` or `shift` will never be called on an
|
26
26
|
empty list.
|
27
27
|
|
28
28
|
If you want to know more about linked lists, check [Wikipedia](https://en.wikipedia.org/wiki/Linked_list).
|
@@ -41,15 +41,13 @@ If you would like color output, you can `require 'minitest/pride'` in
|
|
41
41
|
the test file, or note the alternative instruction, below, for running
|
42
42
|
the test file.
|
43
43
|
|
44
|
-
|
45
|
-
directory. For example, if the test suite is called
|
46
|
-
`hello_world_test.rb`, you can run the following command:
|
44
|
+
Run the tests from the exercise directory using the following command:
|
47
45
|
|
48
|
-
ruby
|
46
|
+
ruby linked_list_test.rb
|
49
47
|
|
50
48
|
To include color from the command line:
|
51
49
|
|
52
|
-
ruby -r minitest/pride
|
50
|
+
ruby -r minitest/pride linked_list_test.rb
|
53
51
|
|
54
52
|
|
55
53
|
## Source
|
@@ -20,16 +20,13 @@ If you would like color output, you can `require 'minitest/pride'` in
|
|
20
20
|
the test file, or note the alternative instruction, below, for running
|
21
21
|
the test file.
|
22
22
|
|
23
|
-
|
24
|
-
directory. For example, if the test suite is called
|
25
|
-
`hello_world_test.rb`, you can run the following command:
|
23
|
+
Run the tests from the exercise directory using the following command:
|
26
24
|
|
27
|
-
ruby
|
25
|
+
ruby list_ops_test.rb
|
28
26
|
|
29
27
|
To include color from the command line:
|
30
28
|
|
31
|
-
ruby -r minitest/pride
|
32
|
-
|
29
|
+
ruby -r minitest/pride list_ops_test.rb
|
33
30
|
|
34
31
|
|
35
32
|
## Submitting Incomplete Solutions
|
@@ -18,27 +18,27 @@ are disallowed.
|
|
18
18
|
|
19
19
|
## Example 1: valid credit card number
|
20
20
|
|
21
|
-
```
|
21
|
+
```text
|
22
22
|
4539 1488 0343 6467
|
23
23
|
```
|
24
24
|
|
25
25
|
The first step of the Luhn algorithm is to double every second digit,
|
26
26
|
starting from the right. We will be doubling
|
27
27
|
|
28
|
-
```
|
28
|
+
```text
|
29
29
|
4_3_ 1_8_ 0_4_ 6_6_
|
30
30
|
```
|
31
31
|
|
32
32
|
If doubling the number results in a number greater than 9 then subtract 9
|
33
33
|
from the product. The results of our doubling:
|
34
34
|
|
35
|
-
```
|
35
|
+
```text
|
36
36
|
8569 2478 0383 3437
|
37
37
|
```
|
38
38
|
|
39
39
|
Then sum all of the digits:
|
40
40
|
|
41
|
-
```
|
41
|
+
```text
|
42
42
|
8+5+6+9+2+4+7+8+0+3+8+3+3+4+3+7 = 80
|
43
43
|
```
|
44
44
|
|
@@ -46,19 +46,19 @@ If the sum is evenly divisible by 10, then the number is valid. This number is v
|
|
46
46
|
|
47
47
|
## Example 2: invalid credit card number
|
48
48
|
|
49
|
-
```
|
49
|
+
```text
|
50
50
|
8273 1232 7352 0569
|
51
51
|
```
|
52
52
|
|
53
53
|
Double the second digits, starting from the right
|
54
54
|
|
55
|
-
```
|
55
|
+
```text
|
56
56
|
7253 2262 5312 0539
|
57
57
|
```
|
58
58
|
|
59
59
|
Sum the digits
|
60
60
|
|
61
|
-
```
|
61
|
+
```text
|
62
62
|
7+2+5+3+2+2+6+2+5+3+1+2+0+5+3+9 = 57
|
63
63
|
```
|
64
64
|
|
@@ -78,15 +78,13 @@ If you would like color output, you can `require 'minitest/pride'` in
|
|
78
78
|
the test file, or note the alternative instruction, below, for running
|
79
79
|
the test file.
|
80
80
|
|
81
|
-
|
82
|
-
directory. For example, if the test suite is called
|
83
|
-
`hello_world_test.rb`, you can run the following command:
|
81
|
+
Run the tests from the exercise directory using the following command:
|
84
82
|
|
85
|
-
ruby
|
83
|
+
ruby luhn_test.rb
|
86
84
|
|
87
85
|
To include color from the command line:
|
88
86
|
|
89
|
-
ruby -r minitest/pride
|
87
|
+
ruby -r minitest/pride luhn_test.rb
|
90
88
|
|
91
89
|
|
92
90
|
## Source
|
@@ -5,13 +5,15 @@ that matrix.
|
|
5
5
|
|
6
6
|
So given a string with embedded newlines like:
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
```text
|
9
|
+
9 8 7
|
10
|
+
5 3 2
|
11
|
+
6 6 7
|
12
|
+
```
|
11
13
|
|
12
14
|
representing this matrix:
|
13
15
|
|
14
|
-
```
|
16
|
+
```text
|
15
17
|
0 1 2
|
16
18
|
|---------
|
17
19
|
0 | 9 8 7
|
@@ -52,15 +54,13 @@ If you would like color output, you can `require 'minitest/pride'` in
|
|
52
54
|
the test file, or note the alternative instruction, below, for running
|
53
55
|
the test file.
|
54
56
|
|
55
|
-
|
56
|
-
directory. For example, if the test suite is called
|
57
|
-
`hello_world_test.rb`, you can run the following command:
|
57
|
+
Run the tests from the exercise directory using the following command:
|
58
58
|
|
59
|
-
ruby
|
59
|
+
ruby matrix_test.rb
|
60
60
|
|
61
61
|
To include color from the command line:
|
62
62
|
|
63
|
-
ruby -r minitest/pride
|
63
|
+
ruby -r minitest/pride matrix_test.rb
|
64
64
|
|
65
65
|
|
66
66
|
## Source
|