trackler 2.2.0.2 → 2.2.0.3
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/fixtures/deprecation-fixtures/tracks/repo-nope/config.json +2 -0
- data/fixtures/deprecation-fixtures/tracks/repo-yepp/config.json +3 -0
- data/lib/trackler/track.rb +1 -1
- data/lib/trackler/version.rb +1 -1
- data/tracks/csharp/config/exercise_readme.go.tmpl +16 -0
- data/tracks/csharp/exercises/accumulate/README.md +44 -0
- data/tracks/csharp/exercises/acronym/README.md +21 -0
- data/tracks/csharp/exercises/all-your-base/README.md +41 -0
- data/tracks/csharp/exercises/allergies/README.md +46 -0
- data/tracks/csharp/exercises/alphametics/README.md +48 -0
- data/tracks/csharp/exercises/anagram/README.md +19 -0
- data/tracks/csharp/exercises/atbash-cipher/README.md +40 -0
- data/tracks/csharp/exercises/bank-account/README.md +41 -0
- data/tracks/csharp/exercises/beer-song/README.md +336 -0
- data/tracks/csharp/exercises/binary-search-tree/README.md +66 -0
- data/tracks/csharp/exercises/binary-search/README.md +47 -0
- data/tracks/csharp/exercises/bob/README.md +24 -0
- data/tracks/csharp/exercises/book-store/README.md +80 -0
- data/tracks/csharp/exercises/bowling/README.md +59 -0
- data/tracks/csharp/exercises/bracket-push/README.md +16 -0
- data/tracks/csharp/exercises/change/README.md +29 -0
- data/tracks/csharp/exercises/circular-buffer/README.md +56 -0
- data/tracks/csharp/exercises/clock/README.md +25 -0
- data/tracks/csharp/exercises/connect/README.md +40 -0
- data/tracks/csharp/exercises/crypto-square/README.md +80 -0
- data/tracks/csharp/exercises/custom-set/README.md +23 -0
- data/tracks/csharp/exercises/diamond/README.md +75 -0
- data/tracks/csharp/exercises/difference-of-squares/README.md +30 -0
- data/tracks/csharp/exercises/diffie-hellman/README.md +55 -0
- data/tracks/csharp/exercises/dominoes/README.md +24 -0
- data/tracks/csharp/exercises/dot-dsl/README.md +37 -0
- data/tracks/csharp/exercises/error-handling/README.md +19 -0
- data/tracks/csharp/exercises/etl/README.md +57 -0
- data/tracks/csharp/exercises/flatten-array/README.md +24 -0
- data/tracks/csharp/exercises/food-chain/README.md +80 -0
- data/tracks/csharp/exercises/forth/README.md +39 -0
- data/tracks/csharp/exercises/gigasecond/README.md +17 -0
- data/tracks/csharp/exercises/go-counting/README.md +43 -0
- data/tracks/csharp/exercises/grade-school/README.md +48 -0
- data/tracks/csharp/exercises/grains/README.md +40 -0
- data/tracks/csharp/exercises/grep/README.md +77 -0
- data/tracks/csharp/exercises/hamming/README.md +48 -0
- data/tracks/csharp/exercises/hangman/README.md +32 -0
- data/tracks/csharp/exercises/hello-world/README.md +27 -0
- data/tracks/csharp/exercises/house/README.md +123 -0
- data/tracks/csharp/exercises/isogram/README.md +25 -0
- data/tracks/csharp/exercises/kindergarten-garden/README.md +72 -0
- data/tracks/csharp/exercises/largest-series-product/README.md +26 -0
- data/tracks/csharp/exercises/leap/README.md +39 -0
- data/tracks/csharp/exercises/ledger/README.md +24 -0
- data/tracks/csharp/exercises/linked-list/README.md +40 -0
- data/tracks/csharp/exercises/list-ops/README.md +19 -0
- data/tracks/csharp/exercises/luhn/README.md +77 -0
- data/tracks/csharp/exercises/markdown/README.md +28 -0
- data/tracks/csharp/exercises/matrix/README.md +51 -0
- data/tracks/csharp/exercises/meetup/README.md +36 -0
- data/tracks/csharp/exercises/minesweeper/README.md +36 -0
- data/tracks/csharp/exercises/nth-prime/README.md +29 -0
- data/tracks/csharp/exercises/nucleotide-count/README.md +43 -0
- data/tracks/csharp/exercises/ocr-numbers/README.md +91 -0
- data/tracks/csharp/exercises/palindrome-products/README.md +51 -0
- data/tracks/csharp/exercises/pangram/README.md +21 -0
- data/tracks/csharp/exercises/parallel-letter-frequency/README.md +17 -0
- data/tracks/csharp/exercises/pascals-triangle/README.md +27 -0
- data/tracks/csharp/exercises/perfect-numbers/README.md +30 -0
- data/tracks/csharp/exercises/phone-number/README.md +40 -0
- data/tracks/csharp/exercises/pig-latin/README.md +30 -0
- data/tracks/csharp/exercises/poker/README.md +18 -0
- data/tracks/csharp/exercises/pov/README.md +52 -0
- data/tracks/csharp/exercises/prime-factors/README.md +42 -0
- data/tracks/csharp/exercises/protein-translation/README.md +55 -0
- data/tracks/csharp/exercises/proverb/README.md +28 -0
- data/tracks/csharp/exercises/pythagorean-triplet/README.md +30 -0
- data/tracks/csharp/exercises/queen-attack/README.md +39 -0
- data/tracks/csharp/exercises/rail-fence-cipher/README.md +66 -0
- data/tracks/csharp/exercises/raindrops/README.md +30 -0
- data/tracks/csharp/exercises/react/README.md +29 -0
- data/tracks/csharp/exercises/rectangles/README.md +73 -0
- data/tracks/csharp/exercises/rna-transcription/README.md +31 -0
- data/tracks/csharp/exercises/robot-name/README.md +28 -0
- data/tracks/csharp/exercises/robot-simulator/README.md +40 -0
- data/tracks/csharp/exercises/roman-numerals/README.md +59 -0
- data/tracks/csharp/exercises/rotational-cipher/README.md +42 -0
- data/tracks/csharp/exercises/run-length-encoding/README.md +36 -0
- data/tracks/csharp/exercises/saddle-points/README.md +44 -0
- data/tracks/csharp/exercises/say/README.md +75 -0
- data/tracks/csharp/exercises/scale-generator/README.md +66 -0
- data/tracks/csharp/exercises/scrabble-score/README.md +50 -0
- data/tracks/csharp/exercises/secret-handshake/README.md +41 -0
- data/tracks/csharp/exercises/series/README.md +33 -0
- data/tracks/csharp/exercises/sgf-parsing/README.md +78 -0
- data/tracks/csharp/exercises/sieve/README.md +40 -0
- data/tracks/csharp/exercises/simple-cipher/README.md +96 -0
- data/tracks/csharp/exercises/simple-linked-list/README.md +38 -0
- data/tracks/csharp/exercises/space-age/README.md +30 -0
- data/tracks/csharp/exercises/strain/README.md +46 -0
- data/tracks/csharp/exercises/sublist/README.md +32 -0
- data/tracks/csharp/exercises/sum-of-multiples/README.md +28 -0
- data/tracks/csharp/exercises/tournament/README.md +74 -0
- data/tracks/csharp/exercises/transpose/README.md +71 -0
- data/tracks/csharp/exercises/tree-building/README.md +36 -0
- data/tracks/csharp/exercises/triangle/README.md +32 -0
- data/tracks/csharp/exercises/twelve-days/README.md +45 -0
- data/tracks/csharp/exercises/two-bucket/README.md +42 -0
- data/tracks/csharp/exercises/variable-length-quantity/README.md +50 -0
- data/tracks/csharp/exercises/word-count/README.md +25 -0
- data/tracks/csharp/exercises/word-search/README.md +43 -0
- data/tracks/csharp/exercises/wordy/README.md +73 -0
- data/tracks/csharp/exercises/zebra-puzzle/README.md +43 -0
- data/tracks/csharp/exercises/zipper/README.md +41 -0
- data/tracks/dart/config/exercise_readme.go.tmpl +16 -0
- data/tracks/dart/exercises/bob/README.md +18 -0
- data/tracks/dart/exercises/difference-of-squares/README.md +19 -0
- data/tracks/dart/exercises/gigasecond/README.md +11 -0
- data/tracks/dart/exercises/hamming/README.md +42 -0
- data/tracks/dart/exercises/hello-world/README.md +21 -0
- data/tracks/dart/exercises/leap/README.md +33 -0
- data/tracks/dart/exercises/rna-transcription/README.md +25 -0
- data/tracks/delphi/config.json +25 -32
- data/tracks/elixir/config.json +255 -3
- data/tracks/elixir/config/exercise_readme.go.tmpl +16 -0
- data/tracks/elixir/exercises/accumulate/README.md +72 -0
- data/tracks/elixir/exercises/acronym/README.md +52 -0
- data/tracks/elixir/exercises/all-your-base/README.md +72 -0
- data/tracks/elixir/exercises/allergies/README.md +74 -0
- data/tracks/elixir/exercises/anagram/README.md +50 -0
- data/tracks/elixir/exercises/atbash-cipher/README.md +71 -0
- data/tracks/elixir/exercises/bank-account/README.md +67 -0
- data/tracks/elixir/exercises/beer-song/README.md +364 -0
- data/tracks/elixir/exercises/binary-search/README.md +78 -0
- data/tracks/elixir/exercises/binary/README.md +72 -0
- data/tracks/elixir/exercises/bob/README.md +55 -0
- data/tracks/elixir/exercises/bowling/README.md +90 -0
- data/tracks/elixir/exercises/bowling/bowling_test.exs +91 -18
- data/tracks/elixir/exercises/bowling/example.exs +4 -4
- data/tracks/elixir/exercises/bracket-push/README.md +47 -0
- data/tracks/elixir/exercises/change/README.md +60 -0
- data/tracks/elixir/exercises/clock/README.md +50 -0
- data/tracks/elixir/exercises/collatz-conjecture/README.md +70 -0
- data/tracks/elixir/exercises/connect/README.md +71 -0
- data/tracks/elixir/exercises/crypto-square/README.md +111 -0
- data/tracks/elixir/exercises/custom-set/README.md +48 -0
- data/tracks/elixir/exercises/diamond/README.md +96 -0
- data/tracks/elixir/exercises/difference-of-squares/README.md +56 -0
- data/tracks/elixir/exercises/diffie-hellman/README.md +93 -0
- data/tracks/elixir/exercises/dominoes/README.md +55 -0
- data/tracks/elixir/exercises/dot-dsl/README.md +65 -0
- data/tracks/elixir/exercises/etl/README.md +88 -0
- data/tracks/elixir/exercises/flatten-array/README.md +55 -0
- data/tracks/elixir/exercises/forth/README.md +66 -0
- data/tracks/elixir/exercises/gigasecond/README.md +48 -0
- data/tracks/elixir/exercises/grade-school/README.md +79 -0
- data/tracks/elixir/exercises/grains/README.md +71 -0
- data/tracks/elixir/exercises/grep/README.md +108 -0
- data/tracks/elixir/exercises/hamming/README.md +79 -0
- data/tracks/elixir/exercises/hello-world/README.md +58 -0
- data/tracks/elixir/exercises/hexadecimal/README.md +51 -0
- data/tracks/elixir/exercises/isogram/README.md +56 -0
- data/tracks/elixir/exercises/kindergarten-garden/README.md +103 -0
- data/tracks/elixir/exercises/largest-series-product/README.md +57 -0
- data/tracks/elixir/exercises/leap/README.md +70 -0
- data/tracks/elixir/exercises/list-ops/README.md +47 -0
- data/tracks/elixir/exercises/luhn/README.md +108 -0
- data/tracks/elixir/exercises/markdown/README.md +55 -0
- data/tracks/elixir/exercises/matrix/README.md +82 -0
- data/tracks/elixir/exercises/meetup/README.md +67 -0
- data/tracks/elixir/exercises/minesweeper/README.md +67 -0
- data/tracks/elixir/exercises/nth-prime/README.md +52 -0
- data/tracks/elixir/exercises/nucleotide-count/README.md +70 -0
- data/tracks/elixir/exercises/ocr-numbers/README.md +122 -0
- data/tracks/elixir/exercises/palindrome-products/README.md +77 -0
- data/tracks/elixir/exercises/pangram/README.md +52 -0
- data/tracks/elixir/exercises/parallel-letter-frequency/README.md +48 -0
- data/tracks/elixir/exercises/pascals-triangle/README.md +58 -0
- data/tracks/elixir/exercises/perfect-numbers/README.md +61 -0
- data/tracks/elixir/exercises/phone-number/README.md +71 -0
- data/tracks/elixir/exercises/pig-latin/README.md +61 -0
- data/tracks/elixir/exercises/poker/README.md +49 -0
- data/tracks/elixir/exercises/prime-factors/README.md +73 -0
- data/tracks/elixir/exercises/protein-translation/README.md +86 -0
- data/tracks/elixir/exercises/pythagorean-triplet/README.md +61 -0
- data/tracks/elixir/exercises/queen-attack/README.md +70 -0
- data/tracks/elixir/exercises/rail-fence-cipher/README.md +97 -0
- data/tracks/elixir/exercises/raindrops/README.md +61 -0
- data/tracks/elixir/exercises/rna-transcription/README.md +62 -0
- data/tracks/elixir/exercises/robot-simulator/README.md +71 -0
- data/tracks/elixir/exercises/roman-numerals/README.md +86 -0
- data/tracks/elixir/exercises/rotational-cipher/README.md +73 -0
- data/tracks/elixir/exercises/run-length-encoding/README.md +67 -0
- data/tracks/elixir/exercises/saddle-points/README.md +70 -0
- data/tracks/elixir/exercises/say/README.md +106 -0
- data/tracks/elixir/exercises/scale-generator/README.md +97 -0
- data/tracks/elixir/exercises/scrabble-score/README.md +81 -0
- data/tracks/elixir/exercises/secret-handshake/README.md +94 -0
- data/tracks/elixir/exercises/series/README.md +64 -0
- data/tracks/elixir/exercises/sieve/README.md +71 -0
- data/tracks/elixir/exercises/simple-cipher/README.md +127 -0
- data/tracks/elixir/exercises/simple-linked-list/README.md +65 -0
- data/tracks/elixir/exercises/space-age/README.md +61 -0
- data/tracks/elixir/exercises/strain/README.md +80 -0
- data/tracks/elixir/exercises/sublist/README.md +58 -0
- data/tracks/elixir/exercises/sum-of-multiples/README.md +55 -0
- data/tracks/elixir/exercises/tournament/README.md +110 -0
- data/tracks/elixir/exercises/triangle/README.md +63 -0
- data/tracks/elixir/exercises/twelve-days/README.md +72 -0
- data/tracks/elixir/exercises/word-count/README.md +56 -0
- data/tracks/elixir/exercises/wordy/README.md +100 -0
- data/tracks/elixir/exercises/zipper/README.md +68 -0
- data/tracks/fsharp/config/exercise_readme.go.tmpl +16 -0
- data/tracks/fsharp/exercises/accumulate/README.md +40 -0
- data/tracks/fsharp/exercises/acronym/README.md +15 -0
- data/tracks/fsharp/exercises/all-your-base/README.md +35 -0
- data/tracks/fsharp/exercises/allergies/README.md +37 -0
- data/tracks/fsharp/exercises/alphametics/README.md +41 -0
- data/tracks/fsharp/exercises/anagram/README.md +13 -0
- data/tracks/fsharp/exercises/atbash-cipher/README.md +34 -0
- data/tracks/fsharp/exercises/bank-account/README.md +30 -0
- data/tracks/fsharp/exercises/beer-song/README.md +331 -0
- data/tracks/fsharp/exercises/binary-search-tree/README.md +60 -0
- data/tracks/fsharp/exercises/binary-search/README.md +41 -0
- data/tracks/fsharp/exercises/bob/README.md +18 -0
- data/tracks/fsharp/exercises/book-store/README.md +74 -0
- data/tracks/fsharp/exercises/bowling/README.md +53 -0
- data/tracks/fsharp/exercises/bracket-push/README.md +10 -0
- data/tracks/fsharp/exercises/change/README.md +23 -0
- data/tracks/fsharp/exercises/circular-buffer/README.md +50 -0
- data/tracks/fsharp/exercises/clock/README.md +13 -0
- data/tracks/fsharp/exercises/connect/README.md +34 -0
- data/tracks/fsharp/exercises/crypto-square/README.md +74 -0
- data/tracks/fsharp/exercises/custom-set/README.md +11 -0
- data/tracks/fsharp/exercises/diamond/README.md +62 -0
- data/tracks/fsharp/exercises/difference-of-squares/README.md +25 -0
- data/tracks/fsharp/exercises/diffie-hellman/README.md +49 -0
- data/tracks/fsharp/exercises/dominoes/README.md +18 -0
- data/tracks/fsharp/exercises/dot-dsl/README.md +28 -0
- data/tracks/fsharp/exercises/error-handling/README.md +13 -0
- data/tracks/fsharp/exercises/etl/README.md +51 -0
- data/tracks/fsharp/exercises/food-chain/README.md +74 -0
- data/tracks/fsharp/exercises/forth/README.md +29 -0
- data/tracks/fsharp/exercises/gigasecond/README.md +15 -0
- data/tracks/fsharp/exercises/go-counting/README.md +37 -0
- data/tracks/fsharp/exercises/grade-school/README.md +47 -0
- data/tracks/fsharp/exercises/grains/README.md +39 -0
- data/tracks/fsharp/exercises/grep/README.md +71 -0
- data/tracks/fsharp/exercises/hamming/README.md +42 -0
- data/tracks/fsharp/exercises/hangman/README.md +21 -0
- data/tracks/fsharp/exercises/hello-world/README.md +21 -0
- data/tracks/fsharp/exercises/house/README.md +117 -0
- data/tracks/fsharp/exercises/isogram/README.md +19 -0
- data/tracks/fsharp/exercises/kindergarten-garden/README.md +66 -0
- data/tracks/fsharp/exercises/largest-series-product/README.md +20 -0
- data/tracks/fsharp/exercises/leap/README.md +33 -0
- data/tracks/fsharp/exercises/ledger/README.md +18 -0
- data/tracks/fsharp/exercises/lens-person/README.md +15 -0
- data/tracks/fsharp/exercises/linked-list/README.md +50 -0
- data/tracks/fsharp/exercises/list-ops/README.md +10 -0
- data/tracks/fsharp/exercises/luhn/README.md +71 -0
- data/tracks/fsharp/exercises/markdown/README.md +18 -0
- data/tracks/fsharp/exercises/matrix/README.md +45 -0
- data/tracks/fsharp/exercises/meetup/README.md +30 -0
- data/tracks/fsharp/exercises/minesweeper/README.md +30 -0
- data/tracks/fsharp/exercises/nth-prime/README.md +21 -0
- data/tracks/fsharp/exercises/nucleotide-count/README.md +33 -0
- data/tracks/fsharp/exercises/ocr-numbers/README.md +85 -0
- data/tracks/fsharp/exercises/palindrome-products/README.md +44 -0
- data/tracks/fsharp/exercises/pangram/README.md +15 -0
- data/tracks/fsharp/exercises/parallel-letter-frequency/README.md +15 -0
- data/tracks/fsharp/exercises/pascals-triangle/README.md +21 -0
- data/tracks/fsharp/exercises/perfect-numbers/README.md +24 -0
- data/tracks/fsharp/exercises/phone-number/README.md +34 -0
- data/tracks/fsharp/exercises/pig-latin/README.md +24 -0
- data/tracks/fsharp/exercises/poker/README.md +15 -0
- data/tracks/fsharp/exercises/pov/README.md +46 -0
- data/tracks/fsharp/exercises/prime-factors/README.md +36 -0
- data/tracks/fsharp/exercises/protein-translation/README.md +49 -0
- data/tracks/fsharp/exercises/proverb/README.md +22 -0
- data/tracks/fsharp/exercises/pythagorean-triplet/README.md +24 -0
- data/tracks/fsharp/exercises/queen-attack/README.md +33 -0
- data/tracks/fsharp/exercises/rail-fence-cipher/README.md +60 -0
- data/tracks/fsharp/exercises/raindrops/README.md +27 -0
- data/tracks/fsharp/exercises/react/README.md +19 -0
- data/tracks/fsharp/exercises/rectangles/README.md +67 -0
- data/tracks/fsharp/exercises/rna-transcription/README.md +29 -0
- data/tracks/fsharp/exercises/robot-name/README.md +22 -0
- data/tracks/fsharp/exercises/robot-simulator/README.md +34 -0
- data/tracks/fsharp/exercises/roman-numerals/README.md +49 -0
- data/tracks/fsharp/exercises/run-length-encoding/README.md +30 -0
- data/tracks/fsharp/exercises/saddle-points/README.md +33 -0
- data/tracks/fsharp/exercises/say/README.md +69 -0
- data/tracks/fsharp/exercises/scale-generator/README.md +60 -0
- data/tracks/fsharp/exercises/scrabble-score/README.md +44 -0
- data/tracks/fsharp/exercises/secret-handshake/README.md +35 -0
- data/tracks/fsharp/exercises/series/README.md +27 -0
- data/tracks/fsharp/exercises/sgf-parsing/README.md +68 -0
- data/tracks/fsharp/exercises/sieve/README.md +34 -0
- data/tracks/fsharp/exercises/simple-cipher/README.md +90 -0
- data/tracks/fsharp/exercises/simple-linked-list/README.md +28 -0
- data/tracks/fsharp/exercises/space-age/README.md +28 -0
- data/tracks/fsharp/exercises/strain/README.md +40 -0
- data/tracks/fsharp/exercises/sublist/README.md +21 -0
- data/tracks/fsharp/exercises/sum-of-multiples/README.md +18 -0
- data/tracks/fsharp/exercises/tournament/README.md +68 -0
- data/tracks/fsharp/exercises/transpose/README.md +65 -0
- data/tracks/fsharp/exercises/tree-building/README.md +30 -0
- data/tracks/fsharp/exercises/triangle/README.md +26 -0
- data/tracks/fsharp/exercises/twelve-days/README.md +39 -0
- data/tracks/fsharp/exercises/two-bucket/README.md +36 -0
- data/tracks/fsharp/exercises/variable-length-quantity/README.md +39 -0
- data/tracks/fsharp/exercises/word-count/README.md +19 -0
- data/tracks/fsharp/exercises/word-search/README.md +30 -0
- data/tracks/fsharp/exercises/wordy/README.md +68 -0
- data/tracks/fsharp/exercises/zebra-puzzle/README.md +32 -0
- data/tracks/fsharp/exercises/zipper/README.md +31 -0
- data/tracks/haskell/README.md +2 -2
- data/tracks/javascript/config.json +232 -4
- data/tracks/kotlin/config.json +8 -1
- data/tracks/kotlin/exercises/rotational-cipher/build.gradle +28 -0
- data/tracks/kotlin/exercises/rotational-cipher/src/example/kotlin/RotationalCipher.kt +18 -0
- data/tracks/kotlin/exercises/rotational-cipher/src/main/kotlin/.keep +0 -0
- data/tracks/kotlin/exercises/rotational-cipher/src/test/kotlin/RotationalCipherTest.kt +81 -0
- data/tracks/kotlin/exercises/settings.gradle +1 -0
- data/tracks/powershell/config/exercise_readme.go.tmpl +16 -0
- data/tracks/powershell/exercises/hamming/README.md +42 -0
- data/tracks/powershell/exercises/hello-world/README.md +21 -0
- data/tracks/purescript/README.md +4 -4
- data/tracks/scala/config.json +266 -6
- data/tracks/scala/config/exercise_readme.go.tmpl +16 -0
- data/tracks/scala/exercises/accumulate/README.md +46 -0
- data/tracks/scala/exercises/acronym/README.md +26 -0
- data/tracks/scala/exercises/all-your-base/README.md +46 -0
- data/tracks/scala/exercises/allergies/README.md +48 -0
- data/tracks/scala/exercises/alphametics/README.md +46 -0
- data/tracks/scala/exercises/anagram/README.md +24 -0
- data/tracks/scala/exercises/atbash-cipher/README.md +45 -0
- data/tracks/scala/exercises/bank-account/README.md +54 -0
- data/tracks/scala/exercises/beer-song/README.md +338 -0
- data/tracks/scala/exercises/binary-search-tree/README.md +71 -0
- data/tracks/scala/exercises/binary-search/README.md +52 -0
- data/tracks/scala/exercises/binary/README.md +46 -0
- data/tracks/scala/exercises/bob/README.md +29 -0
- data/tracks/scala/exercises/book-store/README.md +85 -0
- data/tracks/scala/exercises/bowling/README.md +64 -0
- data/tracks/scala/exercises/bracket-push/README.md +21 -0
- data/tracks/scala/exercises/change/README.md +34 -0
- data/tracks/scala/exercises/clock/README.md +24 -0
- data/tracks/scala/exercises/connect/README.md +53 -0
- data/tracks/scala/exercises/crypto-square/README.md +85 -0
- data/tracks/scala/exercises/custom-set/README.md +22 -0
- data/tracks/scala/exercises/difference-of-squares/README.md +30 -0
- data/tracks/scala/exercises/dominoes/README.md +29 -0
- data/tracks/scala/exercises/etl/README.md +62 -0
- data/tracks/scala/exercises/food-chain/README.md +81 -0
- data/tracks/scala/exercises/forth/README.md +40 -0
- data/tracks/scala/exercises/gigasecond/README.md +26 -0
- data/tracks/scala/exercises/grade-school/README.md +53 -0
- data/tracks/scala/exercises/grains/README.md +45 -0
- data/tracks/scala/exercises/hamming/README.md +112 -0
- data/tracks/scala/exercises/hello-world/README.md +38 -0
- data/tracks/scala/exercises/hexadecimal/README.md +25 -0
- data/tracks/scala/exercises/house/README.md +124 -0
- data/tracks/scala/exercises/isogram/README.md +30 -0
- data/tracks/scala/exercises/kindergarten-garden/README.md +77 -0
- data/tracks/scala/exercises/largest-series-product/README.md +31 -0
- data/tracks/scala/exercises/leap/README.md +50 -0
- data/tracks/scala/exercises/lens-person/README.md +11 -7
- data/tracks/scala/exercises/linked-list/README.md +45 -0
- data/tracks/scala/exercises/luhn/README.md +82 -0
- data/tracks/scala/exercises/matrix/README.md +56 -0
- data/tracks/scala/exercises/meetup/README.md +41 -0
- data/tracks/scala/exercises/minesweeper/README.md +41 -0
- data/tracks/scala/exercises/nth-prime/README.md +26 -0
- data/tracks/scala/exercises/nucleotide-count/README.md +107 -0
- data/tracks/scala/exercises/ocr-numbers/README.md +96 -0
- data/tracks/scala/exercises/octal/README.md +60 -0
- data/tracks/scala/exercises/palindrome-products/README.md +51 -0
- data/tracks/scala/exercises/pangram/README.md +26 -0
- data/tracks/scala/exercises/parallel-letter-frequency/README.md +50 -0
- data/tracks/scala/exercises/pascals-triangle/README.md +32 -0
- data/tracks/scala/exercises/perfect-numbers/README.md +35 -0
- data/tracks/scala/exercises/phone-number/README.md +56 -0
- data/tracks/scala/exercises/pig-latin/README.md +35 -0
- data/tracks/scala/exercises/prime-factors/README.md +47 -0
- data/tracks/scala/exercises/protein-translation/README.md +60 -0
- data/tracks/scala/exercises/pythagorean-triplet/README.md +35 -0
- data/tracks/scala/exercises/queen-attack/README.md +44 -0
- data/tracks/scala/exercises/rail-fence-cipher/README.md +71 -0
- data/tracks/scala/exercises/raindrops/README.md +35 -0
- data/tracks/scala/exercises/rna-transcription/README.md +36 -0
- data/tracks/scala/exercises/robot-name/README.md +40 -0
- data/tracks/scala/exercises/robot-simulator/README.md +45 -0
- data/tracks/scala/exercises/roman-numerals/README.md +72 -0
- data/tracks/scala/exercises/run-length-encoding/README.md +41 -0
- data/tracks/scala/exercises/saddle-points/README.md +44 -0
- data/tracks/scala/exercises/say/README.md +80 -0
- data/tracks/scala/exercises/scrabble-score/README.md +55 -0
- data/tracks/scala/exercises/secret-handshake/README.md +46 -0
- data/tracks/scala/exercises/series/README.md +38 -0
- data/tracks/scala/exercises/sgf-parsing/README.md +79 -0
- data/tracks/scala/exercises/sieve/README.md +45 -0
- data/tracks/scala/exercises/simple-cipher/README.md +101 -0
- data/tracks/scala/exercises/simple-linked-list/README.md +39 -0
- data/tracks/scala/exercises/space-age/README.md +35 -0
- data/tracks/scala/exercises/spiral-matrix/README.md +41 -0
- data/tracks/scala/exercises/strain/README.md +51 -0
- data/tracks/scala/exercises/sublist/README.md +32 -0
- data/tracks/scala/exercises/sum-of-multiples/README.md +29 -0
- data/tracks/scala/exercises/triangle/README.md +37 -0
- data/tracks/scala/exercises/trinary/README.md +39 -0
- data/tracks/scala/exercises/variable-length-quantity/README.md +54 -0
- data/tracks/scala/exercises/word-count/README.md +30 -0
- data/tracks/scala/exercises/wordy/README.md +74 -0
- data/tracks/scala/exercises/zebra-puzzle/README.md +43 -0
- data/tracks/scala/exercises/zipper/README.md +42 -0
- metadata +401 -1
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Markdown
|
|
2
|
+
|
|
3
|
+
Refactor a Markdown parser.
|
|
4
|
+
|
|
5
|
+
The markdown exercise is a refactoring exercise. There is code that parses a
|
|
6
|
+
given string with [Markdown
|
|
7
|
+
syntax](https://guides.github.com/features/mastering-markdown/) and returns the
|
|
8
|
+
associated HTML for that string. Even though this code is confusingly written
|
|
9
|
+
and hard to follow, somehow it works and all the tests are passing! Your
|
|
10
|
+
challenge is to re-write this code to make it easier to read and maintain
|
|
11
|
+
while still making sure that all the tests keep passing.
|
|
12
|
+
|
|
13
|
+
It would be helpful if you made notes of what you did in your refactoring in
|
|
14
|
+
comments so reviewers can see that, but it isn't strictly necessary. The most
|
|
15
|
+
important thing is to make the code better!
|
|
16
|
+
|
|
17
|
+
## Running tests
|
|
18
|
+
|
|
19
|
+
Execute the tests with:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
$ elixir bob_test.exs
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
(Replace `bob_test.exs` with the name of the test file.)
|
|
26
|
+
|
|
27
|
+
### Pending tests
|
|
28
|
+
|
|
29
|
+
In the test suites, all but the first test have been skipped.
|
|
30
|
+
|
|
31
|
+
Once you get a test passing, you can unskip the next one by
|
|
32
|
+
commenting out the relevant `@tag :pending` with a `#` symbol.
|
|
33
|
+
|
|
34
|
+
For example:
|
|
35
|
+
|
|
36
|
+
```elixir
|
|
37
|
+
# @tag :pending
|
|
38
|
+
test "shouting" do
|
|
39
|
+
assert Bob.hey("WATCH OUT!") == "Whoa, chill out!"
|
|
40
|
+
end
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Or, you can enable all the tests by commenting out the
|
|
44
|
+
`ExUnit.configure` line in the test suite.
|
|
45
|
+
|
|
46
|
+
```elixir
|
|
47
|
+
# ExUnit.configure exclude: :pending, trace: true
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
For more detailed information about the Elixir track, please
|
|
51
|
+
see the [help page](http://exercism.io/languages/elixir).
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
## Submitting Incomplete Solutions
|
|
55
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Matrix
|
|
2
|
+
|
|
3
|
+
Given a string representing a matrix of numbers, return the rows and columns of
|
|
4
|
+
that matrix.
|
|
5
|
+
|
|
6
|
+
So given a string with embedded newlines like:
|
|
7
|
+
|
|
8
|
+
> 9 8 7
|
|
9
|
+
> 5 3 2
|
|
10
|
+
> 6 6 7
|
|
11
|
+
|
|
12
|
+
representing this matrix:
|
|
13
|
+
|
|
14
|
+
```plain
|
|
15
|
+
0 1 2
|
|
16
|
+
|---------
|
|
17
|
+
0 | 9 8 7
|
|
18
|
+
1 | 5 3 2
|
|
19
|
+
2 | 6 6 7
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
your code should be able to spit out:
|
|
23
|
+
|
|
24
|
+
- A list of the rows, reading each row left-to-right while moving
|
|
25
|
+
top-to-bottom across the rows,
|
|
26
|
+
- A list of the columns, reading each column top-to-bottom while moving
|
|
27
|
+
from left-to-right.
|
|
28
|
+
|
|
29
|
+
The rows for our example matrix:
|
|
30
|
+
|
|
31
|
+
- 9, 8, 7
|
|
32
|
+
- 5, 3, 2
|
|
33
|
+
- 6, 6, 7
|
|
34
|
+
|
|
35
|
+
And its columns:
|
|
36
|
+
|
|
37
|
+
- 9, 5, 6
|
|
38
|
+
- 8, 3, 6
|
|
39
|
+
- 7, 2, 7
|
|
40
|
+
|
|
41
|
+
## Running tests
|
|
42
|
+
|
|
43
|
+
Execute the tests with:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
$ elixir bob_test.exs
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
(Replace `bob_test.exs` with the name of the test file.)
|
|
50
|
+
|
|
51
|
+
### Pending tests
|
|
52
|
+
|
|
53
|
+
In the test suites, all but the first test have been skipped.
|
|
54
|
+
|
|
55
|
+
Once you get a test passing, you can unskip the next one by
|
|
56
|
+
commenting out the relevant `@tag :pending` with a `#` symbol.
|
|
57
|
+
|
|
58
|
+
For example:
|
|
59
|
+
|
|
60
|
+
```elixir
|
|
61
|
+
# @tag :pending
|
|
62
|
+
test "shouting" do
|
|
63
|
+
assert Bob.hey("WATCH OUT!") == "Whoa, chill out!"
|
|
64
|
+
end
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Or, you can enable all the tests by commenting out the
|
|
68
|
+
`ExUnit.configure` line in the test suite.
|
|
69
|
+
|
|
70
|
+
```elixir
|
|
71
|
+
# ExUnit.configure exclude: :pending, trace: true
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
For more detailed information about the Elixir track, please
|
|
75
|
+
see the [help page](http://exercism.io/languages/elixir).
|
|
76
|
+
|
|
77
|
+
## Source
|
|
78
|
+
|
|
79
|
+
Warmup to the `saddle-points` warmup. [http://jumpstartlab.com](http://jumpstartlab.com)
|
|
80
|
+
|
|
81
|
+
## Submitting Incomplete Solutions
|
|
82
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Meetup
|
|
2
|
+
|
|
3
|
+
Calculate the date of meetups.
|
|
4
|
+
|
|
5
|
+
Typically meetups happen on the same day of the week. In this exercise, you will take
|
|
6
|
+
a description of a meetup date, and return the actual meetup date.
|
|
7
|
+
|
|
8
|
+
Examples of general descriptions are:
|
|
9
|
+
|
|
10
|
+
- the first Monday of January 2017
|
|
11
|
+
- the third Tuesday of January 2017
|
|
12
|
+
- the Wednesteenth of January 2017
|
|
13
|
+
- the last Thursday of January 2017
|
|
14
|
+
|
|
15
|
+
Note that "Monteenth", "Tuesteenth", etc are all made up words. There
|
|
16
|
+
was a meetup whose members realized that there are exactly 7 numbered days in a month that
|
|
17
|
+
end in '-teenth'. Therefore, one is guaranteed that each day of the week
|
|
18
|
+
(Monday, Tuesday, ...) will have exactly one date that is named with '-teenth'
|
|
19
|
+
in every month.
|
|
20
|
+
|
|
21
|
+
Given examples of a meetup dates, each containing a month, day, year, and descriptor
|
|
22
|
+
(first, second, teenth, etc), calculate the date of the actual meetup.
|
|
23
|
+
For example, if given "First Monday of January 2017", the correct meetup date is 2017/1/2
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
## Running tests
|
|
27
|
+
|
|
28
|
+
Execute the tests with:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
$ elixir bob_test.exs
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
(Replace `bob_test.exs` with the name of the test file.)
|
|
35
|
+
|
|
36
|
+
### Pending tests
|
|
37
|
+
|
|
38
|
+
In the test suites, all but the first test have been skipped.
|
|
39
|
+
|
|
40
|
+
Once you get a test passing, you can unskip the next one by
|
|
41
|
+
commenting out the relevant `@tag :pending` with a `#` symbol.
|
|
42
|
+
|
|
43
|
+
For example:
|
|
44
|
+
|
|
45
|
+
```elixir
|
|
46
|
+
# @tag :pending
|
|
47
|
+
test "shouting" do
|
|
48
|
+
assert Bob.hey("WATCH OUT!") == "Whoa, chill out!"
|
|
49
|
+
end
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Or, you can enable all the tests by commenting out the
|
|
53
|
+
`ExUnit.configure` line in the test suite.
|
|
54
|
+
|
|
55
|
+
```elixir
|
|
56
|
+
# ExUnit.configure exclude: :pending, trace: true
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
For more detailed information about the Elixir track, please
|
|
60
|
+
see the [help page](http://exercism.io/languages/elixir).
|
|
61
|
+
|
|
62
|
+
## Source
|
|
63
|
+
|
|
64
|
+
Jeremy Hinegardner mentioned a Boulder meetup that happens on the Wednesteenth of every month [https://twitter.com/copiousfreetime](https://twitter.com/copiousfreetime)
|
|
65
|
+
|
|
66
|
+
## Submitting Incomplete Solutions
|
|
67
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Minesweeper
|
|
2
|
+
|
|
3
|
+
Add the numbers to a minesweeper board.
|
|
4
|
+
|
|
5
|
+
Minesweeper is a popular game where the user has to find the mines using
|
|
6
|
+
numeric hints that indicate how many mines are directly adjacent
|
|
7
|
+
(horizontally, vertically, diagonally) to a square.
|
|
8
|
+
|
|
9
|
+
In this exercise you have to create some code that counts the number of
|
|
10
|
+
mines adjacent to a square and transforms boards like this (where `*`
|
|
11
|
+
indicates a mine):
|
|
12
|
+
|
|
13
|
+
+-----+
|
|
14
|
+
| * * |
|
|
15
|
+
| * |
|
|
16
|
+
| * |
|
|
17
|
+
| |
|
|
18
|
+
+-----+
|
|
19
|
+
|
|
20
|
+
into this:
|
|
21
|
+
|
|
22
|
+
+-----+
|
|
23
|
+
|1*3*1|
|
|
24
|
+
|13*31|
|
|
25
|
+
| 2*2 |
|
|
26
|
+
| 111 |
|
|
27
|
+
+-----+
|
|
28
|
+
|
|
29
|
+
## Running tests
|
|
30
|
+
|
|
31
|
+
Execute the tests with:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
$ elixir bob_test.exs
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
(Replace `bob_test.exs` with the name of the test file.)
|
|
38
|
+
|
|
39
|
+
### Pending tests
|
|
40
|
+
|
|
41
|
+
In the test suites, all but the first test have been skipped.
|
|
42
|
+
|
|
43
|
+
Once you get a test passing, you can unskip the next one by
|
|
44
|
+
commenting out the relevant `@tag :pending` with a `#` symbol.
|
|
45
|
+
|
|
46
|
+
For example:
|
|
47
|
+
|
|
48
|
+
```elixir
|
|
49
|
+
# @tag :pending
|
|
50
|
+
test "shouting" do
|
|
51
|
+
assert Bob.hey("WATCH OUT!") == "Whoa, chill out!"
|
|
52
|
+
end
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Or, you can enable all the tests by commenting out the
|
|
56
|
+
`ExUnit.configure` line in the test suite.
|
|
57
|
+
|
|
58
|
+
```elixir
|
|
59
|
+
# ExUnit.configure exclude: :pending, trace: true
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
For more detailed information about the Elixir track, please
|
|
63
|
+
see the [help page](http://exercism.io/languages/elixir).
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
## Submitting Incomplete Solutions
|
|
67
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Nth Prime
|
|
2
|
+
|
|
3
|
+
Given a number n, determine what the nth prime is.
|
|
4
|
+
|
|
5
|
+
By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that
|
|
6
|
+
the 6th prime is 13.
|
|
7
|
+
|
|
8
|
+
If your language provides methods in the standard library to deal with prime
|
|
9
|
+
numbers, pretend they don't exist and implement them yourself.
|
|
10
|
+
|
|
11
|
+
## Running tests
|
|
12
|
+
|
|
13
|
+
Execute the tests with:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
$ elixir bob_test.exs
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
(Replace `bob_test.exs` with the name of the test file.)
|
|
20
|
+
|
|
21
|
+
### Pending tests
|
|
22
|
+
|
|
23
|
+
In the test suites, all but the first test have been skipped.
|
|
24
|
+
|
|
25
|
+
Once you get a test passing, you can unskip the next one by
|
|
26
|
+
commenting out the relevant `@tag :pending` with a `#` symbol.
|
|
27
|
+
|
|
28
|
+
For example:
|
|
29
|
+
|
|
30
|
+
```elixir
|
|
31
|
+
# @tag :pending
|
|
32
|
+
test "shouting" do
|
|
33
|
+
assert Bob.hey("WATCH OUT!") == "Whoa, chill out!"
|
|
34
|
+
end
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Or, you can enable all the tests by commenting out the
|
|
38
|
+
`ExUnit.configure` line in the test suite.
|
|
39
|
+
|
|
40
|
+
```elixir
|
|
41
|
+
# ExUnit.configure exclude: :pending, trace: true
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
For more detailed information about the Elixir track, please
|
|
45
|
+
see the [help page](http://exercism.io/languages/elixir).
|
|
46
|
+
|
|
47
|
+
## Source
|
|
48
|
+
|
|
49
|
+
A variation on Problem 7 at Project Euler [http://projecteuler.net/problem=7](http://projecteuler.net/problem=7)
|
|
50
|
+
|
|
51
|
+
## Submitting Incomplete Solutions
|
|
52
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# Nucleotide Count
|
|
2
|
+
|
|
3
|
+
Given a DNA string, compute how many times each nucleotide occurs in the string.
|
|
4
|
+
|
|
5
|
+
DNA is represented by an alphabet of the following symbols: 'A', 'C',
|
|
6
|
+
'G', and 'T'.
|
|
7
|
+
|
|
8
|
+
Each symbol represents a nucleotide, which is a fancy name for the
|
|
9
|
+
particular molecules that happen to make up a large part of DNA.
|
|
10
|
+
|
|
11
|
+
Shortest intro to biochemistry EVAR:
|
|
12
|
+
|
|
13
|
+
- twigs are to birds nests as
|
|
14
|
+
- nucleotides are to DNA and RNA as
|
|
15
|
+
- amino acids are to proteins as
|
|
16
|
+
- sugar is to starch as
|
|
17
|
+
- oh crap lipids
|
|
18
|
+
|
|
19
|
+
I'm not going to talk about lipids because they're crazy complex.
|
|
20
|
+
|
|
21
|
+
So back to nucleotides.
|
|
22
|
+
|
|
23
|
+
DNA contains four types of them: adenine (`A`), cytosine (`C`), guanine
|
|
24
|
+
(`G`), and thymine (`T`).
|
|
25
|
+
|
|
26
|
+
RNA contains a slightly different set of nucleotides, but we don't care
|
|
27
|
+
about that for now.
|
|
28
|
+
|
|
29
|
+
## Running tests
|
|
30
|
+
|
|
31
|
+
Execute the tests with:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
$ elixir bob_test.exs
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
(Replace `bob_test.exs` with the name of the test file.)
|
|
38
|
+
|
|
39
|
+
### Pending tests
|
|
40
|
+
|
|
41
|
+
In the test suites, all but the first test have been skipped.
|
|
42
|
+
|
|
43
|
+
Once you get a test passing, you can unskip the next one by
|
|
44
|
+
commenting out the relevant `@tag :pending` with a `#` symbol.
|
|
45
|
+
|
|
46
|
+
For example:
|
|
47
|
+
|
|
48
|
+
```elixir
|
|
49
|
+
# @tag :pending
|
|
50
|
+
test "shouting" do
|
|
51
|
+
assert Bob.hey("WATCH OUT!") == "Whoa, chill out!"
|
|
52
|
+
end
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Or, you can enable all the tests by commenting out the
|
|
56
|
+
`ExUnit.configure` line in the test suite.
|
|
57
|
+
|
|
58
|
+
```elixir
|
|
59
|
+
# ExUnit.configure exclude: :pending, trace: true
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
For more detailed information about the Elixir track, please
|
|
63
|
+
see the [help page](http://exercism.io/languages/elixir).
|
|
64
|
+
|
|
65
|
+
## Source
|
|
66
|
+
|
|
67
|
+
The Calculating DNA Nucleotides_problem at Rosalind [http://rosalind.info/problems/dna/](http://rosalind.info/problems/dna/)
|
|
68
|
+
|
|
69
|
+
## Submitting Incomplete Solutions
|
|
70
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# Ocr Numbers
|
|
2
|
+
|
|
3
|
+
Given a 3 x 4 grid of pipes, underscores, and spaces, determine which number is
|
|
4
|
+
represented, or whether it is garbled.
|
|
5
|
+
|
|
6
|
+
# Step One
|
|
7
|
+
|
|
8
|
+
To begin with, convert a simple binary font to a string containing 0 or 1.
|
|
9
|
+
|
|
10
|
+
The binary font uses pipes and underscores, four rows high and three columns wide.
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
_ #
|
|
14
|
+
| | # zero.
|
|
15
|
+
|_| #
|
|
16
|
+
# the fourth row is always blank
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Is converted to "0"
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
#
|
|
23
|
+
| # one.
|
|
24
|
+
| #
|
|
25
|
+
# (blank fourth row)
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Is converted to "1"
|
|
29
|
+
|
|
30
|
+
If the input is the correct size, but not recognizable, your program should return '?'
|
|
31
|
+
|
|
32
|
+
If the input is the incorrect size, your program should return an error.
|
|
33
|
+
|
|
34
|
+
# Step Two
|
|
35
|
+
|
|
36
|
+
Update your program to recognize multi-character binary strings, replacing garbled numbers with ?
|
|
37
|
+
|
|
38
|
+
# Step Three
|
|
39
|
+
|
|
40
|
+
Update your program to recognize all numbers 0 through 9, both individually and as part of a larger string.
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
_
|
|
44
|
+
_|
|
|
45
|
+
|_
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Is converted to "2"
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
_ _ _ _ _ _ _ _ #
|
|
53
|
+
| _| _||_||_ |_ ||_||_|| | # decimal numbers.
|
|
54
|
+
||_ _| | _||_| ||_| _||_| #
|
|
55
|
+
# fourth line is always blank
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Is converted to "1234567890"
|
|
59
|
+
|
|
60
|
+
# Step Four
|
|
61
|
+
|
|
62
|
+
Update your program to handle multiple numbers, one per line. When converting several lines, join the lines with commas.
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
_ _
|
|
66
|
+
| _| _|
|
|
67
|
+
||_ _|
|
|
68
|
+
|
|
69
|
+
_ _
|
|
70
|
+
|_||_ |_
|
|
71
|
+
| _||_|
|
|
72
|
+
|
|
73
|
+
_ _ _
|
|
74
|
+
||_||_|
|
|
75
|
+
||_| _|
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Is converted to "123,456,789"
|
|
80
|
+
|
|
81
|
+
## Running tests
|
|
82
|
+
|
|
83
|
+
Execute the tests with:
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
$ elixir bob_test.exs
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
(Replace `bob_test.exs` with the name of the test file.)
|
|
90
|
+
|
|
91
|
+
### Pending tests
|
|
92
|
+
|
|
93
|
+
In the test suites, all but the first test have been skipped.
|
|
94
|
+
|
|
95
|
+
Once you get a test passing, you can unskip the next one by
|
|
96
|
+
commenting out the relevant `@tag :pending` with a `#` symbol.
|
|
97
|
+
|
|
98
|
+
For example:
|
|
99
|
+
|
|
100
|
+
```elixir
|
|
101
|
+
# @tag :pending
|
|
102
|
+
test "shouting" do
|
|
103
|
+
assert Bob.hey("WATCH OUT!") == "Whoa, chill out!"
|
|
104
|
+
end
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Or, you can enable all the tests by commenting out the
|
|
108
|
+
`ExUnit.configure` line in the test suite.
|
|
109
|
+
|
|
110
|
+
```elixir
|
|
111
|
+
# ExUnit.configure exclude: :pending, trace: true
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
For more detailed information about the Elixir track, please
|
|
115
|
+
see the [help page](http://exercism.io/languages/elixir).
|
|
116
|
+
|
|
117
|
+
## Source
|
|
118
|
+
|
|
119
|
+
Inspired by the Bank OCR kata [http://codingdojo.org/cgi-bin/wiki.pl?KataBankOCR](http://codingdojo.org/cgi-bin/wiki.pl?KataBankOCR)
|
|
120
|
+
|
|
121
|
+
## Submitting Incomplete Solutions
|
|
122
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|