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>
|
|
@@ -1,21 +1,30 @@
|
|
|
1
|
+
// This file was auto-generated based on version 1.0.0 of the canonical data.
|
|
2
|
+
|
|
1
3
|
module GigasecondTest
|
|
2
4
|
|
|
3
|
-
open Xunit
|
|
4
5
|
open FsUnit.Xunit
|
|
5
|
-
open
|
|
6
|
+
open Xunit
|
|
6
7
|
open System
|
|
7
|
-
|
|
8
|
+
|
|
9
|
+
open Gigasecond
|
|
10
|
+
|
|
8
11
|
[<Fact>]
|
|
9
|
-
let ``
|
|
10
|
-
|
|
11
|
-
|
|
12
|
+
let ``Date only specification of time`` () =
|
|
13
|
+
add (DateTime(2011, 4, 25)) |> should equal (DateTime(2043, 1, 1, 1, 46, 40))
|
|
14
|
+
|
|
15
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
16
|
+
let ``Second test for date only specification of time`` () =
|
|
17
|
+
add (DateTime(1977, 6, 13)) |> should equal (DateTime(2009, 2, 19, 1, 46, 40))
|
|
12
18
|
|
|
13
19
|
[<Fact(Skip = "Remove to run test")>]
|
|
14
|
-
let ``
|
|
15
|
-
|
|
16
|
-
gigasecond input |> should equal (DateTime(2009, 2, 19))
|
|
20
|
+
let ``Third test for date only specification of time`` () =
|
|
21
|
+
add (DateTime(1959, 7, 19)) |> should equal (DateTime(1991, 3, 27, 1, 46, 40))
|
|
17
22
|
|
|
18
23
|
[<Fact(Skip = "Remove to run test")>]
|
|
19
|
-
let ``
|
|
20
|
-
|
|
21
|
-
|
|
24
|
+
let ``Full time specified`` () =
|
|
25
|
+
add (DateTime(2015, 1, 24, 22, 0, 0)) |> should equal (DateTime(2046, 10, 2, 23, 46, 40))
|
|
26
|
+
|
|
27
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
28
|
+
let ``Full time with day roll-over`` () =
|
|
29
|
+
add (DateTime(2015, 1, 24, 23, 59, 59)) |> should equal (DateTime(2046, 10, 3, 1, 46, 39))
|
|
30
|
+
|
|
@@ -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>
|
|
@@ -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,10 +1,13 @@
|
|
|
1
|
+
// This file was auto-generated based on version 1.0.0 of the canonical data.
|
|
2
|
+
|
|
1
3
|
module HelloWorldTest
|
|
2
4
|
|
|
3
|
-
open Xunit
|
|
4
5
|
open FsUnit.Xunit
|
|
6
|
+
open Xunit
|
|
5
7
|
|
|
6
8
|
open HelloWorld
|
|
7
9
|
|
|
8
10
|
[<Fact>]
|
|
9
|
-
let ``Say
|
|
10
|
-
hello |> should equal "Hello, World!"
|
|
11
|
+
let ``Say Hi!`` () =
|
|
12
|
+
hello |> should equal "Hello, World!"
|
|
13
|
+
|
|
@@ -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,69 +1,45 @@
|
|
|
1
|
+
// This file was auto-generated based on version 1.2.0 of the canonical data.
|
|
2
|
+
|
|
1
3
|
module IsogramTest
|
|
2
|
-
|
|
3
|
-
open Xunit
|
|
4
|
+
|
|
4
5
|
open FsUnit.Xunit
|
|
6
|
+
open Xunit
|
|
5
7
|
|
|
6
8
|
open Isogram
|
|
7
9
|
|
|
8
10
|
[<Fact>]
|
|
9
11
|
let ``Empty string`` () =
|
|
10
|
-
|
|
11
|
-
let expected = true
|
|
12
|
-
let actual = isogram input
|
|
13
|
-
actual |> should equal expected
|
|
12
|
+
isIsogram "" |> should equal true
|
|
14
13
|
|
|
15
14
|
[<Fact(Skip = "Remove to run test")>]
|
|
16
15
|
let ``Isogram with only lower case characters`` () =
|
|
17
|
-
|
|
18
|
-
let expected = true
|
|
19
|
-
let actual = isogram input
|
|
20
|
-
actual |> should equal expected
|
|
16
|
+
isIsogram "isogram" |> should equal true
|
|
21
17
|
|
|
22
18
|
[<Fact(Skip = "Remove to run test")>]
|
|
23
19
|
let ``Word with one duplicated character`` () =
|
|
24
|
-
|
|
25
|
-
let expected = false
|
|
26
|
-
let actual = isogram input
|
|
27
|
-
actual |> should equal expected
|
|
20
|
+
isIsogram "eleven" |> should equal false
|
|
28
21
|
|
|
29
22
|
[<Fact(Skip = "Remove to run test")>]
|
|
30
23
|
let ``Longest reported english isogram`` () =
|
|
31
|
-
|
|
32
|
-
let expected = true
|
|
33
|
-
let actual = isogram input
|
|
34
|
-
actual |> should equal expected
|
|
24
|
+
isIsogram "subdermatoglyphic" |> should equal true
|
|
35
25
|
|
|
36
26
|
[<Fact(Skip = "Remove to run test")>]
|
|
37
27
|
let ``Word with duplicated character in mixed case`` () =
|
|
38
|
-
|
|
39
|
-
let expected = false
|
|
40
|
-
let actual = isogram input
|
|
41
|
-
actual |> should equal expected
|
|
28
|
+
isIsogram "Alphabet" |> should equal false
|
|
42
29
|
|
|
43
30
|
[<Fact(Skip = "Remove to run test")>]
|
|
44
31
|
let ``Hypothetical isogrammic word with hyphen`` () =
|
|
45
|
-
|
|
46
|
-
let expected = true
|
|
47
|
-
let actual = isogram input
|
|
48
|
-
actual |> should equal expected
|
|
32
|
+
isIsogram "thumbscrew-japingly" |> should equal true
|
|
49
33
|
|
|
50
34
|
[<Fact(Skip = "Remove to run test")>]
|
|
51
|
-
let ``Isogram with duplicated
|
|
52
|
-
|
|
53
|
-
let expected = true
|
|
54
|
-
let actual = isogram input
|
|
55
|
-
actual |> should equal expected
|
|
35
|
+
let ``Isogram with duplicated hyphen`` () =
|
|
36
|
+
isIsogram "six-year-old" |> should equal true
|
|
56
37
|
|
|
57
38
|
[<Fact(Skip = "Remove to run test")>]
|
|
58
39
|
let ``Made-up name that is an isogram`` () =
|
|
59
|
-
|
|
60
|
-
let expected = true
|
|
61
|
-
let actual = isogram input
|
|
62
|
-
actual |> should equal expected
|
|
40
|
+
isIsogram "Emily Jung Schwartzkopf" |> should equal true
|
|
63
41
|
|
|
64
42
|
[<Fact(Skip = "Remove to run test")>]
|
|
65
|
-
let ``
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
let actual = isogram input
|
|
69
|
-
actual |> should equal expected
|
|
43
|
+
let ``Duplicated character in the middle`` () =
|
|
44
|
+
isIsogram "accentor" |> should equal false
|
|
45
|
+
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module
|
|
1
|
+
module KindergartenGarden
|
|
2
2
|
|
|
3
3
|
type Plant = Violets | Radishes | Clover | Grass
|
|
4
4
|
|
|
@@ -22,7 +22,7 @@ let private plantsInRow (row: string) =
|
|
|
22
22
|
|> Seq.chunkBySize plantsPerChildPerRow
|
|
23
23
|
|> Seq.map List.ofArray
|
|
24
24
|
|
|
25
|
-
let
|
|
25
|
+
let toGarden children (windowSills: string) =
|
|
26
26
|
let rows = windowSills.Split rowSeparator
|
|
27
27
|
let row1 = plantsInRow rows.[0]
|
|
28
28
|
let row2 = plantsInRow rows.[1]
|
|
@@ -30,6 +30,8 @@ let garden children (windowSills: string) =
|
|
|
30
30
|
|> Seq.map (fun (child, plants1, plants2) -> (child, plants1 @ plants2))
|
|
31
31
|
|> Map.ofSeq
|
|
32
32
|
|
|
33
|
-
let
|
|
33
|
+
let plantsForCustomStudents diagram student students =
|
|
34
|
+
let garden = toGarden students diagram
|
|
35
|
+
defaultArg (Map.tryFind student garden) []
|
|
34
36
|
|
|
35
|
-
let
|
|
37
|
+
let plantsForDefaultStudents diagram student = plantsForCustomStudents diagram student defaultChildren
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
module
|
|
1
|
+
module KindergartenGarden
|
|
2
2
|
|
|
3
3
|
// TODO: define the Plant type
|
|
4
4
|
|
|
5
|
-
let
|
|
5
|
+
let plantsForDefaultStudents diagram student = failwith "You need to implement this function."
|
|
6
6
|
|
|
7
|
-
let
|
|
8
|
-
|
|
9
|
-
let lookupPlants child childPlantsMap = failwith "You need to implement this function."
|
|
7
|
+
let plantsForCustomStudents diagram student students = failwith "You need to implement this function."
|
|
@@ -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,51 +1,104 @@
|
|
|
1
|
-
|
|
1
|
+
// This file was auto-generated based on version 1.0.0 of the canonical data.
|
|
2
|
+
|
|
3
|
+
module KindergartenGardenTest
|
|
2
4
|
|
|
3
|
-
open Xunit
|
|
4
5
|
open FsUnit.Xunit
|
|
5
|
-
open
|
|
6
|
+
open Xunit
|
|
7
|
+
|
|
8
|
+
open KindergartenGarden
|
|
6
9
|
|
|
7
10
|
[<Fact>]
|
|
8
|
-
let ``
|
|
9
|
-
let
|
|
10
|
-
let
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
let
|
|
25
|
-
let
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
let
|
|
31
|
-
let
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
let
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
11
|
+
let ``Partial garden - garden with single student`` () =
|
|
12
|
+
let student = "Alice"
|
|
13
|
+
let diagram = "RC\nGG"
|
|
14
|
+
let expected = [Plant.Radishes; Plant.Clover; Plant.Grass; Plant.Grass]
|
|
15
|
+
plantsForDefaultStudents diagram student |> should equal expected
|
|
16
|
+
|
|
17
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
18
|
+
let ``Partial garden - different garden with single student`` () =
|
|
19
|
+
let student = "Alice"
|
|
20
|
+
let diagram = "VC\nRC"
|
|
21
|
+
let expected = [Plant.Violets; Plant.Clover; Plant.Radishes; Plant.Clover]
|
|
22
|
+
plantsForDefaultStudents diagram student |> should equal expected
|
|
23
|
+
|
|
24
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
25
|
+
let ``Partial garden - garden with two students`` () =
|
|
26
|
+
let student = "Bob"
|
|
27
|
+
let diagram = "VVCG\nVVRC"
|
|
28
|
+
let expected = [Plant.Clover; Plant.Grass; Plant.Radishes; Plant.Clover]
|
|
29
|
+
plantsForDefaultStudents diagram student |> should equal expected
|
|
30
|
+
|
|
31
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
32
|
+
let ``Partial garden - multiple students for the same garden with three students - second student's garden`` () =
|
|
33
|
+
let student = "Bob"
|
|
34
|
+
let diagram = "VVCCGG\nVVCCGG"
|
|
35
|
+
let expected = [Plant.Clover; Plant.Clover; Plant.Clover; Plant.Clover]
|
|
36
|
+
plantsForDefaultStudents diagram student |> should equal expected
|
|
37
|
+
|
|
38
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
39
|
+
let ``Partial garden - multiple students for the same garden with three students - third student's garden`` () =
|
|
40
|
+
let student = "Charlie"
|
|
41
|
+
let diagram = "VVCCGG\nVVCCGG"
|
|
42
|
+
let expected = [Plant.Grass; Plant.Grass; Plant.Grass; Plant.Grass]
|
|
43
|
+
plantsForDefaultStudents diagram student |> should equal expected
|
|
44
|
+
|
|
45
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
46
|
+
let ``Full garden - first student's garden`` () =
|
|
47
|
+
let student = "Alice"
|
|
48
|
+
let diagram = "VRCGVVRVCGGCCGVRGCVCGCGV\nVRCCCGCRRGVCGCRVVCVGCGCV"
|
|
49
|
+
let expected = [Plant.Violets; Plant.Radishes; Plant.Violets; Plant.Radishes]
|
|
50
|
+
plantsForDefaultStudents diagram student |> should equal expected
|
|
51
|
+
|
|
52
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
53
|
+
let ``Full garden - second student's garden`` () =
|
|
54
|
+
let student = "Bob"
|
|
55
|
+
let diagram = "VRCGVVRVCGGCCGVRGCVCGCGV\nVRCCCGCRRGVCGCRVVCVGCGCV"
|
|
56
|
+
let expected = [Plant.Clover; Plant.Grass; Plant.Clover; Plant.Clover]
|
|
57
|
+
plantsForDefaultStudents diagram student |> should equal expected
|
|
58
|
+
|
|
59
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
60
|
+
let ``Full garden - second to last student's garden`` () =
|
|
61
|
+
let student = "Kincaid"
|
|
62
|
+
let diagram = "VRCGVVRVCGGCCGVRGCVCGCGV\nVRCCCGCRRGVCGCRVVCVGCGCV"
|
|
63
|
+
let expected = [Plant.Grass; Plant.Clover; Plant.Clover; Plant.Grass]
|
|
64
|
+
plantsForDefaultStudents diagram student |> should equal expected
|
|
65
|
+
|
|
66
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
67
|
+
let ``Full garden - last student's garden`` () =
|
|
68
|
+
let student = "Larry"
|
|
69
|
+
let diagram = "VRCGVVRVCGGCCGVRGCVCGCGV\nVRCCCGCRRGVCGCRVVCVGCGCV"
|
|
70
|
+
let expected = [Plant.Grass; Plant.Violets; Plant.Clover; Plant.Violets]
|
|
71
|
+
plantsForDefaultStudents diagram student |> should equal expected
|
|
72
|
+
|
|
73
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
74
|
+
let ``Non-alphabetical student list - first student's garden`` () =
|
|
75
|
+
let student = "Patricia"
|
|
76
|
+
let students = ["Samantha"; "Patricia"; "Xander"; "Roger"]
|
|
77
|
+
let diagram = "VCRRGVRG\nRVGCCGCV"
|
|
78
|
+
let expected = [Plant.Violets; Plant.Clover; Plant.Radishes; Plant.Violets]
|
|
79
|
+
plantsForCustomStudents diagram student students |> should equal expected
|
|
80
|
+
|
|
81
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
82
|
+
let ``Non-alphabetical student list - second student's garden`` () =
|
|
83
|
+
let student = "Roger"
|
|
84
|
+
let students = ["Samantha"; "Patricia"; "Xander"; "Roger"]
|
|
85
|
+
let diagram = "VCRRGVRG\nRVGCCGCV"
|
|
86
|
+
let expected = [Plant.Radishes; Plant.Radishes; Plant.Grass; Plant.Clover]
|
|
87
|
+
plantsForCustomStudents diagram student students |> should equal expected
|
|
88
|
+
|
|
89
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
90
|
+
let ``Non-alphabetical student list - third student's garden`` () =
|
|
91
|
+
let student = "Samantha"
|
|
92
|
+
let students = ["Samantha"; "Patricia"; "Xander"; "Roger"]
|
|
93
|
+
let diagram = "VCRRGVRG\nRVGCCGCV"
|
|
94
|
+
let expected = [Plant.Grass; Plant.Violets; Plant.Clover; Plant.Grass]
|
|
95
|
+
plantsForCustomStudents diagram student students |> should equal expected
|
|
96
|
+
|
|
97
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
98
|
+
let ``Non-alphabetical student list - fourth (last) student's garden`` () =
|
|
99
|
+
let student = "Xander"
|
|
100
|
+
let students = ["Samantha"; "Patricia"; "Xander"; "Roger"]
|
|
101
|
+
let diagram = "VCRRGVRG\nRVGCCGCV"
|
|
102
|
+
let expected = [Plant.Radishes; Plant.Grass; Plant.Clover; Plant.Violets]
|
|
103
|
+
plantsForCustomStudents diagram student students |> should equal expected
|
|
104
|
+
|
|
@@ -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,3 +1,3 @@
|
|
|
1
|
-
module
|
|
1
|
+
module Leap
|
|
2
2
|
|
|
3
|
-
let
|
|
3
|
+
let leapYear (year: int) = year % 4 = 0 && (year % 400 = 0 || year % 100 <> 0)
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module
|
|
1
|
+
module Leap
|
|
2
2
|
|
|
3
|
-
let
|
|
3
|
+
let leapYear (year: int): bool = failwith "You need to implement this function."
|
|
@@ -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,21 +1,25 @@
|
|
|
1
|
-
|
|
1
|
+
// This file was auto-generated based on version 1.0.0 of the canonical data.
|
|
2
|
+
|
|
3
|
+
module LeapTest
|
|
2
4
|
|
|
3
|
-
open Xunit
|
|
4
5
|
open FsUnit.Xunit
|
|
5
|
-
open
|
|
6
|
-
|
|
6
|
+
open Xunit
|
|
7
|
+
|
|
8
|
+
open Leap
|
|
9
|
+
|
|
7
10
|
[<Fact>]
|
|
8
|
-
let ``
|
|
9
|
-
|
|
10
|
-
|
|
11
|
+
let ``Year not divisible by 4: common year`` () =
|
|
12
|
+
leapYear 2015 |> should equal false
|
|
13
|
+
|
|
11
14
|
[<Fact(Skip = "Remove to run test")>]
|
|
12
|
-
let ``
|
|
13
|
-
|
|
14
|
-
|
|
15
|
+
let ``Year divisible by 4, not divisible by 100: leap year`` () =
|
|
16
|
+
leapYear 2016 |> should equal true
|
|
17
|
+
|
|
15
18
|
[<Fact(Skip = "Remove to run test")>]
|
|
16
|
-
let ``
|
|
17
|
-
|
|
18
|
-
|
|
19
|
+
let ``Year divisible by 100, not divisible by 400: common year`` () =
|
|
20
|
+
leapYear 2100 |> should equal false
|
|
21
|
+
|
|
19
22
|
[<Fact(Skip = "Remove to run test")>]
|
|
20
|
-
let ``
|
|
21
|
-
|
|
23
|
+
let ``Year divisible by 400: leap year`` () =
|
|
24
|
+
leapYear 2000 |> should equal true
|
|
25
|
+
|
|
@@ -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>
|