trackler 2.2.1.22 → 2.2.1.23
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/tracks/bash/exercises/bob/bob_test.sh +8 -6
- data/tracks/bash/exercises/bob/example.sh +30 -6
- data/tracks/coffeescript/docs/SNIPPET.txt +4 -0
- data/tracks/csharp/generators/Exercises/Allergies.cs +0 -2
- data/tracks/csharp/generators/Exercises/Anagram.cs +0 -2
- data/tracks/csharp/generators/Exercises/BinarySearch.cs +0 -2
- data/tracks/csharp/generators/Exercises/ComplexNumbers.cs +0 -2
- data/tracks/csharp/generators/Exercises/RailFenceCipher.cs +1 -2
- data/tracks/csharp/generators/Exercises/SpaceAge.cs +0 -3
- data/tracks/csharp/generators/Input/CanonicalDataCase.cs +37 -2
- data/tracks/dart/docs/SNIPPET.txt +5 -0
- data/tracks/ecmascript/exercises/simple-cipher/simple-cipher.spec.js +5 -1
- data/tracks/elm/docs/SNIPPET.txt +10 -0
- data/tracks/fortran/docs/SNIPPET.txt +9 -0
- data/tracks/fsharp/.gitignore +2 -2
- data/tracks/fsharp/.travis.yml +18 -5
- data/tracks/fsharp/build.cake +92 -0
- data/tracks/fsharp/build.ps1 +81 -0
- data/tracks/fsharp/build.sh +56 -33
- data/tracks/fsharp/config.json +14 -14
- data/tracks/fsharp/docs/INSTALLATION.md +14 -45
- data/tracks/fsharp/docs/TESTS.md +12 -25
- data/tracks/fsharp/exercises/Exercises.sln +648 -0
- data/tracks/fsharp/exercises/accumulate/Accumulate.fs +3 -0
- data/tracks/fsharp/exercises/accumulate/Accumulate.fsproj +22 -0
- data/tracks/fsharp/exercises/accumulate/AccumulateTest.fs +18 -22
- data/tracks/fsharp/exercises/accumulate/HINTS.md +1 -0
- data/tracks/fsharp/exercises/accumulate/Program.fs +1 -0
- data/tracks/fsharp/exercises/acronym/Acronym.fs +3 -0
- data/tracks/fsharp/exercises/acronym/Acronym.fsproj +22 -0
- data/tracks/fsharp/exercises/acronym/AcronymTest.fs +18 -24
- data/tracks/fsharp/exercises/acronym/Program.fs +1 -0
- data/tracks/fsharp/exercises/all-your-base/AllYourBase.fs +3 -0
- data/tracks/fsharp/exercises/all-your-base/AllYourBase.fsproj +22 -0
- data/tracks/fsharp/exercises/all-your-base/AllYourBaseTest.fs +45 -64
- data/tracks/fsharp/exercises/all-your-base/Program.fs +1 -0
- data/tracks/fsharp/exercises/allergies/Allergies.fs +9 -0
- data/tracks/fsharp/exercises/allergies/Allergies.fsproj +22 -0
- data/tracks/fsharp/exercises/allergies/AllergiesTest.fs +47 -51
- data/tracks/fsharp/exercises/allergies/Program.fs +1 -0
- data/tracks/fsharp/exercises/alphametics/Alphametics.fs +3 -0
- data/tracks/fsharp/exercises/alphametics/Alphametics.fsproj +22 -0
- data/tracks/fsharp/exercises/alphametics/AlphameticsTest.fs +19 -25
- data/tracks/fsharp/exercises/alphametics/Example.fs +13 -13
- data/tracks/fsharp/exercises/alphametics/Program.fs +1 -0
- data/tracks/fsharp/exercises/anagram/Anagram.fs +3 -0
- data/tracks/fsharp/exercises/anagram/Anagram.fsproj +22 -0
- data/tracks/fsharp/exercises/anagram/AnagramTest.fs +22 -33
- data/tracks/fsharp/exercises/anagram/Program.fs +1 -0
- data/tracks/fsharp/exercises/atbash-cipher/AtbashCipher.fs +3 -0
- data/tracks/fsharp/exercises/atbash-cipher/AtbashCipher.fsproj +22 -0
- data/tracks/fsharp/exercises/atbash-cipher/{AtbashTest.fs → AtbashCipherTest.fs} +18 -24
- data/tracks/fsharp/exercises/atbash-cipher/Program.fs +1 -0
- data/tracks/fsharp/exercises/bank-account/BankAccount.fs +11 -0
- data/tracks/fsharp/exercises/bank-account/BankAccount.fsproj +22 -0
- data/tracks/fsharp/exercises/bank-account/BankAccountTest.fs +16 -19
- data/tracks/fsharp/exercises/bank-account/Program.fs +1 -0
- data/tracks/fsharp/exercises/beer-song/BeerSong.fs +7 -0
- data/tracks/fsharp/exercises/beer-song/BeerSong.fsproj +22 -0
- data/tracks/fsharp/exercises/beer-song/BeerSongTest.fs +17 -22
- data/tracks/fsharp/exercises/beer-song/Program.fs +1 -0
- data/tracks/fsharp/exercises/binary-search/BinarySearch.fs +3 -0
- data/tracks/fsharp/exercises/binary-search/BinarySearch.fsproj +22 -0
- data/tracks/fsharp/exercises/binary-search/BinarySearchTest.fs +21 -28
- data/tracks/fsharp/exercises/binary-search/Program.fs +1 -0
- data/tracks/fsharp/exercises/binary-search-tree/BinarySearchTree.fs +15 -0
- data/tracks/fsharp/exercises/binary-search-tree/BinarySearchTree.fsproj +22 -0
- data/tracks/fsharp/exercises/binary-search-tree/BinarySearchTreeTest.fs +31 -38
- data/tracks/fsharp/exercises/binary-search-tree/Program.fs +1 -0
- data/tracks/fsharp/exercises/bob/Bob.fs +3 -0
- data/tracks/fsharp/exercises/bob/Bob.fsproj +22 -0
- data/tracks/fsharp/exercises/bob/BobTest.fs +33 -46
- data/tracks/fsharp/exercises/bob/Program.fs +1 -0
- data/tracks/fsharp/exercises/book-store/BookStore.fs +3 -0
- data/tracks/fsharp/exercises/book-store/BookStore.fsproj +22 -0
- data/tracks/fsharp/exercises/book-store/BookStoreTest.fs +27 -37
- data/tracks/fsharp/exercises/book-store/Program.fs +1 -0
- data/tracks/fsharp/exercises/bowling/Bowling.fs +7 -0
- data/tracks/fsharp/exercises/bowling/Bowling.fsproj +22 -0
- data/tracks/fsharp/exercises/bowling/BowlingTest.fs +75 -97
- data/tracks/fsharp/exercises/bowling/Example.fs +1 -1
- data/tracks/fsharp/exercises/bowling/Program.fs +1 -0
- data/tracks/fsharp/exercises/bracket-push/BracketPush.fs +3 -0
- data/tracks/fsharp/exercises/bracket-push/BracketPush.fsproj +22 -0
- data/tracks/fsharp/exercises/bracket-push/BracketPushTest.fs +27 -37
- data/tracks/fsharp/exercises/bracket-push/Program.fs +1 -0
- data/tracks/fsharp/exercises/change/Change.fs +3 -0
- data/tracks/fsharp/exercises/change/Change.fsproj +22 -0
- data/tracks/fsharp/exercises/change/ChangeTest.fs +19 -25
- data/tracks/fsharp/exercises/change/Program.fs +1 -0
- data/tracks/fsharp/exercises/circular-buffer/CircularBuffer.fs +11 -0
- data/tracks/fsharp/exercises/circular-buffer/CircularBuffer.fsproj +22 -0
- data/tracks/fsharp/exercises/circular-buffer/CircularBufferTest.fs +36 -42
- data/tracks/fsharp/exercises/circular-buffer/Program.fs +1 -0
- data/tracks/fsharp/exercises/clock/Clock.fs +9 -0
- data/tracks/fsharp/exercises/clock/Clock.fsproj +22 -0
- data/tracks/fsharp/exercises/clock/ClockTest.fs +34 -48
- data/tracks/fsharp/exercises/clock/Program.fs +1 -0
- data/tracks/fsharp/exercises/connect/Connect.fs +3 -0
- data/tracks/fsharp/exercises/connect/Connect.fsproj +22 -0
- data/tracks/fsharp/exercises/connect/ConnectTest.fs +19 -25
- data/tracks/fsharp/exercises/connect/Program.fs +1 -0
- data/tracks/fsharp/exercises/crypto-square/CryptoSquare.fs +44 -0
- data/tracks/fsharp/exercises/crypto-square/CryptoSquare.fsproj +22 -0
- data/tracks/fsharp/exercises/crypto-square/CryptoSquareTest.fs +28 -39
- data/tracks/fsharp/exercises/crypto-square/Program.fs +1 -0
- data/tracks/fsharp/exercises/custom-set/CustomSet.fs +29 -0
- data/tracks/fsharp/exercises/custom-set/CustomSet.fsproj +22 -0
- data/tracks/fsharp/exercises/custom-set/CustomSetTest.fs +77 -119
- data/tracks/fsharp/exercises/custom-set/Program.fs +1 -0
- data/tracks/fsharp/exercises/diamond/Diamond.fs +3 -0
- data/tracks/fsharp/exercises/diamond/Diamond.fsproj +22 -0
- data/tracks/fsharp/exercises/diamond/DiamondTest.fs +31 -27
- data/tracks/fsharp/exercises/diamond/Program.fs +1 -0
- data/tracks/fsharp/exercises/difference-of-squares/DifferenceOfSquares.fs +7 -0
- data/tracks/fsharp/exercises/difference-of-squares/DifferenceOfSquares.fsproj +22 -0
- data/tracks/fsharp/exercises/difference-of-squares/DifferenceOfSquaresTest.fs +21 -28
- data/tracks/fsharp/exercises/difference-of-squares/Program.fs +1 -0
- data/tracks/fsharp/exercises/diffie-hellman/DiffieHellman.fs +7 -0
- data/tracks/fsharp/exercises/diffie-hellman/DiffieHellman.fsproj +22 -0
- data/tracks/fsharp/exercises/diffie-hellman/DiffieHellmanTest.fs +16 -19
- data/tracks/fsharp/exercises/diffie-hellman/Program.fs +1 -0
- data/tracks/fsharp/exercises/dominoes/Dominoes.fs +3 -0
- data/tracks/fsharp/exercises/dominoes/Dominoes.fsproj +22 -0
- data/tracks/fsharp/exercises/dominoes/DominoesTest.fs +27 -37
- data/tracks/fsharp/exercises/dominoes/Program.fs +1 -0
- data/tracks/fsharp/exercises/dot-dsl/DotDsl.fs +15 -0
- data/tracks/fsharp/exercises/dot-dsl/DotDsl.fsproj +22 -0
- data/tracks/fsharp/exercises/dot-dsl/DotDslTest.fs +27 -31
- data/tracks/fsharp/exercises/dot-dsl/Program.fs +1 -0
- data/tracks/fsharp/exercises/error-handling/ErrorHandling.fs +11 -0
- data/tracks/fsharp/exercises/error-handling/ErrorHandling.fsproj +22 -0
- data/tracks/fsharp/exercises/error-handling/ErrorHandlingTest.fs +20 -25
- data/tracks/fsharp/exercises/error-handling/Program.fs +1 -0
- data/tracks/fsharp/exercises/etl/Etl.fs +3 -0
- data/tracks/fsharp/exercises/etl/Etl.fsproj +22 -0
- data/tracks/fsharp/exercises/etl/{ETLTest.fs → EtlTest.fs} +11 -13
- data/tracks/fsharp/exercises/etl/Program.fs +1 -0
- data/tracks/fsharp/exercises/food-chain/FoodChain.fs +5 -0
- data/tracks/fsharp/exercises/food-chain/FoodChain.fsproj +22 -0
- data/tracks/fsharp/exercises/food-chain/FoodChainTest.fs +13 -16
- data/tracks/fsharp/exercises/food-chain/Program.fs +1 -0
- data/tracks/fsharp/exercises/forth/Forth.fs +3 -0
- data/tracks/fsharp/exercises/forth/Forth.fsproj +22 -0
- data/tracks/fsharp/exercises/forth/ForthTest.fs +44 -57
- data/tracks/fsharp/exercises/forth/Program.fs +1 -0
- data/tracks/fsharp/exercises/gigasecond/Gigasecond.fs +3 -0
- data/tracks/fsharp/exercises/gigasecond/Gigasecond.fsproj +22 -0
- data/tracks/fsharp/exercises/gigasecond/GigasecondTest.fs +9 -10
- data/tracks/fsharp/exercises/gigasecond/Program.fs +1 -0
- data/tracks/fsharp/exercises/go-counting/GoCounting.fs +3 -0
- data/tracks/fsharp/exercises/go-counting/GoCounting.fsproj +22 -0
- data/tracks/fsharp/exercises/go-counting/GoCountingTest.fs +23 -30
- data/tracks/fsharp/exercises/go-counting/Program.fs +1 -0
- data/tracks/fsharp/exercises/grade-school/Example.fs +1 -1
- data/tracks/fsharp/exercises/grade-school/GradeSchool.fs +9 -0
- data/tracks/fsharp/exercises/grade-school/GradeSchool.fsproj +22 -0
- data/tracks/fsharp/exercises/grade-school/GradeSchoolTest.fs +17 -22
- data/tracks/fsharp/exercises/grade-school/Program.fs +1 -0
- data/tracks/fsharp/exercises/grains/Grains.fs +6 -0
- data/tracks/fsharp/exercises/grains/Grains.fsproj +22 -0
- data/tracks/fsharp/exercises/grains/GrainsTest.fs +19 -25
- data/tracks/fsharp/exercises/grains/Program.fs +1 -0
- data/tracks/fsharp/exercises/grep/Grep.fs +3 -0
- data/tracks/fsharp/exercises/grep/Grep.fsproj +22 -0
- data/tracks/fsharp/exercises/grep/GrepTest.fs +332 -348
- data/tracks/fsharp/exercises/grep/Program.fs +1 -0
- data/tracks/fsharp/exercises/hamming/Hamming.fs +3 -0
- data/tracks/fsharp/exercises/hamming/Hamming.fsproj +22 -0
- data/tracks/fsharp/exercises/hamming/HammingTest.fs +15 -19
- data/tracks/fsharp/exercises/hamming/Program.fs +1 -0
- data/tracks/fsharp/exercises/hangman/Hangman.fs +3 -0
- data/tracks/fsharp/exercises/hangman/Hangman.fsproj +22 -0
- data/tracks/fsharp/exercises/hangman/HangmanTest.fs +30 -34
- data/tracks/fsharp/exercises/hangman/Program.fs +1 -0
- data/tracks/fsharp/exercises/hello-world/HelloWorld.fs +3 -0
- data/tracks/fsharp/exercises/hello-world/HelloWorld.fsproj +22 -0
- data/tracks/fsharp/exercises/hello-world/HelloWorldTest.fs +5 -4
- data/tracks/fsharp/exercises/hello-world/Program.fs +1 -0
- data/tracks/fsharp/exercises/house/House.fs +3 -0
- data/tracks/fsharp/exercises/house/House.fsproj +22 -0
- data/tracks/fsharp/exercises/house/HouseTest.fs +5 -4
- data/tracks/fsharp/exercises/house/Program.fs +1 -0
- data/tracks/fsharp/exercises/isogram/Isogram.fs +3 -0
- data/tracks/fsharp/exercises/isogram/Isogram.fsproj +22 -0
- data/tracks/fsharp/exercises/isogram/IsogramTest.fs +21 -28
- data/tracks/fsharp/exercises/isogram/Program.fs +1 -0
- data/tracks/fsharp/exercises/kindergarten-garden/KindergartenGarden.fs +9 -0
- data/tracks/fsharp/exercises/kindergarten-garden/KindergartenGarden.fsproj +22 -0
- data/tracks/fsharp/exercises/kindergarten-garden/KindergartenGardenTest.fs +51 -0
- data/tracks/fsharp/exercises/kindergarten-garden/Program.fs +1 -0
- data/tracks/fsharp/exercises/largest-series-product/LargestSeriesProduct.fs +3 -0
- data/tracks/fsharp/exercises/largest-series-product/LargestSeriesProduct.fsproj +22 -0
- data/tracks/fsharp/exercises/largest-series-product/LargestSeriesProductTest.fs +27 -22
- data/tracks/fsharp/exercises/largest-series-product/Program.fs +1 -0
- data/tracks/fsharp/exercises/leap/Leap.fs +3 -0
- data/tracks/fsharp/exercises/leap/Leap.fsproj +22 -0
- data/tracks/fsharp/exercises/leap/LeapTest.fs +11 -13
- data/tracks/fsharp/exercises/leap/Program.fs +1 -0
- data/tracks/fsharp/exercises/ledger/Ledger.fsproj +22 -0
- data/tracks/fsharp/exercises/ledger/LedgerTest.fs +23 -22
- data/tracks/fsharp/exercises/ledger/Program.fs +1 -0
- data/tracks/fsharp/exercises/lens-person/LensPerson.fs +1 -22
- data/tracks/fsharp/exercises/lens-person/LensPerson.fsproj +23 -0
- data/tracks/fsharp/exercises/lens-person/LensPersonTest.fs +11 -13
- data/tracks/fsharp/exercises/lens-person/Program.fs +1 -0
- data/tracks/fsharp/exercises/linked-list/LinkedList.fs +13 -0
- data/tracks/fsharp/exercises/linked-list/LinkedList.fsproj +22 -0
- data/tracks/fsharp/exercises/linked-list/LinkedListTest.fs +28 -33
- data/tracks/fsharp/exercises/linked-list/Program.fs +1 -0
- data/tracks/fsharp/exercises/list-ops/ListOps.fs +17 -0
- data/tracks/fsharp/exercises/list-ops/ListOps.fsproj +22 -0
- data/tracks/fsharp/exercises/list-ops/ListOpsTest.fs +51 -73
- data/tracks/fsharp/exercises/list-ops/Program.fs +1 -0
- data/tracks/fsharp/exercises/luhn/Luhn.fs +3 -0
- data/tracks/fsharp/exercises/luhn/Luhn.fsproj +22 -0
- data/tracks/fsharp/exercises/luhn/LuhnTest.fs +28 -39
- data/tracks/fsharp/exercises/luhn/Program.fs +1 -0
- data/tracks/fsharp/exercises/markdown/Markdown.fsproj +22 -0
- data/tracks/fsharp/exercises/markdown/MarkdownTest.fs +21 -20
- data/tracks/fsharp/exercises/markdown/Program.fs +1 -0
- data/tracks/fsharp/exercises/matrix/Matrix.fs +7 -0
- data/tracks/fsharp/exercises/matrix/Matrix.fsproj +22 -0
- data/tracks/fsharp/exercises/matrix/MatrixTest.fs +76 -48
- data/tracks/fsharp/exercises/matrix/Program.fs +1 -0
- data/tracks/fsharp/exercises/meetup/Meetup.fs +7 -0
- data/tracks/fsharp/exercises/meetup/Meetup.fsproj +22 -0
- data/tracks/fsharp/exercises/meetup/MeetupTest.fs +67 -60
- data/tracks/fsharp/exercises/meetup/Program.fs +1 -0
- data/tracks/fsharp/exercises/minesweeper/Minesweeper.fs +3 -0
- data/tracks/fsharp/exercises/minesweeper/Minesweeper.fsproj +22 -0
- data/tracks/fsharp/exercises/minesweeper/MinesweeperTest.fs +17 -22
- data/tracks/fsharp/exercises/minesweeper/Program.fs +1 -0
- data/tracks/fsharp/exercises/nth-prime/NthPrime.fs +3 -0
- data/tracks/fsharp/exercises/nth-prime/NthPrime.fsproj +22 -0
- data/tracks/fsharp/exercises/nth-prime/NthPrimeTest.fs +25 -34
- data/tracks/fsharp/exercises/nth-prime/Program.fs +1 -0
- data/tracks/fsharp/exercises/nucleotide-count/NucleotideCount.fs +5 -0
- data/tracks/fsharp/exercises/nucleotide-count/NucleotideCount.fsproj +22 -0
- data/tracks/fsharp/exercises/nucleotide-count/NucleotideCountTest.fs +17 -21
- data/tracks/fsharp/exercises/nucleotide-count/Program.fs +1 -0
- data/tracks/fsharp/exercises/ocr-numbers/OcrNumbers.fs +3 -0
- data/tracks/fsharp/exercises/ocr-numbers/OcrNumbers.fsproj +22 -0
- data/tracks/fsharp/exercises/ocr-numbers/OcrNumbersTest.fs +33 -46
- data/tracks/fsharp/exercises/ocr-numbers/Program.fs +1 -0
- data/tracks/fsharp/exercises/palindrome-products/PalindromeProducts.fs +5 -0
- data/tracks/fsharp/exercises/palindrome-products/PalindromeProducts.fsproj +22 -0
- data/tracks/fsharp/exercises/palindrome-products/PalindromeProductsTest.fs +54 -0
- data/tracks/fsharp/exercises/palindrome-products/Program.fs +1 -0
- data/tracks/fsharp/exercises/pangram/Pangram.fs +3 -0
- data/tracks/fsharp/exercises/pangram/Pangram.fsproj +22 -0
- data/tracks/fsharp/exercises/pangram/PangramTest.fs +23 -31
- data/tracks/fsharp/exercises/pangram/Program.fs +1 -0
- data/tracks/fsharp/exercises/parallel-letter-frequency/ParallelLetterFrequency.fs +3 -0
- data/tracks/fsharp/exercises/parallel-letter-frequency/ParallelLetterFrequency.fsproj +22 -0
- data/tracks/fsharp/exercises/parallel-letter-frequency/ParallelLetterFrequencyTest.fs +27 -35
- data/tracks/fsharp/exercises/parallel-letter-frequency/Program.fs +1 -0
- data/tracks/fsharp/exercises/pascals-triangle/PascalsTriangle.fs +3 -0
- data/tracks/fsharp/exercises/pascals-triangle/PascalsTriangle.fsproj +22 -0
- data/tracks/fsharp/exercises/pascals-triangle/PascalsTriangleTest.fs +15 -19
- data/tracks/fsharp/exercises/pascals-triangle/Program.fs +1 -0
- data/tracks/fsharp/exercises/perfect-numbers/PerfectNumbers.fs +5 -0
- data/tracks/fsharp/exercises/perfect-numbers/PerfectNumbers.fsproj +22 -0
- data/tracks/fsharp/exercises/perfect-numbers/PerfectNumbersTest.fs +18 -14
- data/tracks/fsharp/exercises/perfect-numbers/Program.fs +1 -0
- data/tracks/fsharp/exercises/phone-number/PhoneNumber.fs +3 -0
- data/tracks/fsharp/exercises/phone-number/PhoneNumber.fsproj +22 -0
- data/tracks/fsharp/exercises/phone-number/PhoneNumberTest.fs +23 -31
- data/tracks/fsharp/exercises/phone-number/Program.fs +1 -0
- data/tracks/fsharp/exercises/pig-latin/PigLatin.fs +3 -0
- data/tracks/fsharp/exercises/pig-latin/PigLatin.fsproj +22 -0
- data/tracks/fsharp/exercises/pig-latin/PigLatinTest.fs +39 -44
- data/tracks/fsharp/exercises/pig-latin/Program.fs +1 -0
- data/tracks/fsharp/exercises/poker/Poker.fs +3 -0
- data/tracks/fsharp/exercises/poker/Poker.fsproj +22 -0
- data/tracks/fsharp/exercises/poker/PokerTest.fs +40 -56
- data/tracks/fsharp/exercises/poker/Program.fs +1 -0
- data/tracks/fsharp/exercises/pov/Pov.fs +3 -0
- data/tracks/fsharp/exercises/pov/Pov.fsproj +22 -0
- data/tracks/fsharp/exercises/pov/PovTest.fs +23 -31
- data/tracks/fsharp/exercises/pov/Program.fs +1 -0
- data/tracks/fsharp/exercises/prime-factors/Example.fs +1 -1
- data/tracks/fsharp/exercises/prime-factors/PrimeFactors.fs +3 -0
- data/tracks/fsharp/exercises/prime-factors/PrimeFactors.fsproj +22 -0
- data/tracks/fsharp/exercises/prime-factors/PrimeFactorsTest.fs +22 -30
- data/tracks/fsharp/exercises/prime-factors/Program.fs +1 -0
- data/tracks/fsharp/exercises/protein-translation/Program.fs +1 -0
- data/tracks/fsharp/exercises/protein-translation/ProteinTranslation.fs +3 -0
- data/tracks/fsharp/exercises/protein-translation/ProteinTranslation.fsproj +22 -0
- data/tracks/fsharp/exercises/protein-translation/ProteinTranslationTest.fs +41 -36
- data/tracks/fsharp/exercises/proverb/Program.fs +1 -0
- data/tracks/fsharp/exercises/proverb/Proverb.fs +5 -0
- data/tracks/fsharp/exercises/proverb/Proverb.fsproj +22 -0
- data/tracks/fsharp/exercises/proverb/ProverbTest.fs +11 -13
- data/tracks/fsharp/exercises/pythagorean-triplet/Program.fs +1 -0
- data/tracks/fsharp/exercises/pythagorean-triplet/PythagoreanTriplet.fs +7 -0
- data/tracks/fsharp/exercises/pythagorean-triplet/PythagoreanTriplet.fsproj +22 -0
- data/tracks/fsharp/exercises/pythagorean-triplet/PythagoreanTripletTest.fs +19 -20
- data/tracks/fsharp/exercises/queen-attack/Program.fs +1 -0
- data/tracks/fsharp/exercises/queen-attack/QueenAttack.fs +3 -0
- data/tracks/fsharp/exercises/queen-attack/QueenAttack.fsproj +22 -0
- data/tracks/fsharp/exercises/queen-attack/QueenAttackTest.fs +19 -25
- data/tracks/fsharp/exercises/rail-fence-cipher/Program.fs +1 -0
- data/tracks/fsharp/exercises/rail-fence-cipher/RailFenceCipher.fs +5 -0
- data/tracks/fsharp/exercises/rail-fence-cipher/RailFenceCipher.fsproj +22 -0
- data/tracks/fsharp/exercises/rail-fence-cipher/RailFenceCipherTest.fs +15 -19
- data/tracks/fsharp/exercises/raindrops/Program.fs +1 -0
- data/tracks/fsharp/exercises/raindrops/Raindrops.fs +3 -0
- data/tracks/fsharp/exercises/raindrops/Raindrops.fsproj +22 -0
- data/tracks/fsharp/exercises/raindrops/RaindropsTest.fs +30 -24
- data/tracks/fsharp/exercises/react/Program.fs +1 -0
- data/tracks/fsharp/exercises/react/React.fs +3 -0
- data/tracks/fsharp/exercises/react/React.fsproj +22 -0
- data/tracks/fsharp/exercises/react/ReactTest.fs +26 -31
- data/tracks/fsharp/exercises/rectangles/Program.fs +1 -0
- data/tracks/fsharp/exercises/rectangles/Rectangles.fs +3 -0
- data/tracks/fsharp/exercises/rectangles/Rectangles.fsproj +22 -0
- data/tracks/fsharp/exercises/rectangles/RectanglesTest.fs +23 -31
- data/tracks/fsharp/exercises/rna-transcription/Program.fs +1 -0
- data/tracks/fsharp/exercises/rna-transcription/RnaTranscription.fs +3 -0
- data/tracks/fsharp/exercises/rna-transcription/RnaTranscription.fsproj +22 -0
- data/tracks/fsharp/exercises/rna-transcription/RnaTranscriptionTest.fs +26 -0
- data/tracks/fsharp/exercises/robot-name/Program.fs +1 -0
- data/tracks/fsharp/exercises/robot-name/RobotName.fs +7 -0
- data/tracks/fsharp/exercises/robot-name/RobotName.fsproj +22 -0
- data/tracks/fsharp/exercises/robot-name/RobotNameTest.fs +12 -13
- data/tracks/fsharp/exercises/robot-simulator/Program.fs +1 -0
- data/tracks/fsharp/exercises/robot-simulator/RobotSimulator.fs +13 -0
- data/tracks/fsharp/exercises/robot-simulator/RobotSimulator.fsproj +22 -0
- data/tracks/fsharp/exercises/robot-simulator/RobotSimulatorTest.fs +16 -20
- data/tracks/fsharp/exercises/roman-numerals/Program.fs +1 -0
- data/tracks/fsharp/exercises/roman-numerals/RomanNumerals.fs +3 -0
- data/tracks/fsharp/exercises/roman-numerals/RomanNumerals.fsproj +22 -0
- data/tracks/fsharp/exercises/roman-numerals/RomanNumeralsTest.fs +28 -0
- data/tracks/fsharp/exercises/run-length-encoding/Program.fs +1 -0
- data/tracks/fsharp/exercises/run-length-encoding/RunLengthEncoding.fs +5 -0
- data/tracks/fsharp/exercises/run-length-encoding/RunLengthEncoding.fsproj +22 -0
- data/tracks/fsharp/exercises/run-length-encoding/RunLengthEncodingTest.fs +17 -22
- data/tracks/fsharp/exercises/saddle-points/Program.fs +1 -0
- data/tracks/fsharp/exercises/saddle-points/SaddlePoints.fs +3 -0
- data/tracks/fsharp/exercises/saddle-points/SaddlePoints.fsproj +22 -0
- data/tracks/fsharp/exercises/saddle-points/{SaddlePointTest.fs → SaddlePointsTest.fs} +13 -16
- data/tracks/fsharp/exercises/say/Program.fs +1 -0
- data/tracks/fsharp/exercises/say/Say.fs +3 -0
- data/tracks/fsharp/exercises/say/Say.fsproj +22 -0
- data/tracks/fsharp/exercises/say/SayTest.fs +35 -49
- data/tracks/fsharp/exercises/scale-generator/Program.fs +1 -0
- data/tracks/fsharp/exercises/scale-generator/ScaleGenerator.fs +3 -0
- data/tracks/fsharp/exercises/scale-generator/ScaleGenerator.fsproj +22 -0
- data/tracks/fsharp/exercises/scale-generator/ScaleGeneratorTest.fs +31 -43
- data/tracks/fsharp/exercises/scrabble-score/Program.fs +1 -0
- data/tracks/fsharp/exercises/scrabble-score/ScrabbleScore.fs +3 -0
- data/tracks/fsharp/exercises/scrabble-score/ScrabbleScore.fsproj +22 -0
- data/tracks/fsharp/exercises/scrabble-score/ScrabbleScoreTest.fs +18 -24
- data/tracks/fsharp/exercises/secret-handshake/Program.fs +1 -0
- data/tracks/fsharp/exercises/secret-handshake/SecretHandshake.fs +3 -0
- data/tracks/fsharp/exercises/secret-handshake/SecretHandshake.fsproj +22 -0
- data/tracks/fsharp/exercises/secret-handshake/SecretHandshakeTest.fs +17 -22
- data/tracks/fsharp/exercises/series/Program.fs +1 -0
- data/tracks/fsharp/exercises/series/Series.fs +3 -0
- data/tracks/fsharp/exercises/series/Series.fsproj +22 -0
- data/tracks/fsharp/exercises/series/SeriesTest.fs +53 -55
- data/tracks/fsharp/exercises/sgf-parsing/Program.fs +1 -0
- data/tracks/fsharp/exercises/sgf-parsing/SgfParsing.fs +3 -0
- data/tracks/fsharp/exercises/sgf-parsing/SgfParsing.fsproj +22 -0
- data/tracks/fsharp/exercises/sgf-parsing/SgfParsingTest.fs +27 -37
- data/tracks/fsharp/exercises/sieve/Program.fs +1 -0
- data/tracks/fsharp/exercises/sieve/Sieve.fs +3 -0
- data/tracks/fsharp/exercises/sieve/Sieve.fsproj +22 -0
- data/tracks/fsharp/exercises/sieve/SieveTest.fs +19 -21
- data/tracks/fsharp/exercises/simple-cipher/Program.fs +1 -0
- data/tracks/fsharp/exercises/simple-cipher/SimpleCipher.fs +7 -0
- data/tracks/fsharp/exercises/simple-cipher/SimpleCipher.fsproj +22 -0
- data/tracks/fsharp/exercises/simple-cipher/SimpleCipherTest.fs +39 -54
- data/tracks/fsharp/exercises/simple-linked-list/Program.fs +1 -0
- data/tracks/fsharp/exercises/simple-linked-list/SimpleLinkedList.fs +36 -0
- data/tracks/fsharp/exercises/simple-linked-list/SimpleLinkedList.fsproj +22 -0
- data/tracks/fsharp/exercises/simple-linked-list/SimpleLinkedListTest.fs +36 -40
- data/tracks/fsharp/exercises/space-age/Program.fs +1 -0
- data/tracks/fsharp/exercises/space-age/SpaceAge.fs +5 -0
- data/tracks/fsharp/exercises/space-age/SpaceAge.fsproj +22 -0
- data/tracks/fsharp/exercises/space-age/SpaceAgeTest.fs +26 -32
- data/tracks/fsharp/exercises/strain/Program.fs +1 -0
- data/tracks/fsharp/exercises/strain/Strain.fs +5 -0
- data/tracks/fsharp/exercises/strain/Strain.fsproj +22 -0
- data/tracks/fsharp/exercises/strain/StrainTest.fs +28 -47
- data/tracks/fsharp/exercises/sublist/Program.fs +1 -0
- data/tracks/fsharp/exercises/sublist/Sublist.fs +5 -0
- data/tracks/fsharp/exercises/sublist/Sublist.fsproj +22 -0
- data/tracks/fsharp/exercises/sublist/SublistTest.fs +39 -55
- data/tracks/fsharp/exercises/sum-of-multiples/Program.fs +1 -0
- data/tracks/fsharp/exercises/sum-of-multiples/SumOfMultiples.fs +3 -0
- data/tracks/fsharp/exercises/sum-of-multiples/SumOfMultiples.fsproj +22 -0
- data/tracks/fsharp/exercises/sum-of-multiples/SumOfMultiplesTest.fs +15 -19
- data/tracks/fsharp/exercises/tournament/Program.fs +1 -0
- data/tracks/fsharp/exercises/tournament/Tournament.fs +3 -0
- data/tracks/fsharp/exercises/tournament/Tournament.fsproj +22 -0
- data/tracks/fsharp/exercises/tournament/TournamentTest.fs +9 -10
- data/tracks/fsharp/exercises/transpose/Program.fs +1 -0
- data/tracks/fsharp/exercises/transpose/Transpose.fs +3 -0
- data/tracks/fsharp/exercises/transpose/Transpose.fsproj +22 -0
- data/tracks/fsharp/exercises/transpose/TransposeTest.fs +25 -34
- data/tracks/fsharp/exercises/tree-building/Program.fs +1 -0
- data/tracks/fsharp/exercises/tree-building/TreeBuilding.fsproj +22 -0
- data/tracks/fsharp/exercises/tree-building/TreeBuildingTest.fs +84 -82
- data/tracks/fsharp/exercises/triangle/Program.fs +1 -0
- data/tracks/fsharp/exercises/triangle/Triangle.fs +8 -0
- data/tracks/fsharp/exercises/triangle/Triangle.fsproj +22 -0
- data/tracks/fsharp/exercises/triangle/TriangleTest.fs +31 -43
- data/tracks/fsharp/exercises/twelve-days/Program.fs +1 -0
- data/tracks/fsharp/exercises/twelve-days/TwelveDays.fs +7 -0
- data/tracks/fsharp/exercises/twelve-days/TwelveDays.fsproj +22 -0
- data/tracks/fsharp/exercises/twelve-days/TwelveDaysTest.fs +31 -43
- data/tracks/fsharp/exercises/two-bucket/Program.fs +1 -0
- data/tracks/fsharp/exercises/two-bucket/TwoBucket.fs +3 -0
- data/tracks/fsharp/exercises/two-bucket/TwoBucket.fsproj +22 -0
- data/tracks/fsharp/exercises/two-bucket/TwoBucketTest.fs +11 -13
- data/tracks/fsharp/exercises/two-fer/Program.fs +1 -0
- data/tracks/fsharp/exercises/two-fer/TwoFer.fs +3 -0
- data/tracks/fsharp/exercises/two-fer/TwoFer.fsproj +22 -0
- data/tracks/fsharp/exercises/two-fer/TwoFerTest.fs +9 -10
- data/tracks/fsharp/exercises/variable-length-quantity/Program.fs +1 -0
- data/tracks/fsharp/exercises/variable-length-quantity/VariableLengthQuantity.fs +3 -0
- data/tracks/fsharp/exercises/variable-length-quantity/VariableLengthQuantity.fsproj +22 -0
- data/tracks/fsharp/exercises/variable-length-quantity/VariableLengthQuantityTest.fs +42 -50
- data/tracks/fsharp/exercises/word-count/Program.fs +1 -0
- data/tracks/fsharp/exercises/word-count/WordCount.fs +3 -0
- data/tracks/fsharp/exercises/word-count/WordCount.fsproj +22 -0
- data/tracks/fsharp/exercises/word-count/WordCountTest.fs +27 -37
- data/tracks/fsharp/exercises/word-search/Program.fs +1 -0
- data/tracks/fsharp/exercises/word-search/WordSearch.fs +3 -0
- data/tracks/fsharp/exercises/word-search/WordSearch.fsproj +22 -0
- data/tracks/fsharp/exercises/word-search/WordSearchTest.fs +23 -31
- data/tracks/fsharp/exercises/wordy/Program.fs +1 -0
- data/tracks/fsharp/exercises/wordy/Wordy.fs +3 -0
- data/tracks/fsharp/exercises/wordy/Wordy.fsproj +22 -0
- data/tracks/fsharp/exercises/wordy/WordyTest.fs +34 -48
- data/tracks/fsharp/exercises/zebra-puzzle/Example.fs +1 -1
- data/tracks/fsharp/exercises/zebra-puzzle/Program.fs +1 -0
- data/tracks/fsharp/exercises/zebra-puzzle/ZebraPuzzle.fs +3 -0
- data/tracks/fsharp/exercises/zebra-puzzle/ZebraPuzzle.fsproj +22 -0
- data/tracks/fsharp/exercises/zebra-puzzle/ZebraPuzzleTest.fs +9 -9
- data/tracks/fsharp/exercises/zipper/Program.fs +1 -0
- data/tracks/fsharp/exercises/zipper/Zipper.fs +3 -0
- data/tracks/fsharp/exercises/zipper/Zipper.fsproj +22 -0
- data/tracks/fsharp/exercises/zipper/ZipperTest.fs +19 -25
- data/tracks/javascript/exercises/simple-linked-list/example.js +4 -3
- data/tracks/javascript/exercises/simple-linked-list/simple-linked-list.spec.js +3 -0
- data/tracks/nim/docs/SNIPPET.txt +2 -0
- data/tracks/perl5/docs/SNIPPET.txt +9 -0
- data/tracks/php/docs/SNIPPET.txt +6 -0
- data/tracks/pony/docs/SNIPPET.txt +2 -0
- data/tracks/powershell/docs/SNIPPET.txt +4 -0
- data/tracks/prolog/docs/SNIPPET.txt +6 -0
- data/tracks/python/exercises/simple-cipher/README.md +1 -1
- data/tracks/vimscript/docs/SNIPPET.txt +4 -0
- metadata +334 -17
- data/tracks/fsharp/.paket/paket.bootstrapper.exe +0 -0
- data/tracks/fsharp/build.cmd +0 -14
- data/tracks/fsharp/build.fsx +0 -65
- data/tracks/fsharp/exercises/app.config +0 -11
- data/tracks/fsharp/exercises/exercises.fsproj +0 -225
- data/tracks/fsharp/exercises/kindergarten-garden/KinderGartenGardenTest.fs +0 -55
- data/tracks/fsharp/exercises/paket.references +0 -4
- data/tracks/fsharp/exercises/palindrome-products/PalindromeTest.fs +0 -60
- data/tracks/fsharp/exercises/rna-transcription/RNATranscriptionTest.fs +0 -29
- data/tracks/fsharp/exercises/roman-numerals/RomanNumeralTest.fs +0 -26
- data/tracks/fsharp/paket.dependencies +0 -8
- data/tracks/fsharp/paket.lock +0 -11
|
@@ -1,95 +1,79 @@
|
|
|
1
|
-
|
|
1
|
+
module SublistTest
|
|
2
2
|
|
|
3
|
-
open
|
|
3
|
+
open Xunit
|
|
4
|
+
open FsUnit.Xunit
|
|
4
5
|
|
|
5
6
|
open Sublist
|
|
6
7
|
|
|
7
|
-
[<
|
|
8
|
+
[<Fact>]
|
|
8
9
|
let ``Empty equals empty`` () =
|
|
9
|
-
|
|
10
|
+
sublist [] [] |> should equal Equal
|
|
10
11
|
|
|
11
|
-
[<
|
|
12
|
-
[<Ignore("Remove to run test")>]
|
|
12
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
13
13
|
let ``Empty is a sublist of anything`` () =
|
|
14
|
-
|
|
14
|
+
sublist [] [1; 2; 3; 4] |> should equal Sublist
|
|
15
15
|
|
|
16
|
-
[<
|
|
17
|
-
[<Ignore("Remove to run test")>]
|
|
16
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
18
17
|
let ``Anything is a superlist of empty`` () =
|
|
19
|
-
|
|
18
|
+
sublist [1; 2; 3; 4] [] |> should equal Superlist
|
|
20
19
|
|
|
21
|
-
[<
|
|
22
|
-
[<Ignore("Remove to run test")>]
|
|
20
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
23
21
|
let ``1 is not 2`` () =
|
|
24
|
-
|
|
22
|
+
sublist [1] [2] |> should equal Unequal
|
|
25
23
|
|
|
26
|
-
[<
|
|
27
|
-
[<Ignore("Remove to run test")>]
|
|
24
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
28
25
|
let ``Compare larger equal lists`` () =
|
|
29
26
|
let xs = List.replicate 1000 'x'
|
|
30
|
-
|
|
27
|
+
sublist xs xs |> should equal Equal
|
|
31
28
|
|
|
32
|
-
[<
|
|
33
|
-
[<Ignore("Remove to run test")>]
|
|
29
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
34
30
|
let ``Sublist at start`` () =
|
|
35
|
-
|
|
31
|
+
sublist [1; 2; 3] [1; 2; 3; 4; 5] |> should equal Sublist
|
|
36
32
|
|
|
37
|
-
[<
|
|
38
|
-
[<Ignore("Remove to run test")>]
|
|
33
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
39
34
|
let ``Sublist in middle`` () =
|
|
40
|
-
|
|
35
|
+
sublist [4; 3; 2] [5; 4; 3; 2; 1] |> should equal Sublist
|
|
41
36
|
|
|
42
|
-
[<
|
|
43
|
-
[<Ignore("Remove to run test")>]
|
|
37
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
44
38
|
let ``Sublist at end`` () =
|
|
45
|
-
|
|
39
|
+
sublist [3; 4; 5] [1; 2; 3; 4; 5] |> should equal Sublist
|
|
46
40
|
|
|
47
|
-
[<
|
|
48
|
-
[<Ignore("Remove to run test")>]
|
|
41
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
49
42
|
let ``Partially matching sublist at start`` () =
|
|
50
|
-
|
|
43
|
+
sublist [1; 1; 2] [1; 1; 1; 2] |> should equal Sublist
|
|
51
44
|
|
|
52
|
-
[<
|
|
53
|
-
[<Ignore("Remove to run test")>]
|
|
45
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
54
46
|
let ``Sublist early in huge list`` () =
|
|
55
|
-
|
|
47
|
+
sublist [3; 4; 5] [1 .. 1000000] |> should equal Sublist
|
|
56
48
|
|
|
57
|
-
[<
|
|
58
|
-
[<Ignore("Remove to run test")>]
|
|
49
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
59
50
|
let ``Huge sublist not in huge list`` () =
|
|
60
|
-
|
|
51
|
+
sublist [10 .. 1000001] [1 .. 1000000] |> should equal Unequal
|
|
61
52
|
|
|
62
|
-
[<
|
|
63
|
-
[<Ignore("Remove to run test")>]
|
|
53
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
64
54
|
let ``Superlist at start`` () =
|
|
65
|
-
|
|
55
|
+
sublist [1; 2; 3; 4; 5] [1; 2; 3] |> should equal Superlist
|
|
66
56
|
|
|
67
|
-
[<
|
|
68
|
-
[<Ignore("Remove to run test")>]
|
|
57
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
69
58
|
let ``Superlist in middle`` () =
|
|
70
|
-
|
|
59
|
+
sublist [5; 4; 3; 2; 1] [4; 3; 2] |> should equal Superlist
|
|
71
60
|
|
|
72
|
-
[<
|
|
73
|
-
[<Ignore("Remove to run test")>]
|
|
61
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
74
62
|
let ``Superlist at end`` () =
|
|
75
|
-
|
|
63
|
+
sublist [1; 2; 3; 4; 5] [3; 4; 5] |> should equal Superlist
|
|
76
64
|
|
|
77
|
-
[<
|
|
78
|
-
[<Ignore("Remove to run test")>]
|
|
65
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
79
66
|
let ``Partially matching superlist at start`` () =
|
|
80
|
-
|
|
67
|
+
sublist [1; 1; 1; 2] [1; 1; 2] |> should equal Superlist
|
|
81
68
|
|
|
82
|
-
[<
|
|
83
|
-
[<Ignore("Remove to run test")>]
|
|
69
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
84
70
|
let ``Superlist early in huge list`` () =
|
|
85
|
-
|
|
71
|
+
sublist [1 .. 1000000] [3; 4; 5] |> should equal Superlist
|
|
86
72
|
|
|
87
|
-
[<
|
|
88
|
-
[<Ignore("Remove to run test")>]
|
|
73
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
89
74
|
let ``Recurring values sublist`` () =
|
|
90
|
-
|
|
75
|
+
sublist [1; 2; 1; 2; 3] [1; 2; 3; 1; 2; 1; 2; 3; 2; 1] |> should equal Sublist
|
|
91
76
|
|
|
92
|
-
[<
|
|
93
|
-
[<Ignore("Remove to run test")>]
|
|
77
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
94
78
|
let ``Recurring values unequal`` () =
|
|
95
|
-
|
|
79
|
+
sublist [1; 2; 1; 2; 3] [1; 2; 3; 1; 2; 3; 2; 3; 2; 1] |> should equal Unequal
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module Program = let [<EntryPoint>] main _ = 0
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<Project Sdk="Microsoft.NET.Sdk">
|
|
2
|
+
|
|
3
|
+
<PropertyGroup>
|
|
4
|
+
<TargetFramework>netcoreapp2.0</TargetFramework>
|
|
5
|
+
|
|
6
|
+
<IsPackable>false</IsPackable>
|
|
7
|
+
</PropertyGroup>
|
|
8
|
+
|
|
9
|
+
<ItemGroup>
|
|
10
|
+
<Compile Include="SumOfMultiples.fs" />
|
|
11
|
+
<Compile Include="SumOfMultiplesTest.fs" />
|
|
12
|
+
<Compile Include="Program.fs" />
|
|
13
|
+
</ItemGroup>
|
|
14
|
+
|
|
15
|
+
<ItemGroup>
|
|
16
|
+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0" />
|
|
17
|
+
<PackageReference Include="xunit" Version="2.3.0-beta5-build3769" />
|
|
18
|
+
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0-beta5-build3769" />
|
|
19
|
+
<PackageReference Include="FsUnit.xUnit" Version="3.0.0" />
|
|
20
|
+
</ItemGroup>
|
|
21
|
+
|
|
22
|
+
</Project>
|
|
@@ -1,33 +1,29 @@
|
|
|
1
|
-
|
|
1
|
+
module SumOfMultiplesTest
|
|
2
2
|
|
|
3
|
-
open
|
|
3
|
+
open Xunit
|
|
4
|
+
open FsUnit.Xunit
|
|
4
5
|
open SumOfMultiples
|
|
5
6
|
|
|
6
|
-
[<
|
|
7
|
+
[<Fact>]
|
|
7
8
|
let ``Sum to 1`` () =
|
|
8
|
-
|
|
9
|
+
sumOfMultiples [3; 5] 0 |> should equal 0
|
|
9
10
|
|
|
10
|
-
[<
|
|
11
|
-
[<Ignore("Remove to run test")>]
|
|
11
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
12
12
|
let ``Sum to 3`` () =
|
|
13
|
-
|
|
13
|
+
sumOfMultiples [3; 5] 3 |> should equal 0
|
|
14
14
|
|
|
15
|
-
[<
|
|
16
|
-
[<Ignore("Remove to run test")>]
|
|
15
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
17
16
|
let ``Sum to 4`` () =
|
|
18
|
-
|
|
17
|
+
sumOfMultiples [3; 5] 4 |> should equal 3
|
|
19
18
|
|
|
20
|
-
[<
|
|
21
|
-
[<Ignore("Remove to run test")>]
|
|
19
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
22
20
|
let ``Sum to 10`` () =
|
|
23
|
-
|
|
21
|
+
sumOfMultiples [3; 5] 10 |> should equal 23
|
|
24
22
|
|
|
25
|
-
[<
|
|
26
|
-
[<Ignore("Remove to run test")>]
|
|
23
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
27
24
|
let ``Sum to 20`` () =
|
|
28
|
-
|
|
25
|
+
sumOfMultiples [7; 13; 17] 20 |> should equal 51
|
|
29
26
|
|
|
30
|
-
[<
|
|
31
|
-
[<Ignore("Remove to run test")>]
|
|
27
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
32
28
|
let ``Sum to 10000`` () =
|
|
33
|
-
|
|
29
|
+
sumOfMultiples [43; 47] 10000 |> should equal 2203160
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module Program = let [<EntryPoint>] main _ = 0
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<Project Sdk="Microsoft.NET.Sdk">
|
|
2
|
+
|
|
3
|
+
<PropertyGroup>
|
|
4
|
+
<TargetFramework>netcoreapp2.0</TargetFramework>
|
|
5
|
+
|
|
6
|
+
<IsPackable>false</IsPackable>
|
|
7
|
+
</PropertyGroup>
|
|
8
|
+
|
|
9
|
+
<ItemGroup>
|
|
10
|
+
<Compile Include="Tournament.fs" />
|
|
11
|
+
<Compile Include="TournamentTest.fs" />
|
|
12
|
+
<Compile Include="Program.fs" />
|
|
13
|
+
</ItemGroup>
|
|
14
|
+
|
|
15
|
+
<ItemGroup>
|
|
16
|
+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0" />
|
|
17
|
+
<PackageReference Include="xunit" Version="2.3.0-beta5-build3769" />
|
|
18
|
+
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0-beta5-build3769" />
|
|
19
|
+
<PackageReference Include="FsUnit.xUnit" Version="3.0.0" />
|
|
20
|
+
</ItemGroup>
|
|
21
|
+
|
|
22
|
+
</Project>
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
module TournamentTest
|
|
2
2
|
|
|
3
|
-
open
|
|
3
|
+
open Xunit
|
|
4
|
+
open FsUnit.Xunit
|
|
4
5
|
|
|
5
6
|
open Tournament
|
|
6
7
|
|
|
7
|
-
[<
|
|
8
|
+
[<Fact>]
|
|
8
9
|
let ``Correctly displays the tournament table`` () =
|
|
9
10
|
let actual =
|
|
10
11
|
["Αllegoric Alaskians;Blithering Badgers;win";
|
|
@@ -21,10 +22,9 @@ let ``Correctly displays the tournament table`` () =
|
|
|
21
22
|
"Blithering Badgers | 3 | 1 | 0 | 2 | 3";
|
|
22
23
|
"Courageous Californians | 3 | 0 | 1 | 2 | 1"]
|
|
23
24
|
|
|
24
|
-
|
|
25
|
+
tally actual |> should equal expected
|
|
25
26
|
|
|
26
|
-
[<
|
|
27
|
-
[<Ignore("Remove to run test")>]
|
|
27
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
28
28
|
let ``Ignores incorrect input`` () =
|
|
29
29
|
let actual =
|
|
30
30
|
["Allegoric Alaskians;Blithering Badgers;win";
|
|
@@ -46,10 +46,9 @@ let ``Ignores incorrect input`` () =
|
|
|
46
46
|
"Blithering Badgers | 3 | 1 | 0 | 2 | 3";
|
|
47
47
|
"Courageous Californians | 3 | 0 | 1 | 2 | 1"]
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
tally actual |> should equal expected
|
|
50
50
|
|
|
51
|
-
[<
|
|
52
|
-
[<Ignore("Remove to run test")>]
|
|
51
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
53
52
|
let ``Correctly displays another tournament table`` () =
|
|
54
53
|
let actual =
|
|
55
54
|
["Allegoric Alaskians;Blithering Badgers;win";
|
|
@@ -64,4 +63,4 @@ let ``Correctly displays another tournament table`` () =
|
|
|
64
63
|
"Devastating Donkeys | 1 | 1 | 0 | 0 | 3";
|
|
65
64
|
"Courageous Californians | 2 | 0 | 0 | 2 | 0"]
|
|
66
65
|
|
|
67
|
-
|
|
66
|
+
tally actual |> should equal expected
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module Program = let [<EntryPoint>] main _ = 0
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<Project Sdk="Microsoft.NET.Sdk">
|
|
2
|
+
|
|
3
|
+
<PropertyGroup>
|
|
4
|
+
<TargetFramework>netcoreapp2.0</TargetFramework>
|
|
5
|
+
|
|
6
|
+
<IsPackable>false</IsPackable>
|
|
7
|
+
</PropertyGroup>
|
|
8
|
+
|
|
9
|
+
<ItemGroup>
|
|
10
|
+
<Compile Include="Transpose.fs" />
|
|
11
|
+
<Compile Include="TransposeTest.fs" />
|
|
12
|
+
<Compile Include="Program.fs" />
|
|
13
|
+
</ItemGroup>
|
|
14
|
+
|
|
15
|
+
<ItemGroup>
|
|
16
|
+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0" />
|
|
17
|
+
<PackageReference Include="xunit" Version="2.3.0-beta5-build3769" />
|
|
18
|
+
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0-beta5-build3769" />
|
|
19
|
+
<PackageReference Include="FsUnit.xUnit" Version="3.0.0" />
|
|
20
|
+
</ItemGroup>
|
|
21
|
+
|
|
22
|
+
</Project>
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
|
|
1
|
+
module TransposeTest
|
|
2
2
|
|
|
3
|
-
open
|
|
3
|
+
open Xunit
|
|
4
|
+
open FsUnit.Xunit
|
|
4
5
|
|
|
5
6
|
open Transpose
|
|
6
7
|
|
|
7
|
-
[<
|
|
8
|
+
[<Fact>]
|
|
8
9
|
let ``Empty string`` () =
|
|
9
10
|
let input = ""
|
|
10
11
|
let expected = ""
|
|
11
12
|
|
|
12
|
-
|
|
13
|
+
transpose input |> should equal expected
|
|
13
14
|
|
|
14
|
-
[<
|
|
15
|
-
[<Test>]
|
|
15
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
16
16
|
let ``Two characters in a row`` () =
|
|
17
17
|
let input =
|
|
18
18
|
"A1"
|
|
@@ -21,10 +21,9 @@ let ``Two characters in a row`` () =
|
|
|
21
21
|
"A\n" +
|
|
22
22
|
"1"
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
transpose input |> should equal expected
|
|
25
25
|
|
|
26
|
-
[<
|
|
27
|
-
[<Test>]
|
|
26
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
28
27
|
let ``Two characters in a column`` () =
|
|
29
28
|
let input =
|
|
30
29
|
"A\n" +
|
|
@@ -33,10 +32,9 @@ let ``Two characters in a column`` () =
|
|
|
33
32
|
let expected =
|
|
34
33
|
"A1"
|
|
35
34
|
|
|
36
|
-
|
|
35
|
+
transpose input |> should equal expected
|
|
37
36
|
|
|
38
|
-
[<
|
|
39
|
-
[<Test>]
|
|
37
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
40
38
|
let ``Simple`` () =
|
|
41
39
|
let input =
|
|
42
40
|
"ABC\n" +
|
|
@@ -47,10 +45,9 @@ let ``Simple`` () =
|
|
|
47
45
|
"B2\n" +
|
|
48
46
|
"C3"
|
|
49
47
|
|
|
50
|
-
|
|
48
|
+
transpose input |> should equal expected
|
|
51
49
|
|
|
52
|
-
[<
|
|
53
|
-
[<Test>]
|
|
50
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
54
51
|
let ``Single line`` () =
|
|
55
52
|
let input =
|
|
56
53
|
"Single line."
|
|
@@ -69,10 +66,9 @@ let ``Single line`` () =
|
|
|
69
66
|
"e\n" +
|
|
70
67
|
"."
|
|
71
68
|
|
|
72
|
-
|
|
69
|
+
transpose input |> should equal expected
|
|
73
70
|
|
|
74
|
-
[<
|
|
75
|
-
[<Test>]
|
|
71
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
76
72
|
let ``First line longer than second line`` () =
|
|
77
73
|
let input =
|
|
78
74
|
"The fourth line.\n" +
|
|
@@ -96,10 +92,9 @@ let ``First line longer than second line`` () =
|
|
|
96
92
|
"e.\n" +
|
|
97
93
|
"."
|
|
98
94
|
|
|
99
|
-
|
|
95
|
+
transpose input |> should equal expected
|
|
100
96
|
|
|
101
|
-
[<
|
|
102
|
-
[<Test>]
|
|
97
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
103
98
|
let ``Second line longer than first line`` () =
|
|
104
99
|
let input =
|
|
105
100
|
"The first line.\n" +
|
|
@@ -123,10 +118,9 @@ let ``Second line longer than first line`` () =
|
|
|
123
118
|
".e\n" +
|
|
124
119
|
" ."
|
|
125
120
|
|
|
126
|
-
|
|
121
|
+
transpose input |> should equal expected
|
|
127
122
|
|
|
128
|
-
[<
|
|
129
|
-
[<Test>]
|
|
123
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
130
124
|
let ``Square`` () =
|
|
131
125
|
let input =
|
|
132
126
|
"HEART\n" +
|
|
@@ -142,10 +136,9 @@ let ``Square`` () =
|
|
|
142
136
|
"RESIN\n" +
|
|
143
137
|
"TREND"
|
|
144
138
|
|
|
145
|
-
|
|
139
|
+
transpose input |> should equal expected
|
|
146
140
|
|
|
147
|
-
[<
|
|
148
|
-
[<Test>]
|
|
141
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
149
142
|
let ``Rectangle`` () =
|
|
150
143
|
let input =
|
|
151
144
|
"FRACTURE\n" +
|
|
@@ -163,10 +156,9 @@ let ``Rectangle`` () =
|
|
|
163
156
|
"RENT\n"+
|
|
164
157
|
"EDGE"
|
|
165
158
|
|
|
166
|
-
|
|
159
|
+
transpose input |> should equal expected
|
|
167
160
|
|
|
168
|
-
[<
|
|
169
|
-
[<Test>]
|
|
161
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
170
162
|
let ``Triangle`` () =
|
|
171
163
|
let input =
|
|
172
164
|
"T\n" +
|
|
@@ -184,10 +176,9 @@ let ``Triangle`` () =
|
|
|
184
176
|
" ER\n" +
|
|
185
177
|
" R"
|
|
186
178
|
|
|
187
|
-
|
|
179
|
+
transpose input |> should equal expected
|
|
188
180
|
|
|
189
|
-
[<
|
|
190
|
-
[<Test>]
|
|
181
|
+
[<Fact(Skip = "Remove to run test")>]
|
|
191
182
|
let ``Many lines`` () =
|
|
192
183
|
let input =
|
|
193
184
|
"Chor. Two households, both alike in dignity,\n" +
|
|
@@ -260,4 +251,4 @@ let ``Many lines`` () =
|
|
|
260
251
|
" e .\n" +
|
|
261
252
|
" ,"
|
|
262
253
|
|
|
263
|
-
|
|
254
|
+
transpose input |> should equal expected
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module Program = let [<EntryPoint>] main _ = 0
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<Project Sdk="Microsoft.NET.Sdk">
|
|
2
|
+
|
|
3
|
+
<PropertyGroup>
|
|
4
|
+
<TargetFramework>netcoreapp2.0</TargetFramework>
|
|
5
|
+
|
|
6
|
+
<IsPackable>false</IsPackable>
|
|
7
|
+
</PropertyGroup>
|
|
8
|
+
|
|
9
|
+
<ItemGroup>
|
|
10
|
+
<Compile Include="TreeBuilding.fs" />
|
|
11
|
+
<Compile Include="TreeBuildingTest.fs" />
|
|
12
|
+
<Compile Include="Program.fs" />
|
|
13
|
+
</ItemGroup>
|
|
14
|
+
|
|
15
|
+
<ItemGroup>
|
|
16
|
+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0" />
|
|
17
|
+
<PackageReference Include="xunit" Version="2.3.0-beta5-build3769" />
|
|
18
|
+
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0-beta5-build3769" />
|
|
19
|
+
<PackageReference Include="FsUnit.xUnit" Version="3.0.0" />
|
|
20
|
+
</ItemGroup>
|
|
21
|
+
|
|
22
|
+
</Project>
|