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
data/tracks/perl6/.travis.yml
CHANGED
|
@@ -4,17 +4,13 @@ before_script:
|
|
|
4
4
|
- git clone https://github.com/exercism/problem-specifications.git
|
|
5
5
|
- bin/fetch-configlet
|
|
6
6
|
- docker build -t exercism-rakudo-star .
|
|
7
|
-
- docker run
|
|
8
|
-
--volume $PWD:/exercism
|
|
9
|
-
exercism-rakudo-star perl6 -e
|
|
10
|
-
'.add(‘.meta/solutions’).dir.first({.extension eq ‘pm6’}).copy(.dir.first({.extension eq ‘pm6’}))
|
|
11
|
-
for $*CWD.add(‘exercism/exercises’).dir' # replace stub files with complete solutions from Example.pm6
|
|
12
7
|
script:
|
|
13
8
|
- bin/configlet lint .
|
|
14
9
|
- docker run
|
|
15
10
|
--volume $PWD:/exercism
|
|
16
|
-
exercism-rakudo-star
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
11
|
+
exercism-rakudo-star /bin/bash -c 'cd /exercism
|
|
12
|
+
&& prove exercises/*/.meta/solutions/
|
|
13
|
+
--recurse
|
|
14
|
+
--jobs 2
|
|
15
|
+
&& prove t/
|
|
16
|
+
--directives'
|
data/tracks/perl6/README.md
CHANGED
|
@@ -22,9 +22,7 @@ When adding a new exercise, ensure that the exercise is included in the `exercis
|
|
|
22
22
|
|
|
23
23
|
## Running The Tests
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
to run all tests in all subdirectories, or `prove -e perl6 /path/to/test.t` to run an individual test file.
|
|
27
|
-
|
|
25
|
+
Run `prove -re perl6 exercises/*/.meta/solutions/` to run all exercise tests.
|
|
28
26
|
|
|
29
27
|
### Perl 6 icon
|
|
30
28
|
The Perl 6 "Camelia" logo is owned by Larry Wall and is released under version 2.0 of the Artistic License. We are using it to identify the Perl 6 language itself, not any part of Exercism, which we believe to be admissible under fair use. The version of the logo that we are using is a pink, black and white adaptation of the logo found on <http://en.wikipedia.org/wiki/Perl_6>.
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env perl6
|
|
2
2
|
use v6;
|
|
3
3
|
use YAML::Parser::LibYAML;
|
|
4
|
+
use nqp;
|
|
4
5
|
use lib (my $base-dir = $?FILE.IO.resolve.parent.parent).add('lib');
|
|
5
6
|
use Exercism::Generator;
|
|
6
7
|
|
|
@@ -64,6 +65,7 @@ sub generate ($exercise) {
|
|
|
64
65
|
given $exercise-dir.add("$exercise.t") -> $testfile {
|
|
65
66
|
$testfile.spurt: .test;
|
|
66
67
|
$testfile.chmod: 0o755;
|
|
68
|
+
try nqp::symlink("../../$_", ~$exercise-dir.add(".meta/solutions/$_")) given $testfile.basename;
|
|
67
69
|
}
|
|
68
70
|
$exercise-dir.add("{.data<exercise>}.pm6").spurt: .stub;
|
|
69
71
|
$exercise-dir.add('.meta/solutions').mkdir;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
../../accumulate.t
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
../../acronym.t
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
../../all-your-base.t
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
../../allergies.t
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
../../anagram.t
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
../../atbash-cipher.t
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
../../bob.t
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
../../clock.t
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
../../etl.t
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
../../flatten-array.t
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
../../grade-school.t
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
../../grains.t
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
../../hamming.t
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
../../hello-world.t
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
../../leap.t
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
../../linked-list.t
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
../../luhn.t
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
../../meetup.t
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
../../nucleotide-count.t
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
../../pangram.t
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
../../phone-number.t
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
../../raindrops.t
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
../../rna-transcription.t
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
../../robot-name.t
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
../../roman-numerals.t
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
../../scrabble-score.t
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
../../space-age.t
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
../../two-fer.t
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
../../word-count.t
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
../../wordy.t
|
|
@@ -4,10 +4,29 @@
|
|
|
4
4
|
{{- with .Hints }}
|
|
5
5
|
{{ . }}
|
|
6
6
|
{{ end }}
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
## Exception messages
|
|
8
|
+
|
|
9
|
+
Sometimes it is necessary to raise an exception. When you do this, you should include a meaningful error message to
|
|
10
|
+
indicate what the source of the error is. This makes your code more readable and helps significantly with debugging. Not
|
|
11
|
+
every exercise will require you to raise an exception, but for those that do, the tests will only pass if you include
|
|
12
|
+
a message.
|
|
13
|
+
|
|
14
|
+
To raise a message with an exception, just write it as an argument to the exception type. For example, instead of
|
|
15
|
+
`raise Exception`, you shold write:
|
|
16
|
+
|
|
17
|
+
```python
|
|
18
|
+
raise Exception("Meaningful message indicating the source of the error")
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Submitting Exercises
|
|
22
|
+
|
|
23
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/{{ .Spec.Slug }}` directory.
|
|
24
|
+
|
|
25
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
26
|
+
|
|
27
|
+
For more detailed information about running tests, code style and linting,
|
|
28
|
+
please see the [help page](http://exercism.io/languages/python).
|
|
29
|
+
{{ with .Spec.Credits }}
|
|
11
30
|
## Source
|
|
12
31
|
|
|
13
32
|
{{ . }}
|
|
@@ -39,12 +39,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
39
39
|
raise Exception("Meaningful message indicating the source of the error")
|
|
40
40
|
```
|
|
41
41
|
|
|
42
|
-
|
|
43
42
|
## Submitting Exercises
|
|
44
43
|
|
|
45
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
44
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/accumulate` directory.
|
|
46
45
|
|
|
47
|
-
|
|
46
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
48
47
|
|
|
49
48
|
For more detailed information about running tests, code style and linting,
|
|
50
49
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -21,12 +21,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
21
21
|
raise Exception("Meaningful message indicating the source of the error")
|
|
22
22
|
```
|
|
23
23
|
|
|
24
|
-
|
|
25
24
|
## Submitting Exercises
|
|
26
25
|
|
|
27
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
26
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/acronym` directory.
|
|
28
27
|
|
|
29
|
-
|
|
28
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
30
29
|
|
|
31
30
|
For more detailed information about running tests, code style and linting,
|
|
32
31
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -3,7 +3,7 @@ import unittest
|
|
|
3
3
|
from acronym import abbreviate
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
# Tests adapted from `problem-specifications//canonical-data.json` @ v1.
|
|
6
|
+
# Tests adapted from `problem-specifications//canonical-data.json` @ v1.3.0
|
|
7
7
|
|
|
8
8
|
class AcronymTest(unittest.TestCase):
|
|
9
9
|
def test_basic(self):
|
|
@@ -16,12 +16,9 @@ class AcronymTest(unittest.TestCase):
|
|
|
16
16
|
self.assertEqual(abbreviate('First In, First Out'), 'FIFO')
|
|
17
17
|
|
|
18
18
|
def test_all_caps_words(self):
|
|
19
|
-
self.assertEqual(abbreviate('PHP: Hypertext Preprocessor'), 'PHP')
|
|
20
|
-
|
|
21
|
-
def test_non_acronym_all_caps_word(self):
|
|
22
19
|
self.assertEqual(abbreviate('GNU Image Manipulation Program'), 'GIMP')
|
|
23
20
|
|
|
24
|
-
def
|
|
21
|
+
def test_punctuation_without_whitespace(self):
|
|
25
22
|
self.assertEqual(
|
|
26
23
|
abbreviate('Complementary metal-oxide semiconductor'), 'CMOS')
|
|
27
24
|
|
|
@@ -45,16 +45,14 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
45
45
|
raise Exception("Meaningful message indicating the source of the error")
|
|
46
46
|
```
|
|
47
47
|
|
|
48
|
-
|
|
49
48
|
## Submitting Exercises
|
|
50
49
|
|
|
51
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
50
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/all-your-base` directory.
|
|
52
51
|
|
|
53
|
-
|
|
52
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
54
53
|
|
|
55
54
|
For more detailed information about running tests, code style and linting,
|
|
56
55
|
please see the [help page](http://exercism.io/languages/python).
|
|
57
56
|
|
|
58
|
-
|
|
59
57
|
## Submitting Incomplete Solutions
|
|
60
58
|
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -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/allergies` 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).
|
|
@@ -7,7 +7,7 @@ if not hasattr(unittest.TestCase, 'assertCountEqual'):
|
|
|
7
7
|
unittest.TestCase.assertCountEqual = unittest.TestCase.assertItemsEqual
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
# Tests adapted from `problem-specifications//canonical-data.json` @ v1.
|
|
10
|
+
# Tests adapted from `problem-specifications//canonical-data.json` @ v1.1.0
|
|
11
11
|
|
|
12
12
|
class AllergiesTests(unittest.TestCase):
|
|
13
13
|
def test_no_allergies_means_not_allergic(self):
|
|
@@ -45,16 +45,14 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
45
45
|
raise Exception("Meaningful message indicating the source of the error")
|
|
46
46
|
```
|
|
47
47
|
|
|
48
|
-
|
|
49
48
|
## Submitting Exercises
|
|
50
49
|
|
|
51
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
50
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/alphametics` directory.
|
|
52
51
|
|
|
53
|
-
|
|
52
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
54
53
|
|
|
55
54
|
For more detailed information about running tests, code style and linting,
|
|
56
55
|
please see the [help page](http://exercism.io/languages/python).
|
|
57
56
|
|
|
58
|
-
|
|
59
57
|
## Submitting Incomplete Solutions
|
|
60
58
|
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -20,12 +20,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
20
20
|
raise Exception("Meaningful message indicating the source of the error")
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
-
|
|
24
23
|
## Submitting Exercises
|
|
25
24
|
|
|
26
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
25
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/anagram` directory.
|
|
27
26
|
|
|
28
|
-
|
|
27
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
29
28
|
|
|
30
29
|
For more detailed information about running tests, code style and linting,
|
|
31
30
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -3,20 +3,13 @@ import unittest
|
|
|
3
3
|
from anagram import detect_anagrams
|
|
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
8
|
class AnagramTests(unittest.TestCase):
|
|
9
9
|
def test_no_matches(self):
|
|
10
10
|
candidates = ["hello", "world", "zombies", "pants"]
|
|
11
11
|
self.assertEqual(detect_anagrams("diaper", candidates), [])
|
|
12
12
|
|
|
13
|
-
def test_detects_simple_anagram(self):
|
|
14
|
-
candidates = ["tan", "stand", "at"]
|
|
15
|
-
self.assertEqual(detect_anagrams("ant", candidates), ["tan"])
|
|
16
|
-
|
|
17
|
-
def test_does_not_detect_false_positives(self):
|
|
18
|
-
self.assertEqual(detect_anagrams("galea", ["eagle"]), [])
|
|
19
|
-
|
|
20
13
|
def test_detects_two_anagrams(self):
|
|
21
14
|
candidates = ["stream", "pigeon", "maters"]
|
|
22
15
|
self.assertEqual(
|
|
@@ -37,10 +30,6 @@ class AnagramTests(unittest.TestCase):
|
|
|
37
30
|
detect_anagrams("allergy", candidates),
|
|
38
31
|
["gallery", "regally", "largely"])
|
|
39
32
|
|
|
40
|
-
def test_does_not_detect_identical_words(self):
|
|
41
|
-
candidates = ["corn", "dark", "Corn", "rank", "CORN", "cron", "park"]
|
|
42
|
-
self.assertEqual(detect_anagrams("corn", candidates), ["cron"])
|
|
43
|
-
|
|
44
33
|
def test_does_not_detect_non_anagrams_with_identical_checksum(self):
|
|
45
34
|
self.assertEqual(detect_anagrams("mass", ["last"]), [])
|
|
46
35
|
|
|
@@ -49,7 +38,7 @@ class AnagramTests(unittest.TestCase):
|
|
|
49
38
|
self.assertEqual(
|
|
50
39
|
detect_anagrams("Orchestra", candidates), ["Carthorse"])
|
|
51
40
|
|
|
52
|
-
def
|
|
41
|
+
def test_detects_anagrams_using_case_insensitive_subject(self):
|
|
53
42
|
candidates = ["cashregister", "carthorse", "radishes"]
|
|
54
43
|
self.assertEqual(
|
|
55
44
|
detect_anagrams("Orchestra", candidates), ["carthorse"])
|
|
@@ -59,9 +48,6 @@ class AnagramTests(unittest.TestCase):
|
|
|
59
48
|
self.assertEqual(
|
|
60
49
|
detect_anagrams("orchestra", candidates), ["Carthorse"])
|
|
61
50
|
|
|
62
|
-
def test_does_not_detect_a_word_as_its_own_anagram(self):
|
|
63
|
-
self.assertEqual(detect_anagrams("banana", ["Banana"]), [])
|
|
64
|
-
|
|
65
51
|
def test_does_not_detect_a_anagram_if_the_original_word_is_repeated(self):
|
|
66
52
|
self.assertEqual(detect_anagrams("go", ["go Go GO"]), [])
|
|
67
53
|
|
|
@@ -11,11 +11,25 @@ For example:
|
|
|
11
11
|
|
|
12
12
|
Write some code to determine whether a number is an Armstrong number.
|
|
13
13
|
|
|
14
|
+
## Exception messages
|
|
15
|
+
|
|
16
|
+
Sometimes it is necessary to raise an exception. When you do this, you should include a meaningful error message to
|
|
17
|
+
indicate what the source of the error is. This makes your code more readable and helps significantly with debugging. Not
|
|
18
|
+
every exercise will require you to raise an exception, but for those that do, the tests will only pass if you include
|
|
19
|
+
a message.
|
|
20
|
+
|
|
21
|
+
To raise a message with an exception, just write it as an argument to the exception type. For example, instead of
|
|
22
|
+
`raise Exception`, you shold write:
|
|
23
|
+
|
|
24
|
+
```python
|
|
25
|
+
raise Exception("Meaningful message indicating the source of the error")
|
|
26
|
+
```
|
|
27
|
+
|
|
14
28
|
## Submitting Exercises
|
|
15
29
|
|
|
16
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
30
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/armstrong-numbers` directory.
|
|
17
31
|
|
|
18
|
-
|
|
32
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
19
33
|
|
|
20
34
|
For more detailed information about running tests, code style and linting,
|
|
21
35
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -42,12 +42,11 @@ 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/atbash-cipher` 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).
|
|
@@ -3,7 +3,7 @@ import unittest
|
|
|
3
3
|
from atbash_cipher import decode, encode
|
|
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 AtbashCipherTest(unittest.TestCase):
|
|
9
9
|
def test_encode_no(self):
|
|
@@ -334,12 +334,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
334
334
|
raise Exception("Meaningful message indicating the source of the error")
|
|
335
335
|
```
|
|
336
336
|
|
|
337
|
-
|
|
338
337
|
## Submitting Exercises
|
|
339
338
|
|
|
340
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
339
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/beer-song` directory.
|
|
341
340
|
|
|
342
|
-
|
|
341
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
343
342
|
|
|
344
343
|
For more detailed information about running tests, code style and linting,
|
|
345
344
|
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/binary` 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).
|
|
@@ -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/binary-search` 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).
|
|
@@ -67,12 +67,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
67
67
|
raise Exception("Meaningful message indicating the source of the error")
|
|
68
68
|
```
|
|
69
69
|
|
|
70
|
-
|
|
71
70
|
## Submitting Exercises
|
|
72
71
|
|
|
73
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
72
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/binary-search-tree` directory.
|
|
74
73
|
|
|
75
|
-
|
|
74
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
76
75
|
|
|
77
76
|
For more detailed information about running tests, code style and linting,
|
|
78
77
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -6,6 +6,8 @@ Bob answers 'Sure.' if you ask him a question.
|
|
|
6
6
|
|
|
7
7
|
He answers 'Whoa, chill out!' if you yell at him.
|
|
8
8
|
|
|
9
|
+
He answers 'Calm down, I know what I'm doing!' if you yell a question at him.
|
|
10
|
+
|
|
9
11
|
He says 'Fine. Be that way!' if you address him without actually saying
|
|
10
12
|
anything.
|
|
11
13
|
|
|
@@ -25,12 +27,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
25
27
|
raise Exception("Meaningful message indicating the source of the error")
|
|
26
28
|
```
|
|
27
29
|
|
|
28
|
-
|
|
29
30
|
## Submitting Exercises
|
|
30
31
|
|
|
31
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
32
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/bob` directory.
|
|
32
33
|
|
|
33
|
-
|
|
34
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
34
35
|
|
|
35
36
|
For more detailed information about running tests, code style and linting,
|
|
36
37
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -81,12 +81,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
81
81
|
raise Exception("Meaningful message indicating the source of the error")
|
|
82
82
|
```
|
|
83
83
|
|
|
84
|
-
|
|
85
84
|
## Submitting Exercises
|
|
86
85
|
|
|
87
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
86
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/book-store` directory.
|
|
88
87
|
|
|
89
|
-
|
|
88
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
90
89
|
|
|
91
90
|
For more detailed information about running tests, code style and linting,
|
|
92
91
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -74,12 +74,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
74
74
|
raise Exception("Meaningful message indicating the source of the error")
|
|
75
75
|
```
|
|
76
76
|
|
|
77
|
-
|
|
78
77
|
## Submitting Exercises
|
|
79
78
|
|
|
80
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
79
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/bowling` directory.
|
|
81
80
|
|
|
82
|
-
|
|
81
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
83
82
|
|
|
84
83
|
For more detailed information about running tests, code style and linting,
|
|
85
84
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -17,12 +17,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
17
17
|
raise Exception("Meaningful message indicating the source of the error")
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
-
|
|
21
20
|
## Submitting Exercises
|
|
22
21
|
|
|
23
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
22
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/bracket-push` directory.
|
|
24
23
|
|
|
25
|
-
|
|
24
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
26
25
|
|
|
27
26
|
For more detailed information about running tests, code style and linting,
|
|
28
27
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -30,12 +30,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
30
30
|
raise Exception("Meaningful message indicating the source of the error")
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
-
|
|
34
33
|
## Submitting Exercises
|
|
35
34
|
|
|
36
|
-
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/change` directory.
|
|
37
36
|
|
|
38
|
-
|
|
37
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
39
38
|
|
|
40
39
|
For more detailed information about running tests, code style and linting,
|
|
41
40
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -64,12 +64,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
64
64
|
raise Exception("Meaningful message indicating the source of the error")
|
|
65
65
|
```
|
|
66
66
|
|
|
67
|
-
|
|
68
67
|
## Submitting Exercises
|
|
69
68
|
|
|
70
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
69
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/circular-buffer` directory.
|
|
71
70
|
|
|
72
|
-
|
|
71
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
73
72
|
|
|
74
73
|
For more detailed information about running tests, code style and linting,
|
|
75
74
|
please see the [help page](http://exercism.io/languages/python).
|