trackler 2.2.1.151 → 2.2.1.152
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/hamming/description.md +4 -3
- data/problem-specifications/exercises/isbn-verifier/canonical-data.json +9 -1
- data/tracks/clojure/exercises/bob/README.md +2 -0
- data/tracks/clojure/exercises/bob/src/example.clj +4 -0
- data/tracks/clojure/exercises/bob/test/bob_test.clj +1 -1
- data/tracks/clojure/exercises/say/README.md +2 -1
- data/tracks/csharp/exercises/acronym/AcronymTest.cs +3 -9
- data/tracks/csharp/exercises/all-your-base/AllYourBaseTest.cs +43 -43
- data/tracks/csharp/exercises/allergies/AllergiesTest.cs +1 -1
- data/tracks/csharp/exercises/alphametics/AlphameticsTest.cs +21 -1
- data/tracks/csharp/exercises/anagram/AnagramTest.cs +1 -35
- data/tracks/csharp/exercises/atbash-cipher/AtbashCipherTest.cs +1 -1
- data/tracks/csharp/exercises/beer-song/BeerSong.cs +1 -6
- data/tracks/csharp/exercises/beer-song/BeerSongTest.cs +20 -28
- data/tracks/csharp/exercises/beer-song/Example.cs +6 -6
- data/tracks/csharp/exercises/binary-search/BinarySearchTest.cs +1 -1
- data/tracks/csharp/exercises/bob/BobTest.cs +1 -1
- data/tracks/csharp/exercises/book-store/BookStoreTest.cs +1 -1
- data/tracks/csharp/exercises/bowling/BowlingTest.cs +47 -29
- data/tracks/csharp/exercises/bracket-push/BracketPushTest.cs +36 -29
- data/tracks/csharp/exercises/change/Change.cs +1 -1
- data/tracks/csharp/exercises/change/ChangeTest.cs +48 -21
- data/tracks/csharp/exercises/change/Example.cs +31 -18
- data/tracks/csharp/exercises/circular-buffer/CircularBuffer.cs +2 -2
- data/tracks/csharp/exercises/circular-buffer/CircularBufferTest.cs +88 -111
- data/tracks/csharp/exercises/circular-buffer/Example.cs +7 -7
- data/tracks/csharp/exercises/clock/ClockTest.cs +37 -37
- data/tracks/csharp/exercises/collatz-conjecture/CollatzConjectureTest.cs +1 -1
- data/tracks/csharp/exercises/complex-numbers/ComplexNumbersTest.cs +19 -10
- data/tracks/csharp/exercises/connect/ConnectTest.cs +1 -1
- data/tracks/csharp/exercises/crypto-square/CryptoSquareTest.cs +1 -1
- data/tracks/csharp/exercises/custom-set/.meta/hints.md +3 -3
- data/tracks/csharp/exercises/custom-set/CustomSet.cs +10 -49
- data/tracks/csharp/exercises/custom-set/CustomSetTest.cs +153 -157
- data/tracks/csharp/exercises/custom-set/Example.cs +26 -54
- data/tracks/csharp/exercises/difference-of-squares/DifferenceOfSquaresTest.cs +1 -1
- data/tracks/csharp/exercises/dominoes/DominoesTest.cs +25 -25
- data/tracks/csharp/exercises/etl/Etl.cs +1 -1
- data/tracks/csharp/exercises/etl/EtlTest.cs +4 -4
- data/tracks/csharp/exercises/etl/Example.cs +1 -1
- data/tracks/csharp/exercises/flatten-array/FlattenArrayTest.cs +13 -13
- data/tracks/csharp/exercises/food-chain/Example.cs +5 -0
- data/tracks/csharp/exercises/food-chain/FoodChain.cs +5 -0
- data/tracks/csharp/exercises/food-chain/FoodChainTest.cs +9 -9
- data/tracks/csharp/exercises/forth/Example.cs +28 -33
- data/tracks/csharp/exercises/forth/Forth.cs +1 -19
- data/tracks/csharp/exercises/forth/ForthTest.cs +215 -52
- data/tracks/csharp/exercises/gigasecond/GigasecondTest.cs +1 -1
- data/tracks/csharp/exercises/grains/GrainsTest.cs +1 -1
- data/tracks/csharp/exercises/grep/Example.cs +1 -1
- data/tracks/csharp/exercises/grep/Grep.cs +1 -1
- data/tracks/csharp/exercises/grep/GrepTest.cs +268 -237
- data/tracks/csharp/exercises/hamming/HammingTest.cs +1 -1
- data/tracks/csharp/exercises/hello-world/HelloWorldTest.cs +1 -1
- data/tracks/csharp/exercises/house/Example.cs +7 -2
- data/tracks/csharp/exercises/house/House.cs +5 -0
- data/tracks/csharp/exercises/house/HouseTest.cs +40 -223
- data/tracks/csharp/exercises/isbn-verifier/IsbnVerifierTest.cs +14 -2
- data/tracks/csharp/exercises/isogram/IsogramTest.cs +1 -1
- data/tracks/csharp/exercises/kindergarten-garden/KindergartenGardenTest.cs +1 -1
- data/tracks/csharp/exercises/largest-series-product/LargestSeriesProductTest.cs +1 -1
- data/tracks/csharp/exercises/leap/LeapTest.cs +1 -1
- data/tracks/csharp/exercises/luhn/LuhnTest.cs +1 -1
- data/tracks/csharp/exercises/markdown/MarkdownTest.cs +34 -27
- data/tracks/csharp/exercises/minesweeper/MinesweeperTest.cs +29 -34
- data/tracks/csharp/exercises/nth-prime/NthPrimeTest.cs +1 -1
- data/tracks/csharp/exercises/nucleotide-count/NucleotideCountTest.cs +1 -1
- data/tracks/csharp/exercises/ocr-numbers/OcrNumbersTest.cs +35 -35
- data/tracks/csharp/exercises/pangram/PangramTest.cs +1 -1
- data/tracks/csharp/exercises/pascals-triangle/PascalsTriangleTest.cs +1 -1
- data/tracks/csharp/exercises/perfect-numbers/PerfectNumbersTest.cs +1 -1
- data/tracks/csharp/exercises/phone-number/PhoneNumberTest.cs +17 -3
- data/tracks/csharp/exercises/pig-latin/PigLatinTest.cs +1 -1
- data/tracks/csharp/exercises/poker/PokerTest.cs +1 -1
- data/tracks/csharp/exercises/prime-factors/PrimeFactorsTest.cs +1 -1
- data/tracks/csharp/exercises/protein-translation/Example.cs +4 -4
- data/tracks/csharp/exercises/protein-translation/ProteinTranslation.cs +1 -1
- data/tracks/csharp/exercises/protein-translation/ProteinTranslationTest.cs +104 -45
- data/tracks/csharp/exercises/proverb/ProverbTest.cs +38 -6
- data/tracks/csharp/exercises/queen-attack/QueenAttackTest.cs +1 -1
- data/tracks/csharp/exercises/rail-fence-cipher/RailFenceCipherTest.cs +1 -1
- data/tracks/csharp/exercises/raindrops/RaindropsTest.cs +1 -1
- data/tracks/csharp/exercises/rectangles/RectanglesTest.cs +63 -21
- data/tracks/csharp/exercises/reverse-string/ReverseStringTest.cs +1 -1
- data/tracks/csharp/exercises/rna-transcription/RnaTranscriptionTest.cs +1 -1
- data/tracks/csharp/exercises/roman-numerals/RomanNumeralsTest.cs +7 -1
- data/tracks/csharp/exercises/rotational-cipher/RotationalCipherTest.cs +1 -1
- data/tracks/csharp/exercises/run-length-encoding/RunLengthEncodingTest.cs +1 -1
- data/tracks/csharp/exercises/saddle-points/SaddlePointsTest.cs +11 -11
- data/tracks/csharp/exercises/say/SayTest.cs +1 -1
- data/tracks/csharp/exercises/scale-generator/Example.cs +5 -0
- data/tracks/csharp/exercises/scale-generator/ScaleGenerator.cs +5 -0
- data/tracks/csharp/exercises/scale-generator/ScaleGeneratorTest.cs +56 -47
- data/tracks/csharp/exercises/scrabble-score/ScrabbleScoreTest.cs +1 -1
- data/tracks/csharp/exercises/secret-handshake/SecretHandshakeTest.cs +1 -1
- data/tracks/csharp/exercises/sieve/SieveTest.cs +1 -1
- data/tracks/csharp/exercises/space-age/SpaceAgeTest.cs +1 -1
- data/tracks/csharp/exercises/spiral-matrix/SpiralMatrixTest.cs +28 -34
- data/tracks/csharp/exercises/sum-of-multiples/SumOfMultiplesTest.cs +1 -1
- data/tracks/csharp/exercises/tournament/Example.cs +15 -7
- data/tracks/csharp/exercises/tournament/TournamentTest.cs +97 -99
- data/tracks/csharp/exercises/transpose/TransposeTest.cs +50 -96
- data/tracks/csharp/exercises/triangle/TriangleTest.cs +1 -1
- data/tracks/csharp/exercises/twelve-days/TwelveDays.cs +1 -1
- data/tracks/csharp/exercises/two-bucket/TwoBucketTest.cs +1 -1
- data/tracks/csharp/exercises/two-fer/TwoFerTest.cs +1 -1
- data/tracks/csharp/exercises/variable-length-quantity/Example.cs +3 -3
- data/tracks/csharp/exercises/variable-length-quantity/VariableLengthQuantity.cs +2 -2
- data/tracks/csharp/exercises/variable-length-quantity/VariableLengthQuantityTest.cs +165 -40
- data/tracks/csharp/exercises/word-count/Example.cs +1 -1
- data/tracks/csharp/exercises/word-count/WordCount.cs +1 -1
- data/tracks/csharp/exercises/word-count/WordCountTest.cs +12 -12
- data/tracks/csharp/exercises/wordy/WordyTest.cs +1 -1
- data/tracks/csharp/exercises/yacht/Example.cs +2 -5
- data/tracks/csharp/exercises/yacht/YachtTest.cs +7 -1
- data/tracks/csharp/exercises/zebra-puzzle/Example.cs +4 -4
- data/tracks/csharp/exercises/zebra-puzzle/ZebraPuzzle.cs +2 -2
- data/tracks/csharp/exercises/zebra-puzzle/ZebraPuzzleTest.cs +7 -5
- data/tracks/csharp/generators/Exercises/AllYourBase.cs +1 -0
- data/tracks/csharp/generators/Exercises/Alphametics.cs +5 -2
- data/tracks/csharp/generators/Exercises/BeerSong.cs +3 -0
- data/tracks/csharp/generators/Exercises/BinarySearch.cs +1 -0
- data/tracks/csharp/generators/Exercises/BookStore.cs +2 -0
- data/tracks/csharp/generators/Exercises/Bowling.cs +20 -15
- data/tracks/csharp/generators/Exercises/BracketPush.cs +1 -1
- data/tracks/csharp/generators/Exercises/Change.cs +20 -0
- data/tracks/csharp/generators/Exercises/CircularBuffer.cs +74 -0
- data/tracks/csharp/generators/Exercises/Clock.cs +7 -8
- data/tracks/csharp/generators/Exercises/ComplexNumbers.cs +9 -16
- data/tracks/csharp/generators/Exercises/Connect.cs +6 -6
- data/tracks/csharp/generators/Exercises/CustomSet.cs +56 -0
- data/tracks/csharp/generators/Exercises/Dominoes.cs +2 -2
- data/tracks/csharp/generators/Exercises/Etl.cs +7 -35
- data/tracks/csharp/generators/Exercises/FlattenArray.cs +9 -13
- data/tracks/csharp/generators/Exercises/FoodChain.cs +5 -0
- data/tracks/csharp/generators/Exercises/Forth.cs +25 -0
- data/tracks/csharp/generators/Exercises/Gigasecond.cs +4 -4
- data/tracks/csharp/generators/Exercises/Grains.cs +1 -1
- data/tracks/csharp/generators/Exercises/Grep.cs +106 -0
- data/tracks/csharp/generators/Exercises/Hamming.cs +1 -1
- data/tracks/csharp/generators/Exercises/House.cs +5 -0
- data/tracks/csharp/generators/Exercises/KindergartenGarden.cs +3 -3
- data/tracks/csharp/generators/Exercises/Markdown.cs +25 -0
- data/tracks/csharp/generators/Exercises/Meetup.cs +6 -6
- data/tracks/csharp/generators/Exercises/Minesweeper.cs +14 -4
- data/tracks/csharp/generators/Exercises/OcrNumbers.cs +12 -3
- data/tracks/csharp/generators/Exercises/PascalsTriangle.cs +0 -7
- data/tracks/csharp/generators/Exercises/ProteinTranslation.cs +8 -0
- data/tracks/csharp/generators/Exercises/Proverb.cs +7 -5
- data/tracks/csharp/generators/Exercises/QueenAttack.cs +3 -3
- data/tracks/csharp/generators/Exercises/Rectangles.cs +17 -0
- data/tracks/csharp/generators/Exercises/RobotSimulator.cs +6 -6
- data/tracks/csharp/generators/Exercises/SaddlePoints.cs +2 -2
- data/tracks/csharp/generators/Exercises/Say.cs +1 -1
- data/tracks/csharp/generators/Exercises/ScaleGenerator.cs +15 -0
- data/tracks/csharp/generators/Exercises/SpiralMatrix.cs +45 -0
- data/tracks/csharp/generators/Exercises/Sublist.cs +4 -5
- data/tracks/csharp/generators/Exercises/SumOfMultiples.cs +10 -1
- data/tracks/csharp/generators/Exercises/Tournament.cs +11 -19
- data/tracks/csharp/generators/Exercises/Transpose.cs +2 -2
- data/tracks/csharp/generators/Exercises/Triangle.cs +1 -3
- data/tracks/csharp/generators/Exercises/TwelveDays.cs +3 -4
- data/tracks/csharp/generators/Exercises/TwoBucket.cs +5 -5
- data/tracks/csharp/generators/Exercises/TwoFer.cs +11 -2
- data/tracks/csharp/generators/Exercises/VariableLengthQuantity.cs +44 -0
- data/tracks/csharp/generators/Exercises/Yacht.cs +11 -10
- data/tracks/csharp/generators/Exercises/ZebraPuzzle.cs +19 -0
- data/tracks/csharp/generators/GeneratorExercise.cs +6 -6
- data/tracks/csharp/generators/Input/CanonicalData.cs +6 -9
- data/tracks/csharp/generators/Input/CanonicalDataCase.cs +13 -46
- data/tracks/csharp/generators/Input/CanonicalDataCaseParser.cs +170 -0
- data/tracks/csharp/generators/Input/CanonicalDataFile.cs +1 -2
- data/tracks/csharp/generators/Input/CanonicalDataParser.cs +16 -12
- data/tracks/csharp/generators/Input/ConfigFile.cs +0 -5
- data/tracks/csharp/generators/Input/ConvertHelper.cs +20 -0
- data/tracks/csharp/generators/Output/Templates/_TestClassDisposable.liquid +14 -0
- data/tracks/csharp/generators/Output/TestMethodBodyData.cs +11 -14
- data/tracks/csharp/generators/Output/ValueFormatter.cs +20 -7
- data/tracks/delphi/config.json +22 -0
- data/tracks/delphi/exercises/grade-school/GradeSchool.dpr +60 -0
- data/tracks/delphi/exercises/grade-school/README.md +62 -0
- data/tracks/delphi/exercises/grade-school/uGradeSchoolExample.pas +134 -0
- data/tracks/delphi/exercises/grade-school/uGradeSchoolTest.pas +150 -0
- data/tracks/delphi/exercises/hamming/README.md +4 -3
- data/tracks/delphi/exercises/proverb/Proverb.dpr +60 -0
- data/tracks/delphi/exercises/proverb/README.md +44 -0
- data/tracks/delphi/exercises/proverb/uProverbExample.pas +60 -0
- data/tracks/delphi/exercises/proverb/uProverbTests.pas +124 -0
- data/tracks/go/exercises/bracket-push/README.md +3 -2
- data/tracks/go/exercises/bracket-push/cases_test.go +7 -2
- data/tracks/go/exercises/isbn-verifier/cases_test.go +4 -3
- data/tracks/go/exercises/yacht/cases_test.go +8 -2
- data/tracks/java/exercises/armstrong-numbers/README.md +1 -1
- data/tracks/java/exercises/binary-search-tree/src/test/java/BinarySearchTreeTest.java +22 -22
- data/tracks/java/exercises/bracket-push/README.md +3 -2
- data/tracks/java/exercises/crypto-square/README.md +23 -19
- data/tracks/java/exercises/grade-school/src/test/java/SchoolTest.java +1 -1
- data/tracks/java/exercises/poker/.meta/{version.txt → version} +0 -0
- data/tracks/java/exercises/queen-attack/src/test/java/QueenAttackCalculatorTest.java +7 -7
- data/tracks/java/exercises/rail-fence-cipher/.meta/version +1 -0
- data/tracks/java/exercises/robot-simulator/src/test/java/RobotTest.java +45 -45
- data/tracks/nim/config.json +24 -0
- data/tracks/nim/exercises/armstrong-numbers/README.md +18 -0
- data/tracks/nim/exercises/armstrong-numbers/armstrong_number_test.nim +29 -0
- data/tracks/nim/exercises/armstrong-numbers/example.nim +11 -0
- data/tracks/nim/exercises/leap/leap_test.nim +12 -10
- data/tracks/nim/exercises/two-fer/README.md +19 -0
- data/tracks/nim/exercises/two-fer/example.nim +3 -0
- data/tracks/nim/exercises/two-fer/two_fer_test.nim +16 -0
- data/tracks/python/.travis.yml +0 -1
- data/tracks/python/README.md +1 -1
- data/tracks/python/config/exercise_readme.go.tmpl +1 -1
- data/tracks/python/docs/INSTALLATION.md +1 -1
- data/tracks/python/exercises/accumulate/README.md +1 -1
- data/tracks/python/exercises/acronym/README.md +1 -1
- data/tracks/python/exercises/all-your-base/README.md +1 -1
- data/tracks/python/exercises/allergies/README.md +1 -1
- data/tracks/python/exercises/alphametics/README.md +1 -1
- data/tracks/python/exercises/anagram/README.md +1 -1
- data/tracks/python/exercises/armstrong-numbers/README.md +2 -2
- data/tracks/python/exercises/atbash-cipher/README.md +1 -1
- data/tracks/python/exercises/bank-account/README.md +1 -1
- data/tracks/python/exercises/beer-song/README.md +1 -1
- data/tracks/python/exercises/binary-search-tree/README.md +1 -1
- data/tracks/python/exercises/binary-search/README.md +1 -1
- data/tracks/python/exercises/binary/README.md +1 -1
- data/tracks/python/exercises/bob/README.md +1 -1
- data/tracks/python/exercises/book-store/README.md +1 -1
- data/tracks/python/exercises/bowling/README.md +1 -1
- data/tracks/python/exercises/bracket-push/README.md +4 -3
- data/tracks/python/exercises/change/README.md +1 -1
- data/tracks/python/exercises/circular-buffer/README.md +1 -1
- data/tracks/python/exercises/clock/README.md +1 -1
- data/tracks/python/exercises/collatz-conjecture/README.md +1 -1
- data/tracks/python/exercises/complex-numbers/README.md +1 -1
- data/tracks/python/exercises/connect/README.md +1 -1
- data/tracks/python/exercises/crypto-square/README.md +1 -1
- data/tracks/python/exercises/custom-set/README.md +1 -1
- data/tracks/python/exercises/diamond/README.md +1 -1
- data/tracks/python/exercises/difference-of-squares/README.md +1 -1
- data/tracks/python/exercises/diffie-hellman/README.md +1 -1
- data/tracks/python/exercises/dominoes/README.md +1 -1
- data/tracks/python/exercises/dot-dsl/README.md +1 -1
- data/tracks/python/exercises/error-handling/README.md +1 -1
- data/tracks/python/exercises/etl/README.md +1 -1
- data/tracks/python/exercises/flatten-array/README.md +1 -1
- data/tracks/python/exercises/food-chain/README.md +1 -1
- data/tracks/python/exercises/forth/README.md +1 -1
- data/tracks/python/exercises/gigasecond/README.md +1 -1
- data/tracks/python/exercises/go-counting/README.md +1 -1
- data/tracks/python/exercises/grade-school/README.md +1 -1
- data/tracks/python/exercises/grains/README.md +1 -1
- data/tracks/python/exercises/grep/README.md +1 -1
- data/tracks/python/exercises/hamming/README.md +1 -1
- data/tracks/python/exercises/hello-world/README.md +1 -1
- data/tracks/python/exercises/hexadecimal/README.md +1 -1
- data/tracks/python/exercises/house/README.md +1 -1
- data/tracks/python/exercises/isbn-verifier/README.md +1 -1
- data/tracks/python/exercises/isogram/README.md +1 -1
- data/tracks/python/exercises/kindergarten-garden/README.md +1 -1
- data/tracks/python/exercises/largest-series-product/README.md +1 -1
- data/tracks/python/exercises/leap/README.md +1 -1
- data/tracks/python/exercises/linked-list/README.md +1 -1
- data/tracks/python/exercises/list-ops/README.md +1 -1
- data/tracks/python/exercises/luhn/README.md +1 -1
- data/tracks/python/exercises/markdown/README.md +1 -1
- data/tracks/python/exercises/matrix/README.md +1 -1
- data/tracks/python/exercises/meetup/README.md +1 -1
- data/tracks/python/exercises/minesweeper/README.md +1 -1
- data/tracks/python/exercises/nth-prime/README.md +1 -1
- data/tracks/python/exercises/nucleotide-count/README.md +1 -1
- data/tracks/python/exercises/ocr-numbers/README.md +1 -1
- data/tracks/python/exercises/octal/README.md +1 -1
- data/tracks/python/exercises/palindrome-products/README.md +1 -1
- data/tracks/python/exercises/pangram/README.md +1 -1
- data/tracks/python/exercises/parallel-letter-frequency/README.md +1 -1
- data/tracks/python/exercises/pascals-triangle/README.md +1 -1
- data/tracks/python/exercises/perfect-numbers/README.md +1 -1
- data/tracks/python/exercises/phone-number/README.md +1 -1
- data/tracks/python/exercises/pig-latin/README.md +1 -1
- data/tracks/python/exercises/point-mutations/README.md +1 -1
- data/tracks/python/exercises/poker/README.md +1 -1
- data/tracks/python/exercises/pov/README.md +1 -1
- data/tracks/python/exercises/prime-factors/README.md +1 -1
- data/tracks/python/exercises/protein-translation/README.md +1 -1
- data/tracks/python/exercises/proverb/README.md +1 -1
- data/tracks/python/exercises/pythagorean-triplet/README.md +1 -1
- data/tracks/python/exercises/queen-attack/README.md +1 -1
- data/tracks/python/exercises/rail-fence-cipher/README.md +1 -1
- data/tracks/python/exercises/raindrops/README.md +1 -1
- data/tracks/python/exercises/rational-numbers/README.md +1 -1
- data/tracks/python/exercises/react/README.md +1 -1
- data/tracks/python/exercises/rectangles/README.md +1 -1
- data/tracks/python/exercises/reverse-string/README.md +1 -1
- data/tracks/python/exercises/rna-transcription/README.md +1 -1
- data/tracks/python/exercises/robot-name/README.md +1 -1
- data/tracks/python/exercises/robot-simulator/README.md +1 -1
- data/tracks/python/exercises/roman-numerals/README.md +1 -1
- data/tracks/python/exercises/rotational-cipher/README.md +1 -1
- data/tracks/python/exercises/run-length-encoding/README.md +1 -1
- data/tracks/python/exercises/saddle-points/README.md +1 -1
- data/tracks/python/exercises/say/README.md +1 -1
- data/tracks/python/exercises/scale-generator/README.md +1 -1
- data/tracks/python/exercises/scrabble-score/README.md +1 -1
- data/tracks/python/exercises/secret-handshake/README.md +1 -1
- data/tracks/python/exercises/series/README.md +1 -1
- data/tracks/python/exercises/sgf-parsing/README.md +1 -1
- data/tracks/python/exercises/sieve/README.md +1 -1
- data/tracks/python/exercises/simple-cipher/README.md +1 -1
- data/tracks/python/exercises/simple-linked-list/README.md +1 -1
- data/tracks/python/exercises/space-age/README.md +1 -1
- data/tracks/python/exercises/spiral-matrix/README.md +1 -1
- data/tracks/python/exercises/strain/README.md +1 -1
- data/tracks/python/exercises/sublist/README.md +1 -1
- data/tracks/python/exercises/sum-of-multiples/README.md +1 -1
- data/tracks/python/exercises/tournament/README.md +1 -1
- data/tracks/python/exercises/transpose/README.md +1 -1
- data/tracks/python/exercises/tree-building/README.md +1 -1
- data/tracks/python/exercises/triangle/README.md +1 -1
- data/tracks/python/exercises/trinary/README.md +1 -1
- data/tracks/python/exercises/twelve-days/README.md +1 -1
- data/tracks/python/exercises/two-bucket/README.md +1 -1
- data/tracks/python/exercises/two-fer/README.md +1 -1
- data/tracks/python/exercises/variable-length-quantity/README.md +1 -1
- data/tracks/python/exercises/word-count/README.md +1 -1
- data/tracks/python/exercises/word-search/README.md +1 -1
- data/tracks/python/exercises/wordy/README.md +1 -1
- data/tracks/python/exercises/yacht/README.md +1 -1
- data/tracks/python/exercises/zebra-puzzle/README.md +1 -1
- data/tracks/python/exercises/zipper/README.md +1 -1
- data/tracks/python/requirements-travis.txt +1 -1
- data/tracks/swift/exercises/scale-generator/Tests/ScaleGeneratorTests/ScaleGeneratorTests.swift +1 -1
- metadata +32 -8
- data/tracks/csharp/generators/Input/CanonicalDataCaseJson.cs +0 -73
- data/tracks/csharp/generators/Input/CanonicalDataCaseJsonConverter.cs +0 -49
- data/tracks/csharp/generators/Input/CanonicalDataCasesJson.cs +0 -58
- data/tracks/csharp/generators/Input/CanonicalDataCasesJsonConverter.cs +0 -17
- data/tracks/java/exercises/go-counting/src/main/java/.keep +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1c92326d9fcc16f5c7f1c114e23bbd4e97f5b815
|
|
4
|
+
data.tar.gz: 62c9231ce728d5a5fe873d0d5b1d863493bbfb96
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 0c0c210cbed5bf3517bfb51c95ff89ba786609e2242bbff5d55428e391f301e703276f9bae08f1924b06b29ce1684e884ac3dae915627943cdbc8aa428380bee
|
|
7
|
+
data.tar.gz: 20e1fe85966e275e56fb87f5fe614f98fce8b59b35071e514430e1b74bfdb5a40e5b312dea7bc5ad3cfc347db32818d03d699b0d05904509f12279569f8241fa
|
data/lib/trackler/version.rb
CHANGED
|
@@ -29,6 +29,7 @@ The Hamming distance between these two DNA strands is 7.
|
|
|
29
29
|
|
|
30
30
|
# Implementation notes
|
|
31
31
|
|
|
32
|
-
The Hamming distance is only defined for sequences of equal length
|
|
33
|
-
|
|
34
|
-
of
|
|
32
|
+
The Hamming distance is only defined for sequences of equal length, so
|
|
33
|
+
an attempt to calculate it between sequences of different lengths should
|
|
34
|
+
not work. The general handling of this situation (e.g., raising an
|
|
35
|
+
exception vs returning a special value) may differ between languages.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"exercise": "isbn-verifier",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.0",
|
|
4
4
|
"comments": [
|
|
5
5
|
"An expected value of true indicates a valid ISBN-10, ",
|
|
6
6
|
"whereas false means the ISBN-10 is invalid."
|
|
@@ -125,6 +125,14 @@
|
|
|
125
125
|
"isbn": "134456729"
|
|
126
126
|
},
|
|
127
127
|
"expected": false
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"description": "invalid characters are not ignored",
|
|
131
|
+
"property": "isValid",
|
|
132
|
+
"input": {
|
|
133
|
+
"isbn": "3132P34035"
|
|
134
|
+
},
|
|
135
|
+
"expected": false
|
|
128
136
|
}
|
|
129
137
|
]
|
|
130
138
|
}
|
|
@@ -6,6 +6,8 @@ Bob answers 'Sure.' if you ask him a question.
|
|
|
6
6
|
|
|
7
7
|
He answers 'Whoa, chill out!' if you yell at him.
|
|
8
8
|
|
|
9
|
+
He answers 'Calm down, I know what I'm doing!' if you yell a question at him.
|
|
10
|
+
|
|
9
11
|
He says 'Fine. Be that way!' if you address him without actually saying
|
|
10
12
|
anything.
|
|
11
13
|
|
|
@@ -10,8 +10,12 @@
|
|
|
10
10
|
(defn- shouting? [msg] (and (= msg (str/upper-case msg))
|
|
11
11
|
(has-letter? msg)))
|
|
12
12
|
|
|
13
|
+
(defn- forceful-question? [msg]
|
|
14
|
+
(and (shouting? msg) (question? msg)))
|
|
15
|
+
|
|
13
16
|
(defn response-for [input]
|
|
14
17
|
(cond
|
|
18
|
+
(forceful-question? input) "Calm down, I know what I'm doing!"
|
|
15
19
|
(silence? input) "Fine. Be that way!"
|
|
16
20
|
(shouting? input) "Whoa, chill out!"
|
|
17
21
|
(question? input) "Sure."
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
(bob/response-for "It's OK if you don't want to go to the DMV."))))
|
|
21
21
|
|
|
22
22
|
(deftest responds-to-forceful-questions
|
|
23
|
-
(is (= "
|
|
23
|
+
(is (= "Calm down, I know what I'm doing!"
|
|
24
24
|
(bob/response-for "WHAT THE HELL WERE YOU THINKING?"))))
|
|
25
25
|
|
|
26
26
|
(deftest responds-to-shouting-with-special-characters
|
|
@@ -24,7 +24,8 @@ Some good test cases for this program are:
|
|
|
24
24
|
### Extension
|
|
25
25
|
|
|
26
26
|
If you're on a Mac, shell out to Mac OS X's `say` program to talk out
|
|
27
|
-
loud.
|
|
27
|
+
loud. If you're on Linux or Windows eSpeakNG may be available with the command
|
|
28
|
+
`espeak`.
|
|
28
29
|
|
|
29
30
|
## Step 2
|
|
30
31
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// This file was auto-generated based on version 1.
|
|
1
|
+
// This file was auto-generated based on version 1.3.0 of the canonical data.
|
|
2
2
|
|
|
3
3
|
using Xunit;
|
|
4
4
|
|
|
@@ -23,19 +23,13 @@ public void Punctuation()
|
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
[Fact(Skip = "Remove to run test")]
|
|
26
|
-
public void
|
|
27
|
-
{
|
|
28
|
-
Assert.Equal("PHP", Acronym.Abbreviate("PHP: Hypertext Preprocessor"));
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
[Fact(Skip = "Remove to run test")]
|
|
32
|
-
public void Non_acronym_all_caps_word()
|
|
26
|
+
public void All_caps_word()
|
|
33
27
|
{
|
|
34
28
|
Assert.Equal("GIMP", Acronym.Abbreviate("GNU Image Manipulation Program"));
|
|
35
29
|
}
|
|
36
30
|
|
|
37
31
|
[Fact(Skip = "Remove to run test")]
|
|
38
|
-
public void
|
|
32
|
+
public void Punctuation_without_whitespace()
|
|
39
33
|
{
|
|
40
34
|
Assert.Equal("CMOS", Acronym.Abbreviate("Complementary metal-oxide semiconductor"));
|
|
41
35
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// This file was auto-generated based on version 2.0
|
|
1
|
+
// This file was auto-generated based on version 2.3.0 of the canonical data.
|
|
2
2
|
|
|
3
3
|
using Xunit;
|
|
4
4
|
using System;
|
|
@@ -9,200 +9,200 @@ public class AllYourBaseTest
|
|
|
9
9
|
public void Single_bit_one_to_decimal()
|
|
10
10
|
{
|
|
11
11
|
var inputBase = 2;
|
|
12
|
-
var
|
|
12
|
+
var digits = new[] { 1 };
|
|
13
13
|
var outputBase = 10;
|
|
14
14
|
var expected = new[] { 1 };
|
|
15
|
-
Assert.Equal(expected, AllYourBase.Rebase(inputBase,
|
|
15
|
+
Assert.Equal(expected, AllYourBase.Rebase(inputBase, digits, outputBase));
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
[Fact(Skip = "Remove to run test")]
|
|
19
19
|
public void Binary_to_single_decimal()
|
|
20
20
|
{
|
|
21
21
|
var inputBase = 2;
|
|
22
|
-
var
|
|
22
|
+
var digits = new[] { 1, 0, 1 };
|
|
23
23
|
var outputBase = 10;
|
|
24
24
|
var expected = new[] { 5 };
|
|
25
|
-
Assert.Equal(expected, AllYourBase.Rebase(inputBase,
|
|
25
|
+
Assert.Equal(expected, AllYourBase.Rebase(inputBase, digits, outputBase));
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
[Fact(Skip = "Remove to run test")]
|
|
29
29
|
public void Single_decimal_to_binary()
|
|
30
30
|
{
|
|
31
31
|
var inputBase = 10;
|
|
32
|
-
var
|
|
32
|
+
var digits = new[] { 5 };
|
|
33
33
|
var outputBase = 2;
|
|
34
34
|
var expected = new[] { 1, 0, 1 };
|
|
35
|
-
Assert.Equal(expected, AllYourBase.Rebase(inputBase,
|
|
35
|
+
Assert.Equal(expected, AllYourBase.Rebase(inputBase, digits, outputBase));
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
[Fact(Skip = "Remove to run test")]
|
|
39
39
|
public void Binary_to_multiple_decimal()
|
|
40
40
|
{
|
|
41
41
|
var inputBase = 2;
|
|
42
|
-
var
|
|
42
|
+
var digits = new[] { 1, 0, 1, 0, 1, 0 };
|
|
43
43
|
var outputBase = 10;
|
|
44
44
|
var expected = new[] { 4, 2 };
|
|
45
|
-
Assert.Equal(expected, AllYourBase.Rebase(inputBase,
|
|
45
|
+
Assert.Equal(expected, AllYourBase.Rebase(inputBase, digits, outputBase));
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
[Fact(Skip = "Remove to run test")]
|
|
49
49
|
public void Decimal_to_binary()
|
|
50
50
|
{
|
|
51
51
|
var inputBase = 10;
|
|
52
|
-
var
|
|
52
|
+
var digits = new[] { 4, 2 };
|
|
53
53
|
var outputBase = 2;
|
|
54
54
|
var expected = new[] { 1, 0, 1, 0, 1, 0 };
|
|
55
|
-
Assert.Equal(expected, AllYourBase.Rebase(inputBase,
|
|
55
|
+
Assert.Equal(expected, AllYourBase.Rebase(inputBase, digits, outputBase));
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
[Fact(Skip = "Remove to run test")]
|
|
59
59
|
public void Trinary_to_hexadecimal()
|
|
60
60
|
{
|
|
61
61
|
var inputBase = 3;
|
|
62
|
-
var
|
|
62
|
+
var digits = new[] { 1, 1, 2, 0 };
|
|
63
63
|
var outputBase = 16;
|
|
64
64
|
var expected = new[] { 2, 10 };
|
|
65
|
-
Assert.Equal(expected, AllYourBase.Rebase(inputBase,
|
|
65
|
+
Assert.Equal(expected, AllYourBase.Rebase(inputBase, digits, outputBase));
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
[Fact(Skip = "Remove to run test")]
|
|
69
69
|
public void Hexadecimal_to_trinary()
|
|
70
70
|
{
|
|
71
71
|
var inputBase = 16;
|
|
72
|
-
var
|
|
72
|
+
var digits = new[] { 2, 10 };
|
|
73
73
|
var outputBase = 3;
|
|
74
74
|
var expected = new[] { 1, 1, 2, 0 };
|
|
75
|
-
Assert.Equal(expected, AllYourBase.Rebase(inputBase,
|
|
75
|
+
Assert.Equal(expected, AllYourBase.Rebase(inputBase, digits, outputBase));
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
[Fact(Skip = "Remove to run test")]
|
|
79
79
|
public void Number_15_bit_integer()
|
|
80
80
|
{
|
|
81
81
|
var inputBase = 97;
|
|
82
|
-
var
|
|
82
|
+
var digits = new[] { 3, 46, 60 };
|
|
83
83
|
var outputBase = 73;
|
|
84
84
|
var expected = new[] { 6, 10, 45 };
|
|
85
|
-
Assert.Equal(expected, AllYourBase.Rebase(inputBase,
|
|
85
|
+
Assert.Equal(expected, AllYourBase.Rebase(inputBase, digits, outputBase));
|
|
86
86
|
}
|
|
87
87
|
|
|
88
88
|
[Fact(Skip = "Remove to run test")]
|
|
89
89
|
public void Empty_list()
|
|
90
90
|
{
|
|
91
91
|
var inputBase = 2;
|
|
92
|
-
var
|
|
92
|
+
var digits = new int[0];
|
|
93
93
|
var outputBase = 10;
|
|
94
94
|
var expected = new[] { 0 };
|
|
95
|
-
Assert.Equal(expected, AllYourBase.Rebase(inputBase,
|
|
95
|
+
Assert.Equal(expected, AllYourBase.Rebase(inputBase, digits, outputBase));
|
|
96
96
|
}
|
|
97
97
|
|
|
98
98
|
[Fact(Skip = "Remove to run test")]
|
|
99
99
|
public void Single_zero()
|
|
100
100
|
{
|
|
101
101
|
var inputBase = 10;
|
|
102
|
-
var
|
|
102
|
+
var digits = new[] { 0 };
|
|
103
103
|
var outputBase = 2;
|
|
104
104
|
var expected = new[] { 0 };
|
|
105
|
-
Assert.Equal(expected, AllYourBase.Rebase(inputBase,
|
|
105
|
+
Assert.Equal(expected, AllYourBase.Rebase(inputBase, digits, outputBase));
|
|
106
106
|
}
|
|
107
107
|
|
|
108
108
|
[Fact(Skip = "Remove to run test")]
|
|
109
109
|
public void Multiple_zeros()
|
|
110
110
|
{
|
|
111
111
|
var inputBase = 10;
|
|
112
|
-
var
|
|
112
|
+
var digits = new[] { 0, 0, 0 };
|
|
113
113
|
var outputBase = 2;
|
|
114
114
|
var expected = new[] { 0 };
|
|
115
|
-
Assert.Equal(expected, AllYourBase.Rebase(inputBase,
|
|
115
|
+
Assert.Equal(expected, AllYourBase.Rebase(inputBase, digits, outputBase));
|
|
116
116
|
}
|
|
117
117
|
|
|
118
118
|
[Fact(Skip = "Remove to run test")]
|
|
119
119
|
public void Leading_zeros()
|
|
120
120
|
{
|
|
121
121
|
var inputBase = 7;
|
|
122
|
-
var
|
|
122
|
+
var digits = new[] { 0, 6, 0 };
|
|
123
123
|
var outputBase = 10;
|
|
124
124
|
var expected = new[] { 4, 2 };
|
|
125
|
-
Assert.Equal(expected, AllYourBase.Rebase(inputBase,
|
|
125
|
+
Assert.Equal(expected, AllYourBase.Rebase(inputBase, digits, outputBase));
|
|
126
126
|
}
|
|
127
127
|
|
|
128
128
|
[Fact(Skip = "Remove to run test")]
|
|
129
129
|
public void Input_base_is_one()
|
|
130
130
|
{
|
|
131
131
|
var inputBase = 1;
|
|
132
|
-
var
|
|
132
|
+
var digits = new[] { 0 };
|
|
133
133
|
var outputBase = 10;
|
|
134
|
-
Assert.Throws<ArgumentException>(() => AllYourBase.Rebase(inputBase,
|
|
134
|
+
Assert.Throws<ArgumentException>(() => AllYourBase.Rebase(inputBase, digits, outputBase));
|
|
135
135
|
}
|
|
136
136
|
|
|
137
137
|
[Fact(Skip = "Remove to run test")]
|
|
138
138
|
public void Input_base_is_zero()
|
|
139
139
|
{
|
|
140
140
|
var inputBase = 0;
|
|
141
|
-
var
|
|
141
|
+
var digits = new int[0];
|
|
142
142
|
var outputBase = 10;
|
|
143
|
-
Assert.Throws<ArgumentException>(() => AllYourBase.Rebase(inputBase,
|
|
143
|
+
Assert.Throws<ArgumentException>(() => AllYourBase.Rebase(inputBase, digits, outputBase));
|
|
144
144
|
}
|
|
145
145
|
|
|
146
146
|
[Fact(Skip = "Remove to run test")]
|
|
147
147
|
public void Input_base_is_negative()
|
|
148
148
|
{
|
|
149
149
|
var inputBase = -2;
|
|
150
|
-
var
|
|
150
|
+
var digits = new[] { 1 };
|
|
151
151
|
var outputBase = 10;
|
|
152
|
-
Assert.Throws<ArgumentException>(() => AllYourBase.Rebase(inputBase,
|
|
152
|
+
Assert.Throws<ArgumentException>(() => AllYourBase.Rebase(inputBase, digits, outputBase));
|
|
153
153
|
}
|
|
154
154
|
|
|
155
155
|
[Fact(Skip = "Remove to run test")]
|
|
156
156
|
public void Negative_digit()
|
|
157
157
|
{
|
|
158
158
|
var inputBase = 2;
|
|
159
|
-
var
|
|
159
|
+
var digits = new[] { 1, -1, 1, 0, 1, 0 };
|
|
160
160
|
var outputBase = 10;
|
|
161
|
-
Assert.Throws<ArgumentException>(() => AllYourBase.Rebase(inputBase,
|
|
161
|
+
Assert.Throws<ArgumentException>(() => AllYourBase.Rebase(inputBase, digits, outputBase));
|
|
162
162
|
}
|
|
163
163
|
|
|
164
164
|
[Fact(Skip = "Remove to run test")]
|
|
165
165
|
public void Invalid_positive_digit()
|
|
166
166
|
{
|
|
167
167
|
var inputBase = 2;
|
|
168
|
-
var
|
|
168
|
+
var digits = new[] { 1, 2, 1, 0, 1, 0 };
|
|
169
169
|
var outputBase = 10;
|
|
170
|
-
Assert.Throws<ArgumentException>(() => AllYourBase.Rebase(inputBase,
|
|
170
|
+
Assert.Throws<ArgumentException>(() => AllYourBase.Rebase(inputBase, digits, outputBase));
|
|
171
171
|
}
|
|
172
172
|
|
|
173
173
|
[Fact(Skip = "Remove to run test")]
|
|
174
174
|
public void Output_base_is_one()
|
|
175
175
|
{
|
|
176
176
|
var inputBase = 2;
|
|
177
|
-
var
|
|
177
|
+
var digits = new[] { 1, 0, 1, 0, 1, 0 };
|
|
178
178
|
var outputBase = 1;
|
|
179
|
-
Assert.Throws<ArgumentException>(() => AllYourBase.Rebase(inputBase,
|
|
179
|
+
Assert.Throws<ArgumentException>(() => AllYourBase.Rebase(inputBase, digits, outputBase));
|
|
180
180
|
}
|
|
181
181
|
|
|
182
182
|
[Fact(Skip = "Remove to run test")]
|
|
183
183
|
public void Output_base_is_zero()
|
|
184
184
|
{
|
|
185
185
|
var inputBase = 10;
|
|
186
|
-
var
|
|
186
|
+
var digits = new[] { 7 };
|
|
187
187
|
var outputBase = 0;
|
|
188
|
-
Assert.Throws<ArgumentException>(() => AllYourBase.Rebase(inputBase,
|
|
188
|
+
Assert.Throws<ArgumentException>(() => AllYourBase.Rebase(inputBase, digits, outputBase));
|
|
189
189
|
}
|
|
190
190
|
|
|
191
191
|
[Fact(Skip = "Remove to run test")]
|
|
192
192
|
public void Output_base_is_negative()
|
|
193
193
|
{
|
|
194
194
|
var inputBase = 2;
|
|
195
|
-
var
|
|
195
|
+
var digits = new[] { 1 };
|
|
196
196
|
var outputBase = -7;
|
|
197
|
-
Assert.Throws<ArgumentException>(() => AllYourBase.Rebase(inputBase,
|
|
197
|
+
Assert.Throws<ArgumentException>(() => AllYourBase.Rebase(inputBase, digits, outputBase));
|
|
198
198
|
}
|
|
199
199
|
|
|
200
200
|
[Fact(Skip = "Remove to run test")]
|
|
201
201
|
public void Both_bases_are_negative()
|
|
202
202
|
{
|
|
203
203
|
var inputBase = -2;
|
|
204
|
-
var
|
|
204
|
+
var digits = new[] { 1 };
|
|
205
205
|
var outputBase = -7;
|
|
206
|
-
Assert.Throws<ArgumentException>(() => AllYourBase.Rebase(inputBase,
|
|
206
|
+
Assert.Throws<ArgumentException>(() => AllYourBase.Rebase(inputBase, digits, outputBase));
|
|
207
207
|
}
|
|
208
208
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// This file was auto-generated based on version 1.
|
|
1
|
+
// This file was auto-generated based on version 1.2.0 of the canonical data.
|
|
2
2
|
|
|
3
3
|
using Xunit;
|
|
4
4
|
using System;
|
|
@@ -115,4 +115,24 @@ public void Puzzle_with_ten_letters()
|
|
|
115
115
|
};
|
|
116
116
|
Assert.Equal(expected, actual);
|
|
117
117
|
}
|
|
118
|
+
|
|
119
|
+
[Fact(Skip = "Remove to run test")]
|
|
120
|
+
public void Puzzle_with_ten_letters_and_199_addends()
|
|
121
|
+
{
|
|
122
|
+
var actual = Alphametics.Solve("THIS + A + FIRE + THEREFORE + FOR + ALL + HISTORIES + I + TELL + A + TALE + THAT + FALSIFIES + ITS + TITLE + TIS + A + LIE + THE + TALE + OF + THE + LAST + FIRE + HORSES + LATE + AFTER + THE + FIRST + FATHERS + FORESEE + THE + HORRORS + THE + LAST + FREE + TROLL + TERRIFIES + THE + HORSES + OF + FIRE + THE + TROLL + RESTS + AT + THE + HOLE + OF + LOSSES + IT + IS + THERE + THAT + SHE + STORES + ROLES + OF + LEATHERS + AFTER + SHE + SATISFIES + HER + HATE + OFF + THOSE + FEARS + A + TASTE + RISES + AS + SHE + HEARS + THE + LEAST + FAR + HORSE + THOSE + FAST + HORSES + THAT + FIRST + HEAR + THE + TROLL + FLEE + OFF + TO + THE + FOREST + THE + HORSES + THAT + ALERTS + RAISE + THE + STARES + OF + THE + OTHERS + AS + THE + TROLL + ASSAILS + AT + THE + TOTAL + SHIFT + HER + TEETH + TEAR + HOOF + OFF + TORSO + AS + THE + LAST + HORSE + FORFEITS + ITS + LIFE + THE + FIRST + FATHERS + HEAR + OF + THE + HORRORS + THEIR + FEARS + THAT + THE + FIRES + FOR + THEIR + FEASTS + ARREST + AS + THE + FIRST + FATHERS + RESETTLE + THE + LAST + OF + THE + FIRE + HORSES + THE + LAST + TROLL + HARASSES + THE + FOREST + HEART + FREE + AT + LAST + OF + THE + LAST + TROLL + ALL + OFFER + THEIR + FIRE + HEAT + TO + THE + ASSISTERS + FAR + OFF + THE + TROLL + FASTS + ITS + LIFE + SHORTER + AS + STARS + RISE + THE + HORSES + REST + SAFE + AFTER + ALL + SHARE + HOT + FISH + AS + THEIR + AFFILIATES + TAILOR + A + ROOFS + FOR + THEIR + SAFE == FORTRESSES");
|
|
123
|
+
var expected = new Dictionary<char, int>
|
|
124
|
+
{
|
|
125
|
+
['A'] = 1,
|
|
126
|
+
['E'] = 0,
|
|
127
|
+
['F'] = 5,
|
|
128
|
+
['H'] = 8,
|
|
129
|
+
['I'] = 7,
|
|
130
|
+
['L'] = 2,
|
|
131
|
+
['O'] = 6,
|
|
132
|
+
['R'] = 3,
|
|
133
|
+
['S'] = 4,
|
|
134
|
+
['T'] = 9
|
|
135
|
+
};
|
|
136
|
+
Assert.Equal(expected, actual);
|
|
137
|
+
}
|
|
118
138
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// This file was auto-generated based on version 1.0
|
|
1
|
+
// This file was auto-generated based on version 1.2.0 of the canonical data.
|
|
2
2
|
|
|
3
3
|
using Xunit;
|
|
4
4
|
|
|
@@ -12,23 +12,6 @@ public void No_matches()
|
|
|
12
12
|
Assert.Empty(sut.Anagrams(candidates));
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
[Fact(Skip = "Remove to run test")]
|
|
16
|
-
public void Detects_simple_anagram()
|
|
17
|
-
{
|
|
18
|
-
var candidates = new[] { "tan", "stand", "at" };
|
|
19
|
-
var sut = new Anagram("ant");
|
|
20
|
-
var expected = new[] { "tan" };
|
|
21
|
-
Assert.Equal(expected, sut.Anagrams(candidates));
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
[Fact(Skip = "Remove to run test")]
|
|
25
|
-
public void Does_not_detect_false_positives()
|
|
26
|
-
{
|
|
27
|
-
var candidates = new[] { "eagle" };
|
|
28
|
-
var sut = new Anagram("galea");
|
|
29
|
-
Assert.Empty(sut.Anagrams(candidates));
|
|
30
|
-
}
|
|
31
|
-
|
|
32
15
|
[Fact(Skip = "Remove to run test")]
|
|
33
16
|
public void Detects_two_anagrams()
|
|
34
17
|
{
|
|
@@ -64,15 +47,6 @@ public void Detects_three_anagrams()
|
|
|
64
47
|
Assert.Equal(expected, sut.Anagrams(candidates));
|
|
65
48
|
}
|
|
66
49
|
|
|
67
|
-
[Fact(Skip = "Remove to run test")]
|
|
68
|
-
public void Does_not_detect_identical_words()
|
|
69
|
-
{
|
|
70
|
-
var candidates = new[] { "corn", "dark", "Corn", "rank", "CORN", "cron", "park" };
|
|
71
|
-
var sut = new Anagram("corn");
|
|
72
|
-
var expected = new[] { "cron" };
|
|
73
|
-
Assert.Equal(expected, sut.Anagrams(candidates));
|
|
74
|
-
}
|
|
75
|
-
|
|
76
50
|
[Fact(Skip = "Remove to run test")]
|
|
77
51
|
public void Does_not_detect_non_anagrams_with_identical_checksum()
|
|
78
52
|
{
|
|
@@ -108,14 +82,6 @@ public void Detects_anagrams_using_case_insensitive_possible_matches()
|
|
|
108
82
|
Assert.Equal(expected, sut.Anagrams(candidates));
|
|
109
83
|
}
|
|
110
84
|
|
|
111
|
-
[Fact(Skip = "Remove to run test")]
|
|
112
|
-
public void Does_not_detect_a_word_as_its_own_anagram()
|
|
113
|
-
{
|
|
114
|
-
var candidates = new[] { "Banana" };
|
|
115
|
-
var sut = new Anagram("banana");
|
|
116
|
-
Assert.Empty(sut.Anagrams(candidates));
|
|
117
|
-
}
|
|
118
|
-
|
|
119
85
|
[Fact(Skip = "Remove to run test")]
|
|
120
86
|
public void Does_not_detect_a_anagram_if_the_original_word_is_repeated()
|
|
121
87
|
{
|