trackler 2.2.1.105 → 2.2.1.106
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/trackler/version.rb +1 -1
- data/problem-specifications/.travis.yml +1 -41
- data/problem-specifications/exercises/bowling/canonical-data.json +17 -1
- data/problem-specifications/exercises/circular-buffer/canonical-data.json +317 -278
- data/problem-specifications/exercises/forth/canonical-data.json +155 -67
- data/problem-specifications/exercises/grains/canonical-data.json +32 -11
- data/problem-specifications/exercises/grep/canonical-data.json +106 -64
- data/problem-specifications/exercises/house/canonical-data.json +57 -29
- data/problem-specifications/exercises/isogram/canonical-data.json +28 -10
- data/problem-specifications/exercises/list-ops/canonical-data.json +77 -39
- data/problem-specifications/exercises/pov/canonical-data.json +386 -355
- data/problem-specifications/exercises/trinary/canonical-data.json +34 -12
- data/problem-specifications/exercises/two-bucket/description.md +1 -1
- data/problem-specifications/exercises/word-search/canonical-data.json +309 -269
- data/problem-specifications/exercises/zipper/canonical-data.json +337 -311
- data/tracks/bash/docs/ABOUT.md +22 -2
- data/tracks/c/exercises/bob/README.md +2 -0
- data/tracks/c/exercises/bob/src/example.c +4 -2
- data/tracks/c/exercises/bob/test/test_bob.c +82 -12
- data/tracks/c/exercises/palindrome-products/src/example.c +100 -27
- data/tracks/c/exercises/palindrome-products/src/example.h +19 -4
- data/tracks/c/exercises/palindrome-products/test/test_palindrome_products.c +178 -10
- data/tracks/common-lisp/exercises/bob/README.md +2 -0
- data/tracks/common-lisp/exercises/bob/bob-test.lisp +45 -8
- data/tracks/common-lisp/exercises/bob/example.lisp +11 -7
- data/tracks/cpp/docs/INSTALLATION.md +1 -1
- data/tracks/cpp/exercises/leap/leap_test.cpp +1 -1
- data/tracks/elixir/exercises/pig-latin/example.exs +1 -2
- data/tracks/elixir/exercises/pig-latin/pig_latin_test.exs +13 -4
- data/tracks/elm/config.json +4 -4
- data/tracks/elm/exercises/bob/Bob.example.elm +3 -1
- data/tracks/elm/exercises/bob/README.md +2 -0
- data/tracks/elm/exercises/bob/tests/Tests.elm +1 -1
- data/tracks/elm/exercises/phone-number/PhoneNumber.example.elm +33 -18
- data/tracks/elm/exercises/phone-number/tests/Tests.elm +40 -19
- data/tracks/elm/exercises/space-age/tests/Tests.elm +8 -8
- data/tracks/fsharp/exercises/all-your-base/AllYourBaseTest.fs +2 -2
- data/tracks/fsharp/exercises/binary-search-tree/BinarySearchTree.fs +3 -7
- data/tracks/fsharp/exercises/binary-search-tree/BinarySearchTreeTest.fs +63 -37
- data/tracks/fsharp/exercises/binary-search-tree/Example.fs +5 -5
- data/tracks/fsharp/exercises/circular-buffer/CircularBufferTest.fs +0 -13
- data/tracks/fsharp/exercises/complex-numbers/ComplexNumbersTest.fs +7 -1
- data/tracks/fsharp/exercises/react/ReactTest.fs +0 -12
- data/tracks/fsharp/exercises/scale-generator/Example.fs +11 -7
- data/tracks/fsharp/exercises/scale-generator/ScaleGenerator.fs +1 -1
- data/tracks/fsharp/exercises/scale-generator/ScaleGeneratorTest.fs +34 -49
- data/tracks/fsharp/generators/Common.fs +1 -1
- data/tracks/fsharp/generators/Exercise.fs +3 -2
- data/tracks/fsharp/generators/Generators.fs +95 -29
- data/tracks/fsharp/generators/Templates/_TestFunction.liquid +1 -1
- data/tracks/fsharp/generators/Templates/_TestFunctionBody.liquid +3 -1
- data/tracks/fsharp/generators/Templates/_TestMember.liquid +1 -1
- data/tracks/fsharp/generators/Templates/_TestMemberBody.liquid +3 -1
- data/tracks/go/exercises/simple-linked-list/linked_list_test.go +17 -13
- data/tracks/haskell/config.json +10 -0
- data/tracks/haskell/exercises/all-your-base/package.yaml +1 -1
- data/tracks/haskell/exercises/all-your-base/test/Tests.hs +1 -1
- data/tracks/haskell/exercises/bowling/package.yaml +1 -1
- data/tracks/haskell/exercises/bowling/test/Tests.hs +8 -0
- data/tracks/haskell/exercises/complex-numbers/package.yaml +1 -1
- data/tracks/haskell/exercises/diamond/examples/success-standard/src/Diamond.hs +2 -2
- data/tracks/haskell/exercises/diamond/package.yaml +1 -1
- data/tracks/haskell/exercises/diamond/src/Diamond.hs +1 -1
- data/tracks/haskell/exercises/diamond/test/Tests.hs +1 -1
- data/tracks/haskell/exercises/forth/package.yaml +1 -1
- data/tracks/haskell/exercises/grains/package.yaml +1 -1
- data/tracks/haskell/exercises/isogram/package.yaml +1 -1
- data/tracks/haskell/exercises/list-ops/package.yaml +1 -1
- data/tracks/haskell/exercises/list-ops/test/Tests.hs +81 -76
- data/tracks/haskell/exercises/pov/package.yaml +1 -1
- data/tracks/haskell/exercises/protein-translation/README.md +102 -0
- data/tracks/haskell/exercises/protein-translation/examples/success-standard/package.yaml +17 -0
- data/tracks/haskell/exercises/protein-translation/examples/success-standard/src/ProteinTranslation.hs +24 -0
- data/tracks/haskell/exercises/protein-translation/package.yaml +20 -0
- data/tracks/haskell/exercises/protein-translation/src/ProteinTranslation.hs +4 -0
- data/tracks/haskell/exercises/protein-translation/stack.yaml +1 -0
- data/tracks/haskell/exercises/protein-translation/test/Tests.hs +119 -0
- data/tracks/haskell/exercises/zipper/package.yaml +1 -1
- data/tracks/java/.github/PULL_REQUEST_TEMPLATE.md +1 -1
- data/tracks/java/config.json +13 -0
- data/tracks/java/exercises/atbash-cipher/src/test/java/AtbashTest.java +78 -62
- data/tracks/java/exercises/binary/.meta/version +1 -0
- data/tracks/java/exercises/binary/src/test/java/BinaryTest.java +97 -32
- data/tracks/java/exercises/bracket-push/.meta/version +1 -1
- data/tracks/java/exercises/isbn-verifier/.meta/version +1 -1
- data/tracks/java/exercises/isbn-verifier/src/test/java/IsbnVerifierTest.java +6 -0
- data/tracks/java/exercises/matrix/.meta/src/reference/java/Matrix.java +0 -8
- data/tracks/java/exercises/matrix/.meta/version +2 -0
- data/tracks/java/exercises/matrix/src/test/java/MatrixTest.java +95 -193
- data/tracks/java/exercises/octal/src/test/java/OctalTest.java +81 -32
- data/tracks/java/exercises/pascals-triangle/.meta/version +1 -1
- data/tracks/java/exercises/phone-number/.meta/version +1 -1
- data/tracks/java/exercises/pig-latin/.meta/version +1 -1
- data/tracks/java/exercises/pig-latin/src/test/java/PigLatinTranslatorTest.java +116 -55
- data/tracks/java/exercises/prime-factors/src/test/java/PrimeFactorsCalculatorTest.java +42 -24
- data/tracks/java/exercises/raindrops/.meta/version +1 -1
- data/tracks/java/exercises/raindrops/src/test/java/RaindropConverterTest.java +97 -41
- data/tracks/java/exercises/reverse-string/.meta/version +1 -1
- data/tracks/java/exercises/roman-numerals/src/test/java/RomanNumeralsTest.java +118 -37
- data/tracks/java/exercises/run-length-encoding/.meta/version +1 -0
- data/tracks/java/exercises/scrabble-score/src/test/java/ScrabbleScoreTest.java +71 -29
- data/tracks/java/exercises/settings.gradle +1 -0
- data/tracks/java/exercises/two-bucket/.meta/src/reference/java/TwoBucket.java +145 -0
- data/tracks/java/exercises/two-bucket/.meta/version +1 -0
- data/tracks/java/exercises/two-bucket/README.md +48 -0
- data/tracks/java/exercises/two-bucket/build.gradle +18 -0
- data/{problem-specifications/exercises/circular-buffer/USE_OLD_SCHEMA → tracks/java/exercises/two-bucket/src/main/java/.keep} +0 -0
- data/tracks/java/exercises/two-bucket/src/test/java/TwoBucketTest.java +77 -0
- data/tracks/javascript/.eslintignore +0 -9
- data/tracks/javascript/exercises/binary-search/example.js +1 -1
- data/tracks/javascript/exercises/binary-search-tree/example.js +2 -2
- data/tracks/javascript/exercises/bracket-push/example.js +1 -1
- data/tracks/javascript/exercises/leap/example.js +7 -3
- data/tracks/javascript/exercises/leap/leap.js +2 -2
- data/tracks/javascript/exercises/list-ops/example.js +1 -1
- data/tracks/javascript/exercises/luhn/example.js +2 -2
- data/tracks/javascript/exercises/pythagorean-triplet/example.js +2 -1
- data/tracks/javascript/exercises/roman-numerals/example.js +3 -2
- data/tracks/julia/config.json +13 -0
- data/tracks/julia/exercises/isbn-verifier/README.md +51 -0
- data/tracks/julia/exercises/isbn-verifier/example.jl +26 -0
- data/{problem-specifications/exercises/forth/USE_OLD_SCHEMA → tracks/julia/exercises/isbn-verifier/isbn-verifier.jl} +0 -0
- data/tracks/julia/exercises/isbn-verifier/runtests.jl +73 -0
- data/tracks/perl5/.travis.yml +8 -1
- data/tracks/perl5/README.md +9 -11
- data/tracks/perl5/bin/exercise-gen.pl +14 -29
- data/tracks/perl5/config.json +1 -0
- data/tracks/perl5/cpanfile +2 -1
- data/tracks/perl5/exercises/accumulate/{Example.pm → .meta/solutions/Accumulate.pm} +1 -1
- data/tracks/perl5/exercises/accumulate/.meta/solutions/accumulate.t +1 -0
- data/tracks/perl5/exercises/accumulate/accumulate.t +1 -1
- data/tracks/perl5/exercises/all-your-base/{Example.pm → .meta/solutions/AllYourBase.pm} +1 -1
- data/tracks/perl5/exercises/all-your-base/.meta/solutions/all-your-base.t +1 -0
- data/tracks/perl5/exercises/all-your-base/all-your-base.t +1 -1
- data/tracks/perl5/exercises/allergies/{Example.pm → .meta/solutions/Allergies.pm} +1 -1
- data/tracks/perl5/exercises/allergies/.meta/solutions/allergies.t +1 -0
- data/tracks/perl5/exercises/allergies/allergies.t +75 -8
- data/tracks/perl5/exercises/anagram/{Example.pm → .meta/solutions/Anagram.pm} +1 -1
- data/tracks/perl5/exercises/anagram/.meta/solutions/anagram.t +1 -0
- data/tracks/perl5/exercises/anagram/anagram.t +61 -8
- data/tracks/perl5/exercises/atbash-cipher/{Example.pm → .meta/solutions/Cipher.pm} +1 -1
- data/tracks/perl5/exercises/atbash-cipher/.meta/solutions/cipher.t +1 -0
- data/tracks/perl5/exercises/atbash-cipher/cipher.t +81 -8
- data/tracks/perl5/exercises/beer-song/{Example.pm → .meta/solutions/Beer.pm} +1 -1
- data/tracks/perl5/exercises/beer-song/.meta/solutions/beer.t +1 -0
- data/tracks/perl5/exercises/beer-song/beer.t +80 -7
- data/tracks/perl5/exercises/binary/{Example.pm → .meta/solutions/Binary.pm} +1 -1
- data/tracks/perl5/exercises/binary/.meta/solutions/binary.t +1 -0
- data/tracks/perl5/exercises/binary/binary.t +1 -1
- data/tracks/perl5/exercises/binary-search/{Example.pm → .meta/solutions/BinarySearch.pm} +1 -1
- data/tracks/perl5/exercises/binary-search/.meta/solutions/binary-search.t +1 -0
- data/tracks/perl5/exercises/binary-search/binary-search.t +1 -1
- data/tracks/perl5/exercises/binary-search-tree/{Example.pm → .meta/solutions/BinarySearchTree.pm} +1 -1
- data/tracks/perl5/exercises/binary-search-tree/.meta/solutions/binary_search_tree.t +1 -0
- data/tracks/perl5/exercises/binary-search-tree/binary_search_tree.t +1 -1
- data/tracks/perl5/exercises/bob/{example.yaml → .meta/exercise-data.yaml} +0 -1
- data/tracks/perl5/exercises/bob/{Example.pm → .meta/solutions/Bob.pm} +0 -0
- data/tracks/perl5/exercises/bob/.meta/solutions/bob.t +1 -0
- data/tracks/perl5/exercises/bob/bob.t +1 -2
- data/tracks/perl5/exercises/clock/{Example.pm → .meta/solutions/Clock.pm} +2 -2
- data/tracks/perl5/exercises/clock/.meta/solutions/clock.t +1 -0
- data/tracks/perl5/exercises/clock/clock.t +1 -1
- data/tracks/perl5/exercises/crypto-square/{Example.pm → .meta/solutions/Crypto.pm} +1 -1
- data/tracks/perl5/exercises/crypto-square/.meta/solutions/crypto.t +1 -0
- data/tracks/perl5/exercises/crypto-square/crypto.t +1 -1
- data/tracks/perl5/exercises/custom-set/{Example.pm → .meta/solutions/CustomSet.pm} +1 -1
- data/tracks/perl5/exercises/custom-set/.meta/solutions/custom-set.t +1 -0
- data/tracks/perl5/exercises/custom-set/custom-set.t +1 -1
- data/tracks/perl5/exercises/difference-of-squares/{Example.pm → .meta/solutions/Squares.pm} +1 -1
- data/tracks/perl5/exercises/difference-of-squares/.meta/solutions/difference_of_squares.t +1 -0
- data/tracks/perl5/exercises/difference-of-squares/difference_of_squares.t +1 -1
- data/tracks/perl5/exercises/etl/{Example.pm → .meta/solutions/ETL.pm} +1 -1
- data/tracks/perl5/exercises/etl/.meta/solutions/etl.t +1 -0
- data/tracks/perl5/exercises/etl/etl.t +1 -1
- data/tracks/perl5/exercises/food-chain/{Example.pm → .meta/solutions/FoodChainSong.pm} +1 -1
- data/tracks/perl5/exercises/food-chain/.meta/solutions/food_chain.t +1 -0
- data/tracks/perl5/exercises/food-chain/food_chain.t +1 -1
- data/tracks/perl5/exercises/gigasecond/{Example.pm → .meta/solutions/Gigasecond.pm} +1 -1
- data/tracks/perl5/exercises/gigasecond/.meta/solutions/gigasecond.t +1 -0
- data/tracks/perl5/exercises/gigasecond/gigasecond.t +1 -1
- data/tracks/perl5/exercises/grade-school/{Example.pm → .meta/solutions/GradeSchool.pm} +1 -1
- data/tracks/perl5/exercises/grade-school/.meta/solutions/grade_school.t +1 -0
- data/tracks/perl5/exercises/grade-school/grade_school.t +1 -1
- data/tracks/perl5/exercises/grains/{Example.pm → .meta/solutions/Grains.pm} +1 -1
- data/tracks/perl5/exercises/grains/.meta/solutions/grains.t +1 -0
- data/tracks/perl5/exercises/grains/grains.t +54 -6
- data/tracks/perl5/exercises/hamming/{Example.pm → .meta/solutions/Hamming.pm} +1 -1
- data/tracks/perl5/exercises/hamming/.meta/solutions/hamming.t +1 -0
- data/tracks/perl5/exercises/hamming/hamming.t +1 -1
- data/tracks/perl5/exercises/hello-world/{example.yaml → .meta/exercise-data.yaml} +0 -1
- data/tracks/perl5/exercises/hello-world/{Example.pm → .meta/solutions/HelloWorld.pm} +0 -0
- data/tracks/perl5/exercises/hello-world/.meta/solutions/hello-world.t +1 -0
- data/tracks/perl5/exercises/hello-world/hello-world.t +1 -2
- data/tracks/perl5/exercises/hexadecimal/{Example.pm → .meta/solutions/Hexadecimal.pm} +1 -1
- data/tracks/perl5/exercises/hexadecimal/.meta/solutions/hexadecimal.t +1 -0
- data/tracks/perl5/exercises/hexadecimal/hexadecimal.t +1 -1
- data/tracks/perl5/exercises/house/{Example.pm → .meta/solutions/House.pm} +1 -1
- data/tracks/perl5/exercises/house/.meta/solutions/house.t +1 -0
- data/tracks/perl5/exercises/house/house.t +1 -1
- data/tracks/perl5/exercises/kindergarten-garden/{Example.pm → .meta/solutions/Kindergarten.pm} +1 -1
- data/tracks/perl5/exercises/kindergarten-garden/.meta/solutions/kindergarten.t +1 -0
- data/tracks/perl5/exercises/kindergarten-garden/kindergarten.t +1 -1
- data/tracks/perl5/exercises/largest-series-product/{Example.pm → .meta/solutions/Series.pm} +1 -1
- data/tracks/perl5/exercises/largest-series-product/.meta/solutions/series_product.t +1 -0
- data/tracks/perl5/exercises/largest-series-product/series_product.t +1 -1
- data/tracks/perl5/exercises/leap/{example.yaml → .meta/exercise-data.yaml} +0 -1
- data/tracks/perl5/exercises/leap/{Example.pm → .meta/solutions/Leap.pm} +0 -0
- data/tracks/perl5/exercises/leap/.meta/solutions/leap.t +1 -0
- data/tracks/perl5/exercises/leap/leap.t +1 -2
- data/tracks/perl5/exercises/linked-list/{Example.pm → .meta/solutions/Deque.pm} +1 -1
- data/tracks/perl5/exercises/linked-list/.meta/solutions/deque.t +1 -0
- data/tracks/perl5/exercises/linked-list/deque.t +60 -7
- data/tracks/perl5/exercises/list-ops/{Example.pm → .meta/solutions/ListOps.pm} +1 -1
- data/tracks/perl5/exercises/list-ops/.meta/solutions/list-ops.t +1 -0
- data/tracks/perl5/exercises/list-ops/list-ops.t +1 -1
- data/tracks/perl5/exercises/luhn/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl5/exercises/luhn/{Example.pm → .meta/solutions/Luhn.pm} +0 -0
- data/tracks/perl5/exercises/luhn/.meta/solutions/luhn.t +1 -0
- data/tracks/perl5/exercises/luhn/luhn.t +1 -2
- data/tracks/perl5/exercises/matrix/{Example.pm → .meta/solutions/Matrix.pm} +1 -1
- data/tracks/perl5/exercises/matrix/.meta/solutions/matrix.t +1 -0
- data/tracks/perl5/exercises/matrix/matrix.t +1 -1
- data/tracks/perl5/exercises/meetup/{Example.pm → .meta/solutions/Meetup.pm} +1 -1
- data/tracks/perl5/exercises/meetup/.meta/solutions/meetup.t +1 -0
- data/tracks/perl5/exercises/meetup/meetup.t +1 -1
- data/tracks/perl5/exercises/minesweeper/{Example.pm → .meta/solutions/Minesweeper.pm} +1 -1
- data/tracks/perl5/exercises/minesweeper/.meta/solutions/minesweeper.t +1 -0
- data/tracks/perl5/exercises/minesweeper/minesweeper.t +1 -1
- data/tracks/perl5/exercises/nucleotide-count/{Example.pm → .meta/solutions/NucleotideCount.pm} +1 -1
- data/tracks/perl5/exercises/nucleotide-count/.meta/solutions/nucleotide_count.t +1 -0
- data/tracks/perl5/exercises/nucleotide-count/nucleotide_count.t +1 -1
- data/tracks/perl5/exercises/ocr-numbers/{Example.pm → .meta/solutions/OCR.pm} +1 -1
- data/tracks/perl5/exercises/ocr-numbers/.meta/solutions/ocr.t +1 -0
- data/tracks/perl5/exercises/ocr-numbers/ocr.t +1 -1
- data/tracks/perl5/exercises/palindrome-products/{Example.pm → .meta/solutions/Palindrome.pm} +1 -1
- data/tracks/perl5/exercises/palindrome-products/.meta/solutions/palindrome.t +1 -0
- data/tracks/perl5/exercises/palindrome-products/palindrome.t +1 -1
- data/tracks/perl5/exercises/pascals-triangle/{Example.pm → .meta/solutions/Triangle.pm} +1 -1
- data/tracks/perl5/exercises/pascals-triangle/.meta/solutions/triangle.t +1 -0
- data/tracks/perl5/exercises/pascals-triangle/triangle.t +51 -7
- data/tracks/perl5/exercises/phone-number/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl5/exercises/phone-number/{Example.pm → .meta/solutions/PhoneNumber.pm} +0 -0
- data/tracks/perl5/exercises/phone-number/.meta/solutions/phone-number.t +1 -0
- data/tracks/perl5/exercises/phone-number/phone-number.t +1 -2
- data/tracks/perl5/exercises/pig-latin/{Example.pm → .meta/solutions/PigLatin.pm} +1 -1
- data/tracks/perl5/exercises/pig-latin/.meta/solutions/piglatin.t +1 -0
- data/tracks/perl5/exercises/pig-latin/piglatin.t +1 -1
- data/tracks/perl5/exercises/point-mutations/{Example.pm → .meta/solutions/DNA.pm} +1 -1
- data/tracks/perl5/exercises/point-mutations/.meta/solutions/dna.t +1 -0
- data/tracks/perl5/exercises/point-mutations/dna.t +75 -7
- data/tracks/perl5/exercises/prime-factors/{Example.pm → .meta/solutions/Prime.pm} +1 -1
- data/tracks/perl5/exercises/prime-factors/.meta/solutions/prime.t +1 -0
- data/tracks/perl5/exercises/prime-factors/prime.t +63 -7
- data/tracks/perl5/exercises/proverb/{Example.pm → .meta/solutions/Proverb.pm} +1 -1
- data/tracks/perl5/exercises/proverb/.meta/solutions/proverb.t +1 -0
- data/tracks/perl5/exercises/proverb/proverb.t +58 -7
- data/tracks/perl5/exercises/pythagorean-triplet/{Example.pm → .meta/solutions/Triplet.pm} +2 -2
- data/tracks/perl5/exercises/pythagorean-triplet/.meta/solutions/triplet.t +1 -0
- data/tracks/perl5/exercises/pythagorean-triplet/triplet.t +1 -1
- data/tracks/perl5/exercises/queen-attack/{Example.pm → .meta/solutions/Queens.pm} +1 -1
- data/tracks/perl5/exercises/queen-attack/.meta/solutions/queen.t +1 -0
- data/tracks/perl5/exercises/queen-attack/queen.t +186 -8
- data/tracks/perl5/exercises/raindrops/{Example.pm → .meta/solutions/Raindrops.pm} +1 -1
- data/tracks/perl5/exercises/raindrops/.meta/solutions/raindrops.t +1 -0
- data/tracks/perl5/exercises/raindrops/raindrops.t +89 -7
- data/tracks/perl5/exercises/rna-transcription/{Example.pm → .meta/solutions/DNA.pm} +1 -1
- data/tracks/perl5/exercises/rna-transcription/.meta/solutions/rna.t +1 -0
- data/tracks/perl5/exercises/rna-transcription/rna.t +1 -1
- data/tracks/perl5/exercises/robot-name/{Example.pm → .meta/solutions/RobotName.pm} +1 -1
- data/tracks/perl5/exercises/robot-name/.meta/solutions/robot_name.t +1 -0
- data/tracks/perl5/exercises/robot-name/robot_name.t +1 -1
- data/tracks/perl5/exercises/robot-simulator/{Example.pm → .meta/solutions/Robot.pm} +1 -1
- data/tracks/perl5/exercises/robot-simulator/.meta/solutions/robot_simulator.t +1 -0
- data/tracks/perl5/exercises/robot-simulator/robot_simulator.t +1 -1
- data/tracks/perl5/exercises/roman-numerals/{Example.pm → .meta/solutions/Decimal.pm} +1 -1
- data/tracks/perl5/exercises/roman-numerals/.meta/solutions/roman.t +1 -0
- data/tracks/perl5/exercises/roman-numerals/roman.t +1 -1
- data/tracks/perl5/exercises/saddle-points/{Example.pm → .meta/solutions/Matrix.pm} +1 -1
- data/tracks/perl5/exercises/saddle-points/.meta/solutions/saddle_points.t +1 -0
- data/tracks/perl5/exercises/saddle-points/saddle_points.t +1 -1
- data/tracks/perl5/exercises/say/{Example.pm → .meta/solutions/Say.pm} +1 -1
- data/tracks/perl5/exercises/say/.meta/solutions/say.t +1 -0
- data/tracks/perl5/exercises/say/say.t +1 -1
- data/tracks/perl5/exercises/scrabble-score/{Example.pm → .meta/solutions/Word.pm} +1 -1
- data/tracks/perl5/exercises/scrabble-score/.meta/solutions/scrabble.t +1 -0
- data/tracks/perl5/exercises/scrabble-score/scrabble.t +1 -1
- data/tracks/perl5/exercises/secret-handshake/{Example.pm → .meta/solutions/SecretHandshake.pm} +1 -1
- data/tracks/perl5/exercises/secret-handshake/.meta/solutions/handshake.t +1 -0
- data/tracks/perl5/exercises/secret-handshake/handshake.t +1 -1
- data/tracks/perl5/exercises/series/{Example.pm → .meta/solutions/Series.pm} +1 -1
- data/tracks/perl5/exercises/series/.meta/solutions/series.t +1 -0
- data/tracks/perl5/exercises/series/series.t +1 -1
- data/tracks/perl5/exercises/sieve/{Example.pm → .meta/solutions/Sieve.pm} +1 -1
- data/tracks/perl5/exercises/sieve/.meta/solutions/sieve.t +1 -0
- data/tracks/perl5/exercises/sieve/sieve.t +1 -1
- data/tracks/perl5/exercises/simple-cipher/{Example.pm → .meta/solutions/Cipher.pm} +1 -1
- data/tracks/perl5/exercises/simple-cipher/.meta/solutions/cipher.t +1 -0
- data/tracks/perl5/exercises/simple-cipher/cipher.t +1 -1
- data/tracks/perl5/exercises/simple-linked-list/{Example.pm → .meta/solutions/LinkedList.pm} +1 -1
- data/tracks/perl5/exercises/simple-linked-list/.meta/solutions/simple_linked_list.t +1 -0
- data/tracks/perl5/exercises/simple-linked-list/simple_linked_list.t +1 -1
- data/tracks/perl5/exercises/space-age/{Example.pm → .meta/solutions/SpaceAge.pm} +1 -1
- data/tracks/perl5/exercises/space-age/.meta/solutions/space.t +1 -0
- data/tracks/perl5/exercises/space-age/space.t +1 -1
- data/tracks/perl5/exercises/strain/{Example.pm → .meta/solutions/Strain.pm} +1 -1
- data/tracks/perl5/exercises/strain/.meta/solutions/strain.t +1 -0
- data/tracks/perl5/exercises/strain/strain.t +1 -1
- data/tracks/perl5/exercises/sublist/{Example.pm → .meta/solutions/Sublist.pm} +1 -1
- data/tracks/perl5/exercises/sublist/.meta/solutions/sublist.t +1 -0
- data/tracks/perl5/exercises/sublist/sublist.t +1 -1
- data/tracks/perl5/exercises/sum-of-multiples/{Example.pm → .meta/solutions/SumOfMultiples.pm} +1 -1
- data/tracks/perl5/exercises/sum-of-multiples/.meta/solutions/sum_of_multiples.t +1 -0
- data/tracks/perl5/exercises/sum-of-multiples/sum_of_multiples.t +1 -1
- data/tracks/perl5/exercises/triangle/{Example.pm → .meta/solutions/Triangle.pm} +1 -1
- data/tracks/perl5/exercises/triangle/.meta/solutions/triangle.t +1 -0
- data/tracks/perl5/exercises/triangle/triangle.t +87 -8
- data/tracks/perl5/exercises/trinary/{Example.pm → .meta/solutions/Trinary.pm} +1 -1
- data/tracks/perl5/exercises/trinary/.meta/solutions/trinary.t +1 -0
- data/tracks/perl5/exercises/trinary/trinary.t +1 -1
- data/tracks/perl5/exercises/twelve-days/{Example.pm → .meta/solutions/TwelveDays.pm} +1 -1
- data/tracks/perl5/exercises/twelve-days/.meta/solutions/song.t +1 -0
- data/tracks/perl5/exercises/twelve-days/song.t +1 -1
- data/tracks/perl5/exercises/word-count/{Example.pm → .meta/solutions/Phrase.pm} +1 -1
- data/tracks/perl5/exercises/word-count/.meta/solutions/word_count.t +1 -0
- data/tracks/perl5/exercises/word-count/word_count.t +1 -1
- data/tracks/perl5/exercises/wordy/{Example.pm → .meta/solutions/Wordy.pm} +1 -1
- data/tracks/perl5/exercises/wordy/.meta/solutions/wordy.t +1 -0
- data/tracks/perl5/exercises/wordy/wordy.t +87 -9
- data/tracks/perl5/lib/Exercism/Generator.pm +48 -0
- data/tracks/perl5/t/generated-tests.t +26 -0
- data/tracks/perl5/templates/test.mustache +4 -17
- data/tracks/perl6/.proverc +1 -0
- data/tracks/perl6/.travis.yml +6 -10
- data/tracks/perl6/README.md +1 -3
- data/tracks/perl6/bin/exercise-gen.pl6 +2 -0
- data/tracks/perl6/exercises/accumulate/.meta/solutions/accumulate.t +1 -0
- data/tracks/perl6/exercises/acronym/.meta/solutions/acronym.t +1 -0
- data/tracks/perl6/exercises/all-your-base/.meta/solutions/all-your-base.t +1 -0
- data/tracks/perl6/exercises/allergies/.meta/solutions/allergies.t +1 -0
- data/tracks/perl6/exercises/anagram/.meta/solutions/anagram.t +1 -0
- data/tracks/perl6/exercises/atbash-cipher/.meta/solutions/atbash-cipher.t +1 -0
- data/tracks/perl6/exercises/bob/.meta/solutions/bob.t +1 -0
- data/tracks/perl6/exercises/clock/.meta/solutions/clock.t +1 -0
- data/tracks/perl6/exercises/etl/.meta/solutions/etl.t +1 -0
- data/tracks/perl6/exercises/flatten-array/.meta/solutions/flatten-array.t +1 -0
- data/tracks/perl6/exercises/grade-school/.meta/solutions/grade-school.t +1 -0
- data/tracks/perl6/exercises/grains/.meta/solutions/grains.t +1 -0
- data/tracks/perl6/exercises/hamming/.meta/solutions/hamming.t +1 -0
- data/tracks/perl6/exercises/hello-world/.meta/solutions/hello-world.t +1 -0
- data/tracks/perl6/exercises/leap/.meta/solutions/leap.t +1 -0
- data/tracks/perl6/exercises/linked-list/.meta/solutions/linked-list.t +1 -0
- data/tracks/perl6/exercises/luhn/.meta/solutions/luhn.t +1 -0
- data/tracks/perl6/exercises/meetup/.meta/solutions/meetup.t +1 -0
- data/tracks/perl6/exercises/nucleotide-count/.meta/solutions/nucleotide-count.t +1 -0
- data/tracks/perl6/exercises/pangram/.meta/solutions/pangram.t +1 -0
- data/tracks/perl6/exercises/phone-number/.meta/solutions/phone-number.t +1 -0
- data/tracks/perl6/exercises/raindrops/.meta/solutions/raindrops.t +1 -0
- data/tracks/perl6/exercises/rna-transcription/.meta/solutions/rna-transcription.t +1 -0
- data/tracks/perl6/exercises/robot-name/.meta/solutions/robot-name.t +1 -0
- data/tracks/perl6/exercises/roman-numerals/.meta/solutions/roman-numerals.t +1 -0
- data/tracks/perl6/exercises/scrabble-score/.meta/solutions/scrabble-score.t +1 -0
- data/tracks/perl6/exercises/space-age/.meta/solutions/space-age.t +1 -0
- data/tracks/perl6/exercises/two-fer/.meta/solutions/two-fer.t +1 -0
- data/tracks/perl6/exercises/word-count/.meta/solutions/word-count.t +1 -0
- data/tracks/perl6/exercises/wordy/.meta/solutions/wordy.t +1 -0
- data/tracks/python/config/exercise_readme.go.tmpl +23 -4
- data/tracks/python/exercises/accumulate/README.md +2 -3
- data/tracks/python/exercises/acronym/README.md +2 -3
- data/tracks/python/exercises/acronym/acronym_test.py +2 -5
- data/tracks/python/exercises/all-your-base/README.md +2 -4
- data/tracks/python/exercises/allergies/README.md +2 -3
- data/tracks/python/exercises/allergies/allergies_test.py +1 -1
- data/tracks/python/exercises/alphametics/README.md +2 -4
- data/tracks/python/exercises/anagram/README.md +2 -3
- data/tracks/python/exercises/anagram/anagram_test.py +2 -16
- data/tracks/python/exercises/armstrong-numbers/README.md +16 -2
- data/tracks/python/exercises/atbash-cipher/README.md +2 -3
- data/tracks/python/exercises/atbash-cipher/atbash_cipher_test.py +1 -1
- data/tracks/python/exercises/beer-song/README.md +2 -3
- data/tracks/python/exercises/binary/README.md +2 -3
- data/tracks/python/exercises/binary-search/README.md +2 -3
- data/tracks/python/exercises/binary-search-tree/README.md +2 -3
- data/tracks/python/exercises/bob/README.md +4 -3
- data/tracks/python/exercises/book-store/README.md +2 -3
- data/tracks/python/exercises/bowling/README.md +2 -3
- data/tracks/python/exercises/bracket-push/README.md +2 -3
- data/tracks/python/exercises/change/README.md +2 -3
- data/tracks/python/exercises/circular-buffer/README.md +2 -3
- data/tracks/python/exercises/clock/README.md +2 -3
- data/tracks/python/exercises/collatz-conjecture/README.md +2 -3
- data/tracks/python/exercises/complex-numbers/README.md +3 -3
- data/tracks/python/exercises/connect/README.md +2 -4
- data/tracks/python/exercises/crypto-square/README.md +2 -3
- data/tracks/python/exercises/crypto-square/crypto_square_test.py +1 -1
- data/tracks/python/exercises/custom-set/README.md +17 -3
- data/tracks/python/exercises/diamond/README.md +2 -3
- data/tracks/python/exercises/difference-of-squares/README.md +2 -3
- data/tracks/python/exercises/difference-of-squares/difference_of_squares_test.py +1 -1
- data/tracks/python/exercises/diffie-hellman/README.md +2 -3
- data/tracks/python/exercises/dominoes/README.md +2 -4
- data/tracks/python/exercises/dot-dsl/README.md +20 -5
- data/tracks/python/exercises/error-handling/README.md +2 -4
- data/tracks/python/exercises/etl/README.md +2 -3
- data/tracks/python/exercises/flatten-array/README.md +2 -3
- data/tracks/python/exercises/flatten-array/flatten_array_test.py +1 -1
- data/tracks/python/exercises/food-chain/README.md +2 -3
- data/tracks/python/exercises/forth/README.md +2 -4
- data/tracks/python/exercises/gigasecond/README.md +2 -3
- data/tracks/python/exercises/gigasecond/gigasecond_test.py +1 -2
- data/tracks/python/exercises/go-counting/README.md +2 -4
- data/tracks/python/exercises/grade-school/README.md +2 -3
- data/tracks/python/exercises/grains/README.md +2 -3
- data/tracks/python/exercises/grep/README.md +2 -3
- data/tracks/python/exercises/hamming/README.md +2 -3
- data/tracks/python/exercises/hamming/hamming_test.py +1 -1
- data/tracks/python/exercises/hello-world/README.md +2 -3
- data/tracks/python/exercises/hello-world/hello_world_test.py +1 -1
- data/tracks/python/exercises/hexadecimal/README.md +2 -3
- data/tracks/python/exercises/house/README.md +2 -3
- data/tracks/python/exercises/isbn-verifier/README.md +48 -20
- data/tracks/python/exercises/isogram/README.md +2 -3
- data/tracks/python/exercises/kindergarten-garden/README.md +2 -3
- data/tracks/python/exercises/kindergarten-garden/kindergarten_garden_test.py +1 -1
- data/tracks/python/exercises/largest-series-product/README.md +2 -3
- data/tracks/python/exercises/largest-series-product/largest_series_product_test.py +1 -1
- data/tracks/python/exercises/leap/README.md +2 -3
- data/tracks/python/exercises/leap/leap_test.py +1 -1
- data/tracks/python/exercises/linked-list/README.md +2 -3
- data/tracks/python/exercises/list-ops/README.md +2 -4
- data/tracks/python/exercises/luhn/README.md +2 -3
- data/tracks/python/exercises/markdown/README.md +2 -4
- data/tracks/python/exercises/matrix/README.md +2 -3
- data/tracks/python/exercises/matrix/example.py +6 -3
- data/tracks/python/exercises/matrix/matrix.py +6 -0
- data/tracks/python/exercises/matrix/matrix_test.py +25 -15
- data/tracks/python/exercises/meetup/README.md +2 -3
- data/tracks/python/exercises/meetup/meetup_test.py +1 -2
- data/tracks/python/exercises/minesweeper/README.md +2 -4
- data/tracks/python/exercises/nth-prime/README.md +2 -3
- data/tracks/python/exercises/nucleotide-count/README.md +2 -3
- data/tracks/python/exercises/ocr-numbers/README.md +2 -3
- data/tracks/python/exercises/octal/README.md +2 -3
- data/tracks/python/exercises/palindrome-products/README.md +2 -3
- data/tracks/python/exercises/pangram/README.md +2 -3
- data/tracks/python/exercises/pangram/pangram_test.py +1 -1
- data/tracks/python/exercises/parallel-letter-frequency/README.md +2 -4
- data/tracks/python/exercises/pascals-triangle/README.md +2 -3
- data/tracks/python/exercises/perfect-numbers/README.md +2 -3
- data/tracks/python/exercises/phone-number/README.md +2 -3
- data/tracks/python/exercises/pig-latin/README.md +2 -3
- data/tracks/python/exercises/pig-latin/pig_latin_test.py +1 -1
- data/tracks/python/exercises/point-mutations/README.md +2 -3
- data/tracks/python/exercises/poker/README.md +2 -3
- data/tracks/python/exercises/pov/README.md +2 -5
- data/tracks/python/exercises/prime-factors/README.md +2 -3
- data/tracks/python/exercises/prime-factors/prime_factors_test.py +1 -1
- data/tracks/python/exercises/protein-translation/README.md +4 -5
- data/tracks/python/exercises/proverb/README.md +2 -2
- data/tracks/python/exercises/pythagorean-triplet/README.md +2 -3
- data/tracks/python/exercises/queen-attack/README.md +2 -3
- data/tracks/python/exercises/rail-fence-cipher/README.md +2 -3
- data/tracks/python/exercises/rail-fence-cipher/rail_fence_cipher.py +2 -6
- data/tracks/python/exercises/raindrops/README.md +2 -3
- data/tracks/python/exercises/react/README.md +2 -4
- data/tracks/python/exercises/rectangles/README.md +2 -4
- data/tracks/python/exercises/reverse-string/README.md +28 -0
- data/tracks/python/exercises/reverse-string/reverse_string_test.py +1 -1
- data/tracks/python/exercises/rna-transcription/README.md +3 -4
- data/tracks/python/exercises/rna-transcription/rna_transcription_test.py +3 -25
- data/tracks/python/exercises/robot-name/README.md +2 -3
- data/tracks/python/exercises/robot-simulator/README.md +2 -3
- data/tracks/python/exercises/robot-simulator/robot_simulator_test.py +1 -1
- data/tracks/python/exercises/roman-numerals/README.md +2 -3
- data/tracks/python/exercises/rotational-cipher/README.md +2 -3
- data/tracks/python/exercises/rotational-cipher/rotational_cipher_test.py +1 -1
- data/tracks/python/exercises/run-length-encoding/README.md +2 -3
- data/tracks/python/exercises/saddle-points/README.md +2 -3
- data/tracks/python/exercises/say/README.md +2 -3
- data/tracks/python/exercises/say/say_test.py +1 -1
- data/tracks/python/exercises/scale-generator/README.md +2 -4
- data/tracks/python/exercises/scrabble-score/README.md +2 -3
- data/tracks/python/exercises/scrabble-score/scrabble_score_test.py +1 -1
- data/tracks/python/exercises/secret-handshake/README.md +3 -4
- data/tracks/python/exercises/series/README.md +2 -3
- data/tracks/python/exercises/sieve/README.md +2 -3
- data/tracks/python/exercises/sieve/sieve_test.py +1 -1
- data/tracks/python/exercises/simple-cipher/README.md +6 -9
- data/tracks/python/exercises/simple-linked-list/README.md +2 -3
- data/tracks/python/exercises/space-age/README.md +2 -3
- data/tracks/python/exercises/space-age/space_age_test.py +1 -1
- data/tracks/python/exercises/spiral-matrix/README.md +20 -8
- data/tracks/python/exercises/strain/README.md +2 -3
- data/tracks/python/exercises/sublist/README.md +2 -4
- data/tracks/python/exercises/sublist/sublist_test.py +1 -1
- data/tracks/python/exercises/sum-of-multiples/README.md +2 -3
- data/tracks/python/exercises/sum-of-multiples/sum_of_multiples_test.py +1 -1
- data/tracks/python/exercises/tournament/README.md +2 -4
- data/tracks/python/exercises/transpose/README.md +2 -3
- data/tracks/python/exercises/tree-building/README.md +2 -4
- data/tracks/python/exercises/triangle/README.md +2 -3
- data/tracks/python/exercises/trinary/README.md +2 -3
- data/tracks/python/exercises/twelve-days/README.md +2 -3
- data/tracks/python/exercises/two-bucket/README.md +2 -3
- data/tracks/python/exercises/two-fer/README.md +3 -4
- data/tracks/python/exercises/variable-length-quantity/README.md +2 -3
- data/tracks/python/exercises/word-count/README.md +2 -3
- data/tracks/python/exercises/word-search/README.md +2 -4
- data/tracks/python/exercises/wordy/README.md +2 -3
- data/tracks/python/exercises/zebra-puzzle/README.md +2 -3
- data/tracks/python/exercises/zipper/README.md +2 -4
- data/tracks/ruby/docs/24pullrequests.md +1 -1
- data/tracks/rust/exercises/robot-name/Cargo-example.toml +6 -0
- data/tracks/rust/exercises/robot-name/Cargo.toml +0 -1
- data/tracks/scala/exercises/beer-song/example.scala +3 -3
- data/tracks/scala/exercises/beer-song/src/test/scala/BeerSongTest.scala +29 -30
- data/tracks/scala/exercises/binary-search/src/test/scala/BinarySearchTest.scala +3 -3
- data/tracks/scala/exercises/book-store/example.scala +1 -1
- data/tracks/scala/exercises/book-store/src/test/scala/BookStoreTest.scala +19 -15
- data/tracks/scala/testgen/src/main/scala/BeerSongTestGenerator.scala +21 -3
- data/tracks/scala/testgen/src/main/scala/BinarySearchTestGenerator.scala +3 -5
- data/tracks/scala/testgen/src/main/scala/BookStoreTestGenerator.scala +3 -3
- data/tracks/swift/.travis.yml +2 -2
- data/tracks/swift/config.json +12 -0
- data/tracks/swift/exercises/scale-generator/Package.swift +5 -0
- data/tracks/swift/exercises/scale-generator/README.md +65 -0
- data/tracks/swift/exercises/scale-generator/Sources/ScaleGenerator.swift +1 -0
- data/tracks/swift/exercises/scale-generator/Sources/ScaleGeneratorExample.swift +78 -0
- data/tracks/swift/exercises/scale-generator/Tests/LinuxMain.swift +6 -0
- data/tracks/swift/exercises/scale-generator/Tests/ScaleGeneratorTests/ScaleGeneratorTests.swift +116 -0
- metadata +197 -101
- 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/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 +0 -137
- data/tracks/c/exercises/bob/.meta/description.md +0 -10
- data/tracks/elm/exercises/bob/.meta/description.md +0 -10
- data/tracks/perl5/exercises/allergies/cases.json +0 -69
- data/tracks/perl5/exercises/anagram/cases.json +0 -56
- data/tracks/perl5/exercises/atbash-cipher/cases.json +0 -75
- data/tracks/perl5/exercises/beer-song/cases.json +0 -74
- data/tracks/perl5/exercises/grains/cases.json +0 -49
- data/tracks/perl5/exercises/linked-list/cases.json +0 -54
- data/tracks/perl5/exercises/pascals-triangle/cases.json +0 -45
- data/tracks/perl5/exercises/point-mutations/cases.json +0 -69
- data/tracks/perl5/exercises/prime-factors/cases.json +0 -57
- data/tracks/perl5/exercises/proverb/cases.json +0 -52
- data/tracks/perl5/exercises/queen-attack/cases.json +0 -182
- data/tracks/perl5/exercises/raindrops/cases.json +0 -83
- data/tracks/perl5/exercises/triangle/cases.json +0 -82
- data/tracks/perl5/exercises/wordy/cases.json +0 -82
- data/tracks/python/docs/EXERCISE_README_INSERT.md +0 -23
|
@@ -31,12 +31,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
31
31
|
raise Exception("Meaningful message indicating the source of the error")
|
|
32
32
|
```
|
|
33
33
|
|
|
34
|
-
|
|
35
34
|
## Submitting Exercises
|
|
36
35
|
|
|
37
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
36
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/pig-latin` directory.
|
|
38
37
|
|
|
39
|
-
|
|
38
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
40
39
|
|
|
41
40
|
For more detailed information about running tests, code style and linting,
|
|
42
41
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -3,7 +3,7 @@ import unittest
|
|
|
3
3
|
from pig_latin import translate
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
# Tests adapted from `problem-specifications//canonical-data.json` @ v1.
|
|
6
|
+
# Tests adapted from `problem-specifications//canonical-data.json` @ v1.2.0
|
|
7
7
|
|
|
8
8
|
class PigLatinTests(unittest.TestCase):
|
|
9
9
|
def test_word_beginning_with_a(self):
|
|
@@ -48,12 +48,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
48
48
|
raise Exception("Meaningful message indicating the source of the error")
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
-
|
|
52
51
|
## Submitting Exercises
|
|
53
52
|
|
|
54
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
53
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/point-mutations` directory.
|
|
55
54
|
|
|
56
|
-
|
|
55
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
57
56
|
|
|
58
57
|
For more detailed information about running tests, code style and linting,
|
|
59
58
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -19,12 +19,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
19
19
|
raise Exception("Meaningful message indicating the source of the error")
|
|
20
20
|
```
|
|
21
21
|
|
|
22
|
-
|
|
23
22
|
## Submitting Exercises
|
|
24
23
|
|
|
25
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
24
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/poker` directory.
|
|
26
25
|
|
|
27
|
-
|
|
26
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
28
27
|
|
|
29
28
|
For more detailed information about running tests, code style and linting,
|
|
30
29
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -2,8 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
Reparent a graph on a selected node.
|
|
4
4
|
|
|
5
|
-
# Tree Reparenting
|
|
6
|
-
|
|
7
5
|
This exercise is all about re-orientating a graph to see things from a different
|
|
8
6
|
point of view. For example family trees are usually presented from the
|
|
9
7
|
ancestor's perspective:
|
|
@@ -53,12 +51,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
53
51
|
raise Exception("Meaningful message indicating the source of the error")
|
|
54
52
|
```
|
|
55
53
|
|
|
56
|
-
|
|
57
54
|
## Submitting Exercises
|
|
58
55
|
|
|
59
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
56
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/pov` directory.
|
|
60
57
|
|
|
61
|
-
|
|
58
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
62
59
|
|
|
63
60
|
For more detailed information about running tests, code style and linting,
|
|
64
61
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -43,12 +43,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
43
43
|
raise Exception("Meaningful message indicating the source of the error")
|
|
44
44
|
```
|
|
45
45
|
|
|
46
|
-
|
|
47
46
|
## Submitting Exercises
|
|
48
47
|
|
|
49
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
48
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/prime-factors` directory.
|
|
50
49
|
|
|
51
|
-
|
|
50
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
52
51
|
|
|
53
52
|
For more detailed information about running tests, code style and linting,
|
|
54
53
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -3,7 +3,7 @@ import unittest
|
|
|
3
3
|
from prime_factors import prime_factors
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
# Tests adapted from `problem-specifications//canonical-data.json` @ v1.
|
|
6
|
+
# Tests adapted from `problem-specifications//canonical-data.json` @ v1.1.0
|
|
7
7
|
|
|
8
8
|
class PrimeFactorsTest(unittest.TestCase):
|
|
9
9
|
def test_no_factors(self):
|
|
@@ -20,11 +20,11 @@ All subsequent codons after are ignored, like this:
|
|
|
20
20
|
|
|
21
21
|
RNA: `"AUGUUUUCUUAAAUG"` =>
|
|
22
22
|
|
|
23
|
-
Codons: `"AUG", "UUU", "UCU", "
|
|
23
|
+
Codons: `"AUG", "UUU", "UCU", "UAA", "AUG"` =>
|
|
24
24
|
|
|
25
25
|
Protein: `"Methionine", "Phenylalanine", "Serine"`
|
|
26
26
|
|
|
27
|
-
Note the stop codon terminates the translation and the final methionine is not translated into the protein sequence.
|
|
27
|
+
Note the stop codon `"UAA"` terminates the translation and the final methionine is not translated into the protein sequence.
|
|
28
28
|
|
|
29
29
|
Below are the codons and resulting Amino Acids needed for the exercise.
|
|
30
30
|
|
|
@@ -55,12 +55,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
55
55
|
raise Exception("Meaningful message indicating the source of the error")
|
|
56
56
|
```
|
|
57
57
|
|
|
58
|
-
|
|
59
58
|
## Submitting Exercises
|
|
60
59
|
|
|
61
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
60
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/protein-translation` directory.
|
|
62
61
|
|
|
63
|
-
|
|
62
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
64
63
|
|
|
65
64
|
For more detailed information about running tests, code style and linting,
|
|
66
65
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -32,9 +32,9 @@ raise Exception("Meaningful message indicating the source of the error")
|
|
|
32
32
|
|
|
33
33
|
## Submitting Exercises
|
|
34
34
|
|
|
35
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
35
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/proverb` directory.
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
38
38
|
|
|
39
39
|
For more detailed information about running tests, code style and linting,
|
|
40
40
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -31,12 +31,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
31
31
|
raise Exception("Meaningful message indicating the source of the error")
|
|
32
32
|
```
|
|
33
33
|
|
|
34
|
-
|
|
35
34
|
## Submitting Exercises
|
|
36
35
|
|
|
37
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
36
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/pythagorean-triplet` directory.
|
|
38
37
|
|
|
39
|
-
|
|
38
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
40
39
|
|
|
41
40
|
For more detailed information about running tests, code style and linting,
|
|
42
41
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -40,12 +40,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
40
40
|
raise Exception("Meaningful message indicating the source of the error")
|
|
41
41
|
```
|
|
42
42
|
|
|
43
|
-
|
|
44
43
|
## Submitting Exercises
|
|
45
44
|
|
|
46
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
45
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/queen-attack` directory.
|
|
47
46
|
|
|
48
|
-
|
|
47
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
49
48
|
|
|
50
49
|
For more detailed information about running tests, code style and linting,
|
|
51
50
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -72,12 +72,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
72
72
|
raise Exception("Meaningful message indicating the source of the error")
|
|
73
73
|
```
|
|
74
74
|
|
|
75
|
-
|
|
76
75
|
## Submitting Exercises
|
|
77
76
|
|
|
78
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
77
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/rail-fence-cipher` directory.
|
|
79
78
|
|
|
80
|
-
|
|
79
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
81
80
|
|
|
82
81
|
For more detailed information about running tests, code style and linting,
|
|
83
82
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -31,12 +31,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
31
31
|
raise Exception("Meaningful message indicating the source of the error")
|
|
32
32
|
```
|
|
33
33
|
|
|
34
|
-
|
|
35
34
|
## Submitting Exercises
|
|
36
35
|
|
|
37
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
36
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/raindrops` directory.
|
|
38
37
|
|
|
39
|
-
|
|
38
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
40
39
|
|
|
41
40
|
For more detailed information about running tests, code style and linting,
|
|
42
41
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -29,16 +29,14 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
29
29
|
raise Exception("Meaningful message indicating the source of the error")
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
-
|
|
33
32
|
## Submitting Exercises
|
|
34
33
|
|
|
35
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
34
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/react` directory.
|
|
36
35
|
|
|
37
|
-
|
|
36
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
38
37
|
|
|
39
38
|
For more detailed information about running tests, code style and linting,
|
|
40
39
|
please see the [help page](http://exercism.io/languages/python).
|
|
41
40
|
|
|
42
|
-
|
|
43
41
|
## Submitting Incomplete Solutions
|
|
44
42
|
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -77,16 +77,14 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
77
77
|
raise Exception("Meaningful message indicating the source of the error")
|
|
78
78
|
```
|
|
79
79
|
|
|
80
|
-
|
|
81
80
|
## Submitting Exercises
|
|
82
81
|
|
|
83
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
82
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/rectangles` directory.
|
|
84
83
|
|
|
85
|
-
|
|
84
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
86
85
|
|
|
87
86
|
For more detailed information about running tests, code style and linting,
|
|
88
87
|
please see the [help page](http://exercism.io/languages/python).
|
|
89
88
|
|
|
90
|
-
|
|
91
89
|
## Submitting Incomplete Solutions
|
|
92
90
|
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -1,9 +1,37 @@
|
|
|
1
1
|
# Reverse String
|
|
2
|
+
|
|
2
3
|
Reverse a string
|
|
3
4
|
|
|
4
5
|
For example:
|
|
5
6
|
input: "cool"
|
|
6
7
|
output: "looc"
|
|
7
8
|
|
|
9
|
+
## Exception messages
|
|
10
|
+
|
|
11
|
+
Sometimes it is necessary to raise an exception. When you do this, you should include a meaningful error message to
|
|
12
|
+
indicate what the source of the error is. This makes your code more readable and helps significantly with debugging. Not
|
|
13
|
+
every exercise will require you to raise an exception, but for those that do, the tests will only pass if you include
|
|
14
|
+
a message.
|
|
15
|
+
|
|
16
|
+
To raise a message with an exception, just write it as an argument to the exception type. For example, instead of
|
|
17
|
+
`raise Exception`, you shold write:
|
|
18
|
+
|
|
19
|
+
```python
|
|
20
|
+
raise Exception("Meaningful message indicating the source of the error")
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Submitting Exercises
|
|
24
|
+
|
|
25
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/reverse-string` directory.
|
|
26
|
+
|
|
27
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
28
|
+
|
|
29
|
+
For more detailed information about running tests, code style and linting,
|
|
30
|
+
please see the [help page](http://exercism.io/languages/python).
|
|
31
|
+
|
|
32
|
+
## Source
|
|
33
|
+
|
|
34
|
+
Introductory challenge to reverse an input string [https://medium.freecodecamp.org/how-to-reverse-a-string-in-javascript-in-3-different-ways-75e4763c68cb](https://medium.freecodecamp.org/how-to-reverse-a-string-in-javascript-in-3-different-ways-75e4763c68cb)
|
|
35
|
+
|
|
8
36
|
## Submitting Incomplete Solutions
|
|
9
37
|
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -3,7 +3,7 @@ import unittest
|
|
|
3
3
|
from reverse_string import reverse
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
# Tests adapted from `problem-specifications//canonical-data.json` @ v1.0
|
|
6
|
+
# Tests adapted from `problem-specifications//canonical-data.json` @ v1.1.0
|
|
7
7
|
|
|
8
8
|
class ReverseStringTests(unittest.TestCase):
|
|
9
9
|
def test_empty_string(self):
|
|
@@ -35,19 +35,18 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
35
35
|
raise Exception("Meaningful message indicating the source of the error")
|
|
36
36
|
```
|
|
37
37
|
|
|
38
|
-
|
|
39
38
|
## Submitting Exercises
|
|
40
39
|
|
|
41
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
40
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/rna-transcription` directory.
|
|
42
41
|
|
|
43
|
-
|
|
42
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
44
43
|
|
|
45
44
|
For more detailed information about running tests, code style and linting,
|
|
46
45
|
please see the [help page](http://exercism.io/languages/python).
|
|
47
46
|
|
|
48
47
|
## Source
|
|
49
48
|
|
|
50
|
-
|
|
49
|
+
Hyperphysics [http://hyperphysics.phy-astr.gsu.edu/hbase/Organic/transcription.html](http://hyperphysics.phy-astr.gsu.edu/hbase/Organic/transcription.html)
|
|
51
50
|
|
|
52
51
|
## Submitting Incomplete Solutions
|
|
53
52
|
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -3,9 +3,9 @@ import unittest
|
|
|
3
3
|
from rna_transcription import to_rna
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
# Tests adapted from `problem-specifications//canonical-data.json` @ v1.0
|
|
6
|
+
# Tests adapted from `problem-specifications//canonical-data.json` @ v1.2.0
|
|
7
7
|
|
|
8
|
-
class
|
|
8
|
+
class RNATranscriptionTests(unittest.TestCase):
|
|
9
9
|
|
|
10
10
|
def test_transcribes_cytosine_to_guanine(self):
|
|
11
11
|
self.assertEqual(to_rna('C'), 'G')
|
|
@@ -19,31 +19,9 @@ class DNATests(unittest.TestCase):
|
|
|
19
19
|
def test_transcribes_adenine_to_uracil(self):
|
|
20
20
|
self.assertEqual(to_rna('A'), 'U')
|
|
21
21
|
|
|
22
|
-
def
|
|
22
|
+
def test_transcribes_all_occurrences(self):
|
|
23
23
|
self.assertEqual(to_rna('ACGTGGTCTTAA'), 'UGCACCAGAAUU')
|
|
24
24
|
|
|
25
|
-
def test_correctly_handles_single_invalid_input(self):
|
|
26
|
-
with self.assertRaisesWithMessage(ValueError):
|
|
27
|
-
to_rna('U')
|
|
28
|
-
|
|
29
|
-
def test_correctly_handles_completely_invalid_input(self):
|
|
30
|
-
with self.assertRaisesWithMessage(ValueError):
|
|
31
|
-
to_rna('XXX')
|
|
32
|
-
|
|
33
|
-
def test_correctly_handles_partially_invalid_input(self):
|
|
34
|
-
with self.assertRaisesWithMessage(ValueError):
|
|
35
|
-
to_rna('ACGTXXXCTTAA')
|
|
36
|
-
|
|
37
|
-
# Utility functions
|
|
38
|
-
def setUp(self):
|
|
39
|
-
try:
|
|
40
|
-
self.assertRaisesRegex
|
|
41
|
-
except AttributeError:
|
|
42
|
-
self.assertRaisesRegex = self.assertRaisesRegexp
|
|
43
|
-
|
|
44
|
-
def assertRaisesWithMessage(self, exception):
|
|
45
|
-
return self.assertRaisesRegex(exception, r".+")
|
|
46
|
-
|
|
47
25
|
|
|
48
26
|
if __name__ == '__main__':
|
|
49
27
|
unittest.main()
|
|
@@ -29,12 +29,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
29
29
|
raise Exception("Meaningful message indicating the source of the error")
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
-
|
|
33
32
|
## Submitting Exercises
|
|
34
33
|
|
|
35
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
34
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/robot-name` directory.
|
|
36
35
|
|
|
37
|
-
|
|
36
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
38
37
|
|
|
39
38
|
For more detailed information about running tests, code style and linting,
|
|
40
39
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -41,12 +41,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
41
41
|
raise Exception("Meaningful message indicating the source of the error")
|
|
42
42
|
```
|
|
43
43
|
|
|
44
|
-
|
|
45
44
|
## Submitting Exercises
|
|
46
45
|
|
|
47
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
46
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/robot-simulator` directory.
|
|
48
47
|
|
|
49
|
-
|
|
48
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
50
49
|
|
|
51
50
|
For more detailed information about running tests, code style and linting,
|
|
52
51
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -3,7 +3,7 @@ import unittest
|
|
|
3
3
|
from robot_simulator import Robot, NORTH, EAST, SOUTH, WEST
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
# Tests adapted from `problem-specifications//canonical-data.json` @ v2.
|
|
6
|
+
# Tests adapted from `problem-specifications//canonical-data.json` @ v2.2.0
|
|
7
7
|
|
|
8
8
|
class RobotTests(unittest.TestCase):
|
|
9
9
|
def test_init(self):
|
|
@@ -56,12 +56,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
56
56
|
raise Exception("Meaningful message indicating the source of the error")
|
|
57
57
|
```
|
|
58
58
|
|
|
59
|
-
|
|
60
59
|
## Submitting Exercises
|
|
61
60
|
|
|
62
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
61
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/roman-numerals` directory.
|
|
63
62
|
|
|
64
|
-
|
|
63
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
65
64
|
|
|
66
65
|
For more detailed information about running tests, code style and linting,
|
|
67
66
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -44,12 +44,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
44
44
|
raise Exception("Meaningful message indicating the source of the error")
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
-
|
|
48
47
|
## Submitting Exercises
|
|
49
48
|
|
|
50
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
49
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/rotational-cipher` directory.
|
|
51
50
|
|
|
52
|
-
|
|
51
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
53
52
|
|
|
54
53
|
For more detailed information about running tests, code style and linting,
|
|
55
54
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -3,7 +3,7 @@ import unittest
|
|
|
3
3
|
import rotational_cipher
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
# Tests adapted from `problem-specifications//canonical-data.json` @ v1.
|
|
6
|
+
# Tests adapted from `problem-specifications//canonical-data.json` @ v1.2.0
|
|
7
7
|
|
|
8
8
|
class RotationalCipher(unittest.TestCase):
|
|
9
9
|
def test_rotate_a_by_0(self):
|
|
@@ -37,12 +37,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
37
37
|
raise Exception("Meaningful message indicating the source of the error")
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
-
|
|
41
40
|
## Submitting Exercises
|
|
42
41
|
|
|
43
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
42
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/run-length-encoding` directory.
|
|
44
43
|
|
|
45
|
-
|
|
44
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
46
45
|
|
|
47
46
|
For more detailed information about running tests, code style and linting,
|
|
48
47
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -40,12 +40,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
40
40
|
raise Exception("Meaningful message indicating the source of the error")
|
|
41
41
|
```
|
|
42
42
|
|
|
43
|
-
|
|
44
43
|
## Submitting Exercises
|
|
45
44
|
|
|
46
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
45
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/saddle-points` directory.
|
|
47
46
|
|
|
48
|
-
|
|
47
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
49
48
|
|
|
50
49
|
For more detailed information about running tests, code style and linting,
|
|
51
50
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -76,12 +76,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
76
76
|
raise Exception("Meaningful message indicating the source of the error")
|
|
77
77
|
```
|
|
78
78
|
|
|
79
|
-
|
|
80
79
|
## Submitting Exercises
|
|
81
80
|
|
|
82
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
81
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/say` directory.
|
|
83
82
|
|
|
84
|
-
|
|
83
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
85
84
|
|
|
86
85
|
For more detailed information about running tests, code style and linting,
|
|
87
86
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -69,16 +69,14 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
69
69
|
raise Exception("Meaningful message indicating the source of the error")
|
|
70
70
|
```
|
|
71
71
|
|
|
72
|
-
|
|
73
72
|
## Submitting Exercises
|
|
74
73
|
|
|
75
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
74
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/scale-generator` directory.
|
|
76
75
|
|
|
77
|
-
|
|
76
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
78
77
|
|
|
79
78
|
For more detailed information about running tests, code style and linting,
|
|
80
79
|
please see the [help page](http://exercism.io/languages/python).
|
|
81
80
|
|
|
82
|
-
|
|
83
81
|
## Submitting Incomplete Solutions
|
|
84
82
|
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -53,12 +53,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
53
53
|
raise Exception("Meaningful message indicating the source of the error")
|
|
54
54
|
```
|
|
55
55
|
|
|
56
|
-
|
|
57
56
|
## Submitting Exercises
|
|
58
57
|
|
|
59
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
58
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/scrabble-score` directory.
|
|
60
59
|
|
|
61
|
-
|
|
60
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
62
61
|
|
|
63
62
|
For more detailed information about running tests, code style and linting,
|
|
64
63
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -3,7 +3,7 @@ import unittest
|
|
|
3
3
|
from scrabble_score import score
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
# Tests adapted from `problem-specifications//canonical-data.json` @ v1.
|
|
6
|
+
# Tests adapted from `problem-specifications//canonical-data.json` @ v1.1.0
|
|
7
7
|
|
|
8
8
|
class WordTest(unittest.TestCase):
|
|
9
9
|
def test_lowercase_letter(self):
|
|
@@ -42,19 +42,18 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
42
42
|
raise Exception("Meaningful message indicating the source of the error")
|
|
43
43
|
```
|
|
44
44
|
|
|
45
|
-
|
|
46
45
|
## Submitting Exercises
|
|
47
46
|
|
|
48
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
47
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/secret-handshake` directory.
|
|
49
48
|
|
|
50
|
-
|
|
49
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
51
50
|
|
|
52
51
|
For more detailed information about running tests, code style and linting,
|
|
53
52
|
please see the [help page](http://exercism.io/languages/python).
|
|
54
53
|
|
|
55
54
|
## Source
|
|
56
55
|
|
|
57
|
-
Bert, in Mary Poppins http://www.imdb.com/title/tt0058331/quotes/qt0437047
|
|
56
|
+
Bert, in Mary Poppins [http://www.imdb.com/title/tt0058331/quotes/qt0437047](http://www.imdb.com/title/tt0058331/quotes/qt0437047)
|
|
58
57
|
|
|
59
58
|
## Submitting Incomplete Solutions
|
|
60
59
|
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|