trackler 2.2.1.44 → 2.2.1.45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/trackler/version.rb +1 -1
- data/problem-specifications/exercises/isbn-verifier/canonical-data.json +88 -0
- data/problem-specifications/exercises/isbn-verifier/description.md +35 -0
- data/problem-specifications/exercises/isbn-verifier/metadata.yml +4 -0
- data/problem-specifications/exercises/robot-simulator/canonical-data.json +125 -32
- data/problem-specifications/exercises/sum-of-multiples/description.md +0 -3
- data/problem-specifications/exercises/two-bucket/canonical-data.json +3 -3
- data/tracks/c/config.json +235 -237
- data/tracks/c/exercises/acronym/README.md +0 -1
- data/tracks/c/exercises/all-your-base/README.md +1 -1
- data/tracks/c/exercises/allergies/README.md +0 -1
- data/tracks/c/exercises/atbash-cipher/README.md +2 -1
- data/tracks/c/exercises/beer-song/README.md +1 -1
- data/tracks/c/exercises/binary/README.md +2 -0
- data/tracks/c/exercises/grains/README.md +0 -1
- data/tracks/c/exercises/isogram/README.md +2 -1
- data/tracks/c/exercises/leap/README.md +1 -1
- data/tracks/c/exercises/meetup/README.md +1 -2
- data/tracks/c/exercises/nucleotide-count/README.md +8 -22
- data/tracks/c/exercises/palindrome-products/README.md +12 -6
- data/tracks/c/exercises/pangram/README.md +1 -1
- data/tracks/c/exercises/pascals-triangle/README.md +1 -1
- data/tracks/c/exercises/perfect-numbers/README.md +2 -2
- data/tracks/c/exercises/phone-number/README.md +3 -2
- data/tracks/c/exercises/roman-numerals/README.md +1 -1
- data/tracks/c/exercises/scrabble-score/README.md +3 -1
- data/tracks/c/exercises/space-age/README.md +2 -1
- data/tracks/c/exercises/triangle/README.md +9 -6
- data/tracks/c/exercises/word-count/README.md +1 -2
- data/tracks/csharp/exercises/accumulate/Accumulate.csproj +2 -2
- data/tracks/csharp/exercises/acronym/Acronym.csproj +2 -2
- data/tracks/csharp/exercises/all-your-base/AllYourBase.csproj +2 -2
- data/tracks/csharp/exercises/allergies/Allergies.csproj +2 -2
- data/tracks/csharp/exercises/alphametics/Alphametics.csproj +2 -2
- data/tracks/csharp/exercises/anagram/Anagram.csproj +2 -2
- data/tracks/csharp/exercises/atbash-cipher/AtbashCipher.csproj +2 -2
- data/tracks/csharp/exercises/bank-account/BankAccount.csproj +2 -2
- data/tracks/csharp/exercises/beer-song/BeerSong.csproj +2 -2
- data/tracks/csharp/exercises/binary-search/BinarySearch.csproj +2 -2
- data/tracks/csharp/exercises/binary-search-tree/BinarySearchTree.csproj +2 -2
- data/tracks/csharp/exercises/bob/Bob.csproj +2 -2
- data/tracks/csharp/exercises/book-store/BookStore.csproj +2 -2
- data/tracks/csharp/exercises/bowling/Bowling.csproj +2 -2
- data/tracks/csharp/exercises/bracket-push/BracketPush.csproj +2 -2
- data/tracks/csharp/exercises/change/Change.csproj +2 -2
- data/tracks/csharp/exercises/circular-buffer/CircularBuffer.csproj +2 -2
- data/tracks/csharp/exercises/clock/Clock.csproj +2 -2
- data/tracks/csharp/exercises/collatz-conjecture/CollatzConjecture.csproj +2 -2
- data/tracks/csharp/exercises/complex-numbers/ComplexNumbers.csproj +2 -2
- data/tracks/csharp/exercises/connect/Connect.cs +1 -1
- data/tracks/csharp/exercises/connect/Connect.csproj +2 -2
- data/tracks/csharp/exercises/connect/ConnectTest.cs +120 -85
- data/tracks/csharp/exercises/connect/Example.cs +11 -7
- data/tracks/csharp/exercises/crypto-square/CryptoSquare.csproj +2 -2
- data/tracks/csharp/exercises/custom-set/CustomSet.csproj +2 -2
- data/tracks/csharp/exercises/diamond/Diamond.csproj +2 -2
- data/tracks/csharp/exercises/difference-of-squares/DifferenceOfSquares.csproj +2 -2
- data/tracks/csharp/exercises/diffie-hellman/DiffieHellman.csproj +2 -2
- data/tracks/csharp/exercises/dominoes/Dominoes.csproj +2 -2
- data/tracks/csharp/exercises/dot-dsl/DotDsl.csproj +2 -2
- data/tracks/csharp/exercises/error-handling/ErrorHandling.csproj +2 -2
- data/tracks/csharp/exercises/etl/Etl.csproj +2 -2
- data/tracks/csharp/exercises/flatten-array/FlattenArray.csproj +2 -2
- data/tracks/csharp/exercises/food-chain/FoodChain.csproj +2 -2
- data/tracks/csharp/exercises/forth/Forth.csproj +2 -2
- data/tracks/csharp/exercises/gigasecond/Gigasecond.csproj +2 -2
- data/tracks/csharp/exercises/go-counting/GoCounting.csproj +2 -2
- data/tracks/csharp/exercises/grade-school/GradeSchool.csproj +2 -2
- data/tracks/csharp/exercises/grains/Grains.csproj +2 -2
- data/tracks/csharp/exercises/grep/Grep.csproj +2 -2
- data/tracks/csharp/exercises/hamming/Hamming.csproj +2 -2
- data/tracks/csharp/exercises/hangman/Hangman.csproj +2 -2
- data/tracks/csharp/exercises/hello-world/HelloWorld.csproj +2 -2
- data/tracks/csharp/exercises/house/House.csproj +2 -2
- data/tracks/csharp/exercises/isogram/Isogram.csproj +2 -2
- data/tracks/csharp/exercises/kindergarten-garden/KindergartenGarden.csproj +2 -2
- data/tracks/csharp/exercises/largest-series-product/LargestSeriesProduct.csproj +2 -2
- data/tracks/csharp/exercises/leap/Leap.csproj +2 -2
- data/tracks/csharp/exercises/ledger/Ledger.csproj +2 -2
- data/tracks/csharp/exercises/linked-list/LinkedList.csproj +2 -2
- data/tracks/csharp/exercises/list-ops/ListOps.csproj +2 -2
- data/tracks/csharp/exercises/luhn/Luhn.csproj +2 -2
- data/tracks/csharp/exercises/markdown/Markdown.csproj +2 -2
- data/tracks/csharp/exercises/matrix/Matrix.csproj +2 -2
- data/tracks/csharp/exercises/meetup/Meetup.csproj +2 -2
- data/tracks/csharp/exercises/minesweeper/Minesweeper.csproj +2 -2
- data/tracks/csharp/exercises/nth-prime/NthPrime.csproj +2 -2
- data/tracks/csharp/exercises/nucleotide-count/NucleotideCount.csproj +2 -2
- data/tracks/csharp/exercises/ocr-numbers/OcrNumbers.csproj +2 -2
- data/tracks/csharp/exercises/palindrome-products/PalindromeProducts.csproj +2 -2
- data/tracks/csharp/exercises/pangram/Pangram.csproj +2 -2
- data/tracks/csharp/exercises/parallel-letter-frequency/ParallelLetterFrequency.csproj +2 -2
- data/tracks/csharp/exercises/pascals-triangle/PascalsTriangle.csproj +2 -2
- data/tracks/csharp/exercises/perfect-numbers/PerfectNumbers.csproj +2 -2
- data/tracks/csharp/exercises/phone-number/PhoneNumber.csproj +2 -2
- data/tracks/csharp/exercises/pig-latin/PigLatin.csproj +2 -2
- data/tracks/csharp/exercises/poker/Poker.csproj +2 -2
- data/tracks/csharp/exercises/pov/Pov.csproj +2 -2
- data/tracks/csharp/exercises/prime-factors/PrimeFactors.csproj +2 -2
- data/tracks/csharp/exercises/protein-translation/ProteinTranslation.csproj +2 -2
- data/tracks/csharp/exercises/proverb/Proverb.csproj +2 -2
- data/tracks/csharp/exercises/pythagorean-triplet/PythagoreanTriplet.csproj +2 -2
- data/tracks/csharp/exercises/queen-attack/QueenAttack.csproj +2 -2
- data/tracks/csharp/exercises/rail-fence-cipher/RailFenceCipher.csproj +2 -2
- data/tracks/csharp/exercises/raindrops/Raindrops.csproj +2 -2
- data/tracks/csharp/exercises/react/React.csproj +2 -2
- data/tracks/csharp/exercises/rectangles/Rectangles.csproj +2 -2
- data/tracks/csharp/exercises/rna-transcription/RnaTranscription.csproj +2 -2
- data/tracks/csharp/exercises/robot-name/RobotName.csproj +2 -2
- data/tracks/csharp/exercises/robot-simulator/RobotSimulator.csproj +2 -2
- data/tracks/csharp/exercises/roman-numerals/RomanNumerals.csproj +2 -2
- data/tracks/csharp/exercises/rotational-cipher/RotationalCipher.csproj +2 -2
- data/tracks/csharp/exercises/run-length-encoding/RunLengthEncoding.csproj +2 -2
- data/tracks/csharp/exercises/saddle-points/SaddlePoints.csproj +2 -2
- data/tracks/csharp/exercises/say/Say.csproj +2 -2
- data/tracks/csharp/exercises/scale-generator/ScaleGenerator.csproj +2 -2
- data/tracks/csharp/exercises/scrabble-score/ScrabbleScore.csproj +2 -2
- data/tracks/csharp/exercises/secret-handshake/SecretHandshake.csproj +2 -2
- data/tracks/csharp/exercises/series/Series.csproj +2 -2
- data/tracks/csharp/exercises/series/SeriesTest.cs +17 -17
- data/tracks/csharp/exercises/sgf-parsing/SgfParsing.csproj +2 -2
- data/tracks/csharp/exercises/sieve/Sieve.csproj +2 -2
- data/tracks/csharp/exercises/simple-cipher/SimpleCipher.csproj +2 -2
- data/tracks/csharp/exercises/simple-linked-list/SimpleLinkedList.csproj +2 -2
- data/tracks/csharp/exercises/space-age/SpaceAge.csproj +2 -2
- data/tracks/csharp/exercises/spiral-matrix/SpiralMatrix.csproj +2 -2
- data/tracks/csharp/exercises/strain/Strain.csproj +2 -2
- data/tracks/csharp/exercises/sublist/Sublist.csproj +2 -2
- data/tracks/csharp/exercises/sum-of-multiples/SumOfMultiples.csproj +2 -2
- data/tracks/csharp/exercises/tournament/Tournament.csproj +2 -2
- data/tracks/csharp/exercises/transpose/Transpose.csproj +2 -2
- data/tracks/csharp/exercises/tree-building/TreeBuilding.csproj +2 -2
- data/tracks/csharp/exercises/triangle/Triangle.cs +0 -11
- data/tracks/csharp/exercises/triangle/Triangle.csproj +2 -2
- data/tracks/csharp/exercises/triangle/TriangleTest.cs +17 -17
- data/tracks/csharp/exercises/twelve-days/TwelveDays.csproj +2 -2
- data/tracks/csharp/exercises/two-bucket/TwoBucket.csproj +2 -2
- data/tracks/csharp/exercises/two-fer/TwoFer.csproj +2 -2
- data/tracks/csharp/exercises/variable-length-quantity/VariableLengthQuantity.csproj +2 -2
- data/tracks/csharp/exercises/word-count/WordCount.csproj +2 -2
- data/tracks/csharp/exercises/word-search/WordSearch.csproj +2 -2
- data/tracks/csharp/exercises/wordy/Wordy.csproj +2 -2
- data/tracks/csharp/exercises/zebra-puzzle/ZebraPuzzle.csproj +2 -2
- data/tracks/csharp/exercises/zipper/Zipper.csproj +2 -2
- data/tracks/csharp/generators/Exercises/Connect.cs +47 -0
- data/tracks/csharp/generators/Exercises/Triangle.cs +1 -1
- data/tracks/dart/config/maintainers.json +27 -1
- data/tracks/dart/pubspec.yaml +3 -0
- data/tracks/dart/tool/create-exercise +144 -5
- data/tracks/elm/.gitattributes +1 -0
- data/tracks/elm/bin/install-elm-format +9 -3
- data/tracks/elm/config.json +30 -0
- data/tracks/elm/exercises/all-your-base/AllYourBase.elm +1 -0
- data/tracks/elm/exercises/all-your-base/AllYourBase.example.elm +68 -0
- data/tracks/elm/exercises/all-your-base/README.md +65 -0
- data/tracks/elm/exercises/all-your-base/elm-package.json +15 -0
- data/tracks/elm/exercises/all-your-base/tests/Tests.elm +53 -0
- data/tracks/elm/exercises/all-your-base/tests/elm-package.json +16 -0
- data/tracks/elm/exercises/collatz-conjecture/CollatzConjecture.elm +2 -0
- data/tracks/elm/exercises/collatz-conjecture/CollatzConjecture.example.elm +19 -0
- data/tracks/elm/exercises/collatz-conjecture/elm-package.json +15 -0
- data/tracks/elm/exercises/collatz-conjecture/package.json +14 -0
- data/tracks/elm/exercises/collatz-conjecture/tests/Tests.elm +38 -0
- data/tracks/elm/exercises/collatz-conjecture/tests/elm-package.json +16 -0
- data/tracks/elm/exercises/isogram/Isogram.elm +1 -0
- data/tracks/elm/exercises/isogram/Isogram.example.elm +76 -0
- data/tracks/elm/exercises/isogram/README.md +50 -0
- data/tracks/elm/exercises/isogram/elm-package.json +14 -0
- data/tracks/elm/exercises/isogram/package.json +14 -0
- data/tracks/elm/exercises/isogram/tests/Tests.elm +46 -0
- data/tracks/elm/exercises/isogram/tests/elm-package.json +16 -0
- data/tracks/fsharp/.gitignore +2 -1
- data/tracks/fsharp/exercises/accumulate/Accumulate.fsproj +3 -2
- data/tracks/fsharp/exercises/acronym/Acronym.fs +1 -1
- data/tracks/fsharp/exercises/acronym/Acronym.fsproj +3 -2
- data/tracks/fsharp/exercises/acronym/AcronymTest.fs +13 -38
- data/tracks/fsharp/exercises/acronym/Example.fs +1 -1
- data/tracks/fsharp/exercises/all-your-base/AllYourBase.fsproj +3 -2
- data/tracks/fsharp/exercises/all-your-base/AllYourBaseTest.fs +64 -61
- data/tracks/fsharp/exercises/all-your-base/Example.fs +4 -1
- data/tracks/fsharp/exercises/allergies/Allergies.fs +2 -2
- data/tracks/fsharp/exercises/allergies/Allergies.fsproj +3 -2
- data/tracks/fsharp/exercises/allergies/AllergiesTest.fs +28 -37
- data/tracks/fsharp/exercises/allergies/Example.fs +3 -3
- data/tracks/fsharp/exercises/alphametics/Alphametics.fsproj +3 -2
- data/tracks/fsharp/exercises/anagram/Anagram.fsproj +3 -2
- data/tracks/fsharp/exercises/atbash-cipher/AtbashCipher.fs +4 -2
- data/tracks/fsharp/exercises/atbash-cipher/AtbashCipher.fsproj +3 -2
- data/tracks/fsharp/exercises/atbash-cipher/AtbashCipherTest.fs +38 -42
- data/tracks/fsharp/exercises/atbash-cipher/Example.fs +5 -3
- data/tracks/fsharp/exercises/bank-account/BankAccount.fsproj +3 -2
- data/tracks/fsharp/exercises/beer-song/BeerSong.fsproj +3 -2
- data/tracks/fsharp/exercises/beer-song/BeerSongTest.fs +36 -32
- data/tracks/fsharp/exercises/beer-song/Example.fs +2 -2
- data/tracks/fsharp/exercises/binary-search/BinarySearch.fsproj +3 -2
- data/tracks/fsharp/exercises/binary-search-tree/BinarySearchTree.fsproj +3 -2
- data/tracks/fsharp/exercises/bob/Bob.fs +1 -1
- data/tracks/fsharp/exercises/bob/Bob.fsproj +3 -2
- data/tracks/fsharp/exercises/bob/BobTest.fs +64 -20
- data/tracks/fsharp/exercises/bob/Example.fs +3 -4
- data/tracks/fsharp/exercises/book-store/BookStore.fs +1 -1
- data/tracks/fsharp/exercises/book-store/BookStore.fsproj +3 -2
- data/tracks/fsharp/exercises/book-store/BookStoreTest.fs +32 -25
- data/tracks/fsharp/exercises/book-store/Example.fs +1 -1
- data/tracks/fsharp/exercises/bowling/Bowling.fsproj +3 -2
- data/tracks/fsharp/exercises/bracket-push/BracketPush.fs +1 -1
- data/tracks/fsharp/exercises/bracket-push/BracketPush.fsproj +3 -2
- data/tracks/fsharp/exercises/bracket-push/BracketPushTest.fs +24 -25
- data/tracks/fsharp/exercises/bracket-push/Example.fs +1 -1
- data/tracks/fsharp/exercises/change/Change.fs +1 -1
- data/tracks/fsharp/exercises/change/Change.fsproj +3 -2
- data/tracks/fsharp/exercises/change/ChangeTest.fs +42 -18
- data/tracks/fsharp/exercises/change/Example.fs +7 -4
- data/tracks/fsharp/exercises/circular-buffer/CircularBuffer.fsproj +3 -2
- data/tracks/fsharp/exercises/clock/Clock.fsproj +3 -2
- data/tracks/fsharp/exercises/connect/Connect.fsproj +3 -2
- data/tracks/fsharp/exercises/crypto-square/CryptoSquare.fs +1 -40
- data/tracks/fsharp/exercises/crypto-square/CryptoSquare.fsproj +3 -2
- data/tracks/fsharp/exercises/crypto-square/CryptoSquareTest.fs +16 -40
- data/tracks/fsharp/exercises/crypto-square/Example.fs +13 -16
- data/tracks/fsharp/exercises/custom-set/CustomSet.fs +12 -12
- data/tracks/fsharp/exercises/custom-set/CustomSet.fsproj +3 -2
- data/tracks/fsharp/exercises/diamond/Diamond.fsproj +3 -2
- data/tracks/fsharp/exercises/difference-of-squares/DifferenceOfSquares.fs +2 -2
- data/tracks/fsharp/exercises/difference-of-squares/DifferenceOfSquares.fsproj +3 -2
- data/tracks/fsharp/exercises/difference-of-squares/DifferenceOfSquaresTest.fs +24 -20
- data/tracks/fsharp/exercises/difference-of-squares/Example.fs +3 -3
- data/tracks/fsharp/exercises/diffie-hellman/DiffieHellman.fsproj +3 -2
- data/tracks/fsharp/exercises/dominoes/Dominoes.fsproj +3 -2
- data/tracks/fsharp/exercises/dot-dsl/DotDsl.fsproj +3 -2
- data/tracks/fsharp/exercises/error-handling/ErrorHandling.fsproj +3 -2
- data/tracks/fsharp/exercises/etl/Etl.fsproj +3 -2
- data/tracks/fsharp/exercises/food-chain/FoodChain.fsproj +3 -2
- data/tracks/fsharp/exercises/forth/Forth.fsproj +3 -2
- data/tracks/fsharp/exercises/gigasecond/Example.fs +1 -3
- data/tracks/fsharp/exercises/gigasecond/Gigasecond.fs +1 -1
- data/tracks/fsharp/exercises/gigasecond/Gigasecond.fsproj +3 -2
- data/tracks/fsharp/exercises/gigasecond/GigasecondTest.fs +21 -12
- data/tracks/fsharp/exercises/go-counting/GoCounting.fsproj +3 -2
- data/tracks/fsharp/exercises/grade-school/GradeSchool.fsproj +3 -2
- data/tracks/fsharp/exercises/grains/Grains.fsproj +3 -2
- data/tracks/fsharp/exercises/grep/Grep.fsproj +3 -2
- data/tracks/fsharp/exercises/hamming/Hamming.fsproj +3 -2
- data/tracks/fsharp/exercises/hangman/Hangman.fsproj +3 -2
- data/tracks/fsharp/exercises/hello-world/HelloWorld.fsproj +3 -2
- data/tracks/fsharp/exercises/hello-world/HelloWorldTest.fs +6 -3
- data/tracks/fsharp/exercises/house/House.fsproj +3 -2
- data/tracks/fsharp/exercises/isogram/Example.fs +1 -1
- data/tracks/fsharp/exercises/isogram/Isogram.fs +1 -1
- data/tracks/fsharp/exercises/isogram/Isogram.fsproj +3 -2
- data/tracks/fsharp/exercises/isogram/IsogramTest.fs +16 -40
- data/tracks/fsharp/exercises/kindergarten-garden/Example.fs +6 -4
- data/tracks/fsharp/exercises/kindergarten-garden/KindergartenGarden.fs +3 -5
- data/tracks/fsharp/exercises/kindergarten-garden/KindergartenGarden.fsproj +3 -2
- data/tracks/fsharp/exercises/kindergarten-garden/KindergartenGardenTest.fs +100 -47
- data/tracks/fsharp/exercises/largest-series-product/LargestSeriesProduct.fsproj +3 -2
- data/tracks/fsharp/exercises/leap/Example.fs +2 -2
- data/tracks/fsharp/exercises/leap/Leap.fs +2 -2
- data/tracks/fsharp/exercises/leap/Leap.fsproj +3 -2
- data/tracks/fsharp/exercises/leap/LeapTest.fs +19 -15
- data/tracks/fsharp/exercises/ledger/Ledger.fsproj +3 -2
- data/tracks/fsharp/exercises/lens-person/LensPerson.fsproj +3 -2
- data/tracks/fsharp/exercises/linked-list/LinkedList.fsproj +3 -2
- data/tracks/fsharp/exercises/list-ops/ListOps.fsproj +3 -2
- data/tracks/fsharp/exercises/luhn/Luhn.fsproj +3 -2
- data/tracks/fsharp/exercises/luhn/LuhnTest.fs +30 -65
- data/tracks/fsharp/exercises/markdown/Markdown.fsproj +3 -2
- data/tracks/fsharp/exercises/matrix/Matrix.fsproj +3 -2
- data/tracks/fsharp/exercises/meetup/Meetup.fsproj +3 -2
- data/tracks/fsharp/exercises/minesweeper/Example.fs +9 -11
- data/tracks/fsharp/exercises/minesweeper/Minesweeper.fsproj +3 -2
- data/tracks/fsharp/exercises/minesweeper/MinesweeperTest.fs +117 -80
- data/tracks/fsharp/exercises/nth-prime/NthPrime.fsproj +3 -2
- data/tracks/fsharp/exercises/nucleotide-count/NucleotideCount.fsproj +3 -2
- data/tracks/fsharp/exercises/ocr-numbers/OcrNumbers.fsproj +3 -2
- data/tracks/fsharp/exercises/palindrome-products/PalindromeProducts.fsproj +3 -2
- data/tracks/fsharp/exercises/pangram/Pangram.fsproj +3 -2
- data/tracks/fsharp/exercises/pangram/PangramTest.fs +15 -27
- data/tracks/fsharp/exercises/parallel-letter-frequency/ParallelLetterFrequency.fsproj +3 -2
- data/tracks/fsharp/exercises/pascals-triangle/PascalsTriangle.fsproj +3 -2
- data/tracks/fsharp/exercises/perfect-numbers/PerfectNumbers.fsproj +3 -2
- data/tracks/fsharp/exercises/phone-number/PhoneNumber.fsproj +3 -2
- data/tracks/fsharp/exercises/pig-latin/Example.fs +1 -1
- data/tracks/fsharp/exercises/pig-latin/PigLatin.fsproj +3 -2
- data/tracks/fsharp/exercises/pig-latin/PigLatinTest.fs +64 -26
- data/tracks/fsharp/exercises/poker/Poker.fsproj +3 -2
- data/tracks/fsharp/exercises/pov/Pov.fsproj +3 -2
- data/tracks/fsharp/exercises/prime-factors/PrimeFactors.fsproj +3 -2
- data/tracks/fsharp/exercises/protein-translation/ProteinTranslation.fsproj +3 -2
- data/tracks/fsharp/exercises/proverb/Proverb.fsproj +3 -2
- data/tracks/fsharp/exercises/pythagorean-triplet/PythagoreanTriplet.fsproj +3 -2
- data/tracks/fsharp/exercises/queen-attack/Example.fs +3 -1
- data/tracks/fsharp/exercises/queen-attack/QueenAttack.fs +2 -0
- data/tracks/fsharp/exercises/queen-attack/QueenAttack.fsproj +3 -2
- data/tracks/fsharp/exercises/queen-attack/QueenAttackTest.fs +50 -20
- data/tracks/fsharp/exercises/rail-fence-cipher/RailFenceCipher.fsproj +3 -2
- data/tracks/fsharp/exercises/raindrops/Raindrops.fsproj +3 -2
- data/tracks/fsharp/exercises/raindrops/RaindropsTest.fs +77 -37
- data/tracks/fsharp/exercises/react/React.fsproj +3 -2
- data/tracks/fsharp/exercises/rectangles/Rectangles.fsproj +3 -2
- data/tracks/fsharp/exercises/rna-transcription/Example.fs +15 -7
- data/tracks/fsharp/exercises/rna-transcription/RnaTranscription.fs +2 -2
- data/tracks/fsharp/exercises/rna-transcription/RnaTranscription.fsproj +3 -2
- data/tracks/fsharp/exercises/rna-transcription/RnaTranscriptionTest.fs +29 -14
- data/tracks/fsharp/exercises/robot-name/RobotName.fsproj +3 -2
- data/tracks/fsharp/exercises/robot-simulator/RobotSimulator.fsproj +3 -2
- data/tracks/fsharp/exercises/roman-numerals/Example.fs +2 -2
- data/tracks/fsharp/exercises/roman-numerals/RomanNumerals.fs +2 -2
- data/tracks/fsharp/exercises/roman-numerals/RomanNumerals.fsproj +3 -2
- data/tracks/fsharp/exercises/roman-numerals/RomanNumeralsTest.fs +79 -26
- data/tracks/fsharp/exercises/run-length-encoding/RunLengthEncoding.fsproj +3 -2
- data/tracks/fsharp/exercises/saddle-points/SaddlePoints.fsproj +3 -2
- data/tracks/fsharp/exercises/say/Say.fsproj +3 -2
- data/tracks/fsharp/exercises/scale-generator/ScaleGenerator.fsproj +3 -2
- data/tracks/fsharp/exercises/scrabble-score/ScrabbleScore.fsproj +3 -2
- data/tracks/fsharp/exercises/scrabble-score/ScrabbleScoreTest.fs +33 -17
- data/tracks/fsharp/exercises/secret-handshake/SecretHandshake.fsproj +3 -2
- data/tracks/fsharp/exercises/series/Series.fsproj +3 -2
- data/tracks/fsharp/exercises/sgf-parsing/SgfParsing.fsproj +3 -2
- data/tracks/fsharp/exercises/sieve/Sieve.fsproj +3 -2
- data/tracks/fsharp/exercises/simple-cipher/SimpleCipher.fsproj +3 -2
- data/tracks/fsharp/exercises/simple-linked-list/SimpleLinkedList.fsproj +3 -2
- data/tracks/fsharp/exercises/space-age/SpaceAge.fsproj +3 -2
- data/tracks/fsharp/exercises/strain/Strain.fsproj +3 -2
- data/tracks/fsharp/exercises/sublist/Sublist.fsproj +3 -2
- data/tracks/fsharp/exercises/sum-of-multiples/SumOfMultiples.fsproj +3 -2
- data/tracks/fsharp/exercises/tournament/Tournament.fsproj +3 -2
- data/tracks/fsharp/exercises/transpose/Transpose.fsproj +3 -2
- data/tracks/fsharp/exercises/tree-building/TreeBuilding.fsproj +3 -2
- data/tracks/fsharp/exercises/triangle/Triangle.fsproj +3 -2
- data/tracks/fsharp/exercises/twelve-days/TwelveDays.fsproj +3 -2
- data/tracks/fsharp/exercises/two-bucket/TwoBucket.fsproj +3 -2
- data/tracks/fsharp/exercises/two-fer/TwoFer.fsproj +3 -2
- data/tracks/fsharp/exercises/variable-length-quantity/VariableLengthQuantity.fsproj +3 -2
- data/tracks/fsharp/exercises/word-count/WordCount.fsproj +3 -2
- data/tracks/fsharp/exercises/word-search/WordSearch.fsproj +3 -2
- data/tracks/fsharp/exercises/wordy/Wordy.fsproj +3 -2
- data/tracks/fsharp/exercises/zebra-puzzle/ZebraPuzzle.fsproj +3 -2
- data/tracks/fsharp/exercises/zipper/Zipper.fsproj +3 -2
- data/tracks/fsharp/generators/Common.fs +96 -0
- data/tracks/fsharp/generators/Exercise.fs +250 -0
- data/tracks/fsharp/generators/Generators.fs +210 -0
- data/tracks/fsharp/generators/Generators.fsproj +32 -0
- data/tracks/fsharp/generators/Generators.sln +24 -0
- data/tracks/fsharp/generators/Input.fs +99 -0
- data/tracks/fsharp/generators/Options.fs +31 -0
- data/tracks/fsharp/generators/Output.fs +224 -0
- data/tracks/fsharp/generators/Program.fs +35 -0
- data/tracks/fsharp/generators/Properties/launchSettings.json +8 -0
- data/tracks/fsharp/generators/Templates/_AssertEmpty.liquid +1 -0
- data/tracks/fsharp/generators/Templates/_AssertEqual.liquid +1 -0
- data/tracks/fsharp/generators/Templates/_TestClass.liquid +13 -0
- data/tracks/fsharp/generators/Templates/_TestMethod.liquid +3 -0
- data/tracks/fsharp/generators/Templates/_TestMethodBody.liquid +4 -0
- data/tracks/go/.travis.yml +3 -3
- data/tracks/groovy/CONTRIBUTING.md +2 -2
- data/tracks/groovy/config.json +12 -0
- data/tracks/groovy/exercises/scrabble-score/Example.groovy +18 -0
- data/tracks/groovy/exercises/scrabble-score/README.md +63 -0
- data/tracks/groovy/exercises/scrabble-score/ScrabbleScore.groovy +7 -0
- data/tracks/groovy/exercises/scrabble-score/ScrabbleScoreSpec.groovy +45 -0
- data/tracks/groovy/exercises/two-fer/TwoFer.groovy +2 -2
- data/tracks/haskell/exercises/change/README.md +1 -1
- data/tracks/haskell/exercises/lens-person/README.md +1 -1
- data/tracks/haskell/exercises/palindrome-products/README.md +5 -12
- data/tracks/haskell/exercises/sum-of-multiples/README.md +0 -3
- data/tracks/idris/config.json +12 -0
- data/tracks/idris/exercises/accumulate/Accumulate.ipkg +5 -0
- data/tracks/idris/exercises/accumulate/Makefile +23 -0
- data/tracks/idris/exercises/accumulate/README.md +32 -0
- data/tracks/idris/exercises/accumulate/src/Example.idr +6 -0
- data/tracks/idris/exercises/accumulate/src/Test/Accumulate.idr +35 -0
- data/tracks/java/config/maintainers.json +4 -7
- data/tracks/java/config.json +99 -22
- data/tracks/java/exercises/binary-search-tree/.meta/src/reference/java/{BST.java → BinarySearchTree.java} +1 -1
- data/tracks/java/exercises/binary-search-tree/src/test/java/{BSTTest.java → BinarySearchTreeTest.java} +34 -36
- data/tracks/java/exercises/robot-simulator/src/main/java/GridPosition.java +19 -15
- data/tracks/java/exercises/saddle-points/.meta/src/reference/java/MatrixCoordinate.java +7 -1
- data/tracks/java/exercises/saddle-points/src/main/java/MatrixCoordinate.java +7 -1
- data/tracks/java/exercises/settings.gradle +1 -0
- data/tracks/java/exercises/tournament/.meta/src/reference/java/Result.java +5 -0
- data/tracks/java/exercises/tournament/.meta/src/reference/java/TeamResult.java +41 -0
- data/tracks/java/exercises/tournament/.meta/src/reference/java/Tournament.java +62 -0
- data/tracks/java/exercises/tournament/README.md +78 -0
- data/tracks/java/exercises/tournament/build.gradle +18 -0
- data/tracks/java/{.Rhistory → exercises/tournament/src/main/java/.keep} +0 -0
- data/tracks/java/exercises/tournament/src/test/java/TournamentTest.java +160 -0
- data/tracks/php/config.json +14 -0
- data/tracks/php/exercises/collatz-conjecture/collatz-conjecture_test.php +44 -0
- data/tracks/php/exercises/collatz-conjecture/example.php +18 -0
- data/tracks/python/exercises/circular-buffer/circular_buffer.py +1 -1
- data/tracks/python/exercises/clock/clock.py +1 -1
- data/tracks/python/exercises/etl/etl.py +1 -1
- data/tracks/python/exercises/grade-school/grade_school.py +1 -1
- data/tracks/python/exercises/grains/grains.py +2 -2
- data/tracks/python/exercises/kindergarten-garden/kindergarten_garden.py +1 -1
- data/tracks/python/exercises/linked-list/linked_list.py +1 -1
- data/tracks/python/exercises/rectangles/rectangles.py +1 -1
- data/tracks/python/exercises/sum-of-multiples/sum_of_multiples.py +1 -1
- data/tracks/rust/exercises/bob/tests/bob.rs +1 -0
- data/tracks/rust/exercises/crypto-square/tests/crypto-square.rs +7 -0
- data/tracks/rust/exercises/gigasecond/tests/gigasecond.rs +1 -1
- data/tracks/rust/exercises/phone-number/Cargo.lock +1 -1
- data/tracks/rust/exercises/phone-number/Cargo.toml +1 -1
- data/tracks/rust/exercises/phone-number/example.rs +17 -23
- data/tracks/rust/exercises/phone-number/tests/phone-number.rs +31 -40
- data/tracks/rust/exercises/say/tests/say.rs +2 -0
- data/tracks/rust/exercises/sum-of-multiples/README.md +0 -3
- data/tracks/scala/config.json +11 -0
- data/tracks/scala/exercises/collatz-conjecture/README.md +43 -0
- data/tracks/scala/exercises/collatz-conjecture/build.sbt +3 -0
- data/tracks/scala/exercises/collatz-conjecture/example.scala +17 -0
- data/tracks/scala/exercises/collatz-conjecture/src/main/scala/.keep +0 -0
- data/tracks/scala/exercises/collatz-conjecture/src/test/scala/CollatzConjectureTest.scala +34 -0
- data/tracks/scala/testgen/src/main/scala/CollatzConjectureTestGenerator.scala +35 -0
- data/tracks/scheme/config.json +8 -0
- data/tracks/scheme/exercises/word-count/README.md +19 -0
- data/tracks/scheme/exercises/word-count/example.scm +27 -0
- data/tracks/scheme/exercises/word-count/word-count-test.scm +90 -0
- data/tracks/scheme/exercises/word-count/word-count.scm +5 -0
- data/tracks/sml/README.md +20 -1
- data/tracks/sml/bin/generate +74 -20
- data/tracks/sml/exercises/binary/README.md +23 -5
- data/tracks/sml/exercises/binary/binary.sml +2 -0
- data/tracks/sml/exercises/binary/example.sml +10 -21
- data/tracks/sml/exercises/binary/test.sml +55 -30
- data/tracks/sml/exercises/binary/testlib.sml +159 -0
- data/tracks/sml/exercises/flatten-array/HINTS.md +8 -0
- data/tracks/sml/exercises/flatten-array/README.md +31 -6
- data/tracks/sml/exercises/flatten-array/example.sml +3 -4
- data/tracks/sml/exercises/flatten-array/flatten-array.sml +4 -5
- data/tracks/sml/exercises/flatten-array/test.sml +76 -52
- data/tracks/sml/exercises/flatten-array/testlib.sml +159 -0
- data/tracks/sml/exercises/nth-prime/HINTS.md +9 -0
- data/tracks/sml/exercises/nth-prime/README.md +32 -5
- data/tracks/sml/exercises/nth-prime/example.sml +28 -46
- data/tracks/sml/exercises/nth-prime/nth-prime.sml +1 -1
- data/tracks/sml/exercises/nth-prime/test.sml +19 -63
- data/tracks/sml/exercises/nth-prime/testlib.sml +159 -0
- data/tracks/sml/exercises/raindrops/README.md +21 -5
- data/tracks/typescript/config.json +14 -0
- data/tracks/typescript/exercises/triangle/README.md +55 -0
- data/tracks/typescript/exercises/triangle/package.json +36 -0
- data/tracks/typescript/exercises/triangle/triangle.example.ts +56 -0
- data/tracks/typescript/exercises/triangle/triangle.test.ts +79 -0
- data/tracks/typescript/exercises/triangle/triangle.ts +12 -0
- data/tracks/typescript/exercises/triangle/tsconfig.json +22 -0
- data/tracks/typescript/exercises/triangle/tslint.json +127 -0
- data/tracks/typescript/exercises/triangle/yarn.lock +2305 -0
- metadata +85 -6
- data/tracks/d/exercises/crypto-square/.dub/dub.json +0 -6
|
@@ -14,9 +14,10 @@
|
|
|
14
14
|
|
|
15
15
|
<ItemGroup>
|
|
16
16
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0" />
|
|
17
|
-
<PackageReference Include="xunit" Version="2.3.0
|
|
18
|
-
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0
|
|
17
|
+
<PackageReference Include="xunit" Version="2.3.0" />
|
|
18
|
+
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0" />
|
|
19
19
|
<PackageReference Include="FsUnit.xUnit" Version="3.0.0" />
|
|
20
|
+
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.0" />
|
|
20
21
|
</ItemGroup>
|
|
21
22
|
|
|
22
23
|
</Project>
|
|
@@ -14,9 +14,10 @@
|
|
|
14
14
|
|
|
15
15
|
<ItemGroup>
|
|
16
16
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0" />
|
|
17
|
-
<PackageReference Include="xunit" Version="2.3.0
|
|
18
|
-
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0
|
|
17
|
+
<PackageReference Include="xunit" Version="2.3.0" />
|
|
18
|
+
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0" />
|
|
19
19
|
<PackageReference Include="FsUnit.xUnit" Version="3.0.0" />
|
|
20
|
+
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.0" />
|
|
20
21
|
</ItemGroup>
|
|
21
22
|
|
|
22
23
|
</Project>
|
|
@@ -14,9 +14,10 @@
|
|
|
14
14
|
|
|
15
15
|
<ItemGroup>
|
|
16
16
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0" />
|
|
17
|
-
<PackageReference Include="xunit" Version="2.3.0
|
|
18
|
-
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0
|
|
17
|
+
<PackageReference Include="xunit" Version="2.3.0" />
|
|
18
|
+
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0" />
|
|
19
19
|
<PackageReference Include="FsUnit.xUnit" Version="3.0.0" />
|
|
20
|
+
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.0" />
|
|
20
21
|
</ItemGroup>
|
|
21
22
|
|
|
22
23
|
</Project>
|
|
@@ -14,9 +14,10 @@
|
|
|
14
14
|
|
|
15
15
|
<ItemGroup>
|
|
16
16
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0" />
|
|
17
|
-
<PackageReference Include="xunit" Version="2.3.0
|
|
18
|
-
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0
|
|
17
|
+
<PackageReference Include="xunit" Version="2.3.0" />
|
|
18
|
+
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0" />
|
|
19
19
|
<PackageReference Include="FsUnit.xUnit" Version="3.0.0" />
|
|
20
|
+
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.0" />
|
|
20
21
|
</ItemGroup>
|
|
21
22
|
|
|
22
23
|
</Project>
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
open System.Text.RegularExpressions
|
|
4
4
|
|
|
5
5
|
let vowelRegex = Regex(@"(?<begin>^|\s+)(?<vowel>a|e|i|o|u|yt|xr)(?<rest>\w+)", RegexOptions.Compiled)
|
|
6
|
-
let consonantRegex = Regex(@"(?<begin>^|\s+)(?<consonant>ch|qu|thr|th|sch|yt|\wqu|\w)(?<rest>\w+)", RegexOptions.Compiled)
|
|
6
|
+
let consonantRegex = Regex(@"(?<begin>^|\s+)(?<consonant>ch|qu|thr|th|rh|sch|yt|\wqu|\w)(?<rest>\w+)", RegexOptions.Compiled)
|
|
7
7
|
|
|
8
8
|
let vowelReplacement = "${begin}${vowel}${rest}ay";
|
|
9
9
|
let consonantReplacement = "${begin}${rest}${consonant}ay";
|
|
@@ -14,9 +14,10 @@
|
|
|
14
14
|
|
|
15
15
|
<ItemGroup>
|
|
16
16
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0" />
|
|
17
|
-
<PackageReference Include="xunit" Version="2.3.0
|
|
18
|
-
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0
|
|
17
|
+
<PackageReference Include="xunit" Version="2.3.0" />
|
|
18
|
+
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0" />
|
|
19
19
|
<PackageReference Include="FsUnit.xUnit" Version="3.0.0" />
|
|
20
|
+
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.0" />
|
|
20
21
|
</ItemGroup>
|
|
21
22
|
|
|
22
23
|
</Project>
|
|
@@ -1,59 +1,97 @@
|
|
|
1
|
+
// This file was auto-generated based on version 1.1.0 of the canonical data.
|
|
2
|
+
|
|
1
3
|
module PigLatinTest
|
|
2
4
|
|
|
3
|
-
open Xunit
|
|
4
5
|
open FsUnit.Xunit
|
|
6
|
+
open Xunit
|
|
7
|
+
|
|
5
8
|
open PigLatin
|
|
6
9
|
|
|
7
|
-
[<
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
[<
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
[<Fact>]
|
|
11
|
+
let ``Word beginning with a`` () =
|
|
12
|
+
translate "apple" |> should equal "appleay"
|
|
13
|
+
|
|
14
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
15
|
+
let ``Word beginning with e`` () =
|
|
16
|
+
translate "ear" |> should equal "earay"
|
|
17
|
+
|
|
18
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
19
|
+
let ``Word beginning with i`` () =
|
|
20
|
+
translate "igloo" |> should equal "iglooay"
|
|
21
|
+
|
|
22
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
23
|
+
let ``Word beginning with o`` () =
|
|
24
|
+
translate "object" |> should equal "objectay"
|
|
15
25
|
|
|
16
|
-
[<
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
[<InlineData("yellow", "ellowyay")>]
|
|
20
|
-
[<InlineData("xenon", "enonxay")>]
|
|
21
|
-
let ``First letter and ay are moved to the end of words that start with consonants`` (word, expected) =
|
|
22
|
-
translate word |> should equal expected
|
|
26
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
27
|
+
let ``Word beginning with u`` () =
|
|
28
|
+
translate "under" |> should equal "underay"
|
|
23
29
|
|
|
30
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
31
|
+
let ``Word beginning with a vowel and followed by a qu`` () =
|
|
32
|
+
translate "equal" |> should equal "equalay"
|
|
33
|
+
|
|
34
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
35
|
+
let ``Word beginning with p`` () =
|
|
36
|
+
translate "pig" |> should equal "igpay"
|
|
24
37
|
|
|
25
38
|
[<Fact(Skip = "Remove to run test")>]
|
|
26
|
-
let ``
|
|
39
|
+
let ``Word beginning with k`` () =
|
|
40
|
+
translate "koala" |> should equal "oalakay"
|
|
41
|
+
|
|
42
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
43
|
+
let ``Word beginning with x`` () =
|
|
44
|
+
translate "xenon" |> should equal "enonxay"
|
|
45
|
+
|
|
46
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
47
|
+
let ``Word beginning with q without a following u`` () =
|
|
48
|
+
translate "qat" |> should equal "atqay"
|
|
49
|
+
|
|
50
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
51
|
+
let ``Word beginning with ch`` () =
|
|
27
52
|
translate "chair" |> should equal "airchay"
|
|
28
53
|
|
|
29
54
|
[<Fact(Skip = "Remove to run test")>]
|
|
30
|
-
let ``
|
|
55
|
+
let ``Word beginning with qu`` () =
|
|
31
56
|
translate "queen" |> should equal "eenquay"
|
|
32
57
|
|
|
33
58
|
[<Fact(Skip = "Remove to run test")>]
|
|
34
|
-
let ``
|
|
59
|
+
let ``Word beginning with qu and a preceding consonant`` () =
|
|
35
60
|
translate "square" |> should equal "aresquay"
|
|
36
61
|
|
|
37
62
|
[<Fact(Skip = "Remove to run test")>]
|
|
38
|
-
let ``
|
|
63
|
+
let ``Word beginning with th`` () =
|
|
39
64
|
translate "therapy" |> should equal "erapythay"
|
|
40
65
|
|
|
41
66
|
[<Fact(Skip = "Remove to run test")>]
|
|
42
|
-
let ``
|
|
67
|
+
let ``Word beginning with thr`` () =
|
|
43
68
|
translate "thrush" |> should equal "ushthray"
|
|
44
69
|
|
|
45
70
|
[<Fact(Skip = "Remove to run test")>]
|
|
46
|
-
let ``
|
|
71
|
+
let ``Word beginning with sch`` () =
|
|
47
72
|
translate "school" |> should equal "oolschay"
|
|
48
73
|
|
|
49
74
|
[<Fact(Skip = "Remove to run test")>]
|
|
50
|
-
let ``
|
|
75
|
+
let ``Word beginning with yt`` () =
|
|
51
76
|
translate "yttria" |> should equal "yttriaay"
|
|
52
77
|
|
|
53
78
|
[<Fact(Skip = "Remove to run test")>]
|
|
54
|
-
let ``
|
|
79
|
+
let ``Word beginning with xr`` () =
|
|
55
80
|
translate "xray" |> should equal "xrayay"
|
|
56
81
|
|
|
57
82
|
[<Fact(Skip = "Remove to run test")>]
|
|
58
|
-
let ``
|
|
59
|
-
translate "
|
|
83
|
+
let ``Y is treated like a consonant at the beginning of a word`` () =
|
|
84
|
+
translate "yellow" |> should equal "ellowyay"
|
|
85
|
+
|
|
86
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
87
|
+
let ``Y is treated like a vowel at the end of a consonant cluster`` () =
|
|
88
|
+
translate "rhythm" |> should equal "ythmrhay"
|
|
89
|
+
|
|
90
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
91
|
+
let ``Y as second letter in two letter word`` () =
|
|
92
|
+
translate "my" |> should equal "ymay"
|
|
93
|
+
|
|
94
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
95
|
+
let ``A whole phrase`` () =
|
|
96
|
+
translate "quick fast run" |> should equal "ickquay astfay unray"
|
|
97
|
+
|
|
@@ -14,9 +14,10 @@
|
|
|
14
14
|
|
|
15
15
|
<ItemGroup>
|
|
16
16
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0" />
|
|
17
|
-
<PackageReference Include="xunit" Version="2.3.0
|
|
18
|
-
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0
|
|
17
|
+
<PackageReference Include="xunit" Version="2.3.0" />
|
|
18
|
+
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0" />
|
|
19
19
|
<PackageReference Include="FsUnit.xUnit" Version="3.0.0" />
|
|
20
|
+
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.0" />
|
|
20
21
|
</ItemGroup>
|
|
21
22
|
|
|
22
23
|
</Project>
|
|
@@ -14,9 +14,10 @@
|
|
|
14
14
|
|
|
15
15
|
<ItemGroup>
|
|
16
16
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0" />
|
|
17
|
-
<PackageReference Include="xunit" Version="2.3.0
|
|
18
|
-
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0
|
|
17
|
+
<PackageReference Include="xunit" Version="2.3.0" />
|
|
18
|
+
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0" />
|
|
19
19
|
<PackageReference Include="FsUnit.xUnit" Version="3.0.0" />
|
|
20
|
+
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.0" />
|
|
20
21
|
</ItemGroup>
|
|
21
22
|
|
|
22
23
|
</Project>
|
|
@@ -14,9 +14,10 @@
|
|
|
14
14
|
|
|
15
15
|
<ItemGroup>
|
|
16
16
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0" />
|
|
17
|
-
<PackageReference Include="xunit" Version="2.3.0
|
|
18
|
-
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0
|
|
17
|
+
<PackageReference Include="xunit" Version="2.3.0" />
|
|
18
|
+
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0" />
|
|
19
19
|
<PackageReference Include="FsUnit.xUnit" Version="3.0.0" />
|
|
20
|
+
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.0" />
|
|
20
21
|
</ItemGroup>
|
|
21
22
|
|
|
22
23
|
</Project>
|
|
@@ -14,9 +14,10 @@
|
|
|
14
14
|
|
|
15
15
|
<ItemGroup>
|
|
16
16
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0" />
|
|
17
|
-
<PackageReference Include="xunit" Version="2.3.0
|
|
18
|
-
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0
|
|
17
|
+
<PackageReference Include="xunit" Version="2.3.0" />
|
|
18
|
+
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0" />
|
|
19
19
|
<PackageReference Include="FsUnit.xUnit" Version="3.0.0" />
|
|
20
|
+
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.0" />
|
|
20
21
|
</ItemGroup>
|
|
21
22
|
|
|
22
23
|
</Project>
|
|
@@ -14,9 +14,10 @@
|
|
|
14
14
|
|
|
15
15
|
<ItemGroup>
|
|
16
16
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0" />
|
|
17
|
-
<PackageReference Include="xunit" Version="2.3.0
|
|
18
|
-
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0
|
|
17
|
+
<PackageReference Include="xunit" Version="2.3.0" />
|
|
18
|
+
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0" />
|
|
19
19
|
<PackageReference Include="FsUnit.xUnit" Version="3.0.0" />
|
|
20
|
+
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.0" />
|
|
20
21
|
</ItemGroup>
|
|
21
22
|
|
|
22
23
|
</Project>
|
|
@@ -14,9 +14,10 @@
|
|
|
14
14
|
|
|
15
15
|
<ItemGroup>
|
|
16
16
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0" />
|
|
17
|
-
<PackageReference Include="xunit" Version="2.3.0
|
|
18
|
-
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0
|
|
17
|
+
<PackageReference Include="xunit" Version="2.3.0" />
|
|
18
|
+
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0" />
|
|
19
19
|
<PackageReference Include="FsUnit.xUnit" Version="3.0.0" />
|
|
20
|
+
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.0" />
|
|
20
21
|
</ItemGroup>
|
|
21
22
|
|
|
22
23
|
</Project>
|
|
@@ -4,6 +4,8 @@ open System
|
|
|
4
4
|
|
|
5
5
|
let abs (x:int) = Math.Abs x
|
|
6
6
|
|
|
7
|
+
let create (row, col) = row >= 0 && row < 8 && col >= 0 && col < 8
|
|
8
|
+
|
|
7
9
|
let canAttack (row1, col1) (row2, col2) =
|
|
8
|
-
if row1 = row2 && col1 = col2 then
|
|
10
|
+
if row1 = row2 && col1 = col2 then false
|
|
9
11
|
else row1 = row2 || col1 = col2 || (row1 - row2 |> abs) = (col1 - col2 |> abs)
|
|
@@ -14,9 +14,10 @@
|
|
|
14
14
|
|
|
15
15
|
<ItemGroup>
|
|
16
16
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0" />
|
|
17
|
-
<PackageReference Include="xunit" Version="2.3.0
|
|
18
|
-
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0
|
|
17
|
+
<PackageReference Include="xunit" Version="2.3.0" />
|
|
18
|
+
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0" />
|
|
19
19
|
<PackageReference Include="FsUnit.xUnit" Version="3.0.0" />
|
|
20
|
+
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.0" />
|
|
20
21
|
</ItemGroup>
|
|
21
22
|
|
|
22
23
|
</Project>
|
|
@@ -1,41 +1,71 @@
|
|
|
1
|
+
// This file was auto-generated based on version 1.0.0 of the canonical data.
|
|
2
|
+
|
|
1
3
|
module QueenAttackTest
|
|
2
4
|
|
|
3
|
-
open System
|
|
4
|
-
open Xunit
|
|
5
5
|
open FsUnit.Xunit
|
|
6
|
+
open Xunit
|
|
6
7
|
|
|
7
8
|
open QueenAttack
|
|
8
9
|
|
|
9
10
|
[<Fact>]
|
|
10
|
-
let ``
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
let ``Queen with a valid position`` () =
|
|
12
|
+
create (2, 2) |> should equal true
|
|
13
|
+
|
|
14
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
15
|
+
let ``Queen must have positive rank`` () =
|
|
16
|
+
create (-2, 2) |> should equal false
|
|
17
|
+
|
|
18
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
19
|
+
let ``Queen must have rank on board`` () =
|
|
20
|
+
create (8, 4) |> should equal false
|
|
21
|
+
|
|
22
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
23
|
+
let ``Queen must have positive file`` () =
|
|
24
|
+
create (2, -2) |> should equal false
|
|
14
25
|
|
|
15
26
|
[<Fact(Skip = "Remove to run test")>]
|
|
16
|
-
let ``
|
|
17
|
-
|
|
27
|
+
let ``Queen must have file on board`` () =
|
|
28
|
+
create (4, 8) |> should equal false
|
|
18
29
|
|
|
19
30
|
[<Fact(Skip = "Remove to run test")>]
|
|
20
|
-
let ``Can attack
|
|
21
|
-
|
|
31
|
+
let ``Can not attack`` () =
|
|
32
|
+
let whiteQueen = (2, 4)
|
|
33
|
+
let blackQueen = (6, 6)
|
|
34
|
+
canAttack blackQueen whiteQueen |> should equal false
|
|
22
35
|
|
|
23
36
|
[<Fact(Skip = "Remove to run test")>]
|
|
24
|
-
let ``Can attack on same
|
|
25
|
-
|
|
37
|
+
let ``Can attack on same rank`` () =
|
|
38
|
+
let whiteQueen = (2, 4)
|
|
39
|
+
let blackQueen = (2, 6)
|
|
40
|
+
canAttack blackQueen whiteQueen |> should equal true
|
|
26
41
|
|
|
27
42
|
[<Fact(Skip = "Remove to run test")>]
|
|
28
|
-
let ``Can attack on
|
|
29
|
-
|
|
43
|
+
let ``Can attack on same file`` () =
|
|
44
|
+
let whiteQueen = (4, 5)
|
|
45
|
+
let blackQueen = (2, 5)
|
|
46
|
+
canAttack blackQueen whiteQueen |> should equal true
|
|
30
47
|
|
|
31
48
|
[<Fact(Skip = "Remove to run test")>]
|
|
32
|
-
let ``Can attack on
|
|
33
|
-
|
|
49
|
+
let ``Can attack on first diagonal`` () =
|
|
50
|
+
let whiteQueen = (2, 2)
|
|
51
|
+
let blackQueen = (0, 4)
|
|
52
|
+
canAttack blackQueen whiteQueen |> should equal true
|
|
34
53
|
|
|
35
54
|
[<Fact(Skip = "Remove to run test")>]
|
|
36
|
-
let ``Can attack on
|
|
37
|
-
|
|
55
|
+
let ``Can attack on second diagonal`` () =
|
|
56
|
+
let whiteQueen = (2, 2)
|
|
57
|
+
let blackQueen = (3, 1)
|
|
58
|
+
canAttack blackQueen whiteQueen |> should equal true
|
|
38
59
|
|
|
39
60
|
[<Fact(Skip = "Remove to run test")>]
|
|
40
|
-
let ``Can attack on
|
|
41
|
-
|
|
61
|
+
let ``Can attack on third diagonal`` () =
|
|
62
|
+
let whiteQueen = (2, 2)
|
|
63
|
+
let blackQueen = (1, 1)
|
|
64
|
+
canAttack blackQueen whiteQueen |> should equal true
|
|
65
|
+
|
|
66
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
67
|
+
let ``Can attack on fourth diagonal`` () =
|
|
68
|
+
let whiteQueen = (2, 2)
|
|
69
|
+
let blackQueen = (5, 5)
|
|
70
|
+
canAttack blackQueen whiteQueen |> should equal true
|
|
71
|
+
|
|
@@ -14,9 +14,10 @@
|
|
|
14
14
|
|
|
15
15
|
<ItemGroup>
|
|
16
16
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0" />
|
|
17
|
-
<PackageReference Include="xunit" Version="2.3.0
|
|
18
|
-
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0
|
|
17
|
+
<PackageReference Include="xunit" Version="2.3.0" />
|
|
18
|
+
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0" />
|
|
19
19
|
<PackageReference Include="FsUnit.xUnit" Version="3.0.0" />
|
|
20
|
+
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.0" />
|
|
20
21
|
</ItemGroup>
|
|
21
22
|
|
|
22
23
|
</Project>
|
|
@@ -14,9 +14,10 @@
|
|
|
14
14
|
|
|
15
15
|
<ItemGroup>
|
|
16
16
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0" />
|
|
17
|
-
<PackageReference Include="xunit" Version="2.3.0
|
|
18
|
-
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0
|
|
17
|
+
<PackageReference Include="xunit" Version="2.3.0" />
|
|
18
|
+
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0" />
|
|
19
19
|
<PackageReference Include="FsUnit.xUnit" Version="3.0.0" />
|
|
20
|
+
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.0" />
|
|
20
21
|
</ItemGroup>
|
|
21
22
|
|
|
22
23
|
</Project>
|
|
@@ -1,41 +1,81 @@
|
|
|
1
|
+
// This file was auto-generated based on version 1.0.0 of the canonical data.
|
|
2
|
+
|
|
1
3
|
module RaindropsTest
|
|
2
|
-
|
|
3
|
-
open Xunit
|
|
4
|
+
|
|
4
5
|
open FsUnit.Xunit
|
|
6
|
+
open Xunit
|
|
7
|
+
|
|
5
8
|
open Raindrops
|
|
6
9
|
|
|
7
|
-
[<
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
[<
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
[<
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
[<
|
|
32
|
-
let ``
|
|
33
|
-
convert
|
|
34
|
-
|
|
35
|
-
[<
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
[<
|
|
40
|
-
let ``
|
|
41
|
-
convert
|
|
10
|
+
[<Fact>]
|
|
11
|
+
let ``The sound for 1 is 1`` () =
|
|
12
|
+
convert 1 |> should equal "1"
|
|
13
|
+
|
|
14
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
15
|
+
let ``The sound for 3 is Pling`` () =
|
|
16
|
+
convert 3 |> should equal "Pling"
|
|
17
|
+
|
|
18
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
19
|
+
let ``The sound for 5 is Plang`` () =
|
|
20
|
+
convert 5 |> should equal "Plang"
|
|
21
|
+
|
|
22
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
23
|
+
let ``The sound for 7 is Plong`` () =
|
|
24
|
+
convert 7 |> should equal "Plong"
|
|
25
|
+
|
|
26
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
27
|
+
let ``The sound for 6 is Pling as it has a factor 3`` () =
|
|
28
|
+
convert 6 |> should equal "Pling"
|
|
29
|
+
|
|
30
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
31
|
+
let ``2 to the power 3 does not make a raindrop sound as 3 is the exponent not the base`` () =
|
|
32
|
+
convert 8 |> should equal "8"
|
|
33
|
+
|
|
34
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
35
|
+
let ``The sound for 9 is Pling as it has a factor 3`` () =
|
|
36
|
+
convert 9 |> should equal "Pling"
|
|
37
|
+
|
|
38
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
39
|
+
let ``The sound for 10 is Plang as it has a factor 5`` () =
|
|
40
|
+
convert 10 |> should equal "Plang"
|
|
41
|
+
|
|
42
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
43
|
+
let ``The sound for 14 is Plong as it has a factor of 7`` () =
|
|
44
|
+
convert 14 |> should equal "Plong"
|
|
45
|
+
|
|
46
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
47
|
+
let ``The sound for 15 is PlingPlang as it has factors 3 and 5`` () =
|
|
48
|
+
convert 15 |> should equal "PlingPlang"
|
|
49
|
+
|
|
50
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
51
|
+
let ``The sound for 21 is PlingPlong as it has factors 3 and 7`` () =
|
|
52
|
+
convert 21 |> should equal "PlingPlong"
|
|
53
|
+
|
|
54
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
55
|
+
let ``The sound for 25 is Plang as it has a factor 5`` () =
|
|
56
|
+
convert 25 |> should equal "Plang"
|
|
57
|
+
|
|
58
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
59
|
+
let ``The sound for 27 is Pling as it has a factor 3`` () =
|
|
60
|
+
convert 27 |> should equal "Pling"
|
|
61
|
+
|
|
62
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
63
|
+
let ``The sound for 35 is PlangPlong as it has factors 5 and 7`` () =
|
|
64
|
+
convert 35 |> should equal "PlangPlong"
|
|
65
|
+
|
|
66
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
67
|
+
let ``The sound for 49 is Plong as it has a factor 7`` () =
|
|
68
|
+
convert 49 |> should equal "Plong"
|
|
69
|
+
|
|
70
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
71
|
+
let ``The sound for 52 is 52`` () =
|
|
72
|
+
convert 52 |> should equal "52"
|
|
73
|
+
|
|
74
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
75
|
+
let ``The sound for 105 is PlingPlangPlong as it has factors 3, 5 and 7`` () =
|
|
76
|
+
convert 105 |> should equal "PlingPlangPlong"
|
|
77
|
+
|
|
78
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
79
|
+
let ``The sound for 3125 is Plang as it has a factor 5`` () =
|
|
80
|
+
convert 3125 |> should equal "Plang"
|
|
81
|
+
|
|
@@ -14,9 +14,10 @@
|
|
|
14
14
|
|
|
15
15
|
<ItemGroup>
|
|
16
16
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0" />
|
|
17
|
-
<PackageReference Include="xunit" Version="2.3.0
|
|
18
|
-
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0
|
|
17
|
+
<PackageReference Include="xunit" Version="2.3.0" />
|
|
18
|
+
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0" />
|
|
19
19
|
<PackageReference Include="FsUnit.xUnit" Version="3.0.0" />
|
|
20
|
+
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.0" />
|
|
20
21
|
</ItemGroup>
|
|
21
22
|
|
|
22
23
|
</Project>
|
|
@@ -14,9 +14,10 @@
|
|
|
14
14
|
|
|
15
15
|
<ItemGroup>
|
|
16
16
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0" />
|
|
17
|
-
<PackageReference Include="xunit" Version="2.3.0
|
|
18
|
-
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0
|
|
17
|
+
<PackageReference Include="xunit" Version="2.3.0" />
|
|
18
|
+
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0" />
|
|
19
19
|
<PackageReference Include="FsUnit.xUnit" Version="3.0.0" />
|
|
20
|
+
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.0" />
|
|
20
21
|
</ItemGroup>
|
|
21
22
|
|
|
22
23
|
</Project>
|
|
@@ -1,11 +1,19 @@
|
|
|
1
|
-
module
|
|
1
|
+
module RnaTranscription
|
|
2
|
+
|
|
3
|
+
open System.Text.RegularExpressions
|
|
2
4
|
|
|
3
5
|
let dnaToRna =
|
|
4
6
|
function
|
|
5
|
-
| 'G' -> 'C'
|
|
6
|
-
| 'C' -> 'G'
|
|
7
|
-
| 'T' -> 'A'
|
|
8
|
-
| 'A' -> 'U'
|
|
9
|
-
| _ ->
|
|
7
|
+
| 'G' -> Some 'C'
|
|
8
|
+
| 'C' -> Some 'G'
|
|
9
|
+
| 'T' -> Some 'A'
|
|
10
|
+
| 'A' -> Some 'U'
|
|
11
|
+
| _ -> None
|
|
12
|
+
|
|
13
|
+
let toRna dna =
|
|
14
|
+
let helper rna nucleotide =
|
|
15
|
+
match rna, dnaToRna nucleotide with
|
|
16
|
+
| Some x, Some y -> Some (x + string y)
|
|
17
|
+
| _ -> None
|
|
10
18
|
|
|
11
|
-
|
|
19
|
+
Seq.fold helper (Some "") dna
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module
|
|
1
|
+
module RnaTranscription
|
|
2
2
|
|
|
3
|
-
let toRna (dna: string): string = failwith "You need to implement this function."
|
|
3
|
+
let toRna (dna: string): string option = failwith "You need to implement this function."
|