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
|
@@ -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/clock` 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).
|
|
@@ -45,12 +45,11 @@ 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/collatz-conjecture` 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).
|
|
@@ -35,6 +35,7 @@ Assume the programming language you are using does not have an implementation of
|
|
|
35
35
|
|
|
36
36
|
See [Emulating numeric types](https://docs.python.org/2/reference/datamodel.html#emulating-numeric-types) for help on operator overloading.
|
|
37
37
|
|
|
38
|
+
|
|
38
39
|
## Exception messages
|
|
39
40
|
|
|
40
41
|
Sometimes it is necessary to raise an exception. When you do this, you should include a meaningful error message to
|
|
@@ -49,12 +50,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
49
50
|
raise Exception("Meaningful message indicating the source of the error")
|
|
50
51
|
```
|
|
51
52
|
|
|
52
|
-
|
|
53
53
|
## Submitting Exercises
|
|
54
54
|
|
|
55
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
55
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/complex-numbers` directory.
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
58
58
|
|
|
59
59
|
For more detailed information about running tests, code style and linting,
|
|
60
60
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -44,16 +44,14 @@ 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/connect` 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).
|
|
56
55
|
|
|
57
|
-
|
|
58
56
|
## Submitting Incomplete Solutions
|
|
59
57
|
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -83,12 +83,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
83
83
|
raise Exception("Meaningful message indicating the source of the error")
|
|
84
84
|
```
|
|
85
85
|
|
|
86
|
-
|
|
87
86
|
## Submitting Exercises
|
|
88
87
|
|
|
89
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
88
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/crypto-square` directory.
|
|
90
89
|
|
|
91
|
-
|
|
90
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
92
91
|
|
|
93
92
|
For more detailed information about running tests, code style and linting,
|
|
94
93
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -3,7 +3,7 @@ import unittest
|
|
|
3
3
|
from crypto_square import encode
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
# Tests adapted from `problem-specifications//canonical-data.json` @ v3.
|
|
6
|
+
# Tests adapted from `problem-specifications//canonical-data.json` @ v3.2.0
|
|
7
7
|
|
|
8
8
|
class CryptoSquareTest(unittest.TestCase):
|
|
9
9
|
def test_empty_string(self):
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Custom
|
|
1
|
+
# Custom Set
|
|
2
2
|
|
|
3
3
|
Create a custom set type.
|
|
4
4
|
|
|
@@ -7,11 +7,25 @@ type, like a set. In this exercise you will define your own set. How it
|
|
|
7
7
|
works internally doesn't matter, as long as it behaves like a set of
|
|
8
8
|
unique elements.
|
|
9
9
|
|
|
10
|
+
## Exception messages
|
|
11
|
+
|
|
12
|
+
Sometimes it is necessary to raise an exception. When you do this, you should include a meaningful error message to
|
|
13
|
+
indicate what the source of the error is. This makes your code more readable and helps significantly with debugging. Not
|
|
14
|
+
every exercise will require you to raise an exception, but for those that do, the tests will only pass if you include
|
|
15
|
+
a message.
|
|
16
|
+
|
|
17
|
+
To raise a message with an exception, just write it as an argument to the exception type. For example, instead of
|
|
18
|
+
`raise Exception`, you shold write:
|
|
19
|
+
|
|
20
|
+
```python
|
|
21
|
+
raise Exception("Meaningful message indicating the source of the error")
|
|
22
|
+
```
|
|
23
|
+
|
|
10
24
|
## Submitting Exercises
|
|
11
25
|
|
|
12
|
-
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/custom-set` directory.
|
|
13
27
|
|
|
14
|
-
|
|
28
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
15
29
|
|
|
16
30
|
For more detailed information about running tests, code style and linting,
|
|
17
31
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -66,12 +66,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
66
66
|
raise Exception("Meaningful message indicating the source of the error")
|
|
67
67
|
```
|
|
68
68
|
|
|
69
|
-
|
|
70
69
|
## Submitting Exercises
|
|
71
70
|
|
|
72
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
71
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/diamond` directory.
|
|
73
72
|
|
|
74
|
-
|
|
73
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
75
74
|
|
|
76
75
|
For more detailed information about running tests, code style and linting,
|
|
77
76
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -26,12 +26,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
26
26
|
raise Exception("Meaningful message indicating the source of the error")
|
|
27
27
|
```
|
|
28
28
|
|
|
29
|
-
|
|
30
29
|
## Submitting Exercises
|
|
31
30
|
|
|
32
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
31
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/difference-of-squares` directory.
|
|
33
32
|
|
|
34
|
-
|
|
33
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
35
34
|
|
|
36
35
|
For more detailed information about running tests, code style and linting,
|
|
37
36
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -3,7 +3,7 @@ import unittest
|
|
|
3
3
|
from difference_of_squares import difference, square_of_sum, sum_of_squares
|
|
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 DifferenceOfSquaresTest(unittest.TestCase):
|
|
9
9
|
def test_square_of_sum_1(self):
|
|
@@ -68,12 +68,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
68
68
|
raise Exception("Meaningful message indicating the source of the error")
|
|
69
69
|
```
|
|
70
70
|
|
|
71
|
-
|
|
72
71
|
## Submitting Exercises
|
|
73
72
|
|
|
74
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
73
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/diffie-hellman` directory.
|
|
75
74
|
|
|
76
|
-
|
|
75
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
77
76
|
|
|
78
77
|
For more detailed information about running tests, code style and linting,
|
|
79
78
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -28,16 +28,14 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
28
28
|
raise Exception("Meaningful message indicating the source of the error")
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
-
|
|
32
31
|
## Submitting Exercises
|
|
33
32
|
|
|
34
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
33
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/dominoes` directory.
|
|
35
34
|
|
|
36
|
-
|
|
35
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
37
36
|
|
|
38
37
|
For more detailed information about running tests, code style and linting,
|
|
39
38
|
please see the [help page](http://exercism.io/languages/python).
|
|
40
39
|
|
|
41
|
-
|
|
42
40
|
## Submitting Incomplete Solutions
|
|
43
41
|
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# DOT DSL
|
|
2
2
|
|
|
3
3
|
Write a Domain Specific Language similar to the Graphviz dot language.
|
|
4
4
|
|
|
@@ -39,14 +39,29 @@ The implementations of `Node` and `Edge` provided in `dot_dsl.py`.
|
|
|
39
39
|
|
|
40
40
|
Observe the test cases in `dot_dsl_test.py` to understand the DSL's design.
|
|
41
41
|
|
|
42
|
+
|
|
43
|
+
## Exception messages
|
|
44
|
+
|
|
45
|
+
Sometimes it is necessary to raise an exception. When you do this, you should include a meaningful error message to
|
|
46
|
+
indicate what the source of the error is. This makes your code more readable and helps significantly with debugging. Not
|
|
47
|
+
every exercise will require you to raise an exception, but for those that do, the tests will only pass if you include
|
|
48
|
+
a message.
|
|
49
|
+
|
|
50
|
+
To raise a message with an exception, just write it as an argument to the exception type. For example, instead of
|
|
51
|
+
`raise Exception`, you shold write:
|
|
52
|
+
|
|
53
|
+
```python
|
|
54
|
+
raise Exception("Meaningful message indicating the source of the error")
|
|
55
|
+
```
|
|
56
|
+
|
|
42
57
|
## Submitting Exercises
|
|
43
58
|
|
|
44
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
59
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/dot-dsl` directory.
|
|
45
60
|
|
|
46
|
-
|
|
61
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
47
62
|
|
|
48
|
-
For more detailed information about running tests, code style and linting,
|
|
63
|
+
For more detailed information about running tests, code style and linting,
|
|
64
|
+
please see the [help page](http://exercism.io/languages/python).
|
|
49
65
|
|
|
50
66
|
## Submitting Incomplete Solutions
|
|
51
|
-
|
|
52
67
|
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -33,16 +33,14 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
33
33
|
raise Exception("Meaningful message indicating the source of the error")
|
|
34
34
|
```
|
|
35
35
|
|
|
36
|
-
|
|
37
36
|
## Submitting Exercises
|
|
38
37
|
|
|
39
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
38
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/error-handling` directory.
|
|
40
39
|
|
|
41
|
-
|
|
40
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
42
41
|
|
|
43
42
|
For more detailed information about running tests, code style and linting,
|
|
44
43
|
please see the [help page](http://exercism.io/languages/python).
|
|
45
44
|
|
|
46
|
-
|
|
47
45
|
## Submitting Incomplete Solutions
|
|
48
46
|
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -60,12 +60,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
60
60
|
raise Exception("Meaningful message indicating the source of the error")
|
|
61
61
|
```
|
|
62
62
|
|
|
63
|
-
|
|
64
63
|
## Submitting Exercises
|
|
65
64
|
|
|
66
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
65
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/etl` directory.
|
|
67
66
|
|
|
68
|
-
|
|
67
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
69
68
|
|
|
70
69
|
For more detailed information about running tests, code style and linting,
|
|
71
70
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -24,12 +24,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
24
24
|
raise Exception("Meaningful message indicating the source of the error")
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
-
|
|
28
27
|
## Submitting Exercises
|
|
29
28
|
|
|
30
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
29
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/flatten-array` directory.
|
|
31
30
|
|
|
32
|
-
|
|
31
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
33
32
|
|
|
34
33
|
For more detailed information about running tests, code style and linting,
|
|
35
34
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -77,12 +77,11 @@ 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/food-chain` 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).
|
|
@@ -39,16 +39,14 @@ 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/forth` 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).
|
|
51
50
|
|
|
52
|
-
|
|
53
51
|
## Submitting Incomplete Solutions
|
|
54
52
|
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -18,12 +18,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
18
18
|
raise Exception("Meaningful message indicating the source of the error")
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
-
|
|
22
21
|
## Submitting Exercises
|
|
23
22
|
|
|
24
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
23
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/gigasecond` directory.
|
|
25
24
|
|
|
26
|
-
|
|
25
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
27
26
|
|
|
28
27
|
For more detailed information about running tests, code style and linting,
|
|
29
28
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import unittest
|
|
2
|
-
|
|
3
2
|
from datetime import datetime
|
|
4
3
|
|
|
5
4
|
from gigasecond import add_gigasecond
|
|
6
5
|
|
|
7
6
|
|
|
8
|
-
# Tests adapted from `problem-specifications//canonical-data.json` @ v1.
|
|
7
|
+
# Tests adapted from `problem-specifications//canonical-data.json` @ v1.1.0
|
|
9
8
|
|
|
10
9
|
class GigasecondTest(unittest.TestCase):
|
|
11
10
|
def test_date_only_specification_of_time(self):
|
|
@@ -47,16 +47,14 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
47
47
|
raise Exception("Meaningful message indicating the source of the error")
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
-
|
|
51
50
|
## Submitting Exercises
|
|
52
51
|
|
|
53
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
52
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/go-counting` directory.
|
|
54
53
|
|
|
55
|
-
|
|
54
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
56
55
|
|
|
57
56
|
For more detailed information about running tests, code style and linting,
|
|
58
57
|
please see the [help page](http://exercism.io/languages/python).
|
|
59
58
|
|
|
60
|
-
|
|
61
59
|
## Submitting Incomplete Solutions
|
|
62
60
|
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -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/grade-school` 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).
|
|
@@ -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/grains` 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).
|
|
@@ -78,12 +78,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
78
78
|
raise Exception("Meaningful message indicating the source of the error")
|
|
79
79
|
```
|
|
80
80
|
|
|
81
|
-
|
|
82
81
|
## Submitting Exercises
|
|
83
82
|
|
|
84
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
83
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/grep` directory.
|
|
85
84
|
|
|
86
|
-
|
|
85
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
87
86
|
|
|
88
87
|
For more detailed information about running tests, code style and linting,
|
|
89
88
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -49,12 +49,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
49
49
|
raise Exception("Meaningful message indicating the source of the error")
|
|
50
50
|
```
|
|
51
51
|
|
|
52
|
-
|
|
53
52
|
## Submitting Exercises
|
|
54
53
|
|
|
55
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
54
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/hamming` directory.
|
|
56
55
|
|
|
57
|
-
|
|
56
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
58
57
|
|
|
59
58
|
For more detailed information about running tests, code style and linting,
|
|
60
59
|
please see the [help page](http://exercism.io/languages/python).
|
|
@@ -28,12 +28,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
28
28
|
raise Exception("Meaningful message indicating the source of the error")
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
-
|
|
32
31
|
## Submitting Exercises
|
|
33
32
|
|
|
34
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
33
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/hello-world` directory.
|
|
35
34
|
|
|
36
|
-
|
|
35
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
37
36
|
|
|
38
37
|
For more detailed information about running tests, code style and linting,
|
|
39
38
|
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/hexadecimal` 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).
|
|
@@ -119,12 +119,11 @@ To raise a message with an exception, just write it as an argument to the except
|
|
|
119
119
|
raise Exception("Meaningful message indicating the source of the error")
|
|
120
120
|
```
|
|
121
121
|
|
|
122
|
-
|
|
123
122
|
## Submitting Exercises
|
|
124
123
|
|
|
125
|
-
Note that, when trying to submit an exercise, make sure the solution is in the
|
|
124
|
+
Note that, when trying to submit an exercise, make sure the solution is in the `$EXERCISM_WORKSPACE/python/house` directory.
|
|
126
125
|
|
|
127
|
-
|
|
126
|
+
You can find your Exercism workspace by running `exercism debug` and looking for the line that starts with `Workspace`.
|
|
128
127
|
|
|
129
128
|
For more detailed information about running tests, code style and linting,
|
|
130
129
|
please see the [help page](http://exercism.io/languages/python).
|