trackler 2.2.1.64 → 2.2.1.65
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/trackler/version.rb +1 -1
- data/problem-specifications/exercises/all-your-base/canonical-data.json +7 -7
- data/tracks/c/config.json +1 -1
- data/tracks/csharp/config.json +10 -0
- data/tracks/csharp/docs/GENERATORS.md +3 -3
- data/tracks/csharp/exercises/Exercises.sln +8 -2
- data/tracks/csharp/exercises/accumulate/Accumulate.csproj +3 -3
- data/tracks/csharp/exercises/acronym/Acronym.csproj +3 -3
- data/tracks/csharp/exercises/all-your-base/AllYourBase.csproj +3 -3
- data/tracks/csharp/exercises/allergies/Allergies.csproj +3 -3
- data/tracks/csharp/exercises/alphametics/Alphametics.csproj +3 -3
- data/tracks/csharp/exercises/anagram/Anagram.csproj +3 -3
- data/tracks/csharp/exercises/atbash-cipher/AtbashCipher.csproj +3 -3
- data/tracks/csharp/exercises/bank-account/BankAccount.csproj +3 -3
- data/tracks/csharp/exercises/beer-song/BeerSong.csproj +3 -3
- data/tracks/csharp/exercises/binary-search-tree/BinarySearchTree.csproj +3 -3
- data/tracks/csharp/exercises/binary-search/BinarySearch.csproj +3 -3
- data/tracks/csharp/exercises/bob/Bob.csproj +3 -3
- data/tracks/csharp/exercises/book-store/BookStore.csproj +3 -3
- data/tracks/csharp/exercises/bowling/Bowling.csproj +3 -3
- data/tracks/csharp/exercises/bracket-push/BracketPush.csproj +3 -3
- data/tracks/csharp/exercises/change/Change.csproj +3 -3
- data/tracks/csharp/exercises/circular-buffer/CircularBuffer.csproj +3 -3
- data/tracks/csharp/exercises/clock/Clock.csproj +3 -3
- data/tracks/csharp/exercises/collatz-conjecture/CollatzConjecture.csproj +3 -3
- data/tracks/csharp/exercises/complex-numbers/ComplexNumbers.csproj +3 -3
- data/tracks/csharp/exercises/connect/Connect.csproj +3 -3
- data/tracks/csharp/exercises/crypto-square/CryptoSquare.csproj +3 -3
- data/tracks/csharp/exercises/custom-set/CustomSet.csproj +3 -3
- data/tracks/csharp/exercises/diamond/Diamond.csproj +3 -3
- data/tracks/csharp/exercises/difference-of-squares/DifferenceOfSquares.csproj +3 -3
- data/tracks/csharp/exercises/diffie-hellman/DiffieHellman.csproj +3 -3
- data/tracks/csharp/exercises/dominoes/Dominoes.csproj +3 -3
- data/tracks/csharp/exercises/dot-dsl/DotDsl.csproj +3 -3
- data/tracks/csharp/exercises/error-handling/ErrorHandling.csproj +3 -3
- data/tracks/csharp/exercises/etl/Etl.csproj +3 -3
- data/tracks/csharp/exercises/flatten-array/FlattenArray.csproj +3 -3
- data/tracks/csharp/exercises/food-chain/FoodChain.csproj +3 -3
- data/tracks/csharp/exercises/forth/Forth.csproj +3 -3
- data/tracks/csharp/exercises/gigasecond/Gigasecond.csproj +3 -3
- data/tracks/csharp/exercises/go-counting/GoCounting.csproj +3 -3
- data/tracks/csharp/exercises/grade-school/GradeSchool.csproj +3 -3
- data/tracks/csharp/exercises/grains/Grains.csproj +3 -3
- data/tracks/csharp/exercises/grep/Grep.csproj +3 -3
- data/tracks/csharp/exercises/hamming/Hamming.csproj +3 -3
- data/tracks/csharp/exercises/hangman/Hangman.csproj +3 -3
- data/tracks/csharp/exercises/hello-world/HelloWorld.csproj +3 -3
- data/tracks/csharp/exercises/house/House.csproj +3 -3
- data/tracks/csharp/exercises/isbn-verifier/IsbnVerifier.csproj +1 -1
- data/tracks/csharp/exercises/isogram/Isogram.csproj +3 -3
- data/tracks/csharp/exercises/kindergarten-garden/KindergartenGarden.csproj +3 -3
- data/tracks/csharp/exercises/largest-series-product/LargestSeriesProduct.csproj +3 -3
- data/tracks/csharp/exercises/leap/Leap.csproj +3 -3
- data/tracks/csharp/exercises/ledger/Ledger.csproj +3 -3
- data/tracks/csharp/exercises/linked-list/LinkedList.csproj +3 -3
- data/tracks/csharp/exercises/list-ops/ListOps.csproj +3 -3
- data/tracks/csharp/exercises/luhn/Luhn.csproj +3 -3
- data/tracks/csharp/exercises/markdown/Markdown.csproj +3 -3
- data/tracks/csharp/exercises/matrix/Matrix.csproj +3 -3
- data/tracks/csharp/exercises/meetup/Meetup.csproj +3 -3
- data/tracks/csharp/exercises/minesweeper/Minesweeper.csproj +3 -3
- data/tracks/csharp/exercises/nth-prime/NthPrime.csproj +3 -3
- data/tracks/csharp/exercises/nucleotide-count/NucleotideCount.csproj +3 -3
- data/tracks/csharp/exercises/ocr-numbers/OcrNumbers.csproj +3 -3
- data/tracks/csharp/exercises/palindrome-products/PalindromeProducts.csproj +3 -3
- data/tracks/csharp/exercises/pangram/Pangram.csproj +3 -3
- data/tracks/csharp/exercises/parallel-letter-frequency/ParallelLetterFrequency.csproj +3 -3
- data/tracks/csharp/exercises/pascals-triangle/PascalsTriangle.csproj +3 -3
- data/tracks/csharp/exercises/perfect-numbers/PerfectNumbers.csproj +3 -3
- data/tracks/csharp/exercises/phone-number/PhoneNumber.csproj +3 -3
- data/tracks/csharp/exercises/pig-latin/PigLatin.csproj +3 -3
- data/tracks/csharp/exercises/poker/Poker.csproj +3 -3
- data/tracks/csharp/exercises/pov/Pov.csproj +3 -3
- data/tracks/csharp/exercises/prime-factors/PrimeFactors.csproj +3 -3
- data/tracks/csharp/exercises/protein-translation/ProteinTranslation.csproj +3 -3
- data/tracks/csharp/exercises/proverb/Proverb.csproj +3 -3
- data/tracks/csharp/exercises/pythagorean-triplet/PythagoreanTriplet.csproj +3 -3
- data/tracks/csharp/exercises/queen-attack/QueenAttack.csproj +3 -3
- data/tracks/csharp/exercises/rail-fence-cipher/RailFenceCipher.csproj +3 -3
- data/tracks/csharp/exercises/raindrops/Raindrops.csproj +3 -3
- data/tracks/csharp/exercises/react/React.csproj +3 -3
- data/tracks/csharp/exercises/rectangles/Rectangles.csproj +3 -3
- data/tracks/csharp/exercises/reverse-string/Example.cs +10 -0
- data/tracks/csharp/exercises/reverse-string/README.md +3 -0
- data/tracks/csharp/exercises/reverse-string/ReverseString.cs +9 -0
- data/tracks/csharp/exercises/reverse-string/ReverseString.csproj +17 -0
- data/tracks/csharp/exercises/reverse-string/ReverseStringTest.cs +36 -0
- data/tracks/csharp/exercises/rna-transcription/RnaTranscription.csproj +3 -3
- data/tracks/csharp/exercises/robot-name/RobotName.csproj +3 -3
- data/tracks/csharp/exercises/robot-simulator/RobotSimulator.csproj +3 -3
- data/tracks/csharp/exercises/roman-numerals/RomanNumerals.csproj +3 -3
- data/tracks/csharp/exercises/rotational-cipher/RotationalCipher.csproj +3 -3
- data/tracks/csharp/exercises/run-length-encoding/RunLengthEncoding.csproj +3 -3
- data/tracks/csharp/exercises/saddle-points/SaddlePoints.csproj +3 -3
- data/tracks/csharp/exercises/say/Say.csproj +3 -3
- data/tracks/csharp/exercises/scale-generator/ScaleGenerator.csproj +3 -3
- data/tracks/csharp/exercises/scrabble-score/ScrabbleScore.csproj +3 -3
- data/tracks/csharp/exercises/secret-handshake/SecretHandshake.csproj +3 -3
- data/tracks/csharp/exercises/series/Series.csproj +3 -3
- data/tracks/csharp/exercises/sgf-parsing/SgfParsing.csproj +3 -3
- data/tracks/csharp/exercises/sieve/Sieve.csproj +3 -3
- data/tracks/csharp/exercises/simple-cipher/SimpleCipher.csproj +3 -3
- data/tracks/csharp/exercises/simple-linked-list/SimpleLinkedList.csproj +3 -3
- data/tracks/csharp/exercises/space-age/SpaceAge.csproj +3 -3
- data/tracks/csharp/exercises/spiral-matrix/SpiralMatrix.csproj +3 -3
- data/tracks/csharp/exercises/strain/Strain.csproj +3 -3
- data/tracks/csharp/exercises/sublist/Sublist.csproj +3 -3
- data/tracks/csharp/exercises/sum-of-multiples/SumOfMultiples.csproj +3 -3
- data/tracks/csharp/exercises/tournament/Tournament.csproj +3 -3
- data/tracks/csharp/exercises/transpose/Transpose.csproj +3 -3
- data/tracks/csharp/exercises/tree-building/TreeBuilding.csproj +3 -3
- data/tracks/csharp/exercises/triangle/Triangle.csproj +3 -3
- data/tracks/csharp/exercises/twelve-days/TwelveDays.csproj +3 -3
- data/tracks/csharp/exercises/two-bucket/TwoBucket.csproj +3 -3
- data/tracks/csharp/exercises/two-fer/TwoFer.csproj +3 -3
- data/tracks/csharp/exercises/variable-length-quantity/VariableLengthQuantity.csproj +3 -3
- data/tracks/csharp/exercises/word-count/WordCount.csproj +3 -3
- data/tracks/csharp/exercises/word-search/WordSearch.csproj +3 -3
- data/tracks/csharp/exercises/wordy/Wordy.csproj +3 -3
- data/tracks/csharp/exercises/zebra-puzzle/ZebraPuzzle.csproj +3 -3
- data/tracks/csharp/exercises/zipper/Zipper.csproj +3 -3
- data/tracks/csharp/generators/CustomExercise.cs +9 -0
- data/tracks/csharp/generators/Exercise.cs +3 -110
- data/tracks/csharp/generators/ExerciseCollection.cs +33 -14
- data/tracks/csharp/generators/Exercises/Acronym.cs +1 -1
- data/tracks/csharp/generators/Exercises/AllYourBase.cs +1 -1
- data/tracks/csharp/generators/Exercises/Allergies.cs +1 -1
- data/tracks/csharp/generators/Exercises/Alphametics.cs +1 -1
- data/tracks/csharp/generators/Exercises/Anagram.cs +1 -1
- data/tracks/csharp/generators/Exercises/AtbashCipher.cs +1 -1
- data/tracks/csharp/generators/Exercises/BeerSong.cs +1 -1
- data/tracks/csharp/generators/Exercises/BinarySearch.cs +1 -1
- data/tracks/csharp/generators/Exercises/Bob.cs +1 -1
- data/tracks/csharp/generators/Exercises/BookStore.cs +1 -1
- data/tracks/csharp/generators/Exercises/Bowling.cs +1 -2
- data/tracks/csharp/generators/Exercises/BracketPush.cs +1 -1
- data/tracks/csharp/generators/Exercises/Clock.cs +1 -1
- data/tracks/csharp/generators/Exercises/CollatzConjecture.cs +1 -1
- data/tracks/csharp/generators/Exercises/ComplexNumbers.cs +1 -1
- data/tracks/csharp/generators/Exercises/Connect.cs +2 -4
- data/tracks/csharp/generators/Exercises/CryptoSquare.cs +1 -1
- data/tracks/csharp/generators/Exercises/Diamond.cs +9 -0
- data/tracks/csharp/generators/Exercises/DifferenceOfSquares.cs +1 -2
- data/tracks/csharp/generators/Exercises/Dominoes.cs +1 -1
- data/tracks/csharp/generators/Exercises/Etl.cs +1 -1
- data/tracks/csharp/generators/Exercises/FlattenArray.cs +1 -2
- data/tracks/csharp/generators/Exercises/FoodChain.cs +1 -1
- data/tracks/csharp/generators/Exercises/Gigasecond.cs +1 -1
- data/tracks/csharp/generators/Exercises/Grains.cs +1 -1
- data/tracks/csharp/generators/Exercises/Hamming.cs +1 -1
- data/tracks/csharp/generators/Exercises/HelloWorld.cs +1 -1
- data/tracks/csharp/generators/Exercises/House.cs +1 -1
- data/tracks/csharp/generators/Exercises/IsbnVerifier.cs +2 -4
- data/tracks/csharp/generators/Exercises/Isogram.cs +1 -1
- data/tracks/csharp/generators/Exercises/KindergartenGarden.cs +1 -1
- data/tracks/csharp/generators/Exercises/LargestSeriesProduct.cs +1 -1
- data/tracks/csharp/generators/Exercises/Leap.cs +1 -1
- data/tracks/csharp/generators/Exercises/Luhn.cs +1 -1
- data/tracks/csharp/generators/Exercises/Meetup.cs +1 -1
- data/tracks/csharp/generators/Exercises/Minesweeper.cs +1 -1
- data/tracks/csharp/generators/Exercises/NthPrime.cs +1 -1
- data/tracks/csharp/generators/Exercises/NucleotideCount.cs +1 -1
- data/tracks/csharp/generators/Exercises/OcrNumbers.cs +1 -1
- data/tracks/csharp/generators/Exercises/Pangram.cs +1 -1
- data/tracks/csharp/generators/Exercises/PascalsTriangle.cs +1 -1
- data/tracks/csharp/generators/Exercises/PerfectNumbers.cs +1 -1
- data/tracks/csharp/generators/Exercises/PhoneNumber.cs +1 -1
- data/tracks/csharp/generators/Exercises/PigLatin.cs +1 -1
- data/tracks/csharp/generators/Exercises/Poker.cs +1 -1
- data/tracks/csharp/generators/Exercises/PrimeFactors.cs +1 -1
- data/tracks/csharp/generators/Exercises/QueenAttack.cs +1 -1
- data/tracks/csharp/generators/Exercises/RailFenceCipher.cs +1 -1
- data/tracks/csharp/generators/Exercises/Raindrops.cs +1 -1
- data/tracks/csharp/generators/Exercises/ReverseString.cs +6 -0
- data/tracks/csharp/generators/Exercises/RnaTranscription.cs +1 -1
- data/tracks/csharp/generators/Exercises/RomanNumerals.cs +1 -1
- data/tracks/csharp/generators/Exercises/RotationalCipher.cs +1 -1
- data/tracks/csharp/generators/Exercises/RunLengthEncoding.cs +1 -1
- data/tracks/csharp/generators/Exercises/SaddlePoints.cs +1 -1
- data/tracks/csharp/generators/Exercises/Say.cs +1 -1
- data/tracks/csharp/generators/Exercises/ScrabbleScore.cs +1 -1
- data/tracks/csharp/generators/Exercises/SecretHandshake.cs +1 -1
- data/tracks/csharp/generators/Exercises/Sieve.cs +1 -1
- data/tracks/csharp/generators/Exercises/SpaceAge.cs +1 -1
- data/tracks/csharp/generators/Exercises/SumOfMultiples.cs +1 -1
- data/tracks/csharp/generators/Exercises/Tournament.cs +1 -1
- data/tracks/csharp/generators/Exercises/Transpose.cs +1 -1
- data/tracks/csharp/generators/Exercises/Triangle.cs +1 -2
- data/tracks/csharp/generators/Exercises/TwoBucket.cs +1 -1
- data/tracks/csharp/generators/Exercises/TwoFer.cs +1 -1
- data/tracks/csharp/generators/Exercises/WordCount.cs +1 -1
- data/tracks/csharp/generators/Exercises/Wordy.cs +1 -1
- data/tracks/csharp/generators/GeneratorExercise.cs +114 -0
- data/tracks/csharp/generators/GeneratorStatus.cs +11 -0
- data/tracks/csharp/generators/Generators.csproj +1 -1
- data/tracks/csharp/generators/Input/CanonicalDataFile.cs +11 -9
- data/tracks/csharp/generators/Input/CanonicalDataParser.cs +5 -6
- data/tracks/csharp/generators/Input/ConfigFile.cs +29 -0
- data/tracks/csharp/generators/MissingDataExercise.cs +9 -0
- data/tracks/csharp/generators/Options.cs +18 -5
- data/tracks/csharp/generators/Output/ExerciseWriter.cs +5 -8
- data/tracks/csharp/generators/Output/NameExtensions.cs +3 -1
- data/tracks/csharp/generators/Program.cs +54 -15
- data/tracks/csharp/generators/UnimplementedExercise.cs +9 -0
- data/tracks/dart/README.md +6 -0
- data/tracks/dart/config.json +1 -1
- data/tracks/fsharp/config.json +24 -0
- data/tracks/fsharp/exercises/Exercises.sln +12 -0
- data/tracks/fsharp/exercises/accumulate/Accumulate.fsproj +4 -4
- data/tracks/fsharp/exercises/acronym/Acronym.fsproj +4 -4
- data/tracks/fsharp/exercises/all-your-base/AllYourBase.fsproj +4 -4
- data/tracks/fsharp/exercises/all-your-base/AllYourBaseTest.fs +5 -5
- data/tracks/fsharp/exercises/all-your-base/Example.fs +9 -7
- data/tracks/fsharp/exercises/allergies/Allergies.fsproj +4 -4
- data/tracks/fsharp/exercises/alphametics/Alphametics.fsproj +4 -4
- data/tracks/fsharp/exercises/alphametics/AlphameticsTest.fs +32 -32
- data/tracks/fsharp/exercises/anagram/Anagram.fsproj +4 -4
- data/tracks/fsharp/exercises/atbash-cipher/AtbashCipher.fsproj +4 -4
- data/tracks/fsharp/exercises/bank-account/BankAccount.fsproj +4 -4
- data/tracks/fsharp/exercises/beer-song/BeerSong.fsproj +4 -4
- data/tracks/fsharp/exercises/binary-search-tree/BinarySearchTree.fsproj +4 -4
- data/tracks/fsharp/exercises/binary-search/BinarySearch.fsproj +4 -4
- data/tracks/fsharp/exercises/bob/Bob.fsproj +4 -4
- data/tracks/fsharp/exercises/book-store/BookStore.fsproj +4 -4
- data/tracks/fsharp/exercises/bowling/Bowling.fsproj +4 -4
- data/tracks/fsharp/exercises/bracket-push/BracketPush.fsproj +4 -4
- data/tracks/fsharp/exercises/change/Change.fsproj +4 -4
- data/tracks/fsharp/exercises/circular-buffer/CircularBuffer.fsproj +4 -4
- data/tracks/fsharp/exercises/clock/Clock.fsproj +4 -4
- data/tracks/fsharp/exercises/collatz-conjecture/CollatzConjecture.fs +3 -0
- data/tracks/fsharp/exercises/collatz-conjecture/CollatzConjecture.fsproj +23 -0
- data/tracks/fsharp/exercises/collatz-conjecture/CollatzConjectureTest.fs +33 -0
- data/tracks/fsharp/exercises/collatz-conjecture/Example.fs +15 -0
- data/tracks/fsharp/exercises/collatz-conjecture/Program.fs +1 -0
- data/tracks/fsharp/exercises/collatz-conjecture/README.md +32 -0
- data/tracks/fsharp/exercises/connect/Connect.fsproj +4 -4
- data/tracks/fsharp/exercises/connect/ConnectTest.fs +35 -35
- data/tracks/fsharp/exercises/crypto-square/CryptoSquare.fsproj +4 -4
- data/tracks/fsharp/exercises/custom-set/CustomSet.fsproj +4 -4
- data/tracks/fsharp/exercises/diamond/Diamond.fsproj +4 -4
- data/tracks/fsharp/exercises/difference-of-squares/DifferenceOfSquares.fsproj +4 -4
- data/tracks/fsharp/exercises/diffie-hellman/DiffieHellman.fsproj +4 -4
- data/tracks/fsharp/exercises/dominoes/Dominoes.fsproj +4 -4
- data/tracks/fsharp/exercises/dot-dsl/DotDsl.fsproj +4 -4
- data/tracks/fsharp/exercises/error-handling/ErrorHandling.fsproj +4 -4
- data/tracks/fsharp/exercises/etl/Etl.fsproj +4 -4
- data/tracks/fsharp/exercises/etl/EtlTest.fs +39 -39
- data/tracks/fsharp/exercises/food-chain/FoodChain.fsproj +4 -4
- data/tracks/fsharp/exercises/forth/Forth.fsproj +4 -4
- data/tracks/fsharp/exercises/gigasecond/Gigasecond.fsproj +4 -4
- data/tracks/fsharp/exercises/go-counting/GoCounting.fsproj +4 -4
- data/tracks/fsharp/exercises/grade-school/GradeSchool.fsproj +4 -4
- data/tracks/fsharp/exercises/grains/Grains.fsproj +4 -4
- data/tracks/fsharp/exercises/grep/Grep.fsproj +4 -4
- data/tracks/fsharp/exercises/hamming/Hamming.fsproj +4 -4
- data/tracks/fsharp/exercises/hangman/Hangman.fsproj +4 -4
- data/tracks/fsharp/exercises/hello-world/HelloWorld.fsproj +4 -4
- data/tracks/fsharp/exercises/house/House.fsproj +4 -4
- data/tracks/fsharp/exercises/isogram/Isogram.fsproj +4 -4
- data/tracks/fsharp/exercises/kindergarten-garden/KindergartenGarden.fsproj +4 -4
- data/tracks/fsharp/exercises/largest-series-product/LargestSeriesProduct.fsproj +4 -4
- data/tracks/fsharp/exercises/leap/Leap.fsproj +4 -4
- data/tracks/fsharp/exercises/ledger/Ledger.fsproj +4 -4
- data/tracks/fsharp/exercises/lens-person/LensPerson.fsproj +4 -4
- data/tracks/fsharp/exercises/linked-list/LinkedList.fsproj +4 -4
- data/tracks/fsharp/exercises/list-ops/ListOps.fsproj +4 -4
- data/tracks/fsharp/exercises/luhn/Luhn.fsproj +4 -4
- data/tracks/fsharp/exercises/markdown/Markdown.fsproj +4 -4
- data/tracks/fsharp/exercises/matrix/Matrix.fsproj +4 -4
- data/tracks/fsharp/exercises/meetup/Meetup.fsproj +4 -4
- data/tracks/fsharp/exercises/minesweeper/Minesweeper.fsproj +4 -4
- data/tracks/fsharp/exercises/minesweeper/MinesweeperTest.fs +50 -50
- data/tracks/fsharp/exercises/nth-prime/NthPrime.fsproj +4 -4
- data/tracks/fsharp/exercises/nucleotide-count/NucleotideCount.fsproj +4 -4
- data/tracks/fsharp/exercises/nucleotide-count/NucleotideCountTest.fs +12 -12
- data/tracks/fsharp/exercises/ocr-numbers/OcrNumbers.fsproj +4 -4
- data/tracks/fsharp/exercises/ocr-numbers/OcrNumbersTest.fs +58 -58
- data/tracks/fsharp/exercises/palindrome-products/PalindromeProducts.fsproj +4 -4
- data/tracks/fsharp/exercises/pangram/Pangram.fsproj +4 -4
- data/tracks/fsharp/exercises/parallel-letter-frequency/ParallelLetterFrequency.fsproj +4 -4
- data/tracks/fsharp/exercises/pascals-triangle/PascalsTriangle.fsproj +4 -4
- data/tracks/fsharp/exercises/pascals-triangle/PascalsTriangleTest.fs +64 -7
- data/tracks/fsharp/exercises/perfect-numbers/PerfectNumbers.fsproj +4 -4
- data/tracks/fsharp/exercises/phone-number/PhoneNumber.fsproj +4 -4
- data/tracks/fsharp/exercises/pig-latin/PigLatin.fsproj +4 -4
- data/tracks/fsharp/exercises/poker/Poker.fsproj +4 -4
- data/tracks/fsharp/exercises/pov/Pov.fsproj +4 -4
- data/tracks/fsharp/exercises/prime-factors/PrimeFactors.fsproj +4 -4
- data/tracks/fsharp/exercises/protein-translation/ProteinTranslation.fsproj +4 -4
- data/tracks/fsharp/exercises/proverb/Proverb.fsproj +4 -4
- data/tracks/fsharp/exercises/pythagorean-triplet/PythagoreanTriplet.fsproj +4 -4
- data/tracks/fsharp/exercises/queen-attack/QueenAttack.fsproj +4 -4
- data/tracks/fsharp/exercises/rail-fence-cipher/RailFenceCipher.fsproj +4 -4
- data/tracks/fsharp/exercises/raindrops/Raindrops.fsproj +4 -4
- data/tracks/fsharp/exercises/react/React.fsproj +4 -4
- data/tracks/fsharp/exercises/rectangles/Rectangles.fsproj +4 -4
- data/tracks/fsharp/exercises/reverse-string/Example.fs +5 -0
- data/tracks/fsharp/exercises/reverse-string/Program.fs +1 -0
- data/tracks/fsharp/exercises/reverse-string/README.md +3 -0
- data/tracks/fsharp/exercises/reverse-string/ReverseString.fs +3 -0
- data/tracks/fsharp/exercises/reverse-string/ReverseString.fsproj +23 -0
- data/tracks/fsharp/exercises/reverse-string/ReverseStringTest.fs +29 -0
- data/tracks/fsharp/exercises/rna-transcription/RnaTranscription.fsproj +4 -4
- data/tracks/fsharp/exercises/robot-name/RobotName.fsproj +4 -4
- data/tracks/fsharp/exercises/robot-simulator/RobotSimulator.fsproj +4 -4
- data/tracks/fsharp/exercises/roman-numerals/RomanNumerals.fsproj +4 -4
- data/tracks/fsharp/exercises/run-length-encoding/RunLengthEncoding.fsproj +4 -4
- data/tracks/fsharp/exercises/saddle-points/SaddlePoints.fsproj +4 -4
- data/tracks/fsharp/exercises/say/Say.fsproj +4 -4
- data/tracks/fsharp/exercises/scale-generator/ScaleGenerator.fsproj +4 -4
- data/tracks/fsharp/exercises/scrabble-score/ScrabbleScore.fsproj +4 -4
- data/tracks/fsharp/exercises/secret-handshake/SecretHandshake.fsproj +4 -4
- data/tracks/fsharp/exercises/series/Series.fsproj +4 -4
- data/tracks/fsharp/exercises/sgf-parsing/SgfParsing.fsproj +4 -4
- data/tracks/fsharp/exercises/sieve/Sieve.fsproj +4 -4
- data/tracks/fsharp/exercises/simple-cipher/SimpleCipher.fsproj +4 -4
- data/tracks/fsharp/exercises/simple-linked-list/SimpleLinkedList.fsproj +4 -4
- data/tracks/fsharp/exercises/space-age/SpaceAge.fsproj +4 -4
- data/tracks/fsharp/exercises/strain/Strain.fsproj +4 -4
- data/tracks/fsharp/exercises/sublist/Sublist.fsproj +4 -4
- data/tracks/fsharp/exercises/sum-of-multiples/SumOfMultiples.fsproj +4 -4
- data/tracks/fsharp/exercises/tournament/Tournament.fsproj +4 -4
- data/tracks/fsharp/exercises/transpose/Transpose.fsproj +4 -4
- data/tracks/fsharp/exercises/tree-building/TreeBuilding.fsproj +4 -4
- data/tracks/fsharp/exercises/triangle/Triangle.fsproj +4 -4
- data/tracks/fsharp/exercises/twelve-days/TwelveDays.fsproj +4 -4
- data/tracks/fsharp/exercises/two-bucket/TwoBucket.fsproj +4 -4
- data/tracks/fsharp/exercises/two-fer/TwoFer.fsproj +4 -4
- data/tracks/fsharp/exercises/variable-length-quantity/VariableLengthQuantity.fsproj +4 -4
- data/tracks/fsharp/exercises/word-count/WordCount.fsproj +4 -4
- data/tracks/fsharp/exercises/word-search/WordSearch.fsproj +4 -4
- data/tracks/fsharp/exercises/wordy/Wordy.fsproj +4 -4
- data/tracks/fsharp/exercises/zebra-puzzle/ZebraPuzzle.fsproj +4 -4
- data/tracks/fsharp/exercises/zipper/Zipper.fsproj +4 -4
- data/tracks/fsharp/generators/Common.fs +4 -1
- data/tracks/fsharp/generators/Generators.fs +29 -6
- data/tracks/fsharp/generators/Generators.fsproj +1 -1
- data/tracks/go/exercises/book-store/.meta/gen.go +54 -0
- data/tracks/go/exercises/book-store/book_store_test.go +0 -67
- data/tracks/go/exercises/book-store/cases_test.go +77 -0
- data/tracks/go/exercises/forth/cases_test.go +41 -6
- data/tracks/go/exercises/hamming/.meta/gen.go +16 -6
- data/tracks/go/exercises/hamming/cases_test.go +7 -7
- data/tracks/go/exercises/isbn-verifier/.meta/gen.go +44 -0
- data/tracks/go/exercises/isbn-verifier/cases_test.go +25 -0
- data/tracks/go/exercises/isbn-verifier/example.go +2 -2
- data/tracks/go/exercises/isbn-verifier/isbn_verifier_test.go +3 -22
- data/tracks/go/exercises/perfect-numbers/.meta/gen.go +88 -0
- data/tracks/go/exercises/perfect-numbers/.meta/hints.md +19 -0
- data/tracks/go/exercises/perfect-numbers/README.md +23 -2
- data/tracks/go/exercises/perfect-numbers/cases_test.go +89 -0
- data/tracks/go/exercises/perfect-numbers/example.go +4 -4
- data/tracks/go/exercises/perfect-numbers/perfect_numbers_test.go +13 -18
- data/tracks/go/exercises/wordy/.meta/gen.go +76 -0
- data/tracks/go/exercises/wordy/cases_test.go +111 -0
- data/tracks/go/exercises/wordy/wordy_test.go +7 -29
- data/tracks/groovy/config.json +4 -4
- data/tracks/haskell/exercises/all-your-base/package.yaml +1 -1
- data/tracks/haskell/exercises/all-your-base/test/Tests.hs +2 -2
- data/tracks/haskell/exercises/beer-song/README.md +1 -1
- data/tracks/haskell/exercises/forth/package.yaml +1 -1
- data/tracks/haskell/exercises/forth/test/Tests.hs +21 -3
- data/tracks/haskell/exercises/isbn-verifier/package.yaml +1 -1
- data/tracks/haskell/exercises/meetup/README.md +16 -12
- data/tracks/haskell/exercises/sum-of-multiples/README.md +3 -3
- data/tracks/javascript/exercises/bowling/README.md +6 -6
- data/tracks/javascript/exercises/bowling/bowling.spec.js +14 -14
- data/tracks/javascript/exercises/saddle-points/README.md +1 -1
- data/tracks/javascript/exercises/sum-of-multiples/README.md +1 -1
- data/tracks/javascript/exercises/two-bucket/two-bucket.spec.js +2 -2
- data/tracks/julia/config.json +6 -6
- data/tracks/python/.gitignore +2 -0
- data/tracks/python/config.json +14 -0
- data/tracks/python/exercises/binary-search-tree/README.md +71 -0
- data/tracks/python/exercises/binary-search-tree/binary_search_tree.py +14 -0
- data/tracks/python/exercises/binary-search-tree/binary_search_tree_test.py +58 -0
- data/tracks/python/exercises/binary-search-tree/example.py +61 -0
- data/tracks/python/exercises/go-counting/go_counting_test.py +23 -23
- data/tracks/python/exercises/minesweeper/example.py +10 -14
- data/tracks/python/exercises/minesweeper/minesweeper_test.py +108 -119
- data/tracks/rust/config.json +12 -0
- data/tracks/rust/exercises/beer-song/README.md +1 -1
- data/tracks/rust/exercises/proverb/README.md +5 -2
- data/tracks/rust/exercises/reverse-string/.gitignore +3 -0
- data/tracks/rust/exercises/reverse-string/Cargo.toml +6 -0
- data/tracks/rust/exercises/reverse-string/README.md +46 -0
- data/tracks/rust/exercises/reverse-string/example.rs +7 -0
- data/tracks/rust/exercises/reverse-string/src/lib.rs +3 -0
- data/tracks/rust/exercises/reverse-string/tests/reverse-string.rs +57 -0
- data/tracks/rust/exercises/sum-of-multiples/README.md +3 -3
- metadata +46 -3
- data/tracks/csharp/generators/Input/CanonicalDataOptions.cs +0 -8
@@ -0,0 +1,33 @@
|
|
1
|
+
// This file was auto-generated based on version 1.1.1 of the canonical data.
|
2
|
+
|
3
|
+
module CollatzConjectureTest
|
4
|
+
|
5
|
+
open FsUnit.Xunit
|
6
|
+
open Xunit
|
7
|
+
|
8
|
+
open CollatzConjecture
|
9
|
+
|
10
|
+
[<Fact>]
|
11
|
+
let ``Zero steps for one`` () =
|
12
|
+
steps 1 |> should equal (Some 0)
|
13
|
+
|
14
|
+
[<Fact(Skip = "Remove to run test")>]
|
15
|
+
let ``Divide if even`` () =
|
16
|
+
steps 16 |> should equal (Some 4)
|
17
|
+
|
18
|
+
[<Fact(Skip = "Remove to run test")>]
|
19
|
+
let ``Even and odd steps`` () =
|
20
|
+
steps 12 |> should equal (Some 9)
|
21
|
+
|
22
|
+
[<Fact(Skip = "Remove to run test")>]
|
23
|
+
let ``Large number of even and odd steps`` () =
|
24
|
+
steps 1000000 |> should equal (Some 152)
|
25
|
+
|
26
|
+
[<Fact(Skip = "Remove to run test")>]
|
27
|
+
let ``Zero is an error`` () =
|
28
|
+
steps 0 |> should equal None
|
29
|
+
|
30
|
+
[<Fact(Skip = "Remove to run test")>]
|
31
|
+
let ``Negative value is an error`` () =
|
32
|
+
steps -15 |> should equal None
|
33
|
+
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module CollatzConjecture
|
2
|
+
|
3
|
+
let steps number =
|
4
|
+
let rec helper count current =
|
5
|
+
match current with
|
6
|
+
| _ when current < 1 ->
|
7
|
+
None
|
8
|
+
| 1 ->
|
9
|
+
Some count
|
10
|
+
| _ when current % 2 = 0 ->
|
11
|
+
helper (count + 1) (current / 2)
|
12
|
+
| _ ->
|
13
|
+
helper (count + 1) (current * 3 + 1)
|
14
|
+
|
15
|
+
helper 0 number
|
@@ -0,0 +1 @@
|
|
1
|
+
module Program = let [<EntryPoint>] main _ = 0
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# Collatz Conjecture
|
2
|
+
|
3
|
+
The Collatz Conjecture or 3x+1 problem can be summarized as follows:
|
4
|
+
|
5
|
+
Take any positive integer n. If n is even, divide n by 2 to get n / 2. If n is
|
6
|
+
odd, multiply n by 3 and add 1 to get 3n + 1. Repeat the process indefinitely.
|
7
|
+
The conjecture states that no matter which number you start with, you will
|
8
|
+
always reach 1 eventually.
|
9
|
+
|
10
|
+
Given a number n, return the number of steps required to reach 1.
|
11
|
+
|
12
|
+
## Examples
|
13
|
+
Starting with n = 12, the steps would be as follows:
|
14
|
+
|
15
|
+
0. 12
|
16
|
+
1. 6
|
17
|
+
2. 3
|
18
|
+
3. 10
|
19
|
+
4. 5
|
20
|
+
5. 16
|
21
|
+
6. 8
|
22
|
+
7. 4
|
23
|
+
8. 2
|
24
|
+
9. 1
|
25
|
+
|
26
|
+
Resulting in 9 steps. So for input n = 12, the return value would be 9.
|
27
|
+
|
28
|
+
## Source
|
29
|
+
An unsolved problem in mathematics named after mathematician Lothar Collatz [https://en.wikipedia.org/wiki/3x_%2B_1_problem](https://en.wikipedia.org/wiki/3x_%2B_1_problem)
|
30
|
+
|
31
|
+
## Submitting Incomplete Solutions
|
32
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -13,11 +13,11 @@
|
|
13
13
|
</ItemGroup>
|
14
14
|
|
15
15
|
<ItemGroup>
|
16
|
-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.
|
17
|
-
<PackageReference Include="xunit" Version="2.3.
|
18
|
-
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.
|
16
|
+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.5.0" />
|
17
|
+
<PackageReference Include="xunit" Version="2.3.1" />
|
18
|
+
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" />
|
19
19
|
<PackageReference Include="FsUnit.xUnit" Version="3.0.0" />
|
20
|
-
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.
|
20
|
+
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.1" />
|
21
21
|
</ItemGroup>
|
22
22
|
|
23
23
|
</Project>
|
@@ -10,10 +10,10 @@ open Connect
|
|
10
10
|
[<Fact>]
|
11
11
|
let ``An empty board has no winner`` () =
|
12
12
|
let board =
|
13
|
-
[ ". . . . . "
|
14
|
-
" . . . . . "
|
15
|
-
" . . . . . "
|
16
|
-
" . . . . . "
|
13
|
+
[ ". . . . . ";
|
14
|
+
" . . . . . ";
|
15
|
+
" . . . . . ";
|
16
|
+
" . . . . . ";
|
17
17
|
" . . . . ." ]
|
18
18
|
winner board |> should equal None
|
19
19
|
|
@@ -30,73 +30,73 @@ let ``O can win on a 1x1 board`` () =
|
|
30
30
|
[<Fact(Skip = "Remove to run test")>]
|
31
31
|
let ``Only edges does not make a winner`` () =
|
32
32
|
let board =
|
33
|
-
[ "O O O X "
|
34
|
-
" X . . X "
|
35
|
-
" X . . X "
|
33
|
+
[ "O O O X ";
|
34
|
+
" X . . X ";
|
35
|
+
" X . . X ";
|
36
36
|
" X O O O" ]
|
37
37
|
winner board |> should equal None
|
38
38
|
|
39
39
|
[<Fact(Skip = "Remove to run test")>]
|
40
40
|
let ``Illegal diagonal does not make a winner`` () =
|
41
41
|
let board =
|
42
|
-
[ "X O . . "
|
43
|
-
" O X X X "
|
44
|
-
" O X O . "
|
45
|
-
" . O X . "
|
42
|
+
[ "X O . . ";
|
43
|
+
" O X X X ";
|
44
|
+
" O X O . ";
|
45
|
+
" . O X . ";
|
46
46
|
" X X O O" ]
|
47
47
|
winner board |> should equal None
|
48
48
|
|
49
49
|
[<Fact(Skip = "Remove to run test")>]
|
50
50
|
let ``Nobody wins crossing adjacent angles`` () =
|
51
51
|
let board =
|
52
|
-
[ "X . . . "
|
53
|
-
" . X O . "
|
54
|
-
" O . X O "
|
55
|
-
" . O . X "
|
52
|
+
[ "X . . . ";
|
53
|
+
" . X O . ";
|
54
|
+
" O . X O ";
|
55
|
+
" . O . X ";
|
56
56
|
" . . O ." ]
|
57
57
|
winner board |> should equal None
|
58
58
|
|
59
59
|
[<Fact(Skip = "Remove to run test")>]
|
60
60
|
let ``X wins crossing from left to right`` () =
|
61
61
|
let board =
|
62
|
-
[ ". O . . "
|
63
|
-
" O X X X "
|
64
|
-
" O X O . "
|
65
|
-
" X X O X "
|
62
|
+
[ ". O . . ";
|
63
|
+
" O X X X ";
|
64
|
+
" O X O . ";
|
65
|
+
" X X O X ";
|
66
66
|
" . O X ." ]
|
67
67
|
winner board |> should equal (Some Black)
|
68
68
|
|
69
69
|
[<Fact(Skip = "Remove to run test")>]
|
70
70
|
let ``O wins crossing from top to bottom`` () =
|
71
71
|
let board =
|
72
|
-
[ ". O . . "
|
73
|
-
" O X X X "
|
74
|
-
" O O O . "
|
75
|
-
" X X O X "
|
72
|
+
[ ". O . . ";
|
73
|
+
" O X X X ";
|
74
|
+
" O O O . ";
|
75
|
+
" X X O X ";
|
76
76
|
" . O X ." ]
|
77
77
|
winner board |> should equal (Some White)
|
78
78
|
|
79
79
|
[<Fact(Skip = "Remove to run test")>]
|
80
80
|
let ``X wins using a convoluted path`` () =
|
81
81
|
let board =
|
82
|
-
[ ". X X . . "
|
83
|
-
" X . X . X "
|
84
|
-
" . X . X . "
|
85
|
-
" . X X . . "
|
82
|
+
[ ". X X . . ";
|
83
|
+
" X . X . X ";
|
84
|
+
" . X . X . ";
|
85
|
+
" . X X . . ";
|
86
86
|
" O O O O O" ]
|
87
87
|
winner board |> should equal (Some Black)
|
88
88
|
|
89
89
|
[<Fact(Skip = "Remove to run test")>]
|
90
90
|
let ``X wins using a spiral path`` () =
|
91
91
|
let board =
|
92
|
-
[ "O X X X X X X X X "
|
93
|
-
" O X O O O O O O O "
|
94
|
-
" O X O X X X X X O "
|
95
|
-
" O X O X O O O X O "
|
96
|
-
" O X O X X X O X O "
|
97
|
-
" O X O O O X O X O "
|
98
|
-
" O X X X X X O X O "
|
99
|
-
" O O O O O O O X O "
|
92
|
+
[ "O X X X X X X X X ";
|
93
|
+
" O X O O O O O O O ";
|
94
|
+
" O X O X X X X X O ";
|
95
|
+
" O X O X O O O X O ";
|
96
|
+
" O X O X X X O X O ";
|
97
|
+
" O X O O O X O X O ";
|
98
|
+
" O X X X X X O X O ";
|
99
|
+
" O O O O O O O X O ";
|
100
100
|
" X X X X X X X X O" ]
|
101
101
|
winner board |> should equal (Some Black)
|
102
102
|
|
@@ -13,11 +13,11 @@
|
|
13
13
|
</ItemGroup>
|
14
14
|
|
15
15
|
<ItemGroup>
|
16
|
-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.
|
17
|
-
<PackageReference Include="xunit" Version="2.3.
|
18
|
-
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.
|
16
|
+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.5.0" />
|
17
|
+
<PackageReference Include="xunit" Version="2.3.1" />
|
18
|
+
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" />
|
19
19
|
<PackageReference Include="FsUnit.xUnit" Version="3.0.0" />
|
20
|
-
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.
|
20
|
+
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.1" />
|
21
21
|
</ItemGroup>
|
22
22
|
|
23
23
|
</Project>
|
@@ -13,11 +13,11 @@
|
|
13
13
|
</ItemGroup>
|
14
14
|
|
15
15
|
<ItemGroup>
|
16
|
-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.
|
17
|
-
<PackageReference Include="xunit" Version="2.3.
|
18
|
-
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.
|
16
|
+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.5.0" />
|
17
|
+
<PackageReference Include="xunit" Version="2.3.1" />
|
18
|
+
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" />
|
19
19
|
<PackageReference Include="FsUnit.xUnit" Version="3.0.0" />
|
20
|
-
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.
|
20
|
+
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.1" />
|
21
21
|
</ItemGroup>
|
22
22
|
|
23
23
|
</Project>
|
@@ -13,11 +13,11 @@
|
|
13
13
|
</ItemGroup>
|
14
14
|
|
15
15
|
<ItemGroup>
|
16
|
-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.
|
17
|
-
<PackageReference Include="xunit" Version="2.3.
|
18
|
-
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.
|
16
|
+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.5.0" />
|
17
|
+
<PackageReference Include="xunit" Version="2.3.1" />
|
18
|
+
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" />
|
19
19
|
<PackageReference Include="FsUnit.xUnit" Version="3.0.0" />
|
20
|
-
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.
|
20
|
+
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.1" />
|
21
21
|
</ItemGroup>
|
22
22
|
|
23
23
|
</Project>
|
@@ -13,11 +13,11 @@
|
|
13
13
|
</ItemGroup>
|
14
14
|
|
15
15
|
<ItemGroup>
|
16
|
-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.
|
17
|
-
<PackageReference Include="xunit" Version="2.3.
|
18
|
-
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.
|
16
|
+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.5.0" />
|
17
|
+
<PackageReference Include="xunit" Version="2.3.1" />
|
18
|
+
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" />
|
19
19
|
<PackageReference Include="FsUnit.xUnit" Version="3.0.0" />
|
20
|
-
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.
|
20
|
+
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.1" />
|
21
21
|
</ItemGroup>
|
22
22
|
|
23
23
|
</Project>
|
@@ -13,11 +13,11 @@
|
|
13
13
|
</ItemGroup>
|
14
14
|
|
15
15
|
<ItemGroup>
|
16
|
-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.
|
17
|
-
<PackageReference Include="xunit" Version="2.3.
|
18
|
-
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.
|
16
|
+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.5.0" />
|
17
|
+
<PackageReference Include="xunit" Version="2.3.1" />
|
18
|
+
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" />
|
19
19
|
<PackageReference Include="FsUnit.xUnit" Version="3.0.0" />
|
20
|
-
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.
|
20
|
+
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.1" />
|
21
21
|
</ItemGroup>
|
22
22
|
|
23
23
|
</Project>
|
@@ -13,11 +13,11 @@
|
|
13
13
|
</ItemGroup>
|
14
14
|
|
15
15
|
<ItemGroup>
|
16
|
-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.
|
17
|
-
<PackageReference Include="xunit" Version="2.3.
|
18
|
-
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.
|
16
|
+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.5.0" />
|
17
|
+
<PackageReference Include="xunit" Version="2.3.1" />
|
18
|
+
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" />
|
19
19
|
<PackageReference Include="FsUnit.xUnit" Version="3.0.0" />
|
20
|
-
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.
|
20
|
+
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.1" />
|
21
21
|
</ItemGroup>
|
22
22
|
|
23
23
|
</Project>
|
@@ -13,11 +13,11 @@
|
|
13
13
|
</ItemGroup>
|
14
14
|
|
15
15
|
<ItemGroup>
|
16
|
-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.
|
17
|
-
<PackageReference Include="xunit" Version="2.3.
|
18
|
-
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.
|
16
|
+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.5.0" />
|
17
|
+
<PackageReference Include="xunit" Version="2.3.1" />
|
18
|
+
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" />
|
19
19
|
<PackageReference Include="FsUnit.xUnit" Version="3.0.0" />
|
20
|
-
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.
|
20
|
+
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.1" />
|
21
21
|
</ItemGroup>
|
22
22
|
|
23
23
|
</Project>
|
@@ -13,11 +13,11 @@
|
|
13
13
|
</ItemGroup>
|
14
14
|
|
15
15
|
<ItemGroup>
|
16
|
-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.
|
17
|
-
<PackageReference Include="xunit" Version="2.3.
|
18
|
-
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.
|
16
|
+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.5.0" />
|
17
|
+
<PackageReference Include="xunit" Version="2.3.1" />
|
18
|
+
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" />
|
19
19
|
<PackageReference Include="FsUnit.xUnit" Version="3.0.0" />
|
20
|
-
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.
|
20
|
+
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.1" />
|
21
21
|
</ItemGroup>
|
22
22
|
|
23
23
|
</Project>
|
@@ -13,11 +13,11 @@
|
|
13
13
|
</ItemGroup>
|
14
14
|
|
15
15
|
<ItemGroup>
|
16
|
-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.
|
17
|
-
<PackageReference Include="xunit" Version="2.3.
|
18
|
-
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.
|
16
|
+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.5.0" />
|
17
|
+
<PackageReference Include="xunit" Version="2.3.1" />
|
18
|
+
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" />
|
19
19
|
<PackageReference Include="FsUnit.xUnit" Version="3.0.0" />
|
20
|
-
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.
|
20
|
+
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.1" />
|
21
21
|
</ItemGroup>
|
22
22
|
|
23
23
|
</Project>
|
@@ -17,10 +17,10 @@ let ``A single letter`` () =
|
|
17
17
|
let ``Single score with multiple letters`` () =
|
18
18
|
let input = [(1, ['A'; 'E'; 'I'; 'O'; 'U'])] |> Map.ofList
|
19
19
|
let expected =
|
20
|
-
[ ('a', 1)
|
21
|
-
('e', 1)
|
22
|
-
('i', 1)
|
23
|
-
('o', 1)
|
20
|
+
[ ('a', 1);
|
21
|
+
('e', 1);
|
22
|
+
('i', 1);
|
23
|
+
('o', 1);
|
24
24
|
('u', 1) ]
|
25
25
|
|> Map.ofList
|
26
26
|
transform input |> should equal expected
|
@@ -28,13 +28,13 @@ let ``Single score with multiple letters`` () =
|
|
28
28
|
[<Fact(Skip = "Remove to run test")>]
|
29
29
|
let ``Multiple scores with multiple letters`` () =
|
30
30
|
let input =
|
31
|
-
[ (1, ['A'; 'E'])
|
31
|
+
[ (1, ['A'; 'E']);
|
32
32
|
(2, ['D'; 'G']) ]
|
33
33
|
|> Map.ofList
|
34
34
|
let expected =
|
35
|
-
[ ('a', 1)
|
36
|
-
('d', 2)
|
37
|
-
('e', 1)
|
35
|
+
[ ('a', 1);
|
36
|
+
('d', 2);
|
37
|
+
('e', 1);
|
38
38
|
('g', 2) ]
|
39
39
|
|> Map.ofList
|
40
40
|
transform input |> should equal expected
|
@@ -42,40 +42,40 @@ let ``Multiple scores with multiple letters`` () =
|
|
42
42
|
[<Fact(Skip = "Remove to run test")>]
|
43
43
|
let ``Multiple scores with differing numbers of letters`` () =
|
44
44
|
let input =
|
45
|
-
[ (1, ['A'; 'E'; 'I'; 'O'; 'U'; 'L'; 'N'; 'R'; 'S'; 'T'])
|
46
|
-
(2, ['D'; 'G'])
|
47
|
-
(3, ['B'; 'C'; 'M'; 'P'])
|
48
|
-
(4, ['F'; 'H'; 'V'; 'W'; 'Y'])
|
49
|
-
(5, ['K'])
|
50
|
-
(8, ['J'; 'X'])
|
45
|
+
[ (1, ['A'; 'E'; 'I'; 'O'; 'U'; 'L'; 'N'; 'R'; 'S'; 'T']);
|
46
|
+
(2, ['D'; 'G']);
|
47
|
+
(3, ['B'; 'C'; 'M'; 'P']);
|
48
|
+
(4, ['F'; 'H'; 'V'; 'W'; 'Y']);
|
49
|
+
(5, ['K']);
|
50
|
+
(8, ['J'; 'X']);
|
51
51
|
(10, ['Q'; 'Z']) ]
|
52
52
|
|> Map.ofList
|
53
53
|
let expected =
|
54
|
-
[ ('a', 1)
|
55
|
-
('b', 3)
|
56
|
-
('c', 3)
|
57
|
-
('d', 2)
|
58
|
-
('e', 1)
|
59
|
-
('f', 4)
|
60
|
-
('g', 2)
|
61
|
-
('h', 4)
|
62
|
-
('i', 1)
|
63
|
-
('j', 8)
|
64
|
-
('k', 5)
|
65
|
-
('l', 1)
|
66
|
-
('m', 3)
|
67
|
-
('n', 1)
|
68
|
-
('o', 1)
|
69
|
-
('p', 3)
|
70
|
-
('q', 10)
|
71
|
-
('r', 1)
|
72
|
-
('s', 1)
|
73
|
-
('t', 1)
|
74
|
-
('u', 1)
|
75
|
-
('v', 4)
|
76
|
-
('w', 4)
|
77
|
-
('x', 8)
|
78
|
-
('y', 4)
|
54
|
+
[ ('a', 1);
|
55
|
+
('b', 3);
|
56
|
+
('c', 3);
|
57
|
+
('d', 2);
|
58
|
+
('e', 1);
|
59
|
+
('f', 4);
|
60
|
+
('g', 2);
|
61
|
+
('h', 4);
|
62
|
+
('i', 1);
|
63
|
+
('j', 8);
|
64
|
+
('k', 5);
|
65
|
+
('l', 1);
|
66
|
+
('m', 3);
|
67
|
+
('n', 1);
|
68
|
+
('o', 1);
|
69
|
+
('p', 3);
|
70
|
+
('q', 10);
|
71
|
+
('r', 1);
|
72
|
+
('s', 1);
|
73
|
+
('t', 1);
|
74
|
+
('u', 1);
|
75
|
+
('v', 4);
|
76
|
+
('w', 4);
|
77
|
+
('x', 8);
|
78
|
+
('y', 4);
|
79
79
|
('z', 10) ]
|
80
80
|
|> Map.ofList
|
81
81
|
transform input |> should equal expected
|