trackler 2.2.1.45 → 2.2.1.46
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/trackler/version.rb +1 -1
- data/problem-specifications/exercises/complex-numbers/description.md +27 -0
- data/problem-specifications/exercises/crypto-square/canonical-data.json +39 -43
- data/problem-specifications/exercises/crypto-square/description.md +6 -4
- data/problem-specifications/exercises/hamming/canonical-data.json +5 -5
- data/problem-specifications/exercises/kindergarten-garden/description.md +10 -10
- data/problem-specifications/exercises/leap/canonical-data.json +2 -2
- data/problem-specifications/exercises/markdown/canonical-data.json +2 -2
- data/problem-specifications/exercises/nucleotide-count/canonical-data.json +12 -1
- data/problem-specifications/exercises/pangram/canonical-data.json +7 -1
- data/problem-specifications/exercises/queen-attack/canonical-data.json +83 -26
- data/problem-specifications/exercises/space-age/description.md +1 -2
- data/problem-specifications/exercises/zipper/canonical-data.json +671 -0
- data/tracks/bash/config.json +13 -1
- data/tracks/bash/exercises/atbash-cipher/README.md +45 -0
- data/tracks/bash/exercises/atbash-cipher/atbash_cipher_tests.sh +73 -0
- data/tracks/bash/exercises/atbash-cipher/example.sh +14 -0
- data/tracks/bash/exercises/gigasecond/.meta/hints.md +33 -0
- data/tracks/bash/exercises/two-fer/README.md +0 -22
- data/tracks/c/exercises/allergies/src/allergies.h +9 -9
- data/tracks/c/exercises/allergies/src/example.c +2 -2
- data/tracks/c/exercises/allergies/src/example.h +9 -9
- data/tracks/c/exercises/allergies/test/test_allergies.c +34 -34
- data/tracks/c/exercises/clock/test/test_clock.c +0 -52
- data/tracks/c/exercises/meetup/test/test_meetup.c +604 -114
- data/tracks/c/exercises/nucleotide-count/src/example.c +10 -10
- data/tracks/c/exercises/palindrome-products/src/example.c +8 -8
- data/tracks/c/exercises/palindrome-products/src/example.h +5 -5
- data/tracks/c/exercises/palindrome-products/test/test_palindrome_products.c +8 -6
- data/tracks/c/exercises/robot-simulator/src/example.c +19 -19
- data/tracks/c/exercises/robot-simulator/src/robot_simulator.h +24 -24
- data/tracks/c/exercises/robot-simulator/test/test_robot_simulator.c +35 -34
- data/tracks/c/exercises/series/src/example.c +10 -10
- data/tracks/c/exercises/series/src/series.h +5 -5
- data/tracks/c/exercises/series/test/test_series.c +77 -30
- data/tracks/c/exercises/sieve/src/example.c +17 -17
- data/tracks/c/exercises/sieve/src/sieve.h +2 -2
- data/tracks/c/exercises/sieve/test/test_sieve.c +6 -6
- data/tracks/c/exercises/space-age/src/example.c +1 -1
- data/tracks/c/exercises/space-age/src/example.h +3 -3
- data/tracks/c/exercises/space-age/test/test_space_age.c +2 -0
- data/tracks/c/exercises/sum-of-multiples/src/example.c +3 -1
- data/tracks/c/exercises/sum-of-multiples/test/test_sum_of_multiples.c +17 -0
- data/tracks/c/exercises/triangle/src/example.c +4 -4
- data/tracks/c/exercises/triangle/src/example.h +4 -4
- data/tracks/c/exercises/triangle/src/triangle.h +1 -1
- data/tracks/c/exercises/triangle/test/test_triangle.c +18 -16
- data/tracks/c/exercises/word-count/src/example.c +24 -24
- data/tracks/c/exercises/word-count/src/word_count.h +3 -3
- data/tracks/c/exercises/word-count/test/test_word_count.c +139 -139
- data/tracks/cfml/exercises/acronym/README.md +31 -0
- data/tracks/cfml/exercises/atbash-cipher/README.md +50 -0
- data/tracks/cfml/exercises/bob/README.md +34 -0
- data/tracks/cfml/exercises/diamond/README.md +75 -0
- data/tracks/cfml/exercises/difference-of-squares/README.md +35 -0
- data/tracks/cfml/exercises/flatten-array/README.md +34 -0
- data/tracks/cfml/exercises/gigasecond/README.md +27 -0
- data/tracks/cfml/exercises/grains/README.md +50 -0
- data/tracks/cfml/exercises/hamming/README.md +58 -0
- data/tracks/cfml/exercises/hello-world/README.md +37 -0
- data/tracks/cfml/exercises/isogram/README.md +35 -0
- data/tracks/cfml/exercises/largest-series-product/README.md +36 -0
- data/tracks/cfml/exercises/leap/README.md +16 -0
- data/tracks/cfml/exercises/luhn/README.md +87 -0
- data/tracks/cfml/exercises/markdown/README.md +34 -0
- data/tracks/cfml/exercises/nth-prime/README.md +31 -0
- data/tracks/cfml/exercises/pangram/README.md +31 -0
- data/tracks/cfml/exercises/pig-latin/README.md +40 -0
- data/tracks/cfml/exercises/raindrops/README.md +40 -0
- data/tracks/cfml/exercises/rna-transcription/README.md +41 -0
- data/tracks/cfml/exercises/saddle-points/README.md +49 -0
- data/tracks/cfml/exercises/scrabble-score/README.md +60 -0
- data/tracks/cfml/exercises/secret-handshake/README.md +51 -0
- data/tracks/cfml/exercises/space-age/README.md +41 -0
- data/tracks/cfml/exercises/sum-of-multiples/README.md +34 -0
- data/tracks/cfml/exercises/triangle/README.md +42 -0
- data/tracks/cfml/exercises/word-count/README.md +35 -0
- data/tracks/clojure/config.json +10 -0
- data/tracks/clojure/exercises/spiral-matrix/README.md +32 -0
- data/tracks/clojure/exercises/spiral-matrix/project.clj +4 -0
- data/tracks/clojure/exercises/spiral-matrix/src/example.clj +11 -0
- data/tracks/clojure/exercises/spiral-matrix/src/spiral_matrix.clj +3 -0
- data/tracks/clojure/exercises/spiral-matrix/test/spiral_matrix_test.clj +58 -0
- data/tracks/common-lisp/config.json +20 -0
- data/tracks/common-lisp/exercises/hello-world/README.md +68 -0
- data/tracks/common-lisp/exercises/hello-world/example.lisp +9 -0
- data/tracks/common-lisp/exercises/hello-world/hello-world-test.lisp +21 -0
- data/tracks/common-lisp/exercises/hello-world/hello-world.lisp +6 -0
- data/tracks/common-lisp/exercises/perfect-numbers/README.md +72 -0
- data/tracks/common-lisp/exercises/perfect-numbers/example.lisp +17 -0
- data/tracks/common-lisp/exercises/perfect-numbers/perfect-numbers-test.lisp +56 -0
- data/tracks/common-lisp/exercises/perfect-numbers/perfect-numbers.lisp +7 -0
- data/tracks/cpp/.travis.yml +34 -14
- data/tracks/cpp/docs/INSTALLATION.md +17 -28
- data/tracks/cpp/docs/TESTS.md +13 -21
- data/tracks/crystal/config.json +10 -0
- data/tracks/crystal/exercises/triangle/spec/triangle_spec.cr +60 -0
- data/tracks/crystal/exercises/triangle/src/example.cr +31 -0
- data/tracks/crystal/exercises/triangle/src/triangle.cr +1 -0
- data/tracks/crystal/generator/spec/remote_data_file_spec.cr +0 -1
- data/tracks/crystal/generator/src/generators/triangle.cr +38 -0
- data/tracks/crystal/generator/src/remote_data_file.cr +1 -1
- data/tracks/csharp/exercises/difference-of-squares/DifferenceOfSquares.cs +4 -4
- data/tracks/csharp/exercises/difference-of-squares/DifferenceOfSquaresTest.cs +22 -27
- data/tracks/csharp/exercises/difference-of-squares/Example.cs +5 -5
- data/tracks/csharp/exercises/error-handling/ErrorHandlingTest.cs +4 -4
- data/tracks/csharp/exercises/flatten-array/Example.cs +1 -1
- data/tracks/csharp/exercises/flatten-array/FlattenArray.cs +1 -1
- data/tracks/csharp/exercises/flatten-array/FlattenArrayTest.cs +106 -72
- data/tracks/csharp/exercises/largest-series-product/LargestSeriesProductTest.cs +24 -98
- data/tracks/csharp/exercises/minesweeper/Example.cs +3 -3
- data/tracks/csharp/exercises/minesweeper/Minesweeper.cs +1 -1
- data/tracks/csharp/exercises/minesweeper/MinesweeperTest.cs +155 -57
- data/tracks/csharp/generators/Exercises/DifferenceOfSquares.cs +25 -0
- data/tracks/csharp/generators/Exercises/FlattenArray.cs +36 -0
- data/tracks/csharp/generators/Exercises/LargestSeriesProduct.cs +18 -0
- data/tracks/csharp/generators/Exercises/Minesweeper.cs +32 -0
- data/tracks/d/docs/EXERCISE_README_INSERT.md +1 -1
- data/tracks/d/exercises/bob/README.md +1 -1
- data/tracks/d/exercises/circular-buffer/README.md +1 -1
- data/tracks/d/exercises/crypto-square/README.md +1 -1
- data/tracks/d/exercises/difference-of-squares/README.md +1 -1
- data/tracks/d/exercises/etl/README.md +1 -1
- data/tracks/d/exercises/gigasecond/README.md +1 -1
- data/tracks/d/exercises/hamming/README.md +1 -1
- data/tracks/d/exercises/hello-world/README.md +1 -1
- data/tracks/d/exercises/leap/README.md +1 -1
- data/tracks/d/exercises/nucleotide-count/README.md +1 -1
- data/tracks/d/exercises/pangram/README.md +1 -1
- data/tracks/d/exercises/raindrops/README.md +1 -1
- data/tracks/d/exercises/react/README.md +1 -1
- data/tracks/d/exercises/rna-transcription/README.md +1 -1
- data/tracks/d/exercises/robot-name/README.md +1 -1
- data/tracks/d/exercises/roman-numerals/README.md +1 -1
- data/tracks/d/exercises/series/README.md +1 -1
- data/tracks/d/exercises/triangle/README.md +1 -1
- data/tracks/dart/CONTRIBUTING.md +61 -0
- data/tracks/dart/README.md +10 -47
- data/tracks/dart/config.json +13 -1
- data/tracks/dart/exercises/anagram/README.md +10 -0
- data/tracks/dart/exercises/bob/README.md +11 -0
- data/tracks/dart/exercises/difference-of-squares/README.md +11 -0
- data/tracks/dart/exercises/gigasecond/README.md +11 -0
- data/tracks/dart/exercises/gigasecond/test/gigasecond_test.dart +56 -33
- data/tracks/dart/exercises/hamming/README.md +11 -0
- data/tracks/dart/exercises/hamming/lib/example.dart +2 -2
- data/tracks/dart/exercises/hamming/test/hamming_test.dart +41 -24
- data/tracks/dart/exercises/hello-world/README.md +11 -0
- data/tracks/dart/exercises/leap/README.md +12 -1
- data/tracks/dart/exercises/phone-number/README.md +56 -0
- data/tracks/dart/exercises/phone-number/lib/example.dart +45 -0
- data/tracks/dart/exercises/phone-number/lib/phone_number.dart +3 -0
- data/tracks/dart/exercises/phone-number/pubspec.lock +293 -0
- data/tracks/dart/exercises/phone-number/pubspec.yaml +3 -0
- data/tracks/dart/exercises/phone-number/test/phone_number_test.dart +66 -0
- data/tracks/dart/exercises/raindrops/README.md +35 -0
- data/tracks/dart/exercises/rna-transcription/README.md +11 -0
- data/tracks/dart/exercises/word-count/README.md +14 -3
- data/tracks/delphi/docs/RESOURCES.md +10 -11
- data/tracks/elixir/exercises/hello-world/hello_world.exs +1 -1
- data/tracks/elixir/exercises/secret-handshake/README.md +3 -5
- data/tracks/elm/exercises/isogram/Isogram.example.elm +4 -4
- data/tracks/erlang/config.json +10 -0
- data/tracks/erlang/exercises/sieve/README.md +88 -0
- data/tracks/erlang/exercises/sieve/include/exercism.hrl +11 -0
- data/tracks/erlang/exercises/sieve/rebar.config +30 -0
- data/tracks/erlang/exercises/sieve/src/example.erl +16 -0
- data/tracks/erlang/exercises/sieve/src/sieve.app.src +9 -0
- data/tracks/erlang/exercises/sieve/src/sieve.erl +8 -0
- data/tracks/erlang/exercises/sieve/test/sieve_tests.erl +38 -0
- data/tracks/fsharp/.gitignore +2 -1
- data/tracks/fsharp/exercises/crypto-square/CryptoSquareTest.fs +10 -6
- data/tracks/fsharp/exercises/leap/LeapTest.fs +2 -2
- data/tracks/fsharp/exercises/pangram/PangramTest.fs +5 -1
- data/tracks/fsharp/exercises/queen-attack/QueenAttackTest.fs +7 -7
- data/tracks/fsharp/exercises/run-length-encoding/Example.fs +2 -2
- data/tracks/fsharp/exercises/run-length-encoding/RunLengthEncodingTest.fs +42 -30
- data/tracks/fsharp/generators/Generators.fs +21 -8
- data/tracks/gnu-apl/test.apl +4 -4
- data/tracks/go/README.md +1 -2
- data/tracks/go/config/maintainers.json +5 -6
- data/tracks/groovy/config.json +23 -0
- data/tracks/groovy/exercises/binary-search/BinarySearch.groovy +14 -0
- data/tracks/groovy/exercises/binary-search/BinarySearchSpec.groovy +56 -0
- data/tracks/groovy/exercises/binary-search/Example.groovy +43 -0
- data/tracks/groovy/exercises/binary-search/README.md +59 -0
- data/tracks/groovy/exercises/triangle/Example.groovy +23 -0
- data/tracks/groovy/exercises/triangle/README.md +42 -0
- data/tracks/groovy/exercises/triangle/Triangle.groovy +15 -0
- data/tracks/groovy/exercises/triangle/TriangleSpec.groovy +66 -0
- data/tracks/haskell/config.json +9 -0
- data/tracks/haskell/exercises/all-your-base/package.yaml +1 -1
- data/tracks/haskell/exercises/all-your-base/test/Tests.hs +18 -18
- data/tracks/haskell/exercises/bowling/package.yaml +1 -1
- data/tracks/haskell/exercises/bowling/test/Tests.hs +9 -9
- data/tracks/haskell/exercises/change/package.yaml +1 -1
- data/tracks/haskell/exercises/change/test/Tests.hs +5 -0
- data/tracks/haskell/exercises/complex-numbers/README.md +92 -0
- data/tracks/haskell/exercises/complex-numbers/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/complex-numbers/examples/success-standard/src/ComplexNumbers.hs +50 -0
- data/tracks/haskell/exercises/complex-numbers/package.yaml +20 -0
- data/tracks/haskell/exercises/complex-numbers/src/ComplexNumbers.hs +45 -0
- data/tracks/haskell/exercises/complex-numbers/stack.yaml +1 -0
- data/tracks/haskell/exercises/complex-numbers/test/Tests.hs +194 -0
- data/tracks/haskell/exercises/crypto-square/package.yaml +1 -1
- data/tracks/haskell/exercises/crypto-square/test/Tests.hs +20 -12
- data/tracks/haskell/exercises/dominoes/package.yaml +1 -1
- data/tracks/haskell/exercises/forth/package.yaml +1 -1
- data/tracks/haskell/exercises/forth/test/Tests.hs +4 -3
- data/tracks/haskell/exercises/hamming/package.yaml +1 -1
- data/tracks/haskell/exercises/hamming/test/Tests.hs +6 -6
- data/tracks/haskell/exercises/isogram/package.yaml +1 -1
- data/tracks/haskell/exercises/isogram/test/Tests.hs +2 -2
- data/tracks/haskell/exercises/leap/package.yaml +1 -1
- data/tracks/haskell/exercises/leap/test/Tests.hs +1 -1
- data/tracks/haskell/exercises/pascals-triangle/package.yaml +1 -1
- data/tracks/haskell/exercises/pig-latin/examples/success-standard/src/PigLatin.hs +2 -0
- data/tracks/haskell/exercises/pig-latin/package.yaml +1 -1
- data/tracks/haskell/exercises/pig-latin/test/Tests.hs +8 -0
- data/tracks/haskell/exercises/queen-attack/package.yaml +1 -1
- data/tracks/haskell/exercises/rna-transcription/package.yaml +1 -1
- data/tracks/haskell/exercises/rna-transcription/test/Tests.hs +8 -8
- data/tracks/haskell/exercises/robot-simulator/package.yaml +1 -1
- data/tracks/haskell/exercises/secret-handshake/package.yaml +1 -1
- data/tracks/haskell/exercises/secret-handshake/test/Tests.hs +0 -3
- data/tracks/haskell/exercises/sum-of-multiples/package.yaml +1 -1
- data/tracks/haskell/exercises/sum-of-multiples/test/Tests.hs +4 -0
- data/tracks/haskell/exercises/zipper/package.yaml +1 -1
- data/tracks/haskell/exercises/zipper/test/Tests.hs +23 -0
- data/tracks/java/config.json +85 -13
- data/tracks/java/config/maintainers.json +1 -1
- data/tracks/java/exercises/accumulate/README.md +0 -3
- data/tracks/java/exercises/acronym/.meta/.version +1 -0
- data/tracks/java/exercises/acronym/README.md +0 -1
- data/tracks/java/exercises/acronym/src/test/java/AcronymTest.java +0 -3
- data/tracks/java/exercises/all-your-base/.meta/.version +1 -0
- data/tracks/java/exercises/all-your-base/README.md +1 -1
- data/tracks/java/exercises/all-your-base/src/test/java/BaseConverterTest.java +0 -3
- data/tracks/java/exercises/allergies/README.md +0 -1
- data/tracks/java/exercises/atbash-cipher/README.md +2 -1
- data/tracks/java/exercises/beer-song/README.md +1 -1
- data/tracks/java/exercises/binary/README.md +2 -0
- data/tracks/java/exercises/book-store/README.md +5 -5
- data/tracks/java/exercises/bowling/README.md +20 -6
- data/tracks/java/exercises/change/.meta/.version +1 -0
- data/tracks/java/exercises/change/README.md +1 -1
- data/tracks/java/exercises/change/src/test/java/ChangeCalculatorTest.java +0 -3
- data/tracks/java/exercises/circular-buffer/README.md +13 -6
- data/tracks/java/exercises/clock/.meta/.version +1 -0
- data/tracks/java/exercises/clock/src/test/java/ClockAddTest.java +0 -3
- data/tracks/java/exercises/clock/src/test/java/ClockCreationTest.java +0 -3
- data/tracks/java/exercises/clock/src/test/java/ClockEqualTest.java +0 -3
- data/tracks/java/exercises/collatz-conjecture/.meta/.version +1 -0
- data/tracks/java/exercises/collatz-conjecture/README.md +1 -1
- data/tracks/java/exercises/collatz-conjecture/src/test/java/CollatzCalculatorTest.java +0 -3
- data/tracks/java/exercises/complex-numbers/README.md +27 -0
- data/tracks/java/exercises/crypto-square/README.md +10 -8
- data/tracks/java/exercises/diamond/.meta/.version +1 -0
- data/tracks/java/exercises/diamond/README.md +6 -6
- data/tracks/java/exercises/diamond/src/test/java/DiamondPrinterTest.java +0 -3
- data/tracks/java/exercises/difference-of-squares/.meta/.version +1 -0
- data/tracks/java/exercises/difference-of-squares/src/test/java/DifferenceOfSquaresCalculatorTest.java +0 -3
- data/tracks/java/exercises/etl/README.md +2 -0
- data/tracks/java/exercises/flatten-array/.meta/.version +1 -0
- data/tracks/java/exercises/flatten-array/README.md +1 -2
- data/tracks/java/exercises/flatten-array/src/test/java/FlattenerTest.java +0 -3
- data/tracks/java/exercises/food-chain/README.md +1 -1
- data/tracks/java/exercises/forth/.meta/.version +1 -0
- data/tracks/java/exercises/forth/src/test/java/ForthEvaluatorTest.java +0 -3
- data/tracks/java/exercises/grade-school/README.md +0 -1
- data/tracks/java/exercises/hamming/.meta/.version +1 -0
- data/tracks/java/exercises/hamming/src/test/java/HammingTest.java +0 -3
- data/tracks/java/exercises/house/README.md +1 -2
- data/tracks/java/exercises/isogram/README.md +2 -1
- data/tracks/java/exercises/kindergarten-garden/README.md +13 -13
- data/tracks/java/exercises/linked-list/README.md +10 -10
- data/tracks/java/exercises/list-ops/.meta/.version +1 -0
- data/tracks/java/exercises/list-ops/README.md +4 -0
- data/tracks/java/exercises/list-ops/src/test/java/ListOpsTest.java +0 -3
- data/tracks/java/exercises/luhn/README.md +7 -7
- data/tracks/java/exercises/matrix/README.md +6 -4
- data/tracks/java/exercises/meetup/README.md +1 -2
- data/tracks/java/exercises/minesweeper/.meta/.version +1 -0
- data/tracks/java/exercises/minesweeper/src/test/java/MinesweeperBoardTest.java +0 -3
- data/tracks/java/exercises/nucleotide-count/README.md +8 -22
- data/tracks/java/exercises/ocr-numbers/README.md +5 -5
- data/tracks/java/exercises/octal/README.md +6 -2
- data/tracks/java/exercises/palindrome-products/README.md +15 -16
- data/tracks/java/exercises/pangram/.meta/.version +1 -0
- data/tracks/java/exercises/pangram/README.md +1 -1
- data/tracks/java/exercises/pangram/src/test/java/PangramCheckerTest.java +0 -3
- data/tracks/java/exercises/pascals-triangle/.meta/.version +1 -0
- data/tracks/java/exercises/pascals-triangle/README.md +1 -1
- data/tracks/java/exercises/pascals-triangle/src/test/java/PascalsTriangleGeneratorTest.java +0 -3
- data/tracks/java/exercises/perfect-numbers/.meta/.version +1 -0
- data/tracks/java/exercises/perfect-numbers/README.md +2 -2
- data/tracks/java/exercises/perfect-numbers/src/test/java/NaturalNumberTest.java +0 -3
- data/tracks/java/exercises/phone-number/README.md +3 -2
- data/tracks/java/exercises/pythagorean-triplet/README.md +3 -3
- data/tracks/java/exercises/queen-attack/README.md +1 -1
- data/tracks/java/exercises/rectangles/README.md +7 -7
- data/tracks/java/exercises/rna-transcription/.meta/.version +1 -0
- data/tracks/java/exercises/rna-transcription/src/test/java/RnaTranscriptionTest.java +0 -3
- data/tracks/java/exercises/roman-numerals/README.md +1 -1
- data/tracks/java/exercises/rotational-cipher/README.md +2 -1
- data/tracks/java/exercises/run-length-encoding/README.md +4 -4
- data/tracks/java/exercises/saddle-points/.meta/.version +1 -0
- data/tracks/java/exercises/saddle-points/README.md +1 -1
- data/tracks/java/exercises/saddle-points/src/test/java/MatrixTest.java +0 -3
- data/tracks/java/exercises/scrabble-score/.meta/.version +1 -0
- data/tracks/java/exercises/scrabble-score/README.md +3 -1
- data/tracks/java/exercises/scrabble-score/src/test/java/ScrabbleScoreTest.java +0 -3
- data/tracks/java/exercises/secret-handshake/README.md +1 -1
- data/tracks/java/exercises/simple-cipher/README.md +1 -1
- data/tracks/java/exercises/simple-linked-list/src/test/java/SimpleLinkedListTest.java +25 -25
- data/tracks/java/exercises/space-age/README.md +1 -1
- data/tracks/java/exercises/spiral-matrix/.meta/.version +1 -0
- data/tracks/java/exercises/spiral-matrix/README.md +2 -2
- data/tracks/java/exercises/spiral-matrix/src/test/java/SpiralMatrixBuilderTest.java +0 -3
- data/tracks/java/exercises/sum-of-multiples/README.md +0 -3
- data/tracks/java/exercises/tournament/README.md +6 -5
- data/tracks/java/exercises/transpose/README.md +7 -7
- data/tracks/java/exercises/triangle/README.md +9 -6
- data/tracks/java/exercises/trinary/README.md +1 -1
- data/tracks/java/exercises/twelve-days/README.md +1 -1
- data/tracks/java/exercises/two-fer/README.md +1 -2
- data/tracks/java/exercises/word-count/README.md +1 -2
- data/tracks/java/exercises/word-search/.meta/.version +1 -0
- data/tracks/java/exercises/word-search/README.md +1 -1
- data/tracks/java/exercises/word-search/src/test/java/WordSearcherTest.java +0 -3
- data/tracks/java/exercises/wordy/README.md +0 -5
- data/tracks/javascript/config.json +13 -0
- data/tracks/javascript/docs/TESTS.md +1 -1
- data/tracks/javascript/exercises/diffie-hellman/example.js +1 -1
- data/tracks/javascript/exercises/hello-world/example.js +2 -3
- data/tracks/javascript/exercises/meetup/example.js +24 -27
- data/tracks/javascript/exercises/meetup/meetup.spec.js +0 -6
- data/tracks/javascript/exercises/nucleotide-count/nucleotide-count.spec.js +1 -1
- data/tracks/javascript/exercises/protein-translation/README.md +73 -0
- data/tracks/javascript/exercises/protein-translation/example.js +68 -0
- data/tracks/javascript/exercises/protein-translation/protein-translation.spec.js +63 -0
- data/tracks/julia/README.md +1 -1
- data/tracks/kotlin/config.json +11 -0
- data/tracks/kotlin/exercises/acronym/README.md +0 -1
- data/tracks/kotlin/exercises/all-your-base/README.md +1 -1
- data/tracks/kotlin/exercises/allergies/README.md +0 -1
- data/tracks/kotlin/exercises/atbash-cipher/README.md +2 -1
- data/tracks/kotlin/exercises/beer-song/README.md +1 -1
- data/tracks/kotlin/exercises/binary/README.md +2 -0
- data/tracks/kotlin/exercises/change/README.md +1 -1
- data/tracks/kotlin/exercises/collatz-conjecture/README.md +1 -1
- data/tracks/kotlin/exercises/complex-numbers/README.md +27 -0
- data/tracks/kotlin/exercises/diamond/README.md +6 -6
- data/tracks/kotlin/exercises/etl/README.md +2 -0
- data/tracks/kotlin/exercises/flatten-array/README.md +1 -2
- data/tracks/kotlin/exercises/grade-school/README.md +0 -1
- data/tracks/kotlin/exercises/grains/README.md +0 -1
- data/tracks/kotlin/exercises/hello-world/.meta/hints.md +4 -0
- data/tracks/kotlin/exercises/hello-world/.meta/src/reference/kotlin/HelloWorld.kt +2 -2
- data/tracks/kotlin/exercises/hello-world/README.md +6 -0
- data/tracks/kotlin/exercises/hello-world/TUTORIAL.md +32 -434
- data/tracks/kotlin/exercises/hello-world/src/main/kotlin/HelloWorld.kt +1 -1
- data/tracks/kotlin/exercises/hello-world/src/test/kotlin/HelloWorldTest.kt +2 -21
- data/tracks/kotlin/exercises/isogram/README.md +2 -1
- data/tracks/kotlin/exercises/leap/README.md +1 -1
- data/tracks/kotlin/exercises/linked-list/README.md +10 -10
- data/tracks/kotlin/exercises/luhn/README.md +7 -7
- data/tracks/kotlin/exercises/meetup/README.md +1 -2
- data/tracks/kotlin/exercises/nucleotide-count/README.md +8 -22
- data/tracks/kotlin/exercises/pangram/README.md +1 -1
- data/tracks/kotlin/exercises/pascals-triangle/README.md +1 -1
- data/tracks/kotlin/exercises/perfect-numbers/README.md +2 -2
- data/tracks/kotlin/exercises/phone-number/README.md +3 -2
- data/tracks/kotlin/exercises/roman-numerals/README.md +1 -1
- data/tracks/kotlin/exercises/rotational-cipher/README.md +2 -1
- data/tracks/kotlin/exercises/saddle-points/README.md +1 -1
- data/tracks/kotlin/exercises/scrabble-score/README.md +3 -1
- data/tracks/kotlin/exercises/secret-handshake/README.md +1 -1
- data/tracks/kotlin/exercises/settings.gradle +1 -0
- data/tracks/kotlin/exercises/space-age/README.md +1 -2
- data/tracks/kotlin/exercises/spiral-matrix/README.md +2 -2
- data/tracks/kotlin/exercises/sum-of-multiples/README.md +0 -3
- data/tracks/kotlin/exercises/triangle/README.md +9 -6
- data/tracks/kotlin/exercises/two-fer/.meta/src/reference/kotlin/Twofer.kt +3 -0
- data/tracks/kotlin/exercises/two-fer/README.md +50 -0
- data/tracks/kotlin/exercises/two-fer/build.gradle +28 -0
- data/tracks/kotlin/exercises/two-fer/src/main/kotlin/.keep +0 -0
- data/tracks/kotlin/exercises/two-fer/src/test/kotlin/TwoferTest.kt +31 -0
- data/tracks/kotlin/exercises/word-count/README.md +1 -2
- data/tracks/ocaml/exercises/pangram/test.ml +3 -1
- data/tracks/perl5/.travis.yml +3 -1
- data/tracks/php/Makefile +2 -2
- data/tracks/php/README.md +4 -4
- data/tracks/php/config.json +15 -0
- data/tracks/php/exercises/transpose/example.php +30 -0
- data/tracks/php/exercises/transpose/transpose_test.php +116 -0
- data/tracks/php/{phpcs-xphp.xml → phpcs-php.xml} +0 -0
- data/tracks/python/.travis.yml +1 -1
- data/tracks/python/config.json +199 -39
- data/tracks/python/exercises/acronym/acronym_test.py +1 -1
- data/tracks/python/exercises/allergies/allergies_test.py +1 -1
- data/tracks/python/exercises/alphametics/alphametics_test.py +1 -1
- data/tracks/python/exercises/anagram/anagram_test.py +1 -1
- data/tracks/python/exercises/atbash-cipher/atbash_cipher_test.py +1 -1
- data/tracks/python/exercises/bob/bob.py +1 -1
- data/tracks/python/exercises/bob/bob_test.py +1 -1
- data/tracks/python/exercises/book-store/book_store_test.py +1 -1
- data/tracks/python/exercises/bracket-push/bracket_push.py +1 -1
- data/tracks/python/exercises/bracket-push/bracket_push_test.py +1 -1
- data/tracks/python/exercises/collatz-conjecture/collatz_conjecture_test.py +1 -1
- data/tracks/python/exercises/diamond/diamond_test.py +1 -1
- data/tracks/python/exercises/difference-of-squares/difference_of_squares_test.py +1 -1
- data/tracks/python/exercises/diffie-hellman/README.md +58 -0
- data/tracks/python/exercises/diffie-hellman/diffie_hellman.py +10 -0
- data/tracks/python/exercises/diffie-hellman/diffie_hellman_test.py +87 -0
- data/tracks/python/exercises/diffie-hellman/example.py +13 -0
- data/tracks/python/exercises/etl/etl_test.py +1 -1
- data/tracks/python/exercises/food-chain/README.md +81 -0
- data/tracks/python/exercises/food-chain/example.py +45 -0
- data/tracks/python/exercises/food-chain/food_chain.py +2 -0
- data/tracks/python/exercises/food-chain/food_chain_test.py +109 -0
- data/tracks/python/exercises/forth/README.md +43 -0
- data/tracks/python/exercises/forth/example.py +58 -0
- data/tracks/python/exercises/forth/forth.py +2 -0
- data/tracks/python/exercises/forth/forth_test.py +254 -0
- data/tracks/python/exercises/gigasecond/gigasecond_test.py +1 -1
- data/tracks/python/exercises/grep/grep_test.py +1 -1
- data/tracks/python/exercises/hello-world/hello_world_test.py +1 -1
- data/tracks/python/exercises/isogram/isogram_test.py +10 -10
- data/tracks/python/exercises/largest-series-product/largest_series_product_test.py +1 -1
- data/tracks/python/exercises/leap/leap_test.py +5 -5
- data/tracks/python/exercises/luhn/luhn_test.py +16 -16
- data/tracks/python/exercises/markdown/README.md +30 -0
- data/tracks/python/exercises/markdown/example.py +80 -0
- data/tracks/python/exercises/markdown/markdown.py +71 -0
- data/tracks/python/exercises/markdown/markdown_test.py +51 -0
- data/tracks/python/exercises/meetup/meetup_test.py +1 -1
- data/tracks/python/exercises/nth-prime/nth_prime_test.py +1 -1
- data/tracks/python/exercises/pascals-triangle/pascals_triangle_test.py +2 -2
- data/tracks/python/exercises/perfect-numbers/perfect_numbers_test.py +11 -11
- data/tracks/python/exercises/phone-number/phone_number_test.py +1 -1
- data/tracks/python/exercises/prime-factors/prime_factors_test.py +1 -1
- data/tracks/python/exercises/pythagorean-triplet/pythagorean_triplet_test.py +3 -3
- data/tracks/python/exercises/queen-attack/queen_attack_test.py +8 -8
- data/tracks/python/exercises/rail-fence-cipher/rail_fence_cipher_test.py +1 -1
- data/tracks/python/exercises/rectangles/rectangles_test.py +1 -1
- data/tracks/python/exercises/robot-simulator/robot_simulator.py +9 -1
- data/tracks/python/exercises/roman-numerals/roman_numerals_test.py +1 -1
- data/tracks/python/exercises/run-length-encoding/run_length_encoding_test.py +1 -1
- data/tracks/python/exercises/say/say_test.py +1 -1
- data/tracks/python/exercises/scrabble-score/scrabble_score_test.py +1 -1
- data/tracks/python/exercises/series/series.py +1 -1
- data/tracks/python/exercises/sieve/sieve_test.py +1 -1
- data/tracks/python/exercises/sublist/sublist_test.py +1 -1
- data/tracks/python/exercises/tournament/tournament_test.py +1 -1
- data/tracks/python/exercises/transpose/transpose_test.py +1 -1
- data/tracks/python/exercises/two-bucket/example.py +49 -54
- data/tracks/python/exercises/two-bucket/two_bucket_test.py +1 -1
- data/tracks/python/exercises/variable-length-quantity/variable_length_quantity_test.py +1 -1
- data/tracks/rust/config.json +24 -0
- data/tracks/rust/exercises/collatz-conjecture/Cargo.lock +4 -0
- data/tracks/rust/exercises/collatz-conjecture/Cargo.toml +3 -0
- data/tracks/rust/exercises/collatz-conjecture/README.md +65 -0
- data/tracks/rust/exercises/collatz-conjecture/example.rs +19 -0
- data/tracks/rust/exercises/collatz-conjecture/src/lib.rs +4 -0
- data/tracks/rust/exercises/collatz-conjecture/tests/collatz-conjecture.rs +32 -0
- data/tracks/rust/exercises/decimal/.gitignore +7 -0
- data/tracks/rust/exercises/decimal/.meta/description.md +19 -0
- data/tracks/rust/exercises/decimal/.meta/metadata.yml +3 -0
- data/tracks/rust/exercises/decimal/Cargo-example.toml +9 -0
- data/tracks/rust/exercises/decimal/Cargo.toml +6 -0
- data/tracks/rust/exercises/decimal/README.md +59 -0
- data/tracks/rust/exercises/decimal/example.rs +187 -0
- data/tracks/rust/exercises/decimal/src/lib.rs +10 -0
- data/tracks/rust/exercises/decimal/tests/decimal.rs +332 -0
- data/tracks/sml/exercises/accumulate/README.md +9 -1
- data/tracks/swift/exercises/luhn/Sources/LuhnExample.swift +17 -26
- data/tracks/swift/exercises/luhn/Tests/LinuxMain.swift +1 -1
- data/tracks/swift/exercises/luhn/Tests/LuhnTests/LuhnTests.swift +59 -35
- data/tracks/typescript/config.json +34 -0
- data/tracks/typescript/exercises/binary-search/README.md +67 -0
- data/tracks/typescript/exercises/binary-search/binary-search.example.ts +42 -0
- data/tracks/typescript/exercises/binary-search/binary-search.test.ts +27 -0
- data/tracks/typescript/exercises/binary-search/binary-search.ts +3 -0
- data/tracks/typescript/exercises/binary-search/package.json +36 -0
- data/tracks/typescript/exercises/binary-search/tsconfig.json +22 -0
- data/tracks/typescript/exercises/binary-search/tslint.json +127 -0
- data/tracks/typescript/exercises/binary-search/yarn.lock +2305 -0
- data/tracks/typescript/exercises/pascals-triangle/README.md +47 -0
- data/tracks/typescript/exercises/pascals-triangle/package.json +36 -0
- data/tracks/typescript/exercises/pascals-triangle/pascals-triangle.example.ts +32 -0
- data/tracks/typescript/exercises/pascals-triangle/pascals-triangle.test.ts +28 -0
- data/tracks/typescript/exercises/pascals-triangle/pascals-triangle.ts +2 -0
- data/tracks/typescript/exercises/pascals-triangle/tsconfig.json +22 -0
- data/tracks/typescript/exercises/pascals-triangle/tslint.json +127 -0
- data/tracks/typescript/exercises/pascals-triangle/yarn.lock +2305 -0
- data/tracks/typescript/exercises/rotational-cipher/README.md +63 -0
- data/tracks/typescript/exercises/rotational-cipher/package.json +36 -0
- data/tracks/typescript/exercises/rotational-cipher/rotational-cipher.example.ts +19 -0
- data/tracks/typescript/exercises/rotational-cipher/rotational-cipher.test.ts +56 -0
- data/tracks/typescript/exercises/rotational-cipher/rotational-cipher.ts +1 -0
- data/tracks/typescript/exercises/rotational-cipher/tsconfig.json +22 -0
- data/tracks/typescript/exercises/rotational-cipher/tslint.json +127 -0
- data/tracks/typescript/exercises/rotational-cipher/yarn.lock +2305 -0
- metadata +171 -5
- data/tracks/javascript/exercises/twelve-days/package.json +0 -69
- data/tracks/kotlin/exercises/hello-world/GETTING_STARTED.md +0 -50
@@ -0,0 +1,25 @@
|
|
1
|
+
using Generators.Input;
|
2
|
+
using System;
|
3
|
+
|
4
|
+
namespace Generators.Exercises
|
5
|
+
{
|
6
|
+
public class DifferenceOfSquares : Exercise
|
7
|
+
{
|
8
|
+
protected override void UpdateCanonicalData(CanonicalData canonicalData)
|
9
|
+
{
|
10
|
+
foreach (var canonicalDataCase in canonicalData.Cases)
|
11
|
+
switch(canonicalDataCase.Property)
|
12
|
+
{
|
13
|
+
case "squareOfSum":
|
14
|
+
canonicalDataCase.Property = "CalculateSquareOfSum";
|
15
|
+
break;
|
16
|
+
case "sumOfSquares":
|
17
|
+
canonicalDataCase.Property = "CalculateSumOfSquares";
|
18
|
+
break;
|
19
|
+
case "differenceOfSquares":
|
20
|
+
canonicalDataCase.Property = "CalculateDifferenceOfSquares";
|
21
|
+
break;
|
22
|
+
}
|
23
|
+
}
|
24
|
+
}
|
25
|
+
}
|
@@ -0,0 +1,36 @@
|
|
1
|
+
using Generators.Input;
|
2
|
+
using Generators.Output;
|
3
|
+
using System.Collections;
|
4
|
+
|
5
|
+
namespace Generators.Exercises
|
6
|
+
{
|
7
|
+
public class FlattenArray : Exercise
|
8
|
+
{
|
9
|
+
protected override void UpdateCanonicalData(CanonicalData canonicalData)
|
10
|
+
{
|
11
|
+
foreach (var canonicalDataCase in canonicalData.Cases)
|
12
|
+
{
|
13
|
+
canonicalDataCase.UseVariablesForInput = true;
|
14
|
+
canonicalDataCase.UseVariableForExpected = true;
|
15
|
+
|
16
|
+
string stringInput = canonicalDataCase.Properties["input"].ToString();
|
17
|
+
|
18
|
+
// We skip reformatting of pure int arrays.
|
19
|
+
if(stringInput.Contains("System.Int32"))
|
20
|
+
continue;
|
21
|
+
|
22
|
+
string properInput = ToProperObjArray(stringInput);
|
23
|
+
|
24
|
+
canonicalDataCase.Properties["input"] = new UnescapedValue(properInput);
|
25
|
+
}
|
26
|
+
}
|
27
|
+
|
28
|
+
private string ToProperObjArray(string input)
|
29
|
+
{
|
30
|
+
string res = input.Replace("System.Int32", "");
|
31
|
+
res = res.Replace("]", "}");
|
32
|
+
res = res.Replace("[", "new object[] {");
|
33
|
+
return res;
|
34
|
+
}
|
35
|
+
}
|
36
|
+
}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
using Generators.Input;
|
2
|
+
|
3
|
+
namespace Generators.Exercises
|
4
|
+
{
|
5
|
+
public class LargestSeriesProduct : Exercise
|
6
|
+
{
|
7
|
+
protected override void UpdateCanonicalData(CanonicalData canonicalData)
|
8
|
+
{
|
9
|
+
foreach (var canonicalDataCase in canonicalData.Cases)
|
10
|
+
{
|
11
|
+
canonicalDataCase.Property = "GetLargestProduct";
|
12
|
+
|
13
|
+
var caseInputLessThanZero = (long)canonicalDataCase.Expected == -1;
|
14
|
+
canonicalDataCase.ExceptionThrown = caseInputLessThanZero ? typeof(System.ArgumentException) : null;
|
15
|
+
}
|
16
|
+
}
|
17
|
+
}
|
18
|
+
}
|
@@ -0,0 +1,32 @@
|
|
1
|
+
using Generators.Input;
|
2
|
+
using Generators.Output;
|
3
|
+
|
4
|
+
namespace Generators.Exercises
|
5
|
+
{
|
6
|
+
public class Minesweeper : Exercise
|
7
|
+
{
|
8
|
+
protected override void UpdateCanonicalData(CanonicalData canonicalData)
|
9
|
+
{
|
10
|
+
foreach (var canonicalDataCase in canonicalData.Cases)
|
11
|
+
{
|
12
|
+
canonicalDataCase.UseVariablesForInput = true;
|
13
|
+
canonicalDataCase.UseVariableForExpected = true;
|
14
|
+
|
15
|
+
canonicalDataCase.Properties["input"] = ToMultiLineString(canonicalDataCase.Properties["input"]);
|
16
|
+
canonicalDataCase.Properties["expected"] = ToMultiLineString(canonicalDataCase.Properties["expected"]);
|
17
|
+
}
|
18
|
+
}
|
19
|
+
|
20
|
+
private UnescapedValue ToMultiLineString(string[] input)
|
21
|
+
{
|
22
|
+
const string template =
|
23
|
+
@"new string[]
|
24
|
+
{
|
25
|
+
{% if input.size > 0 %}{% for item in {{input}} %}{% if forloop.length == 1 %}""{{item}}""{% break %}{% endif %}""{{item}}""{% if forloop.last == false %},{% else %}{{string.Empty}}{% endif %}
|
26
|
+
{% endfor %}{% endif %}
|
27
|
+
}";
|
28
|
+
|
29
|
+
return new UnescapedValue(TemplateRenderer.RenderInline(template, new { input }));
|
30
|
+
}
|
31
|
+
}
|
32
|
+
}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
## Getting Started
|
2
2
|
|
3
|
-
Make sure you have read [D page](http://exercism.io/languages/
|
3
|
+
Make sure you have read [D page](http://exercism.io/languages/d) on
|
4
4
|
exercism.io. This covers the basic information on setting up the development
|
5
5
|
environment expected by the exercises.
|
6
6
|
|
@@ -13,7 +13,7 @@ He answers 'Whatever.' to anything else.
|
|
13
13
|
|
14
14
|
## Getting Started
|
15
15
|
|
16
|
-
Make sure you have read [D page](http://exercism.io/languages/
|
16
|
+
Make sure you have read [D page](http://exercism.io/languages/d) on
|
17
17
|
exercism.io. This covers the basic information on setting up the development
|
18
18
|
environment expected by the exercises.
|
19
19
|
|
@@ -45,7 +45,7 @@ buffer with:
|
|
45
45
|
|
46
46
|
## Getting Started
|
47
47
|
|
48
|
-
Make sure you have read [D page](http://exercism.io/languages/
|
48
|
+
Make sure you have read [D page](http://exercism.io/languages/d) on
|
49
49
|
exercism.io. This covers the basic information on setting up the development
|
50
50
|
environment expected by the exercises.
|
51
51
|
|
@@ -69,7 +69,7 @@ sseoau
|
|
69
69
|
|
70
70
|
## Getting Started
|
71
71
|
|
72
|
-
Make sure you have read [D page](http://exercism.io/languages/
|
72
|
+
Make sure you have read [D page](http://exercism.io/languages/d) on
|
73
73
|
exercism.io. This covers the basic information on setting up the development
|
74
74
|
environment expected by the exercises.
|
75
75
|
|
@@ -14,7 +14,7 @@ natural numbers is 3025 - 385 = 2640.
|
|
14
14
|
|
15
15
|
## Getting Started
|
16
16
|
|
17
|
-
Make sure you have read [D page](http://exercism.io/languages/
|
17
|
+
Make sure you have read [D page](http://exercism.io/languages/d) on
|
18
18
|
exercism.io. This covers the basic information on setting up the development
|
19
19
|
environment expected by the exercises.
|
20
20
|
|
@@ -46,7 +46,7 @@ game while being scored at 4 in the Hawaiian-language version.
|
|
46
46
|
|
47
47
|
## Getting Started
|
48
48
|
|
49
|
-
Make sure you have read [D page](http://exercism.io/languages/
|
49
|
+
Make sure you have read [D page](http://exercism.io/languages/d) on
|
50
50
|
exercism.io. This covers the basic information on setting up the development
|
51
51
|
environment expected by the exercises.
|
52
52
|
|
@@ -6,7 +6,7 @@ A gigasecond is 10^9 (1,000,000,000) seconds.
|
|
6
6
|
|
7
7
|
## Getting Started
|
8
8
|
|
9
|
-
Make sure you have read [D page](http://exercism.io/languages/
|
9
|
+
Make sure you have read [D page](http://exercism.io/languages/d) on
|
10
10
|
exercism.io. This covers the basic information on setting up the development
|
11
11
|
environment expected by the exercises.
|
12
12
|
|
@@ -37,7 +37,7 @@ of equal length differently.
|
|
37
37
|
|
38
38
|
## Getting Started
|
39
39
|
|
40
|
-
Make sure you have read [D page](http://exercism.io/languages/
|
40
|
+
Make sure you have read [D page](http://exercism.io/languages/d) on
|
41
41
|
exercism.io. This covers the basic information on setting up the development
|
42
42
|
environment expected by the exercises.
|
43
43
|
|
@@ -16,7 +16,7 @@ If everything goes well, you will be ready to fetch your first real exercise.
|
|
16
16
|
|
17
17
|
## Getting Started
|
18
18
|
|
19
|
-
Make sure you have read [D page](http://exercism.io/languages/
|
19
|
+
Make sure you have read [D page](http://exercism.io/languages/d) on
|
20
20
|
exercism.io. This covers the basic information on setting up the development
|
21
21
|
environment expected by the exercises.
|
22
22
|
|
@@ -28,7 +28,7 @@ phenomenon, go watch [this youtube video][video].
|
|
28
28
|
|
29
29
|
## Getting Started
|
30
30
|
|
31
|
-
Make sure you have read [D page](http://exercism.io/languages/
|
31
|
+
Make sure you have read [D page](http://exercism.io/languages/d) on
|
32
32
|
exercism.io. This covers the basic information on setting up the development
|
33
33
|
environment expected by the exercises.
|
34
34
|
|
@@ -28,7 +28,7 @@ about that for now.
|
|
28
28
|
|
29
29
|
## Getting Started
|
30
30
|
|
31
|
-
Make sure you have read [D page](http://exercism.io/languages/
|
31
|
+
Make sure you have read [D page](http://exercism.io/languages/d) on
|
32
32
|
exercism.io. This covers the basic information on setting up the development
|
33
33
|
environment expected by the exercises.
|
34
34
|
|
@@ -10,7 +10,7 @@ insensitive. Input will not contain non-ASCII symbols.
|
|
10
10
|
|
11
11
|
## Getting Started
|
12
12
|
|
13
|
-
Make sure you have read [D page](http://exercism.io/languages/
|
13
|
+
Make sure you have read [D page](http://exercism.io/languages/d) on
|
14
14
|
exercism.io. This covers the basic information on setting up the development
|
15
15
|
environment expected by the exercises.
|
16
16
|
|
@@ -19,7 +19,7 @@ Convert a number to a string, the contents of which depend on the number's facto
|
|
19
19
|
|
20
20
|
## Getting Started
|
21
21
|
|
22
|
-
Make sure you have read [D page](http://exercism.io/languages/
|
22
|
+
Make sure you have read [D page](http://exercism.io/languages/d) on
|
23
23
|
exercism.io. This covers the basic information on setting up the development
|
24
24
|
environment expected by the exercises.
|
25
25
|
|
@@ -17,7 +17,7 @@ state has changed from the previous stable state.
|
|
17
17
|
|
18
18
|
## Getting Started
|
19
19
|
|
20
|
-
Make sure you have read [D page](http://exercism.io/languages/
|
20
|
+
Make sure you have read [D page](http://exercism.io/languages/d) on
|
21
21
|
exercism.io. This covers the basic information on setting up the development
|
22
22
|
environment expected by the exercises.
|
23
23
|
|
@@ -20,7 +20,7 @@ each nucleotide with its complement:
|
|
20
20
|
|
21
21
|
## Getting Started
|
22
22
|
|
23
|
-
Make sure you have read [D page](http://exercism.io/languages/
|
23
|
+
Make sure you have read [D page](http://exercism.io/languages/d) on
|
24
24
|
exercism.io. This covers the basic information on setting up the development
|
25
25
|
environment expected by the exercises.
|
26
26
|
|
@@ -17,7 +17,7 @@ every existing robot has a unique name.
|
|
17
17
|
|
18
18
|
## Getting Started
|
19
19
|
|
20
|
-
Make sure you have read [D page](http://exercism.io/languages/
|
20
|
+
Make sure you have read [D page](http://exercism.io/languages/d) on
|
21
21
|
exercism.io. This covers the basic information on setting up the development
|
22
22
|
environment expected by the exercises.
|
23
23
|
|
@@ -44,7 +44,7 @@ See also: http://www.novaroma.org/via_romana/numbers.html
|
|
44
44
|
|
45
45
|
## Getting Started
|
46
46
|
|
47
|
-
Make sure you have read [D page](http://exercism.io/languages/
|
47
|
+
Make sure you have read [D page](http://exercism.io/languages/d) on
|
48
48
|
exercism.io. This covers the basic information on setting up the development
|
49
49
|
environment expected by the exercises.
|
50
50
|
|
@@ -22,7 +22,7 @@ in the input; the digits need not be *numerically consecutive*.
|
|
22
22
|
|
23
23
|
## Getting Started
|
24
24
|
|
25
|
-
Make sure you have read [D page](http://exercism.io/languages/
|
25
|
+
Make sure you have read [D page](http://exercism.io/languages/d) on
|
26
26
|
exercism.io. This covers the basic information on setting up the development
|
27
27
|
environment expected by the exercises.
|
28
28
|
|
@@ -21,7 +21,7 @@ third is known as a _degenerate_ triangle - it has zero area and looks like
|
|
21
21
|
a single line. Feel free to add your own code/tests to check for degenerate triangles.
|
22
22
|
## Getting Started
|
23
23
|
|
24
|
-
Make sure you have read [D page](http://exercism.io/languages/
|
24
|
+
Make sure you have read [D page](http://exercism.io/languages/d) on
|
25
25
|
exercism.io. This covers the basic information on setting up the development
|
26
26
|
environment expected by the exercises.
|
27
27
|
|
@@ -0,0 +1,61 @@
|
|
1
|
+
# Contributing
|
2
|
+
|
3
|
+
Thank you so much for contributing! :tada:
|
4
|
+
|
5
|
+
Please read about how to [get involved in a track](https://github.com/exercism/docs/tree/master/contributing-to-language-tracks). Be sure to read the Exercism [Code of Conduct](https://github.com/exercism/exercism.io/blob/master/CODE_OF_CONDUCT.md).
|
6
|
+
|
7
|
+
We welcome pull requests of all kinds. No contribution is too small.
|
8
|
+
|
9
|
+
We encourage contributions that provide fixes and improvements to existing exercises. Please note that this track's exercises must conform to the standards determined in the [exercism/problem-specifications](https://github.com/exercism/problem-specifications) repo. Changes to the tests or documentation of a common exercise will often warrant a PR in that repo before it can be incorporated into this track's exercises. If you're unsure, then go ahead and open a GitHub issue, and we'll discuss the change.
|
10
|
+
|
11
|
+
## Submitting a Pull Request ###
|
12
|
+
|
13
|
+
Please keep the following in mind:
|
14
|
+
|
15
|
+
- Pull requests should be focused on a single exercise, issue, or change.
|
16
|
+
|
17
|
+
- We welcome changes to code style, and wording. Please open a separate PR for these changes if possible.
|
18
|
+
|
19
|
+
- Please open an issue before creating a PR that makes significant (breaking) changes to an existing exercise or makes changes across many exercises. It is best to discuss these changes before doing the work. Discussions related to exercises that are not track specific can be found in [exercism/discussions](https://github.com/exercism/discussions/issues).
|
20
|
+
|
21
|
+
- Follow the coding standards for Dart.
|
22
|
+
* For your convenience, [a link to the Dart style guide](https://www.dartlang.org/guides/language/effective-dart)
|
23
|
+
* Some points of interest:
|
24
|
+
* [Filename naming convention](https://www.dartlang.org/guides/language/effective-dart/style#do-name-libraries-and-source-files-using-lowercase_with_underscores)
|
25
|
+
* [Guide to the built-in formatter tool](https://github.com/dart-lang/dart_style#getting-dartfmt)
|
26
|
+
|
27
|
+
- When contributing code, watch out for:
|
28
|
+
* Trailing spaces, extra blank lines, and spaces in blank lines.
|
29
|
+
* Misspelled words or unclear sentences
|
30
|
+
* Offensive words or phrases
|
31
|
+
* Sensitive information (email address, real names, etc)
|
32
|
+
|
33
|
+
- Please run the following commands before submitting your PR:
|
34
|
+
* `pub run test` - All the tests for Dart exercises can be run from the top level of the repo with this command
|
35
|
+
* `bin/configlet lint .` - Checks the config.json for formatting issues
|
36
|
+
* `bin/configlet fmt .` - Formats the config.json
|
37
|
+
* `bin/check_formatting` - Checks All the Dart files for formatting issues
|
38
|
+
* `pub run dart_style:format -l 120 -w .` - Formats all the Dart files
|
39
|
+
|
40
|
+
- Once a Pull Request is approved, the contributing branch will be Rebased onto the latest version of our master branch.
|
41
|
+
|
42
|
+
## Contributing a New Exercise ###
|
43
|
+
|
44
|
+
- All Exercism exercises must be defined in [problem-specifications](https://github.com/exercism/problem-specifications/tree/master/exercises) before they are implemented for a specific track. Please submit a PR there if your exercise is new to Exercism.
|
45
|
+
|
46
|
+
- Please make sure the new exercise conforms to specifications in the [exercism/problem-specifications](https://github.com/exercism/problem-specifications) repo.
|
47
|
+
|
48
|
+
- Each exercise must stand on its own. Do not reference files outside the exercise directory. They will not be included when the user fetches the exercise.
|
49
|
+
|
50
|
+
- Exercises should use only the Dart core libraries.
|
51
|
+
|
52
|
+
- Please do not add a README or README.md file to the exercise directory. The READMEs are generated using shared metadata, which lives in the
|
53
|
+
[exercism/problem-specifications](https://github.com/exercism/problem-specifications) repository.
|
54
|
+
- Read the [Generating a README](https://github.com/exercism/docs/blob/master/language-tracks/exercises/anatomy/readmes.md) sections Setup and Generation to see the necessary steps.
|
55
|
+
|
56
|
+
- Each exercise should have a test suite, an example solution, a template file for the real implementation, and a README.md
|
57
|
+
- The CI build expects Dart files to be named in the convention of snake_case_filenames
|
58
|
+
|
59
|
+
- Please do not commit any configuration files or directories inside the exercise other than pubspec.lock and pubspec.yaml
|
60
|
+
|
61
|
+
- Be sure to add it to the appropriate place in the `config.json` file. Also, please run `bin/fetch-configlet && bin/configlet lint .` to ensure the exercise is configured correctly.
|
data/tracks/dart/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Exercism Dart Track
|
2
2
|
|
3
|
-

|
3
|
+
 [](https://gitter.im/exercism/dart?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
|
4
4
|
|
5
5
|
Exercism exercises in Dart.
|
6
6
|
|
@@ -8,16 +8,6 @@ Exercism exercises in Dart.
|
|
8
8
|
|
9
9
|
The simplest way to install Dart can be [found here](docs/INSTALLATION.md).
|
10
10
|
|
11
|
-
## Contributing
|
12
|
-
|
13
|
-
Thank you so much for contributing! :tada:
|
14
|
-
|
15
|
-
Please read about how to [get involved in a track](https://github.com/exercism/docs/tree/master/contributing-to-language-tracks). Be sure to read the Exercism [Code of Conduct](https://github.com/exercism/exercism.io/blob/master/CODE_OF_CONDUCT.md).
|
16
|
-
|
17
|
-
We welcome pull requests of all kinds. No contribution is too small.
|
18
|
-
|
19
|
-
We encourage contributions that provide fixes and improvements to existing exercises. Please note that this track's exercises must conform to the standards determined in the [exercism/problem-specifications](https://github.com/exercism/problem-specifications) repo. Changes to the tests or documentation of a common exercise will often warrant a PR in that repo before it can be incorporated into this track's exercises. If you're unsure, then go ahead and open a GitHub issue, and we'll discuss the change.
|
20
|
-
|
21
11
|
## Exercise Tests ##
|
22
12
|
|
23
13
|
At the most basic level, Exercism is all about the tests. They drive the user's implementation forward and tell them when the exercise is complete.
|
@@ -32,45 +22,18 @@ We simulate Test-Driven Development (TDD) by implementing the tests in order of
|
|
32
22
|
Test files should use the following format:
|
33
23
|
|
34
24
|
```
|
35
|
-
|
25
|
+
test("says hello world with no name", () {
|
26
|
+
final String result = helloWorld.hello();
|
27
|
+
expect(result, equals("Hello, World!"));
|
28
|
+
}, skip: false);
|
36
29
|
```
|
37
30
|
|
38
|
-
##
|
39
|
-
|
40
|
-
Please keep the following in mind:
|
41
|
-
|
42
|
-
- Pull requests should be focused on a single exercise, issue, or change.
|
43
|
-
|
44
|
-
- We welcome changes to code style, and wording. Please open a separate PR for these changes if possible.
|
45
|
-
|
46
|
-
- Please open an issue before creating a PR that makes significant (breaking) changes to an existing exercise or makes changes across many exercises. It is best to discuss these changes before doing the work. Discussions related to exercises that are not track specific can be found in [exercism/discussions](https://github.com/exercism/discussions/issues).
|
47
|
-
|
48
|
-
- Follow the coding standards for Dart.
|
49
|
-
* For your convenience, [a link to the Dart style guide](https://www.dartlang.org/guides/language/effective-dart)
|
50
|
-
* Some points of interest:
|
51
|
-
* [Filename naming convention](https://www.dartlang.org/guides/language/effective-dart/style#do-name-libraries-and-source-files-using-lowercase_with_underscores)
|
52
|
-
* [Guide to the built-in formatter tool](https://github.com/dart-lang/dart_style#getting-dartfmt)
|
53
|
-
|
54
|
-
- Watch out for trailing spaces, extra blank lines, and spaces in blank lines.
|
55
|
-
|
56
|
-
- All the tests for Dart exercises can be run from the top level of the repo with ... Please run this command before submitting your PR.
|
57
|
-
|
58
|
-
## Contributing a New Exercise ##
|
59
|
-
|
60
|
-
- All Exercism exercises must be defined in [problem-specifications](https://github.com/exercism/problem-specifications/tree/master/exercises) before they are implemented for a specific track. Please submit a PR there if your exercise is new to Exercism.
|
61
|
-
|
62
|
-
- Please make sure the new exercise conforms to specifications in the [exercism/problem-specifications](https://github.com/exercism/problem-specifications) repo.
|
63
|
-
|
64
|
-
- Each exercise must stand on its own. Do not reference files outside the exercise directory. They will not be included when the user fetches the exercise.
|
65
|
-
|
66
|
-
- Exercises should use only the Dart core libraries.
|
67
|
-
|
68
|
-
- Please do not add a README or README.md file to the exercise directory. The READMEs are constructed using shared metadata, which lives in the
|
69
|
-
[exercism/problem-specifications](https://github.com/exercism/problem-specifications) repository. Further explanation can be found in [fixing-exercise-readmes](https://github.com/exercism/docs/blob/master/language-tracks/exercises/anatomy/readmes.md)
|
31
|
+
## Contributing
|
70
32
|
|
71
|
-
|
33
|
+
Thank you so much for contributing! :tada:
|
72
34
|
|
73
|
-
|
35
|
+
We welcome pull requests of all kinds. No contribution is too small.
|
74
36
|
|
75
|
-
|
37
|
+
We encourage contributions that provide fixes and improvements to existing exercises. Please note that this track's exercises must conform to the standards determined in the [exercism/problem-specifications](https://github.com/exercism/problem-specifications) repo. Changes to the tests or documentation of a common exercise will often warrant a PR in that repo before it can be incorporated into this track's exercises. If you're unsure, then go ahead and open a GitHub issue, and we'll discuss the change.
|
76
38
|
|
39
|
+
Please read our [Contribution guidelines](CONTRIBUTING.md) on how to help this track!
|
data/tracks/dart/config.json
CHANGED
@@ -61,7 +61,7 @@
|
|
61
61
|
"strings",
|
62
62
|
"unicode"
|
63
63
|
],
|
64
|
-
"unlocked_by": "
|
64
|
+
"unlocked_by": "word-count",
|
65
65
|
"uuid": "615a83cc-a905-435a-a30e-f052b61cfd4c"
|
66
66
|
},
|
67
67
|
{
|
@@ -77,6 +77,18 @@
|
|
77
77
|
"unlocked_by": "bob",
|
78
78
|
"uuid": "91c8033d-f40c-4a90-9ec9-7081f6eba8d2"
|
79
79
|
},
|
80
|
+
{
|
81
|
+
"core": false,
|
82
|
+
"difficulty": 2,
|
83
|
+
"slug": "phone-number",
|
84
|
+
"topics": [
|
85
|
+
"control_flow_conditionals",
|
86
|
+
"control_flow_loops",
|
87
|
+
"regular_expressions"
|
88
|
+
],
|
89
|
+
"unlocked_by": "word-count",
|
90
|
+
"uuid": "8649b2b4-02f6-4947-92b9-d1cc0d7c3594"
|
91
|
+
},
|
80
92
|
{
|
81
93
|
"core": true,
|
82
94
|
"difficulty": 3,
|