trackler 2.2.1.104 → 2.2.1.105
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/trackler/version.rb +1 -1
- data/problem-specifications/.travis.yml +41 -1
- data/problem-specifications/README.md +5 -5
- data/problem-specifications/canonical-schema.json +11 -6
- data/problem-specifications/exercises/all-your-base/canonical-data.json +2 -2
- data/problem-specifications/exercises/circular-buffer/USE_OLD_SCHEMA +0 -0
- data/problem-specifications/exercises/complex-numbers/canonical-data.json +9 -1
- data/problem-specifications/exercises/forth/USE_OLD_SCHEMA +0 -0
- data/problem-specifications/exercises/grains/USE_OLD_SCHEMA +0 -0
- data/problem-specifications/exercises/grep/USE_OLD_SCHEMA +0 -0
- data/problem-specifications/exercises/house/USE_OLD_SCHEMA +0 -0
- data/problem-specifications/exercises/isogram/USE_OLD_SCHEMA +0 -0
- data/problem-specifications/exercises/list-ops/USE_OLD_SCHEMA +0 -0
- data/problem-specifications/exercises/pov/USE_OLD_SCHEMA +0 -0
- data/problem-specifications/exercises/scale-generator/canonical-data.json +181 -0
- data/problem-specifications/exercises/trinary/USE_OLD_SCHEMA +0 -0
- data/problem-specifications/exercises/word-search/USE_OLD_SCHEMA +0 -0
- data/problem-specifications/exercises/zipper/USE_OLD_SCHEMA +0 -0
- data/problem-specifications/old-schema.json +137 -0
- data/tracks/bash/config.json +13 -1
- data/tracks/bash/exercises/scrabble-score/.meta/version +1 -0
- data/tracks/bash/exercises/scrabble-score/README.md +55 -0
- data/tracks/bash/exercises/scrabble-score/example.sh +14 -0
- data/tracks/bash/exercises/scrabble-score/scrabble_score_test.sh +89 -0
- data/tracks/c/config/exercise_readme.go.tmpl +31 -4
- data/tracks/c/exercises/all-your-base/README.md +0 -1
- data/tracks/c/exercises/beer-song/README.md +1 -1
- data/tracks/c/exercises/collatz-conjecture/README.md +1 -1
- data/tracks/c/exercises/complex-numbers/README.md +21 -18
- data/tracks/c/exercises/nucleotide-count/README.md +2 -2
- data/tracks/c/exercises/palindrome-products/README.md +5 -12
- data/tracks/c/exercises/pangram/test/test_pangram.c +11 -22
- data/tracks/c/exercises/pascals-triangle/README.md +1 -1
- data/tracks/c/exercises/phone-number/README.md +1 -1
- data/tracks/c/exercises/react/README.md +0 -1
- data/tracks/c/exercises/rna-transcription/README.md +2 -2
- data/tracks/c/exercises/sublist/README.md +0 -1
- data/tracks/c/exercises/sum-of-multiples/README.md +3 -6
- data/tracks/ceylon/config/exercise_readme.go.tmpl +15 -4
- data/tracks/ceylon/exercises/react/README.md +0 -1
- data/tracks/cfml/{docs/EXERCISE_README_INSERT.md → config/exercise-readme-insert.md} +0 -0
- data/tracks/cfml/exercises/acronym/AcronymTest.cfc +2 -6
- data/tracks/cfml/exercises/acronym/README.md +0 -1
- data/tracks/cfml/exercises/anagram/AnagramTest.cfc +0 -16
- data/tracks/cfml/exercises/atbash-cipher/README.md +2 -1
- data/tracks/cfml/exercises/bob/Bob.cfc +1 -1
- data/tracks/cfml/exercises/bob/BobTest.cfc +25 -25
- data/tracks/cfml/exercises/bob/README.md +2 -0
- data/tracks/cfml/exercises/bob/Solution.cfc +17 -5
- data/tracks/cfml/exercises/diamond/Diamond.cfc +1 -1
- data/tracks/cfml/exercises/diamond/DiamondTest.cfc +5 -5
- data/tracks/cfml/exercises/diamond/README.md +6 -6
- data/tracks/cfml/exercises/diamond/Solution.cfc +2 -2
- data/tracks/cfml/exercises/flatten-array/FlattenArray.cfc +1 -1
- data/tracks/cfml/exercises/flatten-array/FlattenArrayTest.cfc +6 -9
- data/tracks/cfml/exercises/flatten-array/README.md +1 -2
- data/tracks/cfml/exercises/flatten-array/Solution.cfc +2 -2
- data/tracks/cfml/exercises/gigasecond/Gigasecond.cfc +1 -1
- data/tracks/cfml/exercises/gigasecond/GigasecondTest.cfc +5 -5
- data/tracks/cfml/exercises/gigasecond/Solution.cfc +3 -3
- data/tracks/cfml/exercises/grains/README.md +0 -1
- data/tracks/cfml/exercises/grains/Solution.cfc +4 -1
- data/tracks/cfml/exercises/hamming/HammingTest.cfc +2 -2
- data/tracks/cfml/exercises/hello-world/HelloWorld.cfc +1 -1
- data/tracks/cfml/exercises/hello-world/HelloWorldTest.cfc +5 -4
- data/tracks/cfml/exercises/hello-world/Solution.cfc +1 -1
- data/tracks/cfml/exercises/isogram/IsogramTest.cfc +2 -2
- data/tracks/cfml/exercises/isogram/README.md +2 -1
- data/tracks/cfml/exercises/leap/Leap.cfc +1 -1
- data/tracks/cfml/exercises/leap/LeapTest.cfc +14 -22
- data/tracks/cfml/exercises/leap/README.md +1 -1
- data/tracks/cfml/exercises/leap/Solution.cfc +1 -1
- data/tracks/cfml/exercises/luhn/Luhn.cfc +1 -1
- data/tracks/cfml/exercises/luhn/LuhnTest.cfc +14 -14
- data/tracks/cfml/exercises/luhn/README.md +7 -7
- data/tracks/cfml/exercises/luhn/Solution.cfc +6 -6
- data/tracks/cfml/exercises/markdown/Markdown.cfc +4 -4
- data/tracks/cfml/exercises/markdown/MarkdownTest.cfc +9 -9
- data/tracks/cfml/exercises/markdown/Solution.cfc +4 -4
- data/tracks/cfml/exercises/nth-prime/NthPrime.cfc +1 -1
- data/tracks/cfml/exercises/nth-prime/NthPrimeTest.cfc +5 -5
- data/tracks/cfml/exercises/nth-prime/Solution.cfc +4 -4
- data/tracks/cfml/exercises/pangram/Pangram.cfc +1 -1
- data/tracks/cfml/exercises/pangram/PangramTest.cfc +14 -10
- data/tracks/cfml/exercises/pangram/README.md +1 -1
- data/tracks/cfml/exercises/pangram/Solution.cfc +4 -4
- data/tracks/cfml/exercises/pig-latin/PigLatin.cfc +1 -1
- data/tracks/cfml/exercises/pig-latin/PigLatinTest.cfc +35 -23
- data/tracks/cfml/exercises/pig-latin/Solution.cfc +4 -4
- data/tracks/cfml/exercises/rna-transcription/README.md +2 -2
- data/tracks/cfml/exercises/rna-transcription/RnaTranscriptionTest.cfc +0 -12
- data/tracks/cfml/exercises/saddle-points/README.md +2 -2
- data/tracks/cfml/exercises/saddle-points/SaddlePoints.cfc +1 -1
- data/tracks/cfml/exercises/saddle-points/SaddlePointsTest.cfc +5 -5
- data/tracks/cfml/exercises/saddle-points/Solution.cfc +10 -10
- data/tracks/cfml/exercises/scrabble-score/README.md +3 -1
- data/tracks/cfml/exercises/scrabble-score/ScrabbleScore.cfc +1 -1
- data/tracks/cfml/exercises/scrabble-score/ScrabbleScoreTest.cfc +11 -11
- data/tracks/cfml/exercises/scrabble-score/Solution.cfc +2 -2
- data/tracks/cfml/exercises/secret-handshake/README.md +2 -2
- data/tracks/cfml/exercises/secret-handshake/SecretHandshake.cfc +1 -1
- data/tracks/cfml/exercises/secret-handshake/SecretHandshakeTest.cfc +11 -11
- data/tracks/cfml/exercises/secret-handshake/Solution.cfc +6 -6
- data/tracks/cfml/exercises/space-age/README.md +1 -2
- data/tracks/cfml/exercises/sum-of-multiples/README.md +3 -6
- data/tracks/cfml/exercises/sum-of-multiples/SumOfMultiplesTest.cfc +4 -0
- data/tracks/cfml/exercises/triangle/README.md +9 -6
- data/tracks/cfml/exercises/word-count/README.md +1 -2
- data/tracks/cfml/exercises/word-count/Solution.cfc +2 -2
- data/tracks/cfml/exercises/word-count/WordCount.cfc +1 -1
- data/tracks/cfml/exercises/word-count/WordCountTest.cfc +14 -10
- data/tracks/cfml/tasks/GenerateReadme.cfc +2 -2
- data/tracks/cfml/tasks/GenerateTests.cfc +17 -4
- data/tracks/cfml/tasks/TestAllSolutions.cfc +3 -0
- data/tracks/common-lisp/config/exercise_readme.go.tmpl +46 -4
- data/tracks/common-lisp/exercises/acronym/README.md +1 -1
- data/tracks/common-lisp/exercises/beer-song/README.md +1 -1
- data/tracks/common-lisp/exercises/crypto-square/README.md +6 -4
- data/tracks/common-lisp/exercises/etl/README.md +2 -2
- data/tracks/common-lisp/exercises/isogram/README.md +3 -1
- data/tracks/common-lisp/exercises/meetup/README.md +16 -12
- data/tracks/common-lisp/exercises/nucleotide-count/README.md +2 -2
- data/tracks/common-lisp/exercises/pascals-triangle/README.md +1 -1
- data/tracks/common-lisp/exercises/phone-number/README.md +1 -1
- data/tracks/common-lisp/exercises/rna-transcription/README.md +2 -2
- data/tracks/common-lisp/exercises/space-age/README.md +1 -2
- data/tracks/common-lisp/exercises/sublist/README.md +2 -0
- data/tracks/crystal/config/exercise_readme.go.tmpl +22 -4
- data/tracks/crystal/exercises/acronym/README.md +0 -1
- data/tracks/crystal/exercises/atbash-cipher/README.md +2 -1
- data/tracks/crystal/exercises/binary/README.md +2 -0
- data/tracks/{php → crystal}/exercises/bob/.meta/description.md +0 -0
- data/tracks/crystal/exercises/flatten-array/README.md +1 -2
- data/tracks/crystal/exercises/forth/README.md +0 -1
- data/tracks/crystal/exercises/leap/README.md +1 -1
- data/tracks/crystal/exercises/pangram/README.md +1 -1
- data/tracks/crystal/exercises/pascals-triangle/README.md +2 -2
- data/tracks/crystal/exercises/react/README.md +0 -1
- data/tracks/crystal/exercises/rna-transcription/README.md +2 -2
- data/tracks/crystal/exercises/roman-numerals/README.md +1 -1
- data/tracks/crystal/exercises/run-length-encoding/README.md +4 -4
- data/tracks/csharp/config/exercise_readme.go.tmpl +0 -3
- data/tracks/csharp/exercises/accumulate/README.md +0 -3
- data/tracks/csharp/exercises/acronym/README.md +0 -3
- data/tracks/csharp/exercises/all-your-base/README.md +0 -3
- data/tracks/csharp/exercises/allergies/README.md +0 -3
- data/tracks/csharp/exercises/alphametics/README.md +0 -3
- data/tracks/csharp/exercises/anagram/README.md +0 -3
- data/tracks/csharp/exercises/armstrong-numbers/README.md +0 -3
- data/tracks/csharp/exercises/atbash-cipher/README.md +0 -3
- data/tracks/csharp/exercises/bank-account/README.md +0 -3
- data/tracks/csharp/exercises/beer-song/README.md +0 -3
- data/tracks/csharp/exercises/binary-search-tree/README.md +0 -3
- data/tracks/csharp/exercises/binary-search/README.md +0 -3
- data/tracks/csharp/exercises/binary/README.md +0 -3
- data/tracks/csharp/exercises/bob/README.md +0 -3
- data/tracks/csharp/exercises/book-store/README.md +0 -3
- data/tracks/csharp/exercises/bowling/README.md +0 -3
- data/tracks/csharp/exercises/bracket-push/README.md +0 -3
- data/tracks/csharp/exercises/change/README.md +0 -3
- data/tracks/csharp/exercises/circular-buffer/README.md +0 -3
- data/tracks/csharp/exercises/clock/README.md +0 -3
- data/tracks/csharp/exercises/collatz-conjecture/README.md +0 -3
- data/tracks/csharp/exercises/complex-numbers/README.md +0 -3
- data/tracks/csharp/exercises/connect/README.md +0 -3
- data/tracks/csharp/exercises/crypto-square/README.md +0 -3
- data/tracks/csharp/exercises/custom-set/README.md +0 -3
- data/tracks/csharp/exercises/diamond/README.md +0 -3
- data/tracks/csharp/exercises/difference-of-squares/README.md +0 -3
- data/tracks/csharp/exercises/diffie-hellman/README.md +0 -3
- data/tracks/csharp/exercises/dominoes/README.md +0 -3
- data/tracks/csharp/exercises/dot-dsl/README.md +0 -3
- data/tracks/csharp/exercises/error-handling/README.md +0 -3
- data/tracks/csharp/exercises/etl/README.md +0 -3
- data/tracks/csharp/exercises/flatten-array/README.md +0 -3
- data/tracks/csharp/exercises/food-chain/README.md +0 -3
- data/tracks/csharp/exercises/forth/README.md +0 -3
- data/tracks/csharp/exercises/gigasecond/README.md +0 -3
- data/tracks/csharp/exercises/go-counting/README.md +0 -3
- data/tracks/csharp/exercises/grade-school/README.md +0 -3
- data/tracks/csharp/exercises/grains/README.md +0 -3
- data/tracks/csharp/exercises/grep/README.md +0 -3
- data/tracks/csharp/exercises/hamming/README.md +0 -3
- data/tracks/csharp/exercises/hangman/README.md +0 -3
- data/tracks/csharp/exercises/hello-world/README.md +0 -3
- data/tracks/csharp/exercises/hexadecimal/README.md +0 -3
- data/tracks/csharp/exercises/house/README.md +0 -3
- data/tracks/csharp/exercises/isbn-verifier/README.md +0 -3
- data/tracks/csharp/exercises/isogram/README.md +0 -3
- data/tracks/csharp/exercises/kindergarten-garden/README.md +0 -3
- data/tracks/csharp/exercises/largest-series-product/README.md +0 -3
- data/tracks/csharp/exercises/leap/README.md +0 -3
- data/tracks/csharp/exercises/ledger/README.md +0 -3
- data/tracks/csharp/exercises/linked-list/README.md +0 -3
- data/tracks/csharp/exercises/list-ops/README.md +0 -3
- data/tracks/csharp/exercises/luhn/README.md +0 -3
- data/tracks/csharp/exercises/markdown/README.md +0 -3
- data/tracks/csharp/exercises/matrix/README.md +0 -3
- data/tracks/csharp/exercises/meetup/README.md +0 -3
- data/tracks/csharp/exercises/minesweeper/README.md +0 -3
- data/tracks/csharp/exercises/nth-prime/README.md +0 -3
- data/tracks/csharp/exercises/nucleotide-count/README.md +0 -3
- data/tracks/csharp/exercises/ocr-numbers/README.md +0 -3
- data/tracks/csharp/exercises/octal/README.md +0 -3
- data/tracks/csharp/exercises/palindrome-products/README.md +0 -3
- data/tracks/csharp/exercises/pangram/README.md +0 -3
- data/tracks/csharp/exercises/parallel-letter-frequency/README.md +0 -3
- data/tracks/csharp/exercises/pascals-triangle/README.md +0 -3
- data/tracks/csharp/exercises/perfect-numbers/README.md +0 -3
- data/tracks/csharp/exercises/phone-number/README.md +0 -3
- data/tracks/csharp/exercises/pig-latin/README.md +0 -3
- data/tracks/csharp/exercises/poker/README.md +0 -3
- data/tracks/csharp/exercises/pov/README.md +0 -3
- data/tracks/csharp/exercises/prime-factors/README.md +0 -3
- data/tracks/csharp/exercises/protein-translation/README.md +0 -3
- data/tracks/csharp/exercises/proverb/README.md +0 -3
- data/tracks/csharp/exercises/pythagorean-triplet/README.md +0 -3
- data/tracks/csharp/exercises/queen-attack/README.md +0 -3
- data/tracks/csharp/exercises/rail-fence-cipher/README.md +0 -3
- data/tracks/csharp/exercises/raindrops/README.md +0 -3
- data/tracks/csharp/exercises/react/README.md +0 -3
- data/tracks/csharp/exercises/rectangles/README.md +0 -3
- data/tracks/csharp/exercises/reverse-string/README.md +0 -3
- data/tracks/csharp/exercises/rna-transcription/README.md +0 -3
- data/tracks/csharp/exercises/robot-name/README.md +0 -3
- data/tracks/csharp/exercises/robot-simulator/README.md +0 -3
- data/tracks/csharp/exercises/roman-numerals/README.md +0 -3
- data/tracks/csharp/exercises/rotational-cipher/README.md +0 -3
- data/tracks/csharp/exercises/run-length-encoding/README.md +0 -3
- data/tracks/csharp/exercises/saddle-points/README.md +0 -3
- data/tracks/csharp/exercises/say/README.md +0 -3
- data/tracks/csharp/exercises/scale-generator/README.md +0 -3
- data/tracks/csharp/exercises/scrabble-score/README.md +0 -3
- data/tracks/csharp/exercises/secret-handshake/README.md +0 -3
- data/tracks/csharp/exercises/series/README.md +0 -3
- data/tracks/csharp/exercises/sgf-parsing/README.md +0 -3
- data/tracks/csharp/exercises/sieve/README.md +0 -3
- data/tracks/csharp/exercises/simple-cipher/README.md +0 -3
- data/tracks/csharp/exercises/simple-linked-list/README.md +0 -3
- data/tracks/csharp/exercises/space-age/README.md +0 -3
- data/tracks/csharp/exercises/spiral-matrix/README.md +0 -3
- data/tracks/csharp/exercises/strain/README.md +0 -3
- data/tracks/csharp/exercises/sublist/README.md +0 -3
- data/tracks/csharp/exercises/sum-of-multiples/README.md +0 -3
- data/tracks/csharp/exercises/tournament/README.md +0 -3
- data/tracks/csharp/exercises/transpose/README.md +0 -3
- data/tracks/csharp/exercises/tree-building/README.md +0 -3
- data/tracks/csharp/exercises/triangle/README.md +0 -3
- data/tracks/csharp/exercises/trinary/README.md +0 -3
- data/tracks/csharp/exercises/twelve-days/README.md +0 -3
- data/tracks/csharp/exercises/two-bucket/README.md +0 -3
- data/tracks/csharp/exercises/two-fer/README.md +0 -3
- data/tracks/csharp/exercises/variable-length-quantity/README.md +0 -3
- data/tracks/csharp/exercises/word-count/README.md +0 -3
- data/tracks/csharp/exercises/word-search/README.md +0 -3
- data/tracks/csharp/exercises/wordy/README.md +0 -3
- data/tracks/csharp/exercises/zebra-puzzle/README.md +0 -3
- data/tracks/csharp/exercises/zipper/README.md +0 -3
- data/tracks/dart/config/exercise_readme.go.tmpl +9 -4
- data/tracks/dart/exercises/anagram/README.md +0 -1
- data/tracks/dart/exercises/difference-of-squares/README.md +0 -1
- data/tracks/dart/exercises/gigasecond/README.md +0 -1
- data/tracks/dart/exercises/hamming/README.md +0 -1
- data/tracks/dart/exercises/hello-world/README.md +0 -1
- data/tracks/dart/exercises/leap/README.md +0 -1
- data/tracks/dart/exercises/phone-number/.meta/hints.md +24 -0
- data/tracks/dart/exercises/phone-number/README.md +17 -2
- data/tracks/dart/exercises/raindrops/README.md +0 -1
- data/tracks/dart/exercises/rna-transcription/README.md +2 -3
- data/tracks/dart/exercises/word-count/README.md +0 -1
- data/tracks/delphi/config/exercise_readme.go.tmpl +20 -4
- data/tracks/delphi/exercises/bank-account/README.md +0 -1
- data/tracks/delphi/exercises/minesweeper/README.md +0 -1
- data/tracks/delphi/exercises/two-fer/README.md +1 -1
- data/tracks/elixir/exercises/all-your-base/all-your-base-test.exs +1 -2
- data/tracks/elm/README.md +23 -20
- data/tracks/elm/bin/build.sh +1 -1
- data/tracks/elm/bin/install-elm-format +2 -2
- data/tracks/elm/exercises/accumulate/tests/Tests.elm +2 -2
- data/tracks/elm/exercises/all-your-base/AllYourBase.example.elm +10 -10
- data/tracks/elm/exercises/all-your-base/tests/Tests.elm +62 -42
- data/tracks/elm/exercises/allergies/Allergies.example.elm +1 -1
- data/tracks/elm/exercises/allergies/tests/Tests.elm +4 -4
- data/tracks/elm/exercises/anagram/Anagram.example.elm +2 -2
- data/tracks/elm/exercises/anagram/tests/Tests.elm +2 -2
- data/tracks/elm/exercises/atbash-cipher/AtbashCipher.example.elm +11 -11
- data/tracks/elm/exercises/atbash-cipher/tests/Tests.elm +2 -2
- data/tracks/elm/exercises/bob/Bob.example.elm +1 -1
- data/tracks/elm/exercises/bob/tests/Tests.elm +5 -5
- data/tracks/elm/exercises/collatz-conjecture/tests/Tests.elm +2 -2
- data/tracks/elm/exercises/difference-of-squares/DifferenceOfSquares.example.elm +1 -1
- data/tracks/elm/exercises/difference-of-squares/tests/Tests.elm +2 -2
- data/tracks/elm/exercises/gigasecond/tests/Tests.elm +2 -2
- data/tracks/elm/exercises/grade-school/GradeSchool.example.elm +2 -2
- data/tracks/elm/exercises/grade-school/tests/Tests.elm +3 -3
- data/tracks/elm/exercises/hamming/tests/Tests.elm +1 -1
- data/tracks/elm/exercises/hello-world/tests/Tests.elm +1 -1
- data/tracks/elm/exercises/isogram/Isogram.example.elm +7 -7
- data/tracks/elm/exercises/isogram/tests/Tests.elm +1 -1
- data/tracks/elm/exercises/largest-series-product/LargestSeriesProduct.example.elm +4 -4
- data/tracks/elm/exercises/largest-series-product/tests/Tests.elm +1 -1
- data/tracks/elm/exercises/leap/tests/Tests.elm +1 -1
- data/tracks/elm/exercises/list-ops/tests/Tests.elm +1 -1
- data/tracks/elm/exercises/nucleotide-count/NucleotideCount.elm +1 -1
- data/tracks/elm/exercises/nucleotide-count/tests/Tests.elm +1 -1
- data/tracks/elm/exercises/pangram/Pangram.example.elm +2 -2
- data/tracks/elm/exercises/pangram/tests/Tests.elm +1 -1
- data/tracks/elm/exercises/pascals-triangle/Triangle.example.elm +4 -4
- data/tracks/elm/exercises/phone-number/PhoneNumber.example.elm +3 -3
- data/tracks/elm/exercises/phone-number/tests/Tests.elm +1 -1
- data/tracks/elm/exercises/raindrops/Raindrops.example.elm +4 -4
- data/tracks/elm/exercises/raindrops/tests/Tests.elm +1 -1
- data/tracks/elm/exercises/rna-transcription/tests/Tests.elm +1 -7
- data/tracks/elm/exercises/robot-simulator/RobotSimulator.example.elm +5 -5
- data/tracks/elm/exercises/robot-simulator/tests/Tests.elm +65 -65
- data/tracks/elm/exercises/roman-numerals/RomanNumerals.example.elm +1 -1
- data/tracks/elm/exercises/roman-numerals/tests/Tests.elm +19 -19
- data/tracks/elm/exercises/run-length-encoding/RunLengthEncoding.elm +1 -1
- data/tracks/elm/exercises/run-length-encoding/RunLengthEncoding.example.elm +2 -2
- data/tracks/elm/exercises/run-length-encoding/RunLengthEncodingPropertyChecks.elm +3 -3
- data/tracks/elm/exercises/run-length-encoding/tests/Tests.elm +2 -2
- data/tracks/elm/exercises/say/Say.example.elm +4 -4
- data/tracks/elm/exercises/say/tests/Tests.elm +2 -2
- data/tracks/elm/exercises/scrabble-score/ScrabbleScore.example.elm +16 -16
- data/tracks/elm/exercises/scrabble-score/tests/Tests.elm +1 -1
- data/tracks/elm/exercises/series/Series.example.elm +5 -5
- data/tracks/elm/exercises/series/tests/Tests.elm +2 -2
- data/tracks/elm/exercises/space-age/SpaceAge.elm +9 -8
- data/tracks/elm/exercises/space-age/SpaceAge.example.elm +3 -2
- data/tracks/elm/exercises/space-age/tests/Tests.elm +1 -1
- data/tracks/elm/exercises/strain/tests/Tests.elm +3 -3
- data/tracks/elm/exercises/sublist/Sublist.elm +1 -1
- data/tracks/elm/exercises/sublist/Sublist.example.elm +6 -6
- data/tracks/elm/exercises/sublist/tests/Tests.elm +2 -2
- data/tracks/elm/exercises/sum-of-multiples/tests/Tests.elm +1 -1
- data/tracks/elm/exercises/triangle/tests/Tests.elm +2 -2
- data/tracks/elm/exercises/word-count/WordCount.example.elm +2 -2
- data/tracks/elm/exercises/word-count/tests/Tests.elm +2 -2
- data/tracks/factor/config/exercise_readme.go.tmpl +12 -4
- data/tracks/factor/exercises/isogram/README.md +4 -3
- data/tracks/factor/exercises/leap/README.md +1 -1
- data/tracks/factor/exercises/two-fer/README.md +3 -32
- data/tracks/fsharp/config.json +10 -0
- data/tracks/fsharp/exercises/Exercises.sln +6 -0
- data/tracks/fsharp/exercises/rational-numbers/Example.fs +46 -0
- data/tracks/fsharp/exercises/rational-numbers/Program.fs +1 -0
- data/tracks/fsharp/exercises/rational-numbers/README.md +29 -0
- data/tracks/fsharp/exercises/rational-numbers/RationalNumbers.fs +19 -0
- data/tracks/fsharp/exercises/rational-numbers/RationalNumbers.fsproj +23 -0
- data/tracks/fsharp/exercises/rational-numbers/RationalNumbersTest.fs +153 -0
- data/tracks/fsharp/exercises/two-bucket/Example.fs +49 -57
- data/tracks/fsharp/exercises/two-bucket/TwoBucketTest.fs +40 -25
- data/tracks/fsharp/exercises/variable-length-quantity/Example.fs +21 -17
- data/tracks/fsharp/exercises/variable-length-quantity/VariableLengthQuantityTest.fs +85 -42
- data/tracks/fsharp/exercises/word-search/Example.fs +20 -14
- data/tracks/fsharp/exercises/word-search/WordSearch.fs +1 -1
- data/tracks/fsharp/exercises/word-search/WordSearchTest.fs +303 -48
- data/tracks/fsharp/generators/Formatting.fs +7 -2
- data/tracks/fsharp/generators/Generators.fs +97 -2
- data/tracks/fsharp/generators/Templates/_AssertEqualWithin.liquid +1 -0
- data/tracks/go/config.json +14 -0
- data/tracks/go/exercises/all-your-base/.meta/gen.go +2 -2
- data/tracks/go/exercises/all-your-base/cases_test.go +2 -2
- data/tracks/go/exercises/rectangles/.meta/gen.go +57 -0
- data/tracks/go/exercises/rectangles/README.md +85 -0
- data/tracks/go/exercises/rectangles/cases_test.go +134 -0
- data/tracks/go/exercises/rectangles/example.go +51 -0
- data/tracks/go/exercises/rectangles/rectangles_test.go +22 -0
- data/tracks/go/exercises/reverse-string/.meta/gen.go +4 -2
- data/tracks/go/exercises/reverse-string/cases_test.go +4 -2
- data/tracks/go/exercises/reverse-string/reverse_string_test.go +12 -1
- data/tracks/haskell/exercises/matrix/package.yaml +1 -1
- data/tracks/haskell/exercises/matrix/test/Tests.hs +1 -1
- data/tracks/java/config.json +12 -0
- data/tracks/java/config/exercise_readme.go.tmpl +10 -4
- data/tracks/java/exercises/all-your-base/README.md +0 -1
- data/tracks/java/exercises/alphametics/README.md +0 -1
- data/tracks/java/exercises/bank-account/README.md +0 -1
- data/tracks/java/exercises/complex-numbers/src/test/java/ComplexNumberTest.java +17 -15
- data/tracks/java/exercises/custom-set/README.md +0 -1
- data/tracks/java/exercises/diamond/.meta/version +1 -1
- data/tracks/java/exercises/diamond/src/test/java/DiamondPrinterTest.java +9 -11
- data/tracks/java/exercises/forth/README.md +0 -11
- data/tracks/java/exercises/list-ops/README.md +0 -1
- data/tracks/java/exercises/markdown/README.md +0 -1
- data/tracks/java/exercises/minesweeper/README.md +0 -1
- data/tracks/java/exercises/palindrome-products/.meta/src/reference/java/PalindromeCalculator.java +9 -0
- data/tracks/java/exercises/palindrome-products/.meta/version +1 -0
- data/tracks/java/exercises/palindrome-products/src/test/java/PalindromeCalculatorTest.java +110 -15
- data/tracks/java/exercises/parallel-letter-frequency/README.md +0 -1
- data/tracks/java/exercises/pig-latin/.meta/src/reference/java/PigLatinTranslator.java +16 -0
- data/tracks/java/exercises/pig-latin/.meta/version +1 -0
- data/tracks/java/exercises/pig-latin/src/test/java/PigLatinTranslatorTest.java +15 -1
- data/tracks/java/exercises/prime-factors/.meta/version +1 -1
- data/tracks/java/exercises/rational-numbers/.meta/src/reference/java/Rational.java +128 -0
- data/tracks/java/exercises/rational-numbers/.meta/version +1 -0
- data/tracks/java/exercises/rational-numbers/README.md +47 -0
- data/tracks/java/exercises/rational-numbers/build.gradle +17 -0
- data/tracks/java/exercises/rational-numbers/src/main/java/Rational.java +40 -0
- data/tracks/java/exercises/rational-numbers/src/test/java/RationalTest.java +288 -0
- data/tracks/java/exercises/rectangles/README.md +0 -1
- data/tracks/java/exercises/settings.gradle +1 -0
- data/tracks/java/exercises/sublist/README.md +0 -1
- data/tracks/java/exercises/tournament/README.md +0 -1
- data/tracks/java/exercises/two-fer/README.md +1 -1
- data/tracks/java/exercises/word-search/README.md +0 -1
- data/tracks/lua/config/exercise_readme.go.tmpl +9 -4
- data/tracks/lua/exercises/all-your-base/README.md +0 -1
- data/tracks/lua/exercises/alphametics/README.md +0 -1
- data/tracks/lua/exercises/bank-account/README.md +0 -1
- data/tracks/lua/exercises/custom-set/README.md +0 -1
- data/tracks/lua/exercises/isbn-verifier/README.md +1 -1
- data/tracks/lua/exercises/list-ops/README.md +0 -1
- data/tracks/lua/exercises/minesweeper/README.md +0 -1
- data/tracks/lua/exercises/protein-translation/README.md +2 -2
- data/tracks/lua/exercises/react/README.md +0 -1
- data/tracks/lua/exercises/rectangles/README.md +0 -1
- data/tracks/lua/exercises/reverse-string/README.md +1 -1
- data/tracks/lua/exercises/rna-transcription/README.md +1 -1
- data/tracks/lua/exercises/sublist/README.md +0 -1
- data/tracks/lua/exercises/tournament/README.md +0 -1
- data/tracks/lua/exercises/word-search/README.md +0 -1
- data/tracks/perl5/bin/exercise-gen.pl +4 -1
- data/tracks/perl5/exercises/bob/bob.t +9 -15
- data/tracks/perl5/exercises/bob/example.yaml +0 -4
- data/tracks/perl5/exercises/hello-world/example.yaml +0 -4
- data/tracks/perl5/exercises/hello-world/hello-world.t +9 -15
- data/tracks/perl5/exercises/leap/example.yaml +0 -4
- data/tracks/perl5/exercises/leap/leap.t +9 -15
- data/tracks/perl5/exercises/luhn/luhn.t +9 -13
- data/tracks/perl5/exercises/phone-number/phone-number.t +9 -13
- data/tracks/perl5/templates/test.mustache +10 -18
- data/tracks/perl6/bin/exercise-gen.pl6 +12 -2
- data/tracks/perl6/config/exercise_readme.go.tmpl +18 -4
- data/tracks/perl6/exercises/all-your-base/README.md +0 -1
- data/tracks/perl6/exercises/raindrops/.meta/exercise-data.yaml +2 -2
- data/tracks/perl6/exercises/raindrops/raindrops.t +57 -21
- data/tracks/perl6/exercises/two-fer/README.md +1 -1
- data/tracks/php/.travis.yml +1 -0
- data/tracks/php/exercises/bob/README.md +2 -0
- data/tracks/php/exercises/bob/bob_test.php +4 -1
- data/tracks/php/exercises/bob/example.php +4 -0
- data/tracks/php/exercises/connect/example.php +3 -4
- data/tracks/python/config.json +12 -12
- data/tracks/python/exercises/beer-song/beer_song.py +1 -5
- data/tracks/python/exercises/beer-song/beer_song_test.py +376 -57
- data/tracks/python/exercises/beer-song/example.py +18 -13
- data/tracks/r/config/exercise_readme.go.tmpl +9 -4
- data/tracks/r/exercises/allergies/README.md +0 -1
- data/tracks/r/exercises/beer-song/README.md +2 -2
- data/tracks/r/exercises/collatz-conjecture/README.md +1 -1
- data/tracks/r/exercises/diamond/README.md +6 -6
- data/tracks/r/exercises/grains/README.md +0 -1
- data/tracks/r/exercises/isogram/README.md +2 -1
- data/tracks/r/exercises/leap/README.md +1 -1
- data/tracks/r/exercises/luhn/README.md +7 -7
- data/tracks/r/exercises/nucleotide-count/README.md +8 -22
- data/tracks/r/exercises/pangram/README.md +1 -1
- data/tracks/r/exercises/pascals-triangle/README.md +2 -2
- data/tracks/r/exercises/perfect-numbers/README.md +2 -2
- data/tracks/r/exercises/phone-number/README.md +4 -3
- data/tracks/r/exercises/rna-transcription/README.md +2 -2
- data/tracks/r/exercises/rotational-cipher/README.md +2 -1
- data/tracks/r/exercises/scrabble-score/README.md +3 -1
- data/tracks/r/exercises/secret-handshake/README.md +2 -2
- data/tracks/r/exercises/space-age/README.md +1 -1
- data/tracks/r/exercises/sum-of-multiples/README.md +3 -6
- data/tracks/r/exercises/tournament/README.md +5 -6
- data/tracks/r/exercises/triangle/README.md +9 -6
- data/tracks/r/exercises/word-count/README.md +1 -2
- data/tracks/rust/.gitignore +1 -0
- data/tracks/rust/exercises/reverse-string/.meta/hints.md +3 -0
- data/tracks/rust/exercises/reverse-string/README.md +5 -0
- data/tracks/rust/exercises/reverse-string/tests/reverse-string.rs +7 -0
- data/tracks/scala/config/exercise_readme.go.tmpl +10 -4
- data/tracks/scala/exercises/accumulate/README.md +0 -3
- data/tracks/scala/exercises/acronym/README.md +0 -1
- data/tracks/scala/exercises/acronym/src/test/scala/AcronymTest.scala +6 -12
- data/tracks/scala/exercises/all-your-base/README.md +1 -2
- data/tracks/scala/exercises/all-your-base/example.scala +5 -4
- data/tracks/scala/exercises/all-your-base/src/test/scala/AllYourBaseTest.scala +26 -27
- data/tracks/scala/exercises/allergies/README.md +0 -1
- data/tracks/scala/exercises/allergies/src/test/scala/AllergiesTest.scala +1 -1
- data/tracks/scala/exercises/alphametics/README.md +2 -3
- data/tracks/scala/exercises/alphametics/example.scala +25 -25
- data/tracks/scala/exercises/alphametics/src/test/scala/AlphameticsTest.scala +58 -42
- data/tracks/scala/exercises/anagram/src/test/scala/AnagramTest.scala +4 -30
- data/tracks/scala/exercises/atbash-cipher/README.md +2 -1
- data/tracks/scala/exercises/atbash-cipher/src/test/scala/AtbashCipherTest.scala +18 -14
- data/tracks/scala/exercises/bank-account/README.md +0 -1
- data/tracks/scala/exercises/beer-song/README.md +2 -2
- data/tracks/scala/exercises/binary/README.md +2 -0
- data/tracks/scala/exercises/bob/example.scala +11 -0
- data/tracks/scala/exercises/bob/src/test/scala/BobTest.scala +3 -2
- data/tracks/scala/exercises/book-store/README.md +5 -5
- data/tracks/scala/exercises/bowling/README.md +20 -6
- data/tracks/scala/exercises/change/README.md +1 -1
- data/tracks/scala/exercises/collatz-conjecture/README.md +4 -3
- data/tracks/scala/exercises/connect/README.md +1 -2
- data/tracks/scala/exercises/crypto-square/README.md +10 -8
- data/tracks/scala/exercises/custom-set/README.md +0 -1
- data/tracks/scala/exercises/dominoes/README.md +3 -4
- data/tracks/scala/exercises/etl/README.md +3 -1
- data/tracks/scala/exercises/flatten-array/README.md +7 -8
- data/tracks/scala/exercises/food-chain/README.md +1 -1
- data/tracks/scala/exercises/forth/README.md +0 -1
- data/tracks/scala/exercises/grade-school/README.md +0 -1
- data/tracks/scala/exercises/grains/README.md +0 -1
- data/tracks/scala/exercises/house/README.md +2 -3
- data/tracks/scala/exercises/isogram/README.md +2 -1
- data/tracks/scala/exercises/kindergarten-garden/README.md +13 -13
- data/tracks/scala/exercises/leap/README.md +1 -1
- data/tracks/scala/exercises/lens-person/README.md +1 -2
- data/tracks/scala/exercises/linked-list/README.md +10 -10
- data/tracks/scala/exercises/luhn/README.md +7 -7
- data/tracks/scala/exercises/matrix/README.md +6 -4
- data/tracks/scala/exercises/meetup/README.md +16 -13
- data/tracks/scala/exercises/minesweeper/README.md +0 -1
- data/tracks/scala/exercises/nucleotide-count/README.md +8 -22
- data/tracks/scala/exercises/ocr-numbers/README.md +6 -6
- data/tracks/scala/exercises/octal/README.md +6 -2
- data/tracks/scala/exercises/palindrome-products/README.md +15 -16
- data/tracks/scala/exercises/pangram/README.md +1 -1
- data/tracks/scala/exercises/parallel-letter-frequency/README.md +0 -1
- data/tracks/scala/exercises/pascals-triangle/README.md +2 -2
- data/tracks/scala/exercises/perfect-numbers/README.md +2 -2
- data/tracks/scala/exercises/phone-number/README.md +4 -3
- data/tracks/scala/exercises/protein-translation/README.md +5 -6
- data/tracks/scala/exercises/pythagorean-triplet/README.md +3 -3
- data/tracks/scala/exercises/queen-attack/README.md +1 -1
- data/tracks/scala/exercises/rail-fence-cipher/README.md +12 -7
- data/tracks/scala/exercises/rna-transcription/README.md +2 -2
- data/tracks/scala/exercises/roman-numerals/README.md +1 -1
- data/tracks/scala/exercises/run-length-encoding/README.md +4 -4
- data/tracks/scala/exercises/saddle-points/README.md +2 -2
- data/tracks/scala/exercises/scrabble-score/README.md +3 -1
- data/tracks/scala/exercises/secret-handshake/README.md +2 -2
- data/tracks/scala/exercises/sgf-parsing/README.md +4 -5
- data/tracks/scala/exercises/simple-cipher/README.md +5 -7
- data/tracks/scala/exercises/space-age/README.md +1 -1
- data/tracks/scala/exercises/spiral-matrix/README.md +2 -2
- data/tracks/scala/exercises/sublist/README.md +0 -1
- data/tracks/scala/exercises/sum-of-multiples/README.md +3 -6
- data/tracks/scala/exercises/triangle/README.md +9 -6
- data/tracks/scala/exercises/trinary/README.md +1 -1
- data/tracks/scala/exercises/variable-length-quantity/README.md +6 -7
- data/tracks/scala/exercises/word-count/README.md +1 -2
- data/tracks/scala/exercises/wordy/README.md +0 -5
- data/tracks/scala/exercises/zipper/README.md +1 -2
- data/tracks/scala/testgen/src/main/scala/AcronymTestGenerator.scala +1 -1
- data/tracks/scala/testgen/src/main/scala/AllYourBaseTestGenerator.scala +3 -5
- data/tracks/scala/testgen/src/main/scala/AllergiesTestGenerator.scala +8 -5
- data/tracks/scala/testgen/src/main/scala/{AlphametricsTestGenerator.scala → AlphameticsTestGenerator.scala} +5 -5
- data/tracks/scala/testgen/src/main/scala/AnagramTestGenerator.scala +1 -1
- data/tracks/scala/testgen/src/main/scala/AtbashCipherTestGenerator.scala +1 -1
- data/tracks/scala/testgen/src/main/scala/BobTestGenerator.scala +4 -3
- data/tracks/scala/testgen/src/main/scala/testgen/TestSuiteBuilder.scala +35 -0
- data/tracks/sml/config/exercise_readme.go.tmpl +29 -4
- data/tracks/sml/exercises/accumulate/README.md +2 -2
- data/tracks/sml/exercises/all-your-base/README.md +13 -10
- data/tracks/sml/exercises/atbash-cipher/README.md +2 -1
- data/tracks/sml/exercises/collatz-conjecture/README.md +1 -1
- data/tracks/sml/exercises/diamond/README.md +6 -6
- data/tracks/sml/exercises/leap/README.md +1 -1
- data/tracks/sml/exercises/list-ops/README.md +0 -1
- data/tracks/sml/exercises/nth-prime/README.md +1 -1
- data/tracks/sml/exercises/pangram/README.md +1 -1
- data/tracks/sml/exercises/perfect-numbers/README.md +2 -2
- data/tracks/sml/exercises/phone-number/README.md +4 -3
- data/tracks/sml/exercises/rna-transcription/README.md +2 -2
- data/tracks/sml/exercises/roman-numerals/README.md +1 -1
- data/tracks/sml/exercises/sum-of-multiples/README.md +3 -6
- data/tracks/sml/exercises/two-fer/README.md +2 -31
- data/tracks/vimscript/config/exercise_readme.go.tmpl +8 -4
- data/tracks/vimscript/exercises/allergies/README.md +0 -1
- data/tracks/vimscript/exercises/atbash-cipher/README.md +2 -1
- data/tracks/vimscript/exercises/beer-song/README.md +2 -2
- data/tracks/vimscript/exercises/etl/README.md +3 -1
- data/tracks/vimscript/exercises/leap/README.md +1 -1
- data/tracks/vimscript/exercises/nucleotide-count/README.md +8 -22
- data/tracks/vimscript/exercises/pangram/README.md +1 -1
- data/tracks/vimscript/exercises/phone-number/README.md +4 -3
- data/tracks/vimscript/exercises/rna-transcription/README.md +2 -2
- data/tracks/vimscript/exercises/roman-numerals/README.md +1 -1
- data/tracks/vimscript/exercises/scrabble-score/README.md +3 -1
- data/tracks/vimscript/exercises/triangle/README.md +9 -6
- data/tracks/vimscript/exercises/word-count/README.md +1 -2
- metadata +44 -78
- data/tracks/c/docs/EXERCISE_README_INSERT.md +0 -30
- data/tracks/ceylon/config/exercise-readme-insert.md +0 -1
- data/tracks/common-lisp/docs/EXERCISE_README_INSERT.md +0 -45
- data/tracks/crystal/docs/EXERCISE_README_INSERT.md +0 -21
- data/tracks/dart/docs/EXERCISE_README_INSERT.md +0 -8
- data/tracks/delphi/docs/EXERCISE_README_INSERT.md +0 -19
- data/tracks/factor/docs/EXERCISE_README_INSERT.md +0 -12
- data/tracks/java/config/exercise-readme-insert.md +0 -9
- data/tracks/lua/docs/EXERCISE_README_INSERT.md +0 -8
- data/tracks/perl6/docs/EXERCISE_README_INSERT.md +0 -17
- data/tracks/r/docs/EXERCISE_README_INSERT.md +0 -8
- data/tracks/rust/exercises/binary-search/Cargo.lock +0 -4
- data/tracks/rust/exercises/collatz-conjecture/Cargo.lock +0 -4
- data/tracks/rust/exercises/isbn-verifier/Cargo.lock +0 -4
- data/tracks/rust/exercises/two-bucket/Cargo.lock +0 -4
- data/tracks/scala/docs/EXERCISE_README_INSERT.md +0 -9
- data/tracks/scala/exercises/bob/.meta/description.md +0 -10
- data/tracks/sml/docs/EXERCISE_README_INSERT.md +0 -28
- data/tracks/vimscript/docs/EXERCISE_README_INSERT.md +0 -7
@@ -11,7 +11,7 @@ A chessboard can be represented by an 8 by 8 array.
|
|
11
11
|
So if you're told the white queen is at (2, 3) and the black queen at
|
12
12
|
(5, 6), then you'd know you've got a set-up like so:
|
13
13
|
|
14
|
-
```
|
14
|
+
```text
|
15
15
|
_ _ _ _ _ _ _ _
|
16
16
|
_ _ _ _ _ _ _ _
|
17
17
|
_ _ _ W _ _ _ _
|
@@ -11,41 +11,46 @@ Finally the message is then read off in rows.
|
|
11
11
|
|
12
12
|
For example, using three "rails" and the message "WE ARE DISCOVERED FLEE AT ONCE",
|
13
13
|
the cipherer writes out:
|
14
|
-
|
14
|
+
|
15
|
+
```text
|
15
16
|
W . . . E . . . C . . . R . . . L . . . T . . . E
|
16
17
|
. E . R . D . S . O . E . E . F . E . A . O . C .
|
17
18
|
. . A . . . I . . . V . . . D . . . E . . . N . .
|
18
19
|
```
|
19
20
|
|
20
21
|
Then reads off:
|
21
|
-
|
22
|
+
|
23
|
+
```text
|
22
24
|
WECRLTEERDSOEEFEAOCAIVDEN
|
23
25
|
```
|
24
26
|
|
25
|
-
|
26
27
|
To decrypt a message you take the zig-zag shape and fill the ciphertext along the rows.
|
27
|
-
|
28
|
+
|
29
|
+
```text
|
28
30
|
? . . . ? . . . ? . . . ? . . . ? . . . ? . . . ?
|
29
31
|
. ? . ? . ? . ? . ? . ? . ? . ? . ? . ? . ? . ? .
|
30
32
|
. . ? . . . ? . . . ? . . . ? . . . ? . . . ? . .
|
31
33
|
```
|
32
34
|
|
33
35
|
The first row has seven spots that can be filled with "WECRLTE".
|
34
|
-
|
36
|
+
|
37
|
+
```text
|
35
38
|
W . . . E . . . C . . . R . . . L . . . T . . . E
|
36
39
|
. ? . ? . ? . ? . ? . ? . ? . ? . ? . ? . ? . ? .
|
37
40
|
. . ? . . . ? . . . ? . . . ? . . . ? . . . ? . .
|
38
41
|
```
|
39
42
|
|
40
43
|
Now the 2nd row takes "ERDSOEEFEAOC".
|
41
|
-
|
44
|
+
|
45
|
+
```text
|
42
46
|
W . . . E . . . C . . . R . . . L . . . T . . . E
|
43
47
|
. E . R . D . S . O . E . E . F . E . A . O . C .
|
44
48
|
. . ? . . . ? . . . ? . . . ? . . . ? . . . ? . .
|
45
49
|
```
|
46
50
|
|
47
51
|
Leaving "AIVDEN" for the last row.
|
48
|
-
|
52
|
+
|
53
|
+
```text
|
49
54
|
W . . . E . . . C . . . R . . . L . . . T . . . E
|
50
55
|
. E . R . D . S . O . E . E . F . E . A . O . C .
|
51
56
|
. . A . . . I . . . V . . . D . . . E . . . N . .
|
@@ -1,4 +1,4 @@
|
|
1
|
-
#
|
1
|
+
# RNA Transcription
|
2
2
|
|
3
3
|
Given a DNA strand, return its RNA complement (per RNA transcription).
|
4
4
|
|
@@ -30,7 +30,7 @@ page](http://exercism.io/languages/scala).
|
|
30
30
|
|
31
31
|
## Source
|
32
32
|
|
33
|
-
|
33
|
+
Hyperphysics [http://hyperphysics.phy-astr.gsu.edu/hbase/Organic/transcription.html](http://hyperphysics.phy-astr.gsu.edu/hbase/Organic/transcription.html)
|
34
34
|
|
35
35
|
## Submitting Incomplete Solutions
|
36
36
|
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -7,20 +7,20 @@ Run-length encoding (RLE) is a simple form of data compression, where runs
|
|
7
7
|
|
8
8
|
For example we can represent the original 53 characters with only 13.
|
9
9
|
|
10
|
-
```
|
10
|
+
```text
|
11
11
|
"WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB" -> "12WB12W3B24WB"
|
12
12
|
```
|
13
13
|
|
14
14
|
RLE allows the original data to be perfectly reconstructed from
|
15
15
|
the compressed data, which makes it a lossless data compression.
|
16
16
|
|
17
|
-
```
|
17
|
+
```text
|
18
18
|
"AABCCCDEEEE" -> "2AB3CD4E" -> "AABCCCDEEEE"
|
19
19
|
```
|
20
20
|
|
21
21
|
For simplicity, you can assume that the unencoded string will only contain
|
22
|
-
the letters A through Z (either lower or upper case) and whitespace. This way
|
23
|
-
data to be encoded will never contain any numbers and numbers inside data to
|
22
|
+
the letters A through Z (either lower or upper case) and whitespace. This way
|
23
|
+
data to be encoded will never contain any numbers and numbers inside data to
|
24
24
|
be decoded always represent the count for the following character.
|
25
25
|
|
26
26
|
The Scala exercises assume an SBT project scheme. The exercise solution source
|
@@ -4,7 +4,7 @@ Detect saddle points in a matrix.
|
|
4
4
|
|
5
5
|
So say you have a matrix like so:
|
6
6
|
|
7
|
-
```
|
7
|
+
```text
|
8
8
|
0 1 2
|
9
9
|
|---------
|
10
10
|
0 | 9 8 7
|
@@ -15,7 +15,7 @@ So say you have a matrix like so:
|
|
15
15
|
It has a saddle point at (1, 0).
|
16
16
|
|
17
17
|
It's called a "saddle point" because it is greater than or equal to
|
18
|
-
every element in its row and
|
18
|
+
every element in its row and less than or equal to every element in
|
19
19
|
its column.
|
20
20
|
|
21
21
|
A matrix may have zero or more saddle points.
|
@@ -6,7 +6,7 @@ Given a word, compute the scrabble score for that word.
|
|
6
6
|
|
7
7
|
You'll need these:
|
8
8
|
|
9
|
-
```
|
9
|
+
```text
|
10
10
|
Letter Value
|
11
11
|
A, E, I, O, U, L, N, R, S, T 1
|
12
12
|
D, G 2
|
@@ -18,6 +18,7 @@ Q, Z 10
|
|
18
18
|
```
|
19
19
|
|
20
20
|
## Examples
|
21
|
+
|
21
22
|
"cabbage" should be scored as worth 14 points:
|
22
23
|
|
23
24
|
- 3 points for C
|
@@ -34,6 +35,7 @@ And to total:
|
|
34
35
|
- = 14
|
35
36
|
|
36
37
|
## Extensions
|
38
|
+
|
37
39
|
- You can play a double or a triple letter.
|
38
40
|
- You can play a double or a triple word.
|
39
41
|
|
@@ -6,7 +6,7 @@
|
|
6
6
|
You and your fellow cohort of those in the "know" when it comes to
|
7
7
|
binary decide to come up with a secret "handshake".
|
8
8
|
|
9
|
-
```
|
9
|
+
```text
|
10
10
|
1 = wink
|
11
11
|
10 = double blink
|
12
12
|
100 = close your eyes
|
@@ -40,7 +40,7 @@ page](http://exercism.io/languages/scala).
|
|
40
40
|
|
41
41
|
## Source
|
42
42
|
|
43
|
-
Bert, in Mary Poppins [http://www.imdb.com/
|
43
|
+
Bert, in Mary Poppins [http://www.imdb.com/title/tt0058331/quotes/qt0437047](http://www.imdb.com/title/tt0058331/quotes/qt0437047)
|
44
44
|
|
45
45
|
## Submitting Incomplete Solutions
|
46
46
|
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
#
|
1
|
+
# SGF Parsing
|
2
2
|
|
3
3
|
Parsing a Smart Game Format string.
|
4
4
|
|
@@ -12,7 +12,7 @@ multiple values.
|
|
12
12
|
|
13
13
|
An SGF file may look like this:
|
14
14
|
|
15
|
-
```
|
15
|
+
```text
|
16
16
|
(;FF[4]C[root]SZ[19];B[aa];W[ab])
|
17
17
|
```
|
18
18
|
|
@@ -34,7 +34,7 @@ SGF can encode variations of play. Go players do a lot of backtracking
|
|
34
34
|
in their reviews (let's try this, doesn't work, let's try that) and SGF
|
35
35
|
supports variations of play sequences. For example:
|
36
36
|
|
37
|
-
```
|
37
|
+
```text
|
38
38
|
(;FF[4](;B[aa];W[ab])(;B[dd];W[ee]))
|
39
39
|
```
|
40
40
|
|
@@ -46,7 +46,7 @@ opening to take the corner).
|
|
46
46
|
|
47
47
|
A key can have multiple values associated with it. For example:
|
48
48
|
|
49
|
-
```
|
49
|
+
```text
|
50
50
|
(;FF[4];AB[aa][ab][ba])
|
51
51
|
```
|
52
52
|
|
@@ -74,6 +74,5 @@ For more detailed info about the Scala track see the [help
|
|
74
74
|
page](http://exercism.io/languages/scala).
|
75
75
|
|
76
76
|
|
77
|
-
|
78
77
|
## Submitting Incomplete Solutions
|
79
78
|
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -47,7 +47,7 @@ Given the key "aaaaaaaaaaaaaaaaaa", encoding the string "iamapandabear"
|
|
47
47
|
would return the original "iamapandabear".
|
48
48
|
|
49
49
|
Given the key "ddddddddddddddddd", encoding our string "iamapandabear"
|
50
|
-
would return the obscured "
|
50
|
+
would return the obscured "ldpdsdqgdehdu"
|
51
51
|
|
52
52
|
In the example above, we've set a = 0 for the key value. So when the
|
53
53
|
plaintext is added to the key, we end up with the same message coming
|
@@ -58,15 +58,13 @@ would get the same thing as the Caesar Cipher.
|
|
58
58
|
|
59
59
|
The weakest link in any cipher is the human being. Let's make your
|
60
60
|
substitution cipher a little more fault tolerant by providing a source
|
61
|
-
of randomness and ensuring that the key
|
62
|
-
capital letters.
|
61
|
+
of randomness and ensuring that the key contains only lowercase letters.
|
63
62
|
|
64
63
|
If someone doesn't submit a key at all, generate a truly random key of
|
65
|
-
at least 100 characters in length
|
66
|
-
syntax means instance variable)
|
64
|
+
at least 100 characters in length.
|
67
65
|
|
68
|
-
If the key submitted
|
69
|
-
|
66
|
+
If the key submitted is not composed only of lowercase letters, your
|
67
|
+
solution should handle the error in a language-appropriate way.
|
70
68
|
|
71
69
|
## Extensions
|
72
70
|
|
@@ -12,7 +12,7 @@ Given an age in seconds, calculate how old someone would be on:
|
|
12
12
|
- Neptune: orbital period 164.79132 Earth years
|
13
13
|
|
14
14
|
So if you were told someone were 1,000,000,000 seconds old, you should
|
15
|
-
be able to say that they're 31 Earth-years old.
|
15
|
+
be able to say that they're 31.69 Earth-years old.
|
16
16
|
|
17
17
|
If you're wondering why Pluto didn't make the cut, go watch [this
|
18
18
|
youtube video](http://www.youtube.com/watch?v=Z_2gbGXzFbs).
|
@@ -8,7 +8,7 @@ like these examples:
|
|
8
8
|
|
9
9
|
###### Spiral matrix of size 3
|
10
10
|
|
11
|
-
```
|
11
|
+
```text
|
12
12
|
1 2 3
|
13
13
|
8 9 4
|
14
14
|
7 6 5
|
@@ -16,7 +16,7 @@ like these examples:
|
|
16
16
|
|
17
17
|
###### Spiral matrix of size 4
|
18
18
|
|
19
|
-
```
|
19
|
+
```text
|
20
20
|
1 2 3 4
|
21
21
|
12 13 14 5
|
22
22
|
11 16 15 6
|
@@ -1,16 +1,13 @@
|
|
1
1
|
# Sum Of Multiples
|
2
2
|
|
3
|
-
Given a number, find the sum of all the multiples of particular numbers up to
|
3
|
+
Given a number, find the sum of all the unique multiples of particular numbers up to
|
4
4
|
but not including that number.
|
5
5
|
|
6
|
-
If we list all the natural numbers
|
7
|
-
|
6
|
+
If we list all the natural numbers below 20 that are multiples of 3 or 5,
|
7
|
+
we get 3, 5, 6, 9, 10, 12, 15, and 18.
|
8
8
|
|
9
9
|
The sum of these multiples is 78.
|
10
10
|
|
11
|
-
Given a number, find the sum of the multiples of a given set of numbers,
|
12
|
-
up to but not including that number.
|
13
|
-
|
14
11
|
The Scala exercises assume an SBT project scheme. The exercise solution source
|
15
12
|
should be placed within the exercise directory/src/main/scala. The exercise
|
16
13
|
unit tests can be found within the exercise directory/src/test/scala.
|
@@ -2,23 +2,26 @@
|
|
2
2
|
|
3
3
|
Determine if a triangle is equilateral, isosceles, or scalene.
|
4
4
|
|
5
|
-
An _equilateral_ triangle has all three sides the same length
|
5
|
+
An _equilateral_ triangle has all three sides the same length.
|
6
|
+
|
6
7
|
An _isosceles_ triangle has at least two sides the same length. (It is sometimes
|
7
8
|
specified as having exactly two sides the same length, but for the purposes of
|
8
|
-
this exercise we'll say at least two.)
|
9
|
+
this exercise we'll say at least two.)
|
10
|
+
|
9
11
|
A _scalene_ triangle has all sides of different lengths.
|
10
12
|
|
11
13
|
## Note
|
12
14
|
|
13
|
-
For a shape to be a triangle at all, all sides have to be of length > 0, and
|
14
|
-
the sum of the lengths of any two sides must be greater than or equal to the
|
15
|
+
For a shape to be a triangle at all, all sides have to be of length > 0, and
|
16
|
+
the sum of the lengths of any two sides must be greater than or equal to the
|
15
17
|
length of the third side. See [Triangle Inequality](https://en.wikipedia.org/wiki/Triangle_inequality).
|
16
18
|
|
17
19
|
## Dig Deeper
|
18
20
|
|
19
|
-
The case where the sum of the lengths of two sides _equals_ that of the
|
20
|
-
third is known as a _degenerate_ triangle - it has zero area and looks like
|
21
|
+
The case where the sum of the lengths of two sides _equals_ that of the
|
22
|
+
third is known as a _degenerate_ triangle - it has zero area and looks like
|
21
23
|
a single line. Feel free to add your own code/tests to check for degenerate triangles.
|
24
|
+
|
22
25
|
The Scala exercises assume an SBT project scheme. The exercise solution source
|
23
26
|
should be placed within the exercise directory/src/main/scala. The exercise
|
24
27
|
unit tests can be found within the exercise directory/src/test/scala.
|
@@ -11,7 +11,7 @@ Trinary numbers contain three symbols: 0, 1, and 2.
|
|
11
11
|
The last place in a trinary number is the 1's place. The second to last
|
12
12
|
is the 3's place, the third to last is the 9's place, etc.
|
13
13
|
|
14
|
-
```
|
14
|
+
```shell
|
15
15
|
# "102012"
|
16
16
|
1 0 2 0 1 2 # the number
|
17
17
|
1*3^5 + 0*3^4 + 2*3^3 + 0*3^2 + 1*3^1 + 2*3^0 # the value
|
@@ -5,18 +5,17 @@ Implement variable length quantity encoding and decoding.
|
|
5
5
|
The goal of this exercise is to implement [VLQ](https://en.wikipedia.org/wiki/Variable-length_quantity) encoding/decoding.
|
6
6
|
|
7
7
|
In short, the goal of this encoding is to encode integer values in a way that would save bytes.
|
8
|
-
Only the first 7 bits of each byte is significant (right-justified; sort of like an ASCII byte).
|
9
|
-
So, if you have a 32-bit value, you have to unpack it into a series of 7-bit bytes.
|
10
|
-
Of course, you will have a variable number of bytes depending upon your integer.
|
8
|
+
Only the first 7 bits of each byte is significant (right-justified; sort of like an ASCII byte).
|
9
|
+
So, if you have a 32-bit value, you have to unpack it into a series of 7-bit bytes.
|
10
|
+
Of course, you will have a variable number of bytes depending upon your integer.
|
11
11
|
To indicate which is the last byte of the series, you leave bit #7 clear.
|
12
|
-
In all of the preceding bytes, you set bit #7.
|
12
|
+
In all of the preceding bytes, you set bit #7.
|
13
13
|
|
14
|
-
So, if an integer is between `0-127`, it can be represented as one byte.
|
14
|
+
So, if an integer is between `0-127`, it can be represented as one byte.
|
15
15
|
Although VLQ can deal with numbers of arbitrary sizes, for this exercise we will restrict ourselves to only numbers that fit in a 32-bit unsigned integer.
|
16
16
|
Here are examples of integers as 32-bit values, and the variable length quantities that they translate to:
|
17
17
|
|
18
|
-
|
19
|
-
```
|
18
|
+
```text
|
20
19
|
NUMBER VARIABLE QUANTITY
|
21
20
|
00000000 00
|
22
21
|
00000040 40
|
@@ -4,14 +4,13 @@ Given a phrase, count the occurrences of each word in that phrase.
|
|
4
4
|
|
5
5
|
For example for the input `"olly olly in come free"`
|
6
6
|
|
7
|
-
```
|
7
|
+
```text
|
8
8
|
olly: 2
|
9
9
|
in: 1
|
10
10
|
come: 1
|
11
11
|
free: 1
|
12
12
|
```
|
13
13
|
|
14
|
-
|
15
14
|
The Scala exercises assume an SBT project scheme. The exercise solution source
|
16
15
|
should be placed within the exercise directory/src/main/scala. The exercise
|
17
16
|
unit tests can be found within the exercise directory/src/test/scala.
|
@@ -2,7 +2,6 @@
|
|
2
2
|
|
3
3
|
Parse and evaluate simple math word problems returning the answer as an integer.
|
4
4
|
|
5
|
-
|
6
5
|
## Iteration 1 — Addition
|
7
6
|
|
8
7
|
Add two numbers together.
|
@@ -13,7 +12,6 @@ Evaluates to 18.
|
|
13
12
|
|
14
13
|
Handle large numbers and negative numbers.
|
15
14
|
|
16
|
-
|
17
15
|
## Iteration 2 — Subtraction, Multiplication and Division
|
18
16
|
|
19
17
|
Now, perform the other three operations.
|
@@ -30,7 +28,6 @@ Now, perform the other three operations.
|
|
30
28
|
|
31
29
|
5
|
32
30
|
|
33
|
-
|
34
31
|
## Iteration 3 — Multiple Operations
|
35
32
|
|
36
33
|
Handle a set of operations, in sequence.
|
@@ -46,7 +43,6 @@ left-to-right, _ignoring the typical order of operations._
|
|
46
43
|
|
47
44
|
15 (i.e. not 9)
|
48
45
|
|
49
|
-
|
50
46
|
## Bonus — Exponentials
|
51
47
|
|
52
48
|
If you'd like, handle exponentials.
|
@@ -55,7 +51,6 @@ If you'd like, handle exponentials.
|
|
55
51
|
|
56
52
|
32
|
57
53
|
|
58
|
-
|
59
54
|
The Scala exercises assume an SBT project scheme. The exercise solution source
|
60
55
|
should be placed within the exercise directory/src/main/scala. The exercise
|
61
56
|
unit tests can be found within the exercise directory/src/test/scala.
|