trackler 2.2.0.1 → 2.2.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/fixtures/tracks/fake/config.json +4 -3
- data/fixtures/tracks/fruit/config.json +4 -3
- data/lib/trackler/track.rb +2 -2
- data/lib/trackler/version.rb +1 -1
- data/tracks/{java/exercises/allergies/.meta/readme.go.tmpl → c/config/exercise_readme.go.tmpl} +0 -1
- data/tracks/c/exercises/acronym/README.md +47 -0
- data/tracks/c/exercises/all-your-base/README.md +67 -0
- data/tracks/c/exercises/allergies/README.md +69 -0
- data/tracks/c/exercises/anagram/README.md +45 -0
- data/tracks/c/exercises/atbash-cipher/README.md +66 -0
- data/tracks/c/exercises/beer-song/README.md +359 -0
- data/tracks/c/exercises/binary/README.md +67 -0
- data/tracks/c/exercises/binary-search/README.md +73 -0
- data/tracks/c/exercises/bob/README.md +50 -0
- data/tracks/c/exercises/clock/README.md +45 -0
- data/tracks/c/exercises/difference-of-squares/README.md +51 -0
- data/tracks/c/exercises/gigasecond/README.md +43 -0
- data/tracks/c/exercises/grains/README.md +66 -0
- data/tracks/c/exercises/hamming/README.md +74 -0
- data/tracks/c/exercises/hello-world/README.md +53 -0
- data/tracks/c/exercises/isogram/README.md +51 -0
- data/tracks/c/exercises/largest-series-product/README.md +52 -0
- data/tracks/c/exercises/leap/README.md +65 -0
- data/tracks/c/exercises/meetup/README.md +62 -0
- data/tracks/c/exercises/nth-prime/README.md +47 -0
- data/tracks/c/exercises/nucleotide-count/README.md +65 -0
- data/tracks/c/exercises/palindrome-products/README.md +72 -0
- data/tracks/c/exercises/pangram/README.md +47 -0
- data/tracks/c/exercises/pascals-triangle/README.md +53 -0
- data/tracks/c/exercises/perfect-numbers/README.md +56 -0
- data/tracks/c/exercises/phone-number/README.md +66 -0
- data/tracks/c/exercises/raindrops/README.md +56 -0
- data/tracks/c/exercises/react/README.md +51 -0
- data/tracks/c/exercises/rna-transcription/README.md +57 -0
- data/tracks/c/exercises/robot-simulator/README.md +66 -0
- data/tracks/c/exercises/roman-numerals/README.md +81 -0
- data/tracks/c/exercises/scrabble-score/README.md +76 -0
- data/tracks/c/exercises/series/README.md +59 -0
- data/tracks/c/exercises/sieve/README.md +66 -0
- data/tracks/c/exercises/space-age/README.md +56 -0
- data/tracks/c/exercises/sum-of-multiples/README.md +50 -0
- data/tracks/c/exercises/triangle/README.md +58 -0
- data/tracks/c/exercises/word-count/README.md +51 -0
- data/tracks/ceylon/README.md +3 -3
- data/tracks/ceylon/config/exercise-readme-insert.md +1 -0
- data/tracks/{java/exercises/accumulate/.meta/readme.go.tmpl → ceylon/config/exercise_readme.go.tmpl} +0 -1
- data/tracks/ceylon/exercises/anagram/README.md +29 -0
- data/tracks/ceylon/{docs/EXERCISE_README_INSERT.md → exercises/bracket-push/README.md} +12 -0
- data/tracks/ceylon/exercises/hamming/README.md +58 -0
- data/tracks/ceylon/exercises/largest-series-product/README.md +36 -0
- data/tracks/ceylon/exercises/leap/README.md +49 -0
- data/tracks/ceylon/exercises/react/README.md +35 -0
- data/tracks/ceylon/exercises/sieve/README.md +50 -0
- data/tracks/{java/exercises/acronym/.meta/readme.go.tmpl → delphi/config/exercise_readme.go.tmpl} +0 -1
- data/tracks/delphi/exercises/allergies/README.md +58 -0
- data/tracks/delphi/exercises/bank-account/README.md +51 -0
- data/tracks/delphi/exercises/beer-song/README.md +348 -0
- data/tracks/delphi/exercises/binary-search/README.md +62 -0
- data/tracks/delphi/exercises/bob/README.md +39 -0
- data/tracks/delphi/exercises/book-store/README.md +95 -0
- data/tracks/delphi/exercises/bowling/README.md +74 -0
- data/tracks/delphi/exercises/circular-buffer/README.md +71 -0
- data/tracks/delphi/exercises/clock/README.md +34 -0
- data/tracks/delphi/exercises/collatz-conjecture/README.md +54 -0
- data/tracks/delphi/exercises/etl/README.md +72 -0
- data/tracks/delphi/exercises/grains/README.md +55 -0
- data/tracks/delphi/exercises/hamming/README.md +63 -0
- data/tracks/delphi/exercises/hello-world/README.md +42 -0
- data/tracks/delphi/exercises/leap/README.md +54 -0
- data/tracks/delphi/exercises/minesweeper/README.md +51 -0
- data/tracks/delphi/exercises/nucleotide-count/README.md +54 -0
- data/tracks/delphi/exercises/perfect-numbers/README.md +45 -0
- data/tracks/delphi/exercises/phone-number/README.md +55 -0
- data/tracks/delphi/exercises/poker/README.md +33 -0
- data/tracks/delphi/exercises/raindrops/README.md +45 -0
- data/tracks/delphi/exercises/rna-transcription/README.md +46 -0
- data/tracks/delphi/exercises/roman-numerals/README.md +70 -0
- data/tracks/delphi/exercises/saddle-points/README.md +54 -0
- data/tracks/delphi/exercises/triangle/README.md +47 -0
- data/tracks/delphi/exercises/two-fer/README.md +69 -0
- data/tracks/delphi/exercises/wordy/README.md +84 -0
- data/tracks/{java/exercises/all-your-base/.meta/readme.go.tmpl → factor/config/exercise_readme.go.tmpl} +0 -1
- data/tracks/factor/exercises/hello-world/README.md +34 -0
- data/tracks/factor/exercises/isogram/README.md +32 -0
- data/tracks/factor/exercises/leap/README.md +46 -0
- data/tracks/factor/exercises/two-fer/README.md +61 -0
- data/tracks/haskell/config/exercise_readme.go.tmpl +16 -0
- data/tracks/haskell/exercises/accumulate/README.md +89 -0
- data/tracks/haskell/exercises/acronym/README.md +69 -0
- data/tracks/haskell/exercises/all-your-base/README.md +89 -0
- data/tracks/haskell/exercises/allergies/README.md +104 -0
- data/tracks/haskell/exercises/alphametics/README.md +96 -0
- data/tracks/haskell/exercises/anagram/README.md +91 -0
- data/tracks/haskell/exercises/atbash-cipher/README.md +88 -0
- data/tracks/haskell/exercises/bank-account/README.md +102 -0
- data/tracks/haskell/exercises/beer-song/README.md +401 -0
- data/tracks/haskell/exercises/binary/README.md +89 -0
- data/tracks/haskell/exercises/binary-search-tree/README.md +133 -0
- data/tracks/haskell/exercises/bob/README.md +72 -0
- data/tracks/haskell/exercises/bowling/README.md +128 -0
- data/tracks/haskell/exercises/bracket-push/README.md +64 -0
- data/tracks/haskell/exercises/change/README.md +77 -0
- data/tracks/haskell/exercises/clock/README.md +86 -0
- data/tracks/haskell/exercises/connect/README.md +88 -0
- data/tracks/haskell/exercises/crypto-square/README.md +128 -0
- data/tracks/haskell/exercises/custom-set/README.md +94 -0
- data/tracks/haskell/exercises/difference-of-squares/README.md +73 -0
- data/tracks/haskell/exercises/dominoes/README.md +72 -0
- data/tracks/haskell/exercises/etl/README.md +105 -0
- data/tracks/haskell/exercises/food-chain/README.md +145 -0
- data/tracks/haskell/exercises/forth/README.md +98 -0
- data/tracks/haskell/exercises/gigasecond/README.md +65 -0
- data/tracks/haskell/exercises/go-counting/README.md +109 -0
- data/tracks/haskell/exercises/grade-school/README.md +111 -0
- data/tracks/haskell/exercises/grains/README.md +88 -0
- data/tracks/haskell/exercises/hamming/README.md +96 -0
- data/tracks/haskell/exercises/hello-world/README.md +83 -0
- data/tracks/haskell/exercises/hexadecimal/README.md +68 -0
- data/tracks/haskell/exercises/house/README.md +187 -0
- data/tracks/haskell/exercises/kindergarten-garden/README.md +120 -0
- data/tracks/haskell/exercises/largest-series-product/README.md +74 -0
- data/tracks/haskell/exercises/leap/README.md +100 -0
- data/tracks/haskell/exercises/lens-person/README.md +66 -0
- data/tracks/haskell/exercises/linked-list/README.md +104 -0
- data/tracks/haskell/exercises/list-ops/README.md +64 -0
- data/tracks/haskell/exercises/luhn/README.md +125 -0
- data/tracks/haskell/exercises/matrix/README.md +125 -0
- data/tracks/haskell/exercises/meetup/README.md +92 -0
- data/tracks/haskell/exercises/minesweeper/README.md +84 -0
- data/tracks/haskell/exercises/nth-prime/README.md +69 -0
- data/tracks/haskell/exercises/nucleotide-count/README.md +87 -0
- data/tracks/haskell/exercises/ocr-numbers/README.md +139 -0
- data/tracks/haskell/exercises/octal/README.md +115 -0
- data/tracks/haskell/exercises/palindrome-products/README.md +115 -0
- data/tracks/haskell/exercises/pangram/README.md +69 -0
- data/tracks/haskell/exercises/parallel-letter-frequency/README.md +76 -0
- data/tracks/haskell/exercises/pascals-triangle/README.md +75 -0
- data/tracks/haskell/exercises/phone-number/README.md +88 -0
- data/tracks/haskell/exercises/pig-latin/README.md +78 -0
- data/tracks/haskell/exercises/pov/README.md +100 -0
- data/tracks/haskell/exercises/prime-factors/README.md +90 -0
- data/tracks/haskell/exercises/pythagorean-triplet/README.md +78 -0
- data/tracks/haskell/exercises/queen-attack/README.md +105 -0
- data/tracks/haskell/exercises/raindrops/README.md +78 -0
- data/tracks/haskell/exercises/rna-transcription/README.md +79 -0
- data/tracks/haskell/exercises/robot-name/README.md +90 -0
- data/tracks/haskell/exercises/robot-simulator/README.md +105 -0
- data/tracks/haskell/exercises/roman-numerals/README.md +112 -0
- data/tracks/haskell/exercises/run-length-encoding/README.md +84 -0
- data/tracks/haskell/exercises/saddle-points/README.md +87 -0
- data/tracks/haskell/exercises/say/README.md +123 -0
- data/tracks/haskell/exercises/scrabble-score/README.md +98 -0
- data/tracks/haskell/exercises/secret-handshake/README.md +89 -0
- data/tracks/haskell/exercises/series/README.md +106 -0
- data/tracks/haskell/exercises/sgf-parsing/README.md +146 -0
- data/tracks/haskell/exercises/sieve/README.md +88 -0
- data/tracks/haskell/exercises/simple-cipher/README.md +144 -0
- data/tracks/haskell/exercises/simple-linked-list/README.md +101 -0
- data/tracks/haskell/exercises/space-age/README.md +94 -0
- data/tracks/haskell/exercises/spiral-matrix/README.md +84 -0
- data/tracks/haskell/exercises/strain/README.md +94 -0
- data/tracks/haskell/exercises/sublist/README.md +80 -0
- data/tracks/haskell/exercises/sum-of-multiples/README.md +72 -0
- data/tracks/haskell/exercises/triangle/README.md +80 -0
- data/tracks/haskell/exercises/trinary/README.md +96 -0
- data/tracks/haskell/exercises/word-count/README.md +96 -0
- data/tracks/haskell/exercises/wordy/README.md +122 -0
- data/tracks/haskell/exercises/zebra-puzzle/README.md +86 -0
- data/tracks/haskell/exercises/zipper/README.md +85 -0
- data/tracks/java/config/exercise_readme.go.tmpl +16 -0
- data/tracks/java/exercises/accumulate/README.md +0 -1
- data/tracks/java/exercises/acronym/README.md +0 -1
- data/tracks/java/exercises/all-your-base/README.md +0 -1
- data/tracks/java/exercises/allergies/README.md +0 -1
- data/tracks/java/exercises/anagram/README.md +0 -1
- data/tracks/java/exercises/atbash-cipher/README.md +0 -1
- data/tracks/java/exercises/bank-account/README.md +0 -1
- data/tracks/java/exercises/beer-song/README.md +0 -1
- data/tracks/java/exercises/binary/README.md +0 -1
- data/tracks/java/exercises/binary-search/README.md +0 -1
- data/tracks/java/exercises/binary-search-tree/README.md +0 -1
- data/tracks/java/exercises/bob/README.md +0 -1
- data/tracks/java/exercises/book-store/README.md +0 -1
- data/tracks/java/exercises/bowling/README.md +0 -1
- data/tracks/java/exercises/bracket-push/README.md +0 -1
- data/tracks/java/exercises/change/README.md +0 -1
- data/tracks/java/exercises/circular-buffer/README.md +0 -1
- data/tracks/java/exercises/clock/README.md +0 -1
- data/tracks/java/exercises/collatz-conjecture/README.md +0 -1
- data/tracks/java/exercises/complex-numbers/README.md +0 -1
- data/tracks/java/exercises/crypto-square/README.md +0 -1
- data/tracks/java/exercises/custom-set/README.md +0 -1
- data/tracks/java/exercises/diamond/README.md +0 -1
- data/tracks/java/exercises/difference-of-squares/README.md +0 -1
- data/tracks/java/exercises/etl/README.md +0 -1
- data/tracks/java/exercises/flatten-array/README.md +0 -1
- data/tracks/java/exercises/food-chain/README.md +0 -1
- data/tracks/java/exercises/gigasecond/README.md +0 -1
- data/tracks/java/exercises/grade-school/README.md +0 -1
- data/tracks/java/exercises/hamming/README.md +0 -1
- data/tracks/java/exercises/hello-world/README.md +0 -1
- data/tracks/java/exercises/hexadecimal/README.md +0 -1
- data/tracks/java/exercises/isogram/README.md +0 -1
- data/tracks/java/exercises/kindergarten-garden/README.md +0 -1
- data/tracks/java/exercises/largest-series-product/README.md +0 -1
- data/tracks/java/exercises/linked-list/README.md +0 -1
- data/tracks/java/exercises/list-ops/README.md +0 -1
- data/tracks/java/exercises/luhn/README.md +0 -1
- data/tracks/java/exercises/matrix/README.md +0 -1
- data/tracks/java/exercises/meetup/README.md +0 -1
- data/tracks/java/exercises/minesweeper/README.md +0 -1
- data/tracks/java/exercises/nth-prime/README.md +0 -1
- data/tracks/java/exercises/nucleotide-count/README.md +0 -1
- data/tracks/java/exercises/ocr-numbers/README.md +0 -1
- data/tracks/java/exercises/octal/README.md +0 -1
- data/tracks/java/exercises/palindrome-products/README.md +0 -1
- data/tracks/java/exercises/pangram/README.md +0 -1
- data/tracks/java/exercises/pascals-triangle/README.md +0 -1
- data/tracks/java/exercises/perfect-numbers/README.md +0 -1
- data/tracks/java/exercises/phone-number/README.md +0 -1
- data/tracks/java/exercises/pig-latin/README.md +0 -1
- data/tracks/java/exercises/poker/README.md +0 -1
- data/tracks/java/exercises/prime-factors/README.md +0 -1
- data/tracks/java/exercises/pythagorean-triplet/README.md +0 -1
- data/tracks/java/exercises/queen-attack/README.md +0 -1
- data/tracks/java/exercises/raindrops/README.md +0 -1
- data/tracks/java/exercises/rectangles/README.md +0 -1
- data/tracks/java/exercises/rna-transcription/README.md +0 -1
- data/tracks/java/exercises/robot-name/README.md +0 -1
- data/tracks/java/exercises/robot-simulator/README.md +0 -1
- data/tracks/java/exercises/roman-numerals/README.md +0 -1
- data/tracks/java/exercises/rotational-cipher/README.md +47 -0
- data/tracks/java/exercises/run-length-encoding/README.md +0 -1
- data/tracks/java/exercises/saddle-points/README.md +0 -1
- data/tracks/java/exercises/scrabble-score/README.md +0 -1
- data/tracks/java/exercises/secret-handshake/README.md +0 -1
- data/tracks/java/exercises/series/README.md +0 -1
- data/tracks/java/exercises/sieve/README.md +0 -1
- data/tracks/java/exercises/simple-cipher/README.md +0 -1
- data/tracks/java/exercises/simple-linked-list/README.md +0 -1
- data/tracks/java/exercises/space-age/README.md +0 -1
- data/tracks/java/exercises/spiral-matrix/README.md +0 -1
- data/tracks/java/exercises/strain/README.md +0 -1
- data/tracks/java/exercises/sublist/README.md +0 -1
- data/tracks/java/exercises/sum-of-multiples/README.md +0 -1
- data/tracks/java/exercises/transpose/README.md +0 -1
- data/tracks/java/exercises/triangle/README.md +0 -1
- data/tracks/java/exercises/trinary/README.md +0 -1
- data/tracks/java/exercises/twelve-days/README.md +0 -1
- data/tracks/java/exercises/two-fer/README.md +0 -1
- data/tracks/java/exercises/word-count/README.md +0 -1
- data/tracks/java/exercises/word-search/README.md +0 -1
- data/tracks/java/exercises/wordy/README.md +0 -1
- data/tracks/javascript/config/exercise_readme.go.tmpl +16 -0
- data/tracks/javascript/exercises/accumulate/README.md +59 -0
- data/tracks/javascript/exercises/acronym/README.md +39 -0
- data/tracks/javascript/exercises/all-your-base/README.md +59 -0
- data/tracks/javascript/exercises/allergies/README.md +61 -0
- data/tracks/javascript/exercises/alphametics/README.md +59 -0
- data/tracks/javascript/exercises/anagram/README.md +37 -0
- data/tracks/javascript/exercises/atbash-cipher/README.md +58 -0
- data/tracks/javascript/exercises/beer-song/README.md +351 -0
- data/tracks/javascript/exercises/binary/README.md +59 -0
- data/tracks/javascript/exercises/binary-search/README.md +65 -0
- data/tracks/javascript/exercises/binary-search-tree/README.md +84 -0
- data/tracks/javascript/exercises/bob/README.md +42 -0
- data/tracks/javascript/exercises/bowling/README.md +77 -0
- data/tracks/javascript/exercises/bracket-push/README.md +34 -0
- data/tracks/javascript/exercises/circular-buffer/README.md +74 -0
- data/tracks/javascript/exercises/clock/README.md +37 -0
- data/tracks/javascript/exercises/crypto-square/README.md +98 -0
- data/tracks/javascript/exercises/custom-set/README.md +35 -0
- data/tracks/javascript/exercises/diamond/README.md +83 -0
- data/tracks/javascript/exercises/difference-of-squares/README.md +43 -0
- data/tracks/javascript/exercises/etl/README.md +75 -0
- data/tracks/javascript/exercises/flatten-array/README.md +42 -0
- data/tracks/javascript/exercises/food-chain/README.md +94 -0
- data/tracks/javascript/exercises/gigasecond/README.md +35 -0
- data/tracks/javascript/exercises/grade-school/README.md +66 -0
- data/tracks/javascript/exercises/grains/README.md +58 -0
- data/tracks/javascript/exercises/hamming/README.md +66 -0
- data/tracks/javascript/exercises/hello-world/README.md +132 -0
- data/tracks/javascript/exercises/hexadecimal/README.md +38 -0
- data/tracks/javascript/exercises/isogram/README.md +43 -0
- data/tracks/javascript/exercises/kindergarten-garden/README.md +90 -0
- data/tracks/javascript/exercises/largest-series-product/README.md +44 -0
- data/tracks/javascript/exercises/leap/README.md +57 -0
- data/tracks/javascript/exercises/linked-list/README.md +58 -0
- data/tracks/javascript/exercises/list-ops/README.md +34 -0
- data/tracks/javascript/exercises/luhn/README.md +95 -0
- data/tracks/javascript/exercises/matrix/README.md +69 -0
- data/tracks/javascript/exercises/meetup/README.md +54 -0
- data/tracks/javascript/exercises/minesweeper/README.md +54 -0
- data/tracks/javascript/exercises/nth-prime/README.md +39 -0
- data/tracks/javascript/exercises/nucleotide-count/README.md +57 -0
- data/tracks/javascript/exercises/ocr-numbers/README.md +109 -0
- data/tracks/javascript/exercises/octal/README.md +73 -0
- data/tracks/javascript/exercises/palindrome-products/README.md +64 -0
- data/tracks/javascript/exercises/pangram/README.md +39 -0
- data/tracks/javascript/exercises/pascals-triangle/README.md +45 -0
- data/tracks/javascript/exercises/perfect-numbers/README.md +48 -0
- data/tracks/javascript/exercises/phone-number/README.md +58 -0
- data/tracks/javascript/exercises/pig-latin/README.md +48 -0
- data/tracks/javascript/exercises/point-mutations/README.md +65 -0
- data/tracks/javascript/exercises/prime-factors/README.md +60 -0
- data/tracks/javascript/exercises/proverb/README.md +42 -0
- data/tracks/javascript/exercises/pythagorean-triplet/README.md +48 -0
- data/tracks/javascript/exercises/queen-attack/README.md +57 -0
- data/tracks/javascript/exercises/raindrops/README.md +48 -0
- data/tracks/javascript/exercises/rna-transcription/README.md +49 -0
- data/tracks/javascript/exercises/robot-name/README.md +46 -0
- data/tracks/javascript/exercises/robot-simulator/README.md +58 -0
- data/tracks/javascript/exercises/roman-numerals/README.md +73 -0
- data/tracks/javascript/exercises/run-length-encoding/README.md +54 -0
- data/tracks/javascript/exercises/saddle-points/README.md +57 -0
- data/tracks/javascript/exercises/say/README.md +93 -0
- data/tracks/javascript/exercises/scrabble-score/README.md +68 -0
- data/tracks/javascript/exercises/secret-handshake/README.md +59 -0
- data/tracks/javascript/exercises/series/README.md +51 -0
- data/tracks/javascript/exercises/sieve/README.md +58 -0
- data/tracks/javascript/exercises/simple-cipher/README.md +114 -0
- data/tracks/javascript/exercises/simple-linked-list/README.md +52 -0
- data/tracks/javascript/exercises/space-age/README.md +48 -0
- data/tracks/javascript/exercises/strain/README.md +64 -0
- data/tracks/javascript/exercises/sum-of-multiples/README.md +42 -0
- data/tracks/javascript/exercises/triangle/README.md +50 -0
- data/tracks/javascript/exercises/trinary/README.md +52 -0
- data/tracks/javascript/exercises/two-bucket/README.md +60 -0
- data/tracks/javascript/exercises/word-count/README.md +43 -0
- data/tracks/javascript/exercises/wordy/README.md +87 -0
- data/tracks/lua/config/exercise_readme.go.tmpl +16 -0
- data/tracks/lua/exercises/acronym/README.md +25 -0
- data/tracks/lua/exercises/all-your-base/README.md +45 -0
- data/tracks/lua/exercises/allergies/README.md +47 -0
- data/tracks/lua/exercises/alphametics/README.md +45 -0
- data/tracks/lua/exercises/anagram/README.md +23 -0
- data/tracks/lua/exercises/atbash-cipher/README.md +44 -0
- data/tracks/lua/exercises/bank-account/README.md +40 -0
- data/tracks/lua/exercises/beer-song/README.md +337 -0
- data/tracks/lua/exercises/binary/README.md +45 -0
- data/tracks/lua/exercises/binary-search/README.md +51 -0
- data/tracks/lua/exercises/binary-search-tree/README.md +70 -0
- data/tracks/lua/exercises/bob/README.md +28 -0
- data/tracks/lua/exercises/bowling/README.md +63 -0
- data/tracks/lua/exercises/bracket-push/README.md +20 -0
- data/tracks/lua/exercises/change/README.md +33 -0
- data/tracks/lua/exercises/circular-buffer/README.md +60 -0
- data/tracks/lua/exercises/clock/README.md +23 -0
- data/tracks/lua/exercises/crypto-square/README.md +84 -0
- data/tracks/lua/exercises/custom-set/README.md +21 -0
- data/tracks/lua/exercises/diamond/README.md +69 -0
- data/tracks/lua/exercises/difference-of-squares/README.md +29 -0
- data/tracks/lua/exercises/etl/README.md +61 -0
- data/tracks/lua/exercises/flatten-array/README.md +28 -0
- data/tracks/lua/exercises/food-chain/README.md +80 -0
- data/tracks/lua/exercises/gigasecond/README.md +21 -0
- data/tracks/lua/exercises/grade-school/README.md +52 -0
- data/tracks/lua/exercises/grains/README.md +44 -0
- data/tracks/lua/exercises/hamming/README.md +52 -0
- data/tracks/lua/exercises/hello-world/README.md +31 -0
- data/tracks/lua/exercises/house/README.md +123 -0
- data/tracks/lua/exercises/isogram/README.md +29 -0
- data/tracks/lua/exercises/kindergarten-garden/README.md +76 -0
- data/tracks/lua/exercises/largest-series-product/README.md +30 -0
- data/tracks/lua/exercises/leap/README.md +43 -0
- data/tracks/lua/exercises/linked-list/README.md +44 -0
- data/tracks/lua/exercises/list-ops/README.md +20 -0
- data/tracks/lua/exercises/luhn/README.md +81 -0
- data/tracks/lua/exercises/matrix/README.md +55 -0
- data/tracks/lua/exercises/meetup/README.md +40 -0
- data/tracks/lua/exercises/minesweeper/README.md +40 -0
- data/tracks/lua/exercises/nth-prime/README.md +25 -0
- data/tracks/lua/exercises/nucleotide-count/README.md +43 -0
- data/tracks/lua/exercises/ocr-numbers/README.md +95 -0
- data/tracks/lua/exercises/octal/README.md +59 -0
- data/tracks/lua/exercises/pangram/README.md +25 -0
- data/tracks/lua/exercises/pascals-triangle/README.md +31 -0
- data/tracks/lua/exercises/perfect-numbers/README.md +34 -0
- data/tracks/lua/exercises/phone-number/README.md +44 -0
- data/tracks/lua/exercises/pig-latin/README.md +34 -0
- data/tracks/lua/exercises/pov/README.md +56 -0
- data/tracks/lua/exercises/prime-factors/README.md +46 -0
- data/tracks/lua/exercises/protein-translation/README.md +59 -0
- data/tracks/lua/exercises/pythagorean-triplet/README.md +34 -0
- data/tracks/lua/exercises/rail-fence-cipher/README.md +70 -0
- data/tracks/lua/exercises/raindrops/README.md +34 -0
- data/tracks/lua/exercises/rectangles/README.md +77 -0
- data/tracks/lua/exercises/rna-transcription/README.md +35 -0
- data/tracks/lua/exercises/robot-name/README.md +32 -0
- data/tracks/lua/exercises/robot-simulator/README.md +44 -0
- data/tracks/lua/exercises/roman-numerals/README.md +59 -0
- data/tracks/lua/exercises/run-length-encoding/README.md +40 -0
- data/tracks/lua/exercises/say/README.md +79 -0
- data/tracks/lua/exercises/scrabble-score/README.md +54 -0
- data/tracks/lua/exercises/secret-handshake/README.md +45 -0
- data/tracks/lua/exercises/series/README.md +37 -0
- data/tracks/lua/exercises/sieve/README.md +44 -0
- data/tracks/lua/exercises/space-age/README.md +34 -0
- data/tracks/lua/exercises/sublist/README.md +31 -0
- data/tracks/lua/exercises/sum-of-multiples/README.md +28 -0
- data/tracks/lua/exercises/tournament/README.md +78 -0
- data/tracks/lua/exercises/transpose/README.md +75 -0
- data/tracks/lua/exercises/triangle/README.md +36 -0
- data/tracks/lua/exercises/variable-length-quantity/README.md +49 -0
- data/tracks/lua/exercises/word-count/README.md +29 -0
- data/tracks/lua/exercises/word-search/README.md +40 -0
- data/tracks/mips/config/exercise_readme.go.tmpl +16 -0
- data/tracks/mips/exercises/atbash-cipher/README.md +34 -0
- data/tracks/mips/exercises/binary/README.md +35 -0
- data/tracks/mips/exercises/difference-of-squares/README.md +19 -0
- data/tracks/mips/exercises/hamming/README.md +42 -0
- data/tracks/mips/exercises/hexadecimal/README.md +14 -0
- data/tracks/mips/exercises/isogram/README.md +19 -0
- data/tracks/mips/exercises/leap/README.md +33 -0
- data/tracks/mips/exercises/nth-prime/README.md +15 -0
- data/tracks/mips/exercises/octal/README.md +49 -0
- data/tracks/mips/exercises/raindrops/README.md +24 -0
- data/tracks/mips/exercises/rna-transcription/README.md +25 -0
- data/tracks/mips/exercises/scrabble-score/README.md +44 -0
- data/tracks/mips/exercises/triangle/README.md +26 -0
- data/tracks/mips/exercises/trinary/README.md +28 -0
- data/tracks/purescript/config/exercise_readme.go.tmpl +16 -0
- data/tracks/purescript/exercises/accumulate/README.md +35 -0
- data/tracks/purescript/exercises/acronym/README.md +15 -0
- data/tracks/purescript/exercises/all-your-base/README.md +35 -0
- data/tracks/purescript/exercises/allergies/README.md +37 -0
- data/tracks/purescript/exercises/atbash-cipher/README.md +34 -0
- data/tracks/purescript/exercises/binary-search/README.md +41 -0
- data/tracks/purescript/exercises/bob/README.md +18 -0
- data/tracks/purescript/exercises/bracket-push/README.md +10 -0
- data/tracks/purescript/exercises/crypto-square/README.md +74 -0
- data/tracks/purescript/exercises/diamond/README.md +59 -0
- data/tracks/purescript/exercises/difference-of-squares/README.md +19 -0
- data/tracks/purescript/exercises/etl/README.md +51 -0
- data/tracks/purescript/exercises/hamming/README.md +42 -0
- data/tracks/purescript/exercises/hello-world/README.md +21 -0
- data/tracks/purescript/exercises/isogram/README.md +19 -0
- data/tracks/purescript/exercises/largest-series-product/README.md +20 -0
- data/tracks/purescript/exercises/leap/README.md +33 -0
- data/tracks/purescript/exercises/meetup/README.md +30 -0
- data/tracks/purescript/exercises/pangram/README.md +15 -0
- data/tracks/purescript/exercises/pascals-triangle/README.md +21 -0
- data/tracks/purescript/exercises/raindrops/README.md +24 -0
- data/tracks/purescript/exercises/scrabble-score/README.md +44 -0
- data/tracks/purescript/exercises/triangle/README.md +26 -0
- data/tracks/purescript/exercises/word-count/README.md +19 -0
- data/tracks/r/config/exercise_readme.go.tmpl +16 -0
- data/tracks/r/exercises/anagram/README.md +23 -0
- data/tracks/r/exercises/beer-song/README.md +337 -0
- data/tracks/r/exercises/bob/README.md +28 -0
- data/tracks/r/exercises/difference-of-squares/README.md +29 -0
- data/tracks/r/exercises/grains/README.md +44 -0
- data/tracks/r/exercises/hamming/README.md +52 -0
- data/tracks/r/exercises/hello-world/README.md +31 -0
- data/tracks/r/exercises/isogram/README.md +29 -0
- data/tracks/r/exercises/largest-series-product/README.md +30 -0
- data/tracks/r/exercises/leap/README.md +43 -0
- data/tracks/r/exercises/luhn/README.md +81 -0
- data/tracks/r/exercises/pascals-triangle/README.md +31 -0
- data/tracks/r/exercises/perfect-numbers/README.md +34 -0
- data/tracks/r/exercises/phone-number/README.md +44 -0
- data/tracks/r/exercises/prime-factors/README.md +46 -0
- data/tracks/r/exercises/raindrops/README.md +34 -0
- data/tracks/r/exercises/rna-transcription/README.md +35 -0
- data/tracks/r/exercises/rotational-cipher/README.md +46 -0
- data/tracks/r/exercises/scrabble-score/README.md +54 -0
- data/tracks/r/exercises/secret-handshake/README.md +45 -0
- data/tracks/r/exercises/sieve/README.md +44 -0
- data/tracks/r/exercises/space-age/README.md +34 -0
- data/tracks/r/exercises/sum-of-multiples/README.md +28 -0
- data/tracks/r/exercises/tournament/README.md +78 -0
- data/tracks/r/exercises/word-count/README.md +29 -0
- data/tracks/rust/{docs/EXERCISE_README_INSERT.md → config/exercise-readme-insert.md} +1 -1
- data/tracks/rust/config/exercise_readme.go.tmpl +16 -0
- data/tracks/rust/exercises/acronym/README.md +47 -0
- data/tracks/rust/exercises/all-your-base/README.md +67 -0
- data/tracks/rust/exercises/allergies/README.md +69 -0
- data/tracks/rust/exercises/alphametics/README.md +67 -0
- data/tracks/rust/exercises/anagram/README.md +45 -0
- data/tracks/rust/exercises/atbash-cipher/README.md +66 -0
- data/tracks/rust/exercises/beer-song/README.md +359 -0
- data/tracks/rust/exercises/bob/README.md +50 -0
- data/tracks/rust/exercises/bowling/README.md +85 -0
- data/tracks/rust/exercises/bracket-push/README.md +50 -0
- data/tracks/rust/exercises/circular-buffer/README.md +82 -0
- data/tracks/rust/exercises/custom-set/README.md +43 -0
- data/tracks/rust/exercises/difference-of-squares/README.md +51 -0
- data/tracks/rust/exercises/dominoes/README.md +50 -0
- data/tracks/rust/exercises/etl/README.md +83 -0
- data/tracks/rust/exercises/forth/README.md +61 -0
- data/tracks/rust/exercises/gigasecond/Cargo.lock +3 -3
- data/tracks/rust/exercises/gigasecond/Cargo.toml +1 -1
- data/tracks/rust/exercises/gigasecond/README.md +43 -0
- data/tracks/rust/exercises/gigasecond/example.rs +1 -1
- data/tracks/rust/exercises/gigasecond/src/lib.rs +2 -2
- data/tracks/rust/exercises/gigasecond/tests/gigasecond.rs +10 -10
- data/tracks/rust/exercises/grade-school/README.md +74 -0
- data/tracks/rust/exercises/grains/README.md +66 -0
- data/tracks/rust/exercises/hamming/README.md +74 -0
- data/tracks/rust/exercises/hello-world/README.md +53 -0
- data/tracks/rust/exercises/hexadecimal/README.md +46 -0
- data/tracks/rust/exercises/largest-series-product/README.md +60 -0
- data/tracks/rust/exercises/leap/README.md +65 -0
- data/tracks/rust/exercises/luhn/README.md +103 -0
- data/tracks/rust/exercises/luhn-from/README.md +49 -0
- data/tracks/rust/exercises/luhn-trait/README.md +57 -0
- data/tracks/rust/exercises/minesweeper/README.md +62 -0
- data/tracks/rust/exercises/nucleotide-codons/README.md +54 -0
- data/tracks/rust/exercises/nucleotide-count/README.md +65 -0
- data/tracks/rust/exercises/ocr-numbers/README.md +117 -0
- data/tracks/rust/exercises/pangram/README.md +47 -0
- data/tracks/rust/exercises/parallel-letter-frequency/README.md +77 -0
- data/tracks/rust/exercises/pascals-triangle/README.md +53 -0
- data/tracks/rust/exercises/phone-number/README.md +66 -0
- data/tracks/rust/exercises/protein-translation/README.md +81 -0
- data/tracks/rust/exercises/queen-attack/README.md +65 -0
- data/tracks/rust/exercises/raindrops/README.md +56 -0
- data/tracks/rust/exercises/react/README.md +51 -0
- data/tracks/rust/exercises/rectangles/README.md +99 -0
- data/tracks/rust/exercises/rna-transcription/README.md +57 -0
- data/tracks/rust/exercises/robot-name/README.md +54 -0
- data/tracks/rust/exercises/robot-simulator/README.md +66 -0
- data/tracks/rust/exercises/roman-numerals/README.md +81 -0
- data/tracks/rust/exercises/rotational-cipher/README.md +68 -0
- data/tracks/rust/exercises/run-length-encoding/README.md +62 -0
- data/tracks/rust/exercises/scrabble-score/README.md +76 -0
- data/tracks/rust/exercises/sieve/README.md +66 -0
- data/tracks/rust/exercises/space-age/README.md +64 -0
- data/tracks/rust/exercises/sublist/README.md +53 -0
- data/tracks/rust/exercises/sum-of-multiples/README.md +50 -0
- data/tracks/rust/exercises/tournament/README.md +100 -0
- data/tracks/rust/exercises/triangle/README.md +71 -0
- data/tracks/rust/exercises/variable-length-quantity/README.md +71 -0
- data/tracks/rust/exercises/word-count/README.md +51 -0
- data/tracks/rust/exercises/wordy/README.md +95 -0
- data/tracks/vimscript/config/exercise_readme.go.tmpl +16 -0
- data/tracks/vimscript/exercises/allergies/README.md +46 -0
- data/tracks/vimscript/exercises/anagram/README.md +22 -0
- data/tracks/vimscript/exercises/atbash-cipher/README.md +43 -0
- data/tracks/vimscript/exercises/beer-song/README.md +336 -0
- data/tracks/vimscript/exercises/bob/README.md +27 -0
- data/tracks/vimscript/exercises/difference-of-squares/README.md +28 -0
- data/tracks/vimscript/exercises/etl/README.md +60 -0
- data/tracks/vimscript/exercises/hamming/README.md +51 -0
- data/tracks/vimscript/exercises/hello-world/README.md +30 -0
- data/tracks/vimscript/exercises/largest-series-product/README.md +29 -0
- data/tracks/vimscript/exercises/leap/README.md +42 -0
- data/tracks/vimscript/exercises/nucleotide-count/README.md +42 -0
- data/tracks/vimscript/exercises/pangram/README.md +24 -0
- data/tracks/vimscript/exercises/phone-number/README.md +43 -0
- data/tracks/vimscript/exercises/raindrops/README.md +33 -0
- data/tracks/vimscript/exercises/rna-transcription/README.md +34 -0
- data/tracks/vimscript/exercises/roman-numerals/README.md +58 -0
- data/tracks/vimscript/exercises/scrabble-score/README.md +53 -0
- data/tracks/vimscript/exercises/triangle/README.md +35 -0
- data/tracks/vimscript/exercises/word-count/README.md +28 -0
- metadata +466 -86
- data/tracks/java/exercises/anagram/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/atbash-cipher/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/bank-account/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/beer-song/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/binary/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/binary-search/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/binary-search-tree/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/bob/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/book-store/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/bowling/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/bracket-push/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/change/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/circular-buffer/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/clock/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/collatz-conjecture/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/complex-numbers/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/crypto-square/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/custom-set/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/diamond/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/difference-of-squares/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/etl/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/flatten-array/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/food-chain/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/gigasecond/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/grade-school/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/hamming/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/hello-world/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/hexadecimal/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/isogram/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/kindergarten-garden/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/largest-series-product/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/linked-list/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/list-ops/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/luhn/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/matrix/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/meetup/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/minesweeper/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/nth-prime/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/nucleotide-count/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/ocr-numbers/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/octal/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/palindrome-products/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/pangram/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/pascals-triangle/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/perfect-numbers/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/phone-number/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/pig-latin/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/poker/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/prime-factors/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/pythagorean-triplet/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/queen-attack/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/raindrops/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/rectangles/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/rna-transcription/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/robot-name/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/robot-simulator/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/roman-numerals/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/run-length-encoding/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/saddle-points/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/scrabble-score/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/secret-handshake/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/series/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/sieve/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/simple-cipher/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/simple-linked-list/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/space-age/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/spiral-matrix/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/strain/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/sublist/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/sum-of-multiples/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/transpose/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/triangle/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/trinary/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/twelve-days/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/two-fer/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/word-count/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/word-search/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/wordy/.meta/readme.go.tmpl +0 -17
@@ -0,0 +1,95 @@
|
|
1
|
+
# Luhn
|
2
|
+
|
3
|
+
Given a number determine whether or not it is valid per the Luhn formula.
|
4
|
+
|
5
|
+
The [Luhn algorithm](https://en.wikipedia.org/wiki/Luhn_algorithm) is
|
6
|
+
a simple checksum formula used to validate a variety of identification
|
7
|
+
numbers, such as credit card numbers and Canadian Social Insurance
|
8
|
+
Numbers.
|
9
|
+
|
10
|
+
The task is to check if a given string is valid.
|
11
|
+
|
12
|
+
Validating a Number
|
13
|
+
------
|
14
|
+
|
15
|
+
Strings of length 1 or less are not valid. Spaces are allowed in the input,
|
16
|
+
but they should be stripped before checking. All other non-digit characters
|
17
|
+
are disallowed.
|
18
|
+
|
19
|
+
## Example 1: valid credit card number
|
20
|
+
|
21
|
+
```
|
22
|
+
4539 1488 0343 6467
|
23
|
+
```
|
24
|
+
|
25
|
+
The first step of the Luhn algorithm is to double every second digit,
|
26
|
+
starting from the right. We will be doubling
|
27
|
+
|
28
|
+
```
|
29
|
+
4_3_ 1_8_ 0_4_ 6_6_
|
30
|
+
```
|
31
|
+
|
32
|
+
If doubling the number results in a number greater than 9 then subtract 9
|
33
|
+
from the product. The results of our doubling:
|
34
|
+
|
35
|
+
```
|
36
|
+
8569 2478 0383 3437
|
37
|
+
```
|
38
|
+
|
39
|
+
Then sum all of the digits:
|
40
|
+
|
41
|
+
```
|
42
|
+
8+5+6+9+2+4+7+8+0+3+8+3+3+4+3+7 = 80
|
43
|
+
```
|
44
|
+
|
45
|
+
If the sum is evenly divisible by 10, then the number is valid. This number is valid!
|
46
|
+
|
47
|
+
## Example 2: invalid credit card number
|
48
|
+
|
49
|
+
```
|
50
|
+
8273 1232 7352 0569
|
51
|
+
```
|
52
|
+
|
53
|
+
Double the second digits, starting from the right
|
54
|
+
|
55
|
+
```
|
56
|
+
7253 2262 5312 0539
|
57
|
+
```
|
58
|
+
|
59
|
+
Sum the digits
|
60
|
+
|
61
|
+
```
|
62
|
+
7+2+5+3+2+2+6+2+5+3+1+2+0+5+3+9 = 57
|
63
|
+
```
|
64
|
+
|
65
|
+
57 is not evenly divisible by 10, so this number is not valid.
|
66
|
+
|
67
|
+
## Setup
|
68
|
+
|
69
|
+
Go through the setup instructions for JavaScript to
|
70
|
+
install the necessary dependencies:
|
71
|
+
|
72
|
+
http://exercism.io/languages/javascript
|
73
|
+
|
74
|
+
## Making the Test Suite Pass
|
75
|
+
|
76
|
+
Execute the tests with:
|
77
|
+
|
78
|
+
jasmine <exercise-name>.spec.js
|
79
|
+
|
80
|
+
Replace `<exercise-name>` with the name of the current exercise. E.g., to
|
81
|
+
test the Hello World exercise:
|
82
|
+
|
83
|
+
jasmine hello-world.spec.js
|
84
|
+
|
85
|
+
In many test suites all but the first test have been skipped.
|
86
|
+
|
87
|
+
Once you get a test passing, you can unskip the next one by
|
88
|
+
changing `xit` to `it`.
|
89
|
+
|
90
|
+
## Source
|
91
|
+
|
92
|
+
The Luhn Algorithm on Wikipedia [http://en.wikipedia.org/wiki/Luhn_algorithm](http://en.wikipedia.org/wiki/Luhn_algorithm)
|
93
|
+
|
94
|
+
## Submitting Incomplete Solutions
|
95
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -0,0 +1,69 @@
|
|
1
|
+
# Matrix
|
2
|
+
|
3
|
+
Given a string representing a matrix of numbers, return the rows and columns of
|
4
|
+
that matrix.
|
5
|
+
|
6
|
+
So given a string with embedded newlines like:
|
7
|
+
|
8
|
+
> 9 8 7
|
9
|
+
> 5 3 2
|
10
|
+
> 6 6 7
|
11
|
+
|
12
|
+
representing this matrix:
|
13
|
+
|
14
|
+
```plain
|
15
|
+
0 1 2
|
16
|
+
|---------
|
17
|
+
0 | 9 8 7
|
18
|
+
1 | 5 3 2
|
19
|
+
2 | 6 6 7
|
20
|
+
```
|
21
|
+
|
22
|
+
your code should be able to spit out:
|
23
|
+
|
24
|
+
- A list of the rows, reading each row left-to-right while moving
|
25
|
+
top-to-bottom across the rows,
|
26
|
+
- A list of the columns, reading each column top-to-bottom while moving
|
27
|
+
from left-to-right.
|
28
|
+
|
29
|
+
The rows for our example matrix:
|
30
|
+
|
31
|
+
- 9, 8, 7
|
32
|
+
- 5, 3, 2
|
33
|
+
- 6, 6, 7
|
34
|
+
|
35
|
+
And its columns:
|
36
|
+
|
37
|
+
- 9, 5, 6
|
38
|
+
- 8, 3, 6
|
39
|
+
- 7, 2, 7
|
40
|
+
|
41
|
+
## Setup
|
42
|
+
|
43
|
+
Go through the setup instructions for JavaScript to
|
44
|
+
install the necessary dependencies:
|
45
|
+
|
46
|
+
http://exercism.io/languages/javascript
|
47
|
+
|
48
|
+
## Making the Test Suite Pass
|
49
|
+
|
50
|
+
Execute the tests with:
|
51
|
+
|
52
|
+
jasmine <exercise-name>.spec.js
|
53
|
+
|
54
|
+
Replace `<exercise-name>` with the name of the current exercise. E.g., to
|
55
|
+
test the Hello World exercise:
|
56
|
+
|
57
|
+
jasmine hello-world.spec.js
|
58
|
+
|
59
|
+
In many test suites all but the first test have been skipped.
|
60
|
+
|
61
|
+
Once you get a test passing, you can unskip the next one by
|
62
|
+
changing `xit` to `it`.
|
63
|
+
|
64
|
+
## Source
|
65
|
+
|
66
|
+
Warmup to the `saddle-points` warmup. [http://jumpstartlab.com](http://jumpstartlab.com)
|
67
|
+
|
68
|
+
## Submitting Incomplete Solutions
|
69
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# Meetup
|
2
|
+
|
3
|
+
Calculate the date of meetups.
|
4
|
+
|
5
|
+
Typically meetups happen on the same day of the week. In this exercise, you will take
|
6
|
+
a description of a meetup date, and return the actual meetup date.
|
7
|
+
|
8
|
+
Examples of general descriptions are:
|
9
|
+
|
10
|
+
- the first Monday of January 2017
|
11
|
+
- the third Tuesday of January 2017
|
12
|
+
- the Wednesteenth of January 2017
|
13
|
+
- the last Thursday of January 2017
|
14
|
+
|
15
|
+
Note that "Monteenth", "Tuesteenth", etc are all made up words. There
|
16
|
+
was a meetup whose members realized that there are exactly 7 numbered days in a month that
|
17
|
+
end in '-teenth'. Therefore, one is guaranteed that each day of the week
|
18
|
+
(Monday, Tuesday, ...) will have exactly one date that is named with '-teenth'
|
19
|
+
in every month.
|
20
|
+
|
21
|
+
Given examples of a meetup dates, each containing a month, day, year, and descriptor
|
22
|
+
(first, second, teenth, etc), calculate the date of the actual meetup.
|
23
|
+
For example, if given "First Monday of January 2017", the correct meetup date is 2017/1/2
|
24
|
+
|
25
|
+
|
26
|
+
## Setup
|
27
|
+
|
28
|
+
Go through the setup instructions for JavaScript to
|
29
|
+
install the necessary dependencies:
|
30
|
+
|
31
|
+
http://exercism.io/languages/javascript
|
32
|
+
|
33
|
+
## Making the Test Suite Pass
|
34
|
+
|
35
|
+
Execute the tests with:
|
36
|
+
|
37
|
+
jasmine <exercise-name>.spec.js
|
38
|
+
|
39
|
+
Replace `<exercise-name>` with the name of the current exercise. E.g., to
|
40
|
+
test the Hello World exercise:
|
41
|
+
|
42
|
+
jasmine hello-world.spec.js
|
43
|
+
|
44
|
+
In many test suites all but the first test have been skipped.
|
45
|
+
|
46
|
+
Once you get a test passing, you can unskip the next one by
|
47
|
+
changing `xit` to `it`.
|
48
|
+
|
49
|
+
## Source
|
50
|
+
|
51
|
+
Jeremy Hinegardner mentioned a Boulder meetup that happens on the Wednesteenth of every month [https://twitter.com/copiousfreetime](https://twitter.com/copiousfreetime)
|
52
|
+
|
53
|
+
## Submitting Incomplete Solutions
|
54
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# Minesweeper
|
2
|
+
|
3
|
+
Add the numbers to a minesweeper board.
|
4
|
+
|
5
|
+
Minesweeper is a popular game where the user has to find the mines using
|
6
|
+
numeric hints that indicate how many mines are directly adjacent
|
7
|
+
(horizontally, vertically, diagonally) to a square.
|
8
|
+
|
9
|
+
In this exercise you have to create some code that counts the number of
|
10
|
+
mines adjacent to a square and transforms boards like this (where `*`
|
11
|
+
indicates a mine):
|
12
|
+
|
13
|
+
+-----+
|
14
|
+
| * * |
|
15
|
+
| * |
|
16
|
+
| * |
|
17
|
+
| |
|
18
|
+
+-----+
|
19
|
+
|
20
|
+
into this:
|
21
|
+
|
22
|
+
+-----+
|
23
|
+
|1*3*1|
|
24
|
+
|13*31|
|
25
|
+
| 2*2 |
|
26
|
+
| 111 |
|
27
|
+
+-----+
|
28
|
+
|
29
|
+
## Setup
|
30
|
+
|
31
|
+
Go through the setup instructions for JavaScript to
|
32
|
+
install the necessary dependencies:
|
33
|
+
|
34
|
+
http://exercism.io/languages/javascript
|
35
|
+
|
36
|
+
## Making the Test Suite Pass
|
37
|
+
|
38
|
+
Execute the tests with:
|
39
|
+
|
40
|
+
jasmine <exercise-name>.spec.js
|
41
|
+
|
42
|
+
Replace `<exercise-name>` with the name of the current exercise. E.g., to
|
43
|
+
test the Hello World exercise:
|
44
|
+
|
45
|
+
jasmine hello-world.spec.js
|
46
|
+
|
47
|
+
In many test suites all but the first test have been skipped.
|
48
|
+
|
49
|
+
Once you get a test passing, you can unskip the next one by
|
50
|
+
changing `xit` to `it`.
|
51
|
+
|
52
|
+
|
53
|
+
## Submitting Incomplete Solutions
|
54
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# Nth Prime
|
2
|
+
|
3
|
+
Given a number n, determine what the nth prime is.
|
4
|
+
|
5
|
+
By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that
|
6
|
+
the 6th prime is 13.
|
7
|
+
|
8
|
+
If your language provides methods in the standard library to deal with prime
|
9
|
+
numbers, pretend they don't exist and implement them yourself.
|
10
|
+
|
11
|
+
## Setup
|
12
|
+
|
13
|
+
Go through the setup instructions for JavaScript to
|
14
|
+
install the necessary dependencies:
|
15
|
+
|
16
|
+
http://exercism.io/languages/javascript
|
17
|
+
|
18
|
+
## Making the Test Suite Pass
|
19
|
+
|
20
|
+
Execute the tests with:
|
21
|
+
|
22
|
+
jasmine <exercise-name>.spec.js
|
23
|
+
|
24
|
+
Replace `<exercise-name>` with the name of the current exercise. E.g., to
|
25
|
+
test the Hello World exercise:
|
26
|
+
|
27
|
+
jasmine hello-world.spec.js
|
28
|
+
|
29
|
+
In many test suites all but the first test have been skipped.
|
30
|
+
|
31
|
+
Once you get a test passing, you can unskip the next one by
|
32
|
+
changing `xit` to `it`.
|
33
|
+
|
34
|
+
## Source
|
35
|
+
|
36
|
+
A variation on Problem 7 at Project Euler [http://projecteuler.net/problem=7](http://projecteuler.net/problem=7)
|
37
|
+
|
38
|
+
## Submitting Incomplete Solutions
|
39
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# Nucleotide Count
|
2
|
+
|
3
|
+
Given a DNA string, compute how many times each nucleotide occurs in the string.
|
4
|
+
|
5
|
+
DNA is represented by an alphabet of the following symbols: 'A', 'C',
|
6
|
+
'G', and 'T'.
|
7
|
+
|
8
|
+
Each symbol represents a nucleotide, which is a fancy name for the
|
9
|
+
particular molecules that happen to make up a large part of DNA.
|
10
|
+
|
11
|
+
Shortest intro to biochemistry EVAR:
|
12
|
+
|
13
|
+
- twigs are to birds nests as
|
14
|
+
- nucleotides are to DNA and RNA as
|
15
|
+
- amino acids are to proteins as
|
16
|
+
- sugar is to starch as
|
17
|
+
- oh crap lipids
|
18
|
+
|
19
|
+
I'm not going to talk about lipids because they're crazy complex.
|
20
|
+
|
21
|
+
So back to nucleotides.
|
22
|
+
|
23
|
+
DNA contains four types of them: adenine (`A`), cytosine (`C`), guanine
|
24
|
+
(`G`), and thymine (`T`).
|
25
|
+
|
26
|
+
RNA contains a slightly different set of nucleotides, but we don't care
|
27
|
+
about that for now.
|
28
|
+
|
29
|
+
## Setup
|
30
|
+
|
31
|
+
Go through the setup instructions for JavaScript to
|
32
|
+
install the necessary dependencies:
|
33
|
+
|
34
|
+
http://exercism.io/languages/javascript
|
35
|
+
|
36
|
+
## Making the Test Suite Pass
|
37
|
+
|
38
|
+
Execute the tests with:
|
39
|
+
|
40
|
+
jasmine <exercise-name>.spec.js
|
41
|
+
|
42
|
+
Replace `<exercise-name>` with the name of the current exercise. E.g., to
|
43
|
+
test the Hello World exercise:
|
44
|
+
|
45
|
+
jasmine hello-world.spec.js
|
46
|
+
|
47
|
+
In many test suites all but the first test have been skipped.
|
48
|
+
|
49
|
+
Once you get a test passing, you can unskip the next one by
|
50
|
+
changing `xit` to `it`.
|
51
|
+
|
52
|
+
## Source
|
53
|
+
|
54
|
+
The Calculating DNA Nucleotides_problem at Rosalind [http://rosalind.info/problems/dna/](http://rosalind.info/problems/dna/)
|
55
|
+
|
56
|
+
## Submitting Incomplete Solutions
|
57
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -0,0 +1,109 @@
|
|
1
|
+
# Ocr Numbers
|
2
|
+
|
3
|
+
Given a 3 x 4 grid of pipes, underscores, and spaces, determine which number is
|
4
|
+
represented, or whether it is garbled.
|
5
|
+
|
6
|
+
# Step One
|
7
|
+
|
8
|
+
To begin with, convert a simple binary font to a string containing 0 or 1.
|
9
|
+
|
10
|
+
The binary font uses pipes and underscores, four rows high and three columns wide.
|
11
|
+
|
12
|
+
```
|
13
|
+
_ #
|
14
|
+
| | # zero.
|
15
|
+
|_| #
|
16
|
+
# the fourth row is always blank
|
17
|
+
```
|
18
|
+
|
19
|
+
Is converted to "0"
|
20
|
+
|
21
|
+
```
|
22
|
+
#
|
23
|
+
| # one.
|
24
|
+
| #
|
25
|
+
# (blank fourth row)
|
26
|
+
```
|
27
|
+
|
28
|
+
Is converted to "1"
|
29
|
+
|
30
|
+
If the input is the correct size, but not recognizable, your program should return '?'
|
31
|
+
|
32
|
+
If the input is the incorrect size, your program should return an error.
|
33
|
+
|
34
|
+
# Step Two
|
35
|
+
|
36
|
+
Update your program to recognize multi-character binary strings, replacing garbled numbers with ?
|
37
|
+
|
38
|
+
# Step Three
|
39
|
+
|
40
|
+
Update your program to recognize all numbers 0 through 9, both individually and as part of a larger string.
|
41
|
+
|
42
|
+
```
|
43
|
+
_
|
44
|
+
_|
|
45
|
+
|_
|
46
|
+
|
47
|
+
```
|
48
|
+
|
49
|
+
Is converted to "2"
|
50
|
+
|
51
|
+
```
|
52
|
+
_ _ _ _ _ _ _ _ #
|
53
|
+
| _| _||_||_ |_ ||_||_|| | # decimal numbers.
|
54
|
+
||_ _| | _||_| ||_| _||_| #
|
55
|
+
# fourth line is always blank
|
56
|
+
```
|
57
|
+
|
58
|
+
Is converted to "1234567890"
|
59
|
+
|
60
|
+
# Step Four
|
61
|
+
|
62
|
+
Update your program to handle multiple numbers, one per line. When converting several lines, join the lines with commas.
|
63
|
+
|
64
|
+
```
|
65
|
+
_ _
|
66
|
+
| _| _|
|
67
|
+
||_ _|
|
68
|
+
|
69
|
+
_ _
|
70
|
+
|_||_ |_
|
71
|
+
| _||_|
|
72
|
+
|
73
|
+
_ _ _
|
74
|
+
||_||_|
|
75
|
+
||_| _|
|
76
|
+
|
77
|
+
```
|
78
|
+
|
79
|
+
Is converted to "123,456,789"
|
80
|
+
|
81
|
+
## Setup
|
82
|
+
|
83
|
+
Go through the setup instructions for JavaScript to
|
84
|
+
install the necessary dependencies:
|
85
|
+
|
86
|
+
http://exercism.io/languages/javascript
|
87
|
+
|
88
|
+
## Making the Test Suite Pass
|
89
|
+
|
90
|
+
Execute the tests with:
|
91
|
+
|
92
|
+
jasmine <exercise-name>.spec.js
|
93
|
+
|
94
|
+
Replace `<exercise-name>` with the name of the current exercise. E.g., to
|
95
|
+
test the Hello World exercise:
|
96
|
+
|
97
|
+
jasmine hello-world.spec.js
|
98
|
+
|
99
|
+
In many test suites all but the first test have been skipped.
|
100
|
+
|
101
|
+
Once you get a test passing, you can unskip the next one by
|
102
|
+
changing `xit` to `it`.
|
103
|
+
|
104
|
+
## Source
|
105
|
+
|
106
|
+
Inspired by the Bank OCR kata [http://codingdojo.org/cgi-bin/wiki.pl?KataBankOCR](http://codingdojo.org/cgi-bin/wiki.pl?KataBankOCR)
|
107
|
+
|
108
|
+
## Submitting Incomplete Solutions
|
109
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -0,0 +1,73 @@
|
|
1
|
+
# Octal
|
2
|
+
|
3
|
+
Convert an octal number, represented as a string (e.g. '1735263'), to its
|
4
|
+
decimal equivalent using first principles (i.e. no, you may not use built-in or
|
5
|
+
external libraries to accomplish the conversion).
|
6
|
+
|
7
|
+
Implement octal to decimal conversion. Given an octal input
|
8
|
+
string, your program should produce a decimal output.
|
9
|
+
|
10
|
+
## Note
|
11
|
+
- Implement the conversion yourself.
|
12
|
+
Do not use something else to perform the conversion for you.
|
13
|
+
- Treat invalid input as octal 0.
|
14
|
+
|
15
|
+
## About Octal (Base-8)
|
16
|
+
Decimal is a base-10 system.
|
17
|
+
|
18
|
+
A number 233 in base 10 notation can be understood
|
19
|
+
as a linear combination of powers of 10:
|
20
|
+
|
21
|
+
- The rightmost digit gets multiplied by 10^0 = 1
|
22
|
+
- The next number gets multiplied by 10^1 = 10
|
23
|
+
- ...
|
24
|
+
- The *n*th number gets multiplied by 10^*(n-1)*.
|
25
|
+
- All these values are summed.
|
26
|
+
|
27
|
+
So:
|
28
|
+
```
|
29
|
+
233 # decimal
|
30
|
+
= 2*10^2 + 3*10^1 + 3*10^0
|
31
|
+
= 2*100 + 3*10 + 3*1
|
32
|
+
```
|
33
|
+
|
34
|
+
Octal is similar, but uses powers of 8 rather than powers of 10.
|
35
|
+
|
36
|
+
So:
|
37
|
+
```
|
38
|
+
233 # octal
|
39
|
+
= 2*8^2 + 3*8^1 + 3*8^0
|
40
|
+
= 2*64 + 3*8 + 3*1
|
41
|
+
= 128 + 24 + 3
|
42
|
+
= 155
|
43
|
+
```
|
44
|
+
|
45
|
+
## Setup
|
46
|
+
|
47
|
+
Go through the setup instructions for JavaScript to
|
48
|
+
install the necessary dependencies:
|
49
|
+
|
50
|
+
http://exercism.io/languages/javascript
|
51
|
+
|
52
|
+
## Making the Test Suite Pass
|
53
|
+
|
54
|
+
Execute the tests with:
|
55
|
+
|
56
|
+
jasmine <exercise-name>.spec.js
|
57
|
+
|
58
|
+
Replace `<exercise-name>` with the name of the current exercise. E.g., to
|
59
|
+
test the Hello World exercise:
|
60
|
+
|
61
|
+
jasmine hello-world.spec.js
|
62
|
+
|
63
|
+
In many test suites all but the first test have been skipped.
|
64
|
+
|
65
|
+
Once you get a test passing, you can unskip the next one by
|
66
|
+
changing `xit` to `it`.
|
67
|
+
|
68
|
+
## Source
|
69
|
+
|
70
|
+
All of Computer Science [http://www.wolframalpha.com/input/?i=base+8](http://www.wolframalpha.com/input/?i=base+8)
|
71
|
+
|
72
|
+
## Submitting Incomplete Solutions
|
73
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -0,0 +1,64 @@
|
|
1
|
+
# Palindrome Products
|
2
|
+
|
3
|
+
Detect palindrome products in a given range.
|
4
|
+
|
5
|
+
A palindromic number is a number that remains the same when its digits are
|
6
|
+
reversed. For example, `121` is a palindromic number but `112` is not.
|
7
|
+
|
8
|
+
Given the definition of a palindromic number, we define a palindrome _product_
|
9
|
+
to be the product `c`, such that `a * b = c`, where `c` is a palindromic number and
|
10
|
+
`a` and `b` are integers (possibly, but _not_ necessarily palindromic numbers).
|
11
|
+
|
12
|
+
For example, the palindromic number 9009 can be written as the palindrome
|
13
|
+
product: `91 * 99 = 9009`.
|
14
|
+
|
15
|
+
It's possible (and indeed common) for a palindrome product to be the product
|
16
|
+
of multiple combinations of numbers. For example, the palindrome product `9` has
|
17
|
+
the factors `(1, 9)`, `(3, 3)`, and `(9, 1)`.
|
18
|
+
|
19
|
+
Write a program that given a range of integers, returns the smallest and largest
|
20
|
+
palindromic product within that range, along with all of it's factors.
|
21
|
+
|
22
|
+
## Example 1
|
23
|
+
|
24
|
+
Given the range `[1, 9]` (both inclusive)...
|
25
|
+
|
26
|
+
The smallest product is `1`. It's factors are `(1, 1)`.
|
27
|
+
The largest product is `9`. It's factors are `(1, 9)`, `(3, 3)`, and `(9, 1)`.
|
28
|
+
|
29
|
+
## Example 2
|
30
|
+
|
31
|
+
Given the range `[10, 99]` (both inclusive)...
|
32
|
+
|
33
|
+
The smallest palindrome product is `121`. It's factors are `(11, 11)`.
|
34
|
+
The largest palindrome product is `9009`. It's factors are `(91, 99)` and `(99, 91)`.
|
35
|
+
|
36
|
+
## Setup
|
37
|
+
|
38
|
+
Go through the setup instructions for JavaScript to
|
39
|
+
install the necessary dependencies:
|
40
|
+
|
41
|
+
http://exercism.io/languages/javascript
|
42
|
+
|
43
|
+
## Making the Test Suite Pass
|
44
|
+
|
45
|
+
Execute the tests with:
|
46
|
+
|
47
|
+
jasmine <exercise-name>.spec.js
|
48
|
+
|
49
|
+
Replace `<exercise-name>` with the name of the current exercise. E.g., to
|
50
|
+
test the Hello World exercise:
|
51
|
+
|
52
|
+
jasmine hello-world.spec.js
|
53
|
+
|
54
|
+
In many test suites all but the first test have been skipped.
|
55
|
+
|
56
|
+
Once you get a test passing, you can unskip the next one by
|
57
|
+
changing `xit` to `it`.
|
58
|
+
|
59
|
+
## Source
|
60
|
+
|
61
|
+
Problem 4 at Project Euler [http://projecteuler.net/problem=4](http://projecteuler.net/problem=4)
|
62
|
+
|
63
|
+
## Submitting Incomplete Solutions
|
64
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# Pangram
|
2
|
+
|
3
|
+
Determine if a sentence is a pangram. A pangram (Greek: παν γράμμα, pan gramma,
|
4
|
+
"every letter") is a sentence using every letter of the alphabet at least once.
|
5
|
+
The best known English pangram is:
|
6
|
+
> The quick brown fox jumps over the lazy dog.
|
7
|
+
|
8
|
+
The alphabet used consists of ASCII letters `a` to `z`, inclusive, and is case
|
9
|
+
insensitive. Input will not contain non-ASCII symbols.
|
10
|
+
|
11
|
+
## Setup
|
12
|
+
|
13
|
+
Go through the setup instructions for JavaScript to
|
14
|
+
install the necessary dependencies:
|
15
|
+
|
16
|
+
http://exercism.io/languages/javascript
|
17
|
+
|
18
|
+
## Making the Test Suite Pass
|
19
|
+
|
20
|
+
Execute the tests with:
|
21
|
+
|
22
|
+
jasmine <exercise-name>.spec.js
|
23
|
+
|
24
|
+
Replace `<exercise-name>` with the name of the current exercise. E.g., to
|
25
|
+
test the Hello World exercise:
|
26
|
+
|
27
|
+
jasmine hello-world.spec.js
|
28
|
+
|
29
|
+
In many test suites all but the first test have been skipped.
|
30
|
+
|
31
|
+
Once you get a test passing, you can unskip the next one by
|
32
|
+
changing `xit` to `it`.
|
33
|
+
|
34
|
+
## Source
|
35
|
+
|
36
|
+
Wikipedia [https://en.wikipedia.org/wiki/Pangram](https://en.wikipedia.org/wiki/Pangram)
|
37
|
+
|
38
|
+
## Submitting Incomplete Solutions
|
39
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# Pascals Triangle
|
2
|
+
|
3
|
+
Compute Pascal's triangle up to a given number of rows.
|
4
|
+
|
5
|
+
In Pascal's Triangle each number is computed by adding the numbers to
|
6
|
+
the right and left of the current position in the previous row.
|
7
|
+
|
8
|
+
```plain
|
9
|
+
1
|
10
|
+
1 1
|
11
|
+
1 2 1
|
12
|
+
1 3 3 1
|
13
|
+
1 4 6 4 1
|
14
|
+
# ... etc
|
15
|
+
```
|
16
|
+
|
17
|
+
## Setup
|
18
|
+
|
19
|
+
Go through the setup instructions for JavaScript to
|
20
|
+
install the necessary dependencies:
|
21
|
+
|
22
|
+
http://exercism.io/languages/javascript
|
23
|
+
|
24
|
+
## Making the Test Suite Pass
|
25
|
+
|
26
|
+
Execute the tests with:
|
27
|
+
|
28
|
+
jasmine <exercise-name>.spec.js
|
29
|
+
|
30
|
+
Replace `<exercise-name>` with the name of the current exercise. E.g., to
|
31
|
+
test the Hello World exercise:
|
32
|
+
|
33
|
+
jasmine hello-world.spec.js
|
34
|
+
|
35
|
+
In many test suites all but the first test have been skipped.
|
36
|
+
|
37
|
+
Once you get a test passing, you can unskip the next one by
|
38
|
+
changing `xit` to `it`.
|
39
|
+
|
40
|
+
## Source
|
41
|
+
|
42
|
+
Pascal's Triangle at Wolfram Math World [http://mathworld.wolfram.com/PascalsTriangle.html](http://mathworld.wolfram.com/PascalsTriangle.html)
|
43
|
+
|
44
|
+
## Submitting Incomplete Solutions
|
45
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|