trackler 2.0.8.14 → 2.0.8.15
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/common/exercises/robot-simulator/canonical-data.json +238 -214
- data/common/exercises/secret-handshake/canonical-data.json +80 -64
- data/lib/trackler/version.rb +1 -1
- data/tracks/csharp/.gitignore +6 -1
- data/tracks/csharp/.travis.yml +26 -3
- data/tracks/csharp/Zipper.cs +137 -0
- data/tracks/csharp/appveyor.yml +6 -1
- data/tracks/csharp/build.fsx +59 -47
- data/tracks/csharp/circle.yml +15 -5
- data/tracks/csharp/docs/INSTALLATION.md +12 -177
- data/tracks/csharp/docs/TESTS.md +21 -38
- data/tracks/csharp/exercises/accumulate/Accumulate.cs +10 -0
- data/tracks/csharp/exercises/accumulate/Accumulate.csproj +18 -0
- data/tracks/csharp/exercises/accumulate/AccumulateTest.cs +16 -27
- data/tracks/csharp/exercises/acronym/Acronym.cs +9 -0
- data/tracks/csharp/exercises/acronym/Acronym.csproj +18 -0
- data/tracks/csharp/exercises/acronym/AcronymTest.cs +17 -20
- data/tracks/csharp/exercises/acronym/Example.cs +11 -14
- data/tracks/csharp/exercises/all-your-base/AllYourBase.cs +9 -0
- data/tracks/csharp/exercises/all-your-base/AllYourBase.csproj +18 -0
- data/tracks/csharp/exercises/all-your-base/AllYourBaseTest.cs +30 -51
- data/tracks/csharp/exercises/allergies/Allergies.cs +19 -0
- data/tracks/csharp/exercises/allergies/Allergies.csproj +18 -0
- data/tracks/csharp/exercises/allergies/AllergiesTest.cs +28 -40
- data/tracks/csharp/exercises/alphametics/Alphametics.cs +10 -0
- data/tracks/csharp/exercises/alphametics/Alphametics.csproj +19 -0
- data/tracks/csharp/exercises/alphametics/AlphameticsTest.cs +18 -24
- data/tracks/csharp/exercises/alphametics/Example.cs +6 -1
- data/tracks/csharp/exercises/anagram/Anagram.cs +14 -0
- data/tracks/csharp/exercises/anagram/Anagram.csproj +18 -0
- data/tracks/csharp/exercises/anagram/AnagramTest.cs +19 -28
- data/tracks/csharp/exercises/atbash-cipher/AtbashCipher.cs +9 -0
- data/tracks/csharp/exercises/atbash-cipher/AtbashCipher.csproj +18 -0
- data/tracks/csharp/exercises/atbash-cipher/AtbashTest.cs +11 -11
- data/tracks/csharp/exercises/atbash-cipher/Example.cs +1 -1
- data/tracks/csharp/exercises/bank-account/BankAccount.cs +27 -0
- data/tracks/csharp/exercises/bank-account/BankAccount.csproj +18 -0
- data/tracks/csharp/exercises/bank-account/BankAccountTest.cs +14 -18
- data/tracks/csharp/exercises/beer-song/BeerSong.cs +14 -0
- data/tracks/csharp/exercises/beer-song/BeerSong.csproj +18 -0
- data/tracks/csharp/exercises/beer-song/BeerTest.cs +13 -11
- data/tracks/csharp/exercises/binary-search-tree/BinarySearchTree.cs +53 -0
- data/tracks/csharp/exercises/binary-search-tree/BinarySearchTree.csproj +18 -0
- data/tracks/csharp/exercises/binary-search-tree/BinarySearchTreeTest.cs +28 -36
- data/tracks/csharp/exercises/binary-search/BinarySearch.cs +9 -0
- data/tracks/csharp/exercises/binary-search/BinarySearch.csproj +18 -0
- data/tracks/csharp/exercises/binary-search/BinarySearchTest.cs +19 -28
- data/tracks/csharp/exercises/bob/Bob.cs +9 -0
- data/tracks/csharp/exercises/bob/Bob.csproj +18 -0
- data/tracks/csharp/exercises/bob/BobTest.cs +37 -55
- data/tracks/csharp/exercises/bob/Example.cs +2 -3
- data/tracks/csharp/exercises/book-store/BookStore.cs +10 -0
- data/tracks/csharp/exercises/book-store/BookStore.csproj +18 -0
- data/tracks/csharp/exercises/book-store/BookStoreTest.cs +25 -37
- data/tracks/csharp/exercises/book-store/Example.cs +1 -1
- data/tracks/csharp/exercises/bowling/Bowling.cs +14 -0
- data/tracks/csharp/exercises/bowling/Bowling.csproj +18 -0
- data/tracks/csharp/exercises/bowling/BowlingTest.cs +49 -72
- data/tracks/csharp/exercises/bracket-push/BracketPush.cs +9 -0
- data/tracks/csharp/exercises/bracket-push/BracketPush.csproj +18 -0
- data/tracks/csharp/exercises/bracket-push/BracketPushTest.cs +25 -36
- data/tracks/csharp/exercises/change/Change.cs +9 -0
- data/tracks/csharp/exercises/change/Change.csproj +18 -0
- data/tracks/csharp/exercises/change/ChangeTest.cs +15 -22
- data/tracks/csharp/exercises/circular-buffer/CircularBuffer.cs +29 -0
- data/tracks/csharp/exercises/circular-buffer/CircularBuffer.csproj +18 -0
- data/tracks/csharp/exercises/circular-buffer/CircularBufferTest.cs +36 -43
- data/tracks/csharp/exercises/clock/Clock.cs +24 -0
- data/tracks/csharp/exercises/clock/Clock.csproj +18 -0
- data/tracks/csharp/exercises/clock/ClockTest.cs +35 -48
- data/tracks/csharp/exercises/connect/Connect.cs +21 -0
- data/tracks/csharp/exercises/connect/Connect.csproj +18 -0
- data/tracks/csharp/exercises/connect/ConnectTest.cs +17 -24
- data/tracks/csharp/exercises/connect/Example.cs +36 -37
- data/tracks/csharp/exercises/crypto-square/CryptoSquare.cs +41 -0
- data/tracks/csharp/exercises/crypto-square/CryptoSquare.csproj +18 -0
- data/tracks/csharp/exercises/crypto-square/CryptoSquareTest.cs +33 -49
- data/tracks/csharp/exercises/custom-set/CustomSet.cs +88 -0
- data/tracks/csharp/exercises/custom-set/CustomSet.csproj +18 -0
- data/tracks/csharp/exercises/custom-set/CustomSetTest.cs +75 -111
- data/tracks/csharp/exercises/custom-set/Example.cs +20 -2
- data/tracks/csharp/exercises/diamond/Diamond.cs +9 -0
- data/tracks/csharp/exercises/diamond/Diamond.csproj +18 -0
- data/tracks/csharp/exercises/diamond/DiamondTest.cs +35 -26
- data/tracks/csharp/exercises/difference-of-squares/DifferenceOfSquares.cs +19 -0
- data/tracks/csharp/exercises/difference-of-squares/DifferenceOfSquares.csproj +18 -0
- data/tracks/csharp/exercises/difference-of-squares/DifferenceOfSquaresTest.cs +21 -38
- data/tracks/csharp/exercises/difference-of-squares/Example.cs +5 -17
- data/tracks/csharp/exercises/diffie-hellman/DiffieHellman.cs +20 -0
- data/tracks/csharp/exercises/diffie-hellman/DiffieHellman.csproj +18 -0
- data/tracks/csharp/exercises/diffie-hellman/DiffieHellmanTest.cs +16 -18
- data/tracks/csharp/exercises/dominoes/Dominoes.cs +10 -0
- data/tracks/csharp/exercises/dominoes/Dominoes.csproj +18 -0
- data/tracks/csharp/exercises/dominoes/DominoesTest.cs +35 -46
- data/tracks/csharp/exercises/dot-dsl/DotDsl.cs +15 -0
- data/tracks/csharp/exercises/dot-dsl/DotDsl.csproj +18 -0
- data/tracks/csharp/exercises/dot-dsl/DotDslTest.cs +40 -30
- data/tracks/csharp/exercises/error-handling/ErrorHandling.cs +24 -0
- data/tracks/csharp/exercises/error-handling/ErrorHandling.csproj +18 -0
- data/tracks/csharp/exercises/error-handling/ErrorHandlingTest.cs +12 -16
- data/tracks/csharp/exercises/etl/ETLTest.cs +9 -13
- data/tracks/csharp/exercises/etl/Etl.cs +10 -0
- data/tracks/csharp/exercises/etl/Etl.csproj +18 -0
- data/tracks/csharp/exercises/etl/Example.cs +1 -1
- data/tracks/csharp/exercises/exercises.sln +1475 -0
- data/tracks/csharp/exercises/flatten-array/FlattenArray.cs +10 -0
- data/tracks/csharp/exercises/flatten-array/FlattenArray.csproj +18 -0
- data/tracks/csharp/exercises/flatten-array/FlattenArrayTest.cs +18 -22
- data/tracks/csharp/exercises/food-chain/FoodChain.cs +14 -0
- data/tracks/csharp/exercises/food-chain/FoodChain.csproj +18 -0
- data/tracks/csharp/exercises/food-chain/FoodChainTest.cs +11 -15
- data/tracks/csharp/exercises/forth/Forth.cs +27 -0
- data/tracks/csharp/exercises/forth/Forth.csproj +19 -0
- data/tracks/csharp/exercises/forth/ForthTest.cs +42 -56
- data/tracks/csharp/exercises/gigasecond/Example.cs +1 -1
- data/tracks/csharp/exercises/gigasecond/Gigasecond.cs +9 -0
- data/tracks/csharp/exercises/gigasecond/Gigasecond.csproj +18 -0
- data/tracks/csharp/exercises/gigasecond/GigasecondTest.cs +7 -10
- data/tracks/csharp/exercises/go-counting/Example.cs +44 -44
- data/tracks/csharp/exercises/go-counting/GoCounting.cs +27 -0
- data/tracks/csharp/exercises/go-counting/GoCounting.csproj +18 -0
- data/tracks/csharp/exercises/go-counting/GoCountingTest.cs +53 -41
- data/tracks/csharp/exercises/grade-school/Example.cs +12 -14
- data/tracks/csharp/exercises/grade-school/GradeSchool.cs +20 -0
- data/tracks/csharp/exercises/grade-school/GradeSchool.csproj +18 -0
- data/tracks/csharp/exercises/grade-school/GradeSchoolTest.cs +21 -41
- data/tracks/csharp/exercises/grains/Example.cs +1 -1
- data/tracks/csharp/exercises/grains/Grains.cs +14 -0
- data/tracks/csharp/exercises/grains/Grains.csproj +18 -0
- data/tracks/csharp/exercises/grains/GrainsTest.cs +17 -25
- data/tracks/csharp/exercises/grep/Grep.cs +9 -0
- data/tracks/csharp/exercises/grep/Grep.csproj +18 -0
- data/tracks/csharp/exercises/grep/GrepTest.cs +62 -79
- data/tracks/csharp/exercises/hamming/Example.cs +2 -15
- data/tracks/csharp/exercises/hamming/Hamming.cs +9 -0
- data/tracks/csharp/exercises/hamming/Hamming.csproj +18 -0
- data/tracks/csharp/exercises/hamming/HammingTest.cs +13 -19
- data/tracks/csharp/exercises/hangman/Example.cs +11 -11
- data/tracks/csharp/exercises/hangman/Hangman.cs +34 -0
- data/tracks/csharp/exercises/hangman/Hangman.csproj +18 -0
- data/tracks/csharp/exercises/hangman/HangmanTest.cs +37 -42
- data/tracks/csharp/exercises/hello-world/HelloWorld.cs +9 -0
- data/tracks/csharp/exercises/hello-world/HelloWorld.csproj +18 -0
- data/tracks/csharp/exercises/hello-world/HelloWorldTest.cs +3 -4
- data/tracks/csharp/exercises/house/House.cs +9 -0
- data/tracks/csharp/exercises/house/House.csproj +18 -0
- data/tracks/csharp/exercises/house/HouseTest.cs +3 -3
- data/tracks/csharp/exercises/isogram/Isogram.cs +9 -0
- data/tracks/csharp/exercises/isogram/Isogram.csproj +18 -0
- data/tracks/csharp/exercises/isogram/IsogramTest.cs +14 -14
- data/tracks/csharp/exercises/kindergarten-garden/KinderGartenGardenTest.cs +28 -33
- data/tracks/csharp/exercises/kindergarten-garden/KindergartenGarden.cs +27 -0
- data/tracks/csharp/exercises/kindergarten-garden/KindergartenGarden.csproj +18 -0
- data/tracks/csharp/exercises/largest-series-product/LargestSeriesProduct.cs +9 -0
- data/tracks/csharp/exercises/largest-series-product/LargestSeriesProduct.csproj +18 -0
- data/tracks/csharp/exercises/largest-series-product/LargestSeriesProductTest.cs +31 -48
- data/tracks/csharp/exercises/leap/Leap.cs +9 -0
- data/tracks/csharp/exercises/leap/Leap.csproj +18 -0
- data/tracks/csharp/exercises/leap/LeapTest.cs +9 -13
- data/tracks/csharp/exercises/ledger/Example.cs +16 -5
- data/tracks/csharp/exercises/ledger/Ledger.cs +4 -1
- data/tracks/csharp/exercises/ledger/Ledger.csproj +18 -0
- data/tracks/csharp/exercises/ledger/LedgerTest.cs +21 -21
- data/tracks/csharp/exercises/linked-list/LinkedList.cs +24 -0
- data/tracks/csharp/exercises/linked-list/LinkedList.csproj +18 -0
- data/tracks/csharp/exercises/linked-list/LinkedListTest.cs +34 -42
- data/tracks/csharp/exercises/list-ops/ListOps.cs +46 -0
- data/tracks/csharp/exercises/list-ops/ListOps.csproj +18 -0
- data/tracks/csharp/exercises/list-ops/ListOpsTest.cs +50 -73
- data/tracks/csharp/exercises/luhn/Luhn.cs +9 -0
- data/tracks/csharp/exercises/luhn/Luhn.csproj +18 -0
- data/tracks/csharp/exercises/luhn/LuhnTest.cs +10 -10
- data/tracks/csharp/exercises/markdown/Markdown.csproj +18 -0
- data/tracks/csharp/exercises/markdown/MarkdownTest.cs +19 -19
- data/tracks/csharp/exercises/matrix/Matrix.cs +34 -0
- data/tracks/csharp/exercises/matrix/Matrix.csproj +18 -0
- data/tracks/csharp/exercises/matrix/MatrixTest.cs +42 -36
- data/tracks/csharp/exercises/meetup/Meetup.cs +23 -0
- data/tracks/csharp/exercises/meetup/Meetup.csproj +18 -0
- data/tracks/csharp/exercises/meetup/MeetupTest.cs +61 -61
- data/tracks/csharp/exercises/minesweeper/Minesweeper.cs +9 -0
- data/tracks/csharp/exercises/minesweeper/Minesweeper.csproj +18 -0
- data/tracks/csharp/exercises/minesweeper/MinesweeperTest.cs +15 -22
- data/tracks/csharp/exercises/nth-prime/NthPrime.cs +11 -0
- data/tracks/csharp/exercises/nth-prime/NthPrime.csproj +18 -0
- data/tracks/csharp/exercises/nth-prime/NthPrimeTest.cs +15 -14
- data/tracks/csharp/exercises/nucleotide-count/NucleotideCount.cs +24 -0
- data/tracks/csharp/exercises/nucleotide-count/NucleotideCount.csproj +18 -0
- data/tracks/csharp/exercises/nucleotide-count/NucleotideCountTest.cs +16 -24
- data/tracks/csharp/exercises/ocr-numbers/OcrNumbers.cs +9 -0
- data/tracks/csharp/exercises/ocr-numbers/OcrNumbers.csproj +18 -0
- data/tracks/csharp/exercises/ocr-numbers/OcrNumbersTest.cs +31 -45
- data/tracks/csharp/exercises/palindrome-products/PalindromeProducts.cs +42 -0
- data/tracks/csharp/exercises/palindrome-products/PalindromeProducts.csproj +18 -0
- data/tracks/csharp/exercises/palindrome-products/PalindromeTest.cs +25 -32
- data/tracks/csharp/exercises/pangram/Pangram.cs +9 -0
- data/tracks/csharp/exercises/pangram/Pangram.csproj +18 -0
- data/tracks/csharp/exercises/pangram/PangramTest.cs +21 -31
- data/tracks/csharp/exercises/parallel-letter-frequency/ParallelLetterFrequency.cs +10 -0
- data/tracks/csharp/exercises/parallel-letter-frequency/ParallelLetterFrequency.csproj +18 -0
- data/tracks/csharp/exercises/parallel-letter-frequency/ParallelLetterFrequencyTest.cs +17 -24
- data/tracks/csharp/exercises/pascals-triangle/PascalsTriangle.cs +10 -0
- data/tracks/csharp/exercises/pascals-triangle/PascalsTriangle.csproj +18 -0
- data/tracks/csharp/exercises/pascals-triangle/PascalsTriangleTest.cs +48 -20
- data/tracks/csharp/exercises/perfect-numbers/PerfectNumbers.cs +16 -0
- data/tracks/csharp/exercises/perfect-numbers/PerfectNumbers.csproj +18 -0
- data/tracks/csharp/exercises/perfect-numbers/PerfectNumbersTest.cs +16 -14
- data/tracks/csharp/exercises/phone-number/PhoneNumber.cs +24 -0
- data/tracks/csharp/exercises/phone-number/PhoneNumber.csproj +18 -0
- data/tracks/csharp/exercises/phone-number/PhoneNumberTest.cs +15 -22
- data/tracks/csharp/exercises/pig-latin/PigLatin.cs +9 -0
- data/tracks/csharp/exercises/pig-latin/PigLatin.csproj +18 -0
- data/tracks/csharp/exercises/pig-latin/PigLatinTest.cs +34 -43
- data/tracks/csharp/exercises/poker/Poker.cs +10 -0
- data/tracks/csharp/exercises/poker/Poker.csproj +18 -0
- data/tracks/csharp/exercises/poker/PokerTest.cs +40 -61
- data/tracks/csharp/exercises/pov/Pov.cs +43 -0
- data/tracks/csharp/exercises/pov/Pov.csproj +18 -0
- data/tracks/csharp/exercises/pov/PovTest.cs +24 -30
- data/tracks/csharp/exercises/prime-factors/PrimeFactors.cs +9 -0
- data/tracks/csharp/exercises/prime-factors/PrimeFactors.csproj +18 -0
- data/tracks/csharp/exercises/prime-factors/PrimeFactorsTest.cs +23 -34
- data/tracks/csharp/exercises/protein-translation/ProteinTranslation.cs +9 -0
- data/tracks/csharp/exercises/protein-translation/ProteinTranslation.csproj +18 -0
- data/tracks/csharp/exercises/protein-translation/ProteinTranslationTest.cs +37 -35
- data/tracks/csharp/exercises/proverb/Proverb.cs +14 -0
- data/tracks/csharp/exercises/proverb/Proverb.csproj +18 -0
- data/tracks/csharp/exercises/proverb/ProverbTest.cs +9 -12
- data/tracks/csharp/exercises/pythagorean-triplet/PythagoreanTriplet.cs +29 -0
- data/tracks/csharp/exercises/pythagorean-triplet/PythagoreanTriplet.csproj +18 -0
- data/tracks/csharp/exercises/pythagorean-triplet/PythagoreanTripletTest.cs +16 -21
- data/tracks/csharp/exercises/queen-attack/Example.cs +5 -14
- data/tracks/csharp/exercises/queen-attack/QueenAttack.cs +21 -0
- data/tracks/csharp/exercises/queen-attack/QueenAttack.csproj +18 -0
- data/tracks/csharp/exercises/queen-attack/QueenAttackTest.cs +17 -31
- data/tracks/csharp/exercises/rail-fence-cipher/RailFenceCipher.cs +18 -0
- data/tracks/csharp/exercises/rail-fence-cipher/RailFenceCipher.csproj +18 -0
- data/tracks/csharp/exercises/rail-fence-cipher/RailFenceCipherTest.cs +13 -18
- data/tracks/csharp/exercises/raindrops/Raindrops.cs +9 -0
- data/tracks/csharp/exercises/raindrops/Raindrops.csproj +18 -0
- data/tracks/csharp/exercises/raindrops/RaindropsTest.cs +29 -29
- data/tracks/csharp/exercises/react/React.cs +28 -0
- data/tracks/csharp/exercises/react/React.csproj +18 -0
- data/tracks/csharp/exercises/react/ReactTest.cs +24 -30
- data/tracks/csharp/exercises/rectangles/Example.cs +18 -19
- data/tracks/csharp/exercises/rectangles/Rectangles.cs +9 -0
- data/tracks/csharp/exercises/rectangles/Rectangles.csproj +18 -0
- data/tracks/csharp/exercises/rectangles/RectanglesTest.cs +21 -30
- data/tracks/csharp/exercises/rna-transcription/RnaTranscription.cs +9 -0
- data/tracks/csharp/exercises/rna-transcription/RnaTranscription.csproj +18 -0
- data/tracks/csharp/exercises/rna-transcription/RnaTranscriptionTest.cs +34 -0
- data/tracks/csharp/exercises/robot-name/RobotName.cs +17 -0
- data/tracks/csharp/exercises/robot-name/RobotName.csproj +18 -0
- data/tracks/csharp/exercises/robot-name/RobotNameTest.cs +10 -20
- data/tracks/csharp/exercises/robot-simulator/RobotSimulator.cs +64 -0
- data/tracks/csharp/exercises/robot-simulator/RobotSimulator.csproj +18 -0
- data/tracks/csharp/exercises/robot-simulator/RobotSimulatorTest.cs +19 -24
- data/tracks/csharp/exercises/roman-numerals/RomanNumerals.cs +9 -0
- data/tracks/csharp/exercises/roman-numerals/RomanNumerals.csproj +18 -0
- data/tracks/csharp/exercises/roman-numerals/RomanNumeralsTest.cs +23 -23
- data/tracks/csharp/exercises/run-length-encoding/RunLengthEncoding.cs +14 -0
- data/tracks/csharp/exercises/run-length-encoding/RunLengthEncoding.csproj +18 -0
- data/tracks/csharp/exercises/run-length-encoding/RunLengthEncodingTest.cs +15 -21
- data/tracks/csharp/exercises/saddle-points/SaddlePointTest.cs +11 -15
- data/tracks/csharp/exercises/saddle-points/SaddlePoints.cs +15 -0
- data/tracks/csharp/exercises/saddle-points/SaddlePoints.csproj +18 -0
- data/tracks/csharp/exercises/say/Example.cs +1 -1
- data/tracks/csharp/exercises/say/Say.cs +9 -0
- data/tracks/csharp/exercises/say/Say.csproj +18 -0
- data/tracks/csharp/exercises/say/SayTest.cs +34 -48
- data/tracks/csharp/exercises/scale-generator/Example.cs +1 -1
- data/tracks/csharp/exercises/scale-generator/ScaleGenerator.cs +9 -0
- data/tracks/csharp/exercises/scale-generator/ScaleGenerator.csproj +18 -0
- data/tracks/csharp/exercises/scale-generator/ScaleGeneratorTest.cs +29 -42
- data/tracks/csharp/exercises/scrabble-score/ScrabbleScore.cs +9 -0
- data/tracks/csharp/exercises/scrabble-score/ScrabbleScore.csproj +18 -0
- data/tracks/csharp/exercises/scrabble-score/ScrabbleScoreTest.cs +19 -28
- data/tracks/csharp/exercises/secret-handshake/SecretHandshake.cs +10 -0
- data/tracks/csharp/exercises/secret-handshake/SecretHandshake.csproj +18 -0
- data/tracks/csharp/exercises/secret-handshake/SecretHandshakeTest.cs +15 -22
- data/tracks/csharp/exercises/series/Series.cs +13 -0
- data/tracks/csharp/exercises/series/Series.csproj +18 -0
- data/tracks/csharp/exercises/series/SeriesTest.cs +26 -25
- data/tracks/csharp/exercises/sgf-parsing/Example.cs +11 -1
- data/tracks/csharp/exercises/sgf-parsing/SgfParsing.cs +12 -3
- data/tracks/csharp/exercises/sgf-parsing/SgfParsing.csproj +19 -0
- data/tracks/csharp/exercises/sgf-parsing/SgfParsingTest.cs +27 -37
- data/tracks/csharp/exercises/sieve/Sieve.cs +9 -0
- data/tracks/csharp/exercises/sieve/Sieve.csproj +18 -0
- data/tracks/csharp/exercises/sieve/SieveTest.cs +8 -12
- data/tracks/csharp/exercises/simple-cipher/SimpleCipher.cs +32 -0
- data/tracks/csharp/exercises/simple-cipher/SimpleCipher.csproj +18 -0
- data/tracks/csharp/exercises/simple-cipher/SimpleCipherTest.cs +44 -75
- data/tracks/csharp/exercises/simple-linked-list/SimpleLinkedList.cs +48 -0
- data/tracks/csharp/exercises/simple-linked-list/SimpleLinkedList.csproj +18 -0
- data/tracks/csharp/exercises/simple-linked-list/SimpleLinkedListTest.cs +31 -35
- data/tracks/csharp/exercises/space-age/Example.cs +21 -21
- data/tracks/csharp/exercises/space-age/SpaceAge.cs +48 -0
- data/tracks/csharp/exercises/space-age/SpaceAge.csproj +18 -0
- data/tracks/csharp/exercises/space-age/SpaceAgeTest.cs +24 -41
- data/tracks/csharp/exercises/strain/Strain.cs +15 -0
- data/tracks/csharp/exercises/strain/Strain.csproj +18 -0
- data/tracks/csharp/exercises/strain/StrainTest.cs +25 -37
- data/tracks/csharp/exercises/sublist/Sublist.cs +19 -0
- data/tracks/csharp/exercises/sublist/Sublist.csproj +18 -0
- data/tracks/csharp/exercises/sublist/SublistTest.cs +37 -54
- data/tracks/csharp/exercises/sum-of-multiples/SumOfMultiples.cs +10 -0
- data/tracks/csharp/exercises/sum-of-multiples/SumOfMultiples.csproj +18 -0
- data/tracks/csharp/exercises/sum-of-multiples/SumOfMultiplesTest.cs +15 -22
- data/tracks/csharp/exercises/tournament/Tournament.cs +10 -0
- data/tracks/csharp/exercises/tournament/Tournament.csproj +18 -0
- data/tracks/csharp/exercises/tournament/TournamentTest.cs +10 -13
- data/tracks/csharp/exercises/transpose/Transpose.cs +9 -0
- data/tracks/csharp/exercises/transpose/Transpose.csproj +18 -0
- data/tracks/csharp/exercises/transpose/TransposeTest.cs +21 -30
- data/tracks/csharp/exercises/tree-building/TreeBuilding.csproj +18 -0
- data/tracks/csharp/exercises/tree-building/TreeBuildingTest.cs +27 -26
- data/tracks/csharp/exercises/triangle/Example.cs +1 -1
- data/tracks/csharp/exercises/triangle/Triangle.cs +18 -0
- data/tracks/csharp/exercises/triangle/Triangle.csproj +18 -0
- data/tracks/csharp/exercises/triangle/TriangleTest.cs +26 -41
- data/tracks/csharp/exercises/twelve-days/Example.cs +4 -4
- data/tracks/csharp/exercises/twelve-days/TwelveDays.cs +19 -0
- data/tracks/csharp/exercises/twelve-days/TwelveDays.csproj +18 -0
- data/tracks/csharp/exercises/twelve-days/TwelveDaysTest.cs +29 -51
- data/tracks/csharp/exercises/two-bucket/TwoBucket.cs +27 -0
- data/tracks/csharp/exercises/two-bucket/TwoBucket.csproj +18 -0
- data/tracks/csharp/exercises/two-bucket/TwoBucketTest.cs +17 -20
- data/tracks/csharp/exercises/variable-length-quantity/VariableLengthQuantity.cs +14 -0
- data/tracks/csharp/exercises/variable-length-quantity/VariableLengthQuantity.csproj +18 -0
- data/tracks/csharp/exercises/variable-length-quantity/VariableLengthQuantityTest.cs +40 -51
- data/tracks/csharp/exercises/word-count/Example.cs +1 -1
- data/tracks/csharp/exercises/word-count/WordCount.cs +10 -0
- data/tracks/csharp/exercises/word-count/WordCount.csproj +18 -0
- data/tracks/csharp/exercises/word-count/WordCountTest.cs +23 -34
- data/tracks/csharp/exercises/word-search/Example.cs +18 -20
- data/tracks/csharp/exercises/word-search/WordSearch.cs +16 -0
- data/tracks/csharp/exercises/word-search/WordSearch.csproj +18 -0
- data/tracks/csharp/exercises/word-search/WordSearchTest.cs +30 -31
- data/tracks/csharp/exercises/wordy/Example.cs +1 -1
- data/tracks/csharp/exercises/wordy/Wordy.cs +9 -0
- data/tracks/csharp/exercises/wordy/Wordy.csproj +18 -0
- data/tracks/csharp/exercises/wordy/WordyTest.cs +34 -49
- data/tracks/csharp/exercises/zebra-puzzle/ZebraPuzzle.cs +22 -0
- data/tracks/csharp/exercises/zebra-puzzle/ZebraPuzzle.csproj +18 -0
- data/tracks/csharp/exercises/zebra-puzzle/ZebraPuzzleTest.cs +5 -6
- data/tracks/csharp/exercises/zipper/Zipper.cs +64 -0
- data/tracks/csharp/exercises/zipper/Zipper.csproj +18 -0
- data/tracks/csharp/exercises/zipper/ZipperTest.cs +31 -29
- data/tracks/csharp/paket.dependencies +1 -5
- data/tracks/csharp/paket.lock +1 -78
- data/tracks/go/README.md +10 -3
- data/tracks/go/bin/test-without-stubs +1 -1
- data/tracks/go/docs/TESTS.md +7 -0
- data/tracks/go/exercises/beer-song/example.go +1 -1
- data/tracks/go/exercises/binary-search/binary_search_test.go +1 -1
- data/tracks/go/exercises/clock/example_clock_test.go +40 -0
- data/tracks/go/exercises/grade-school/grade_school_test.go +1 -1
- data/tracks/go/exercises/hello-world/hello_example_test.go +20 -0
- data/tracks/go/exercises/minesweeper/minesweeper_test.go +1 -1
- data/tracks/go/exercises/pov/pov_test.go +4 -1
- data/tracks/java/exercises/pangram/src/example/java/{Pangrams.java → PangramChecker.java} +5 -3
- data/tracks/java/exercises/pangram/src/main/java/PangramChecker.java +6 -0
- data/tracks/java/exercises/pangram/src/test/java/PangramCheckerTest.java +82 -0
- data/tracks/ocaml/exercises/run-length-encoding/test.ml +9 -1
- data/tracks/ocaml/tools/test-generator/src/parser.ml +1 -1
- data/tracks/ocaml/tools/test-generator/src/special_cases.ml +15 -7
- data/tracks/python/exercises/list-ops/example.py +6 -6
- data/tracks/python/exercises/list-ops/list_ops_test.py +22 -37
- data/tracks/typescript/.gitignore +1 -1
- data/tracks/typescript/config.json +12 -0
- data/tracks/typescript/exercises/etl/etl.example.ts +16 -0
- data/tracks/typescript/exercises/etl/etl.test.ts +48 -0
- data/tracks/typescript/exercises/etl/package.json +36 -0
- data/tracks/typescript/exercises/etl/tsconfig.json +21 -0
- data/tracks/typescript/exercises/etl/tslint.json +127 -0
- data/tracks/typescript/exercises/etl/yarn.lock +2739 -0
- data/tracks/typescript/exercises/robot-name/robot-name.example.ts +1 -1
- data/tracks/typescript/exercises/space-age/package.json +36 -0
- data/tracks/typescript/exercises/space-age/space-age.example.ts +21 -0
- data/tracks/typescript/exercises/space-age/space-age.test.ts +56 -0
- data/tracks/typescript/exercises/space-age/tsconfig.json +21 -0
- data/tracks/typescript/exercises/space-age/tslint.json +127 -0
- data/tracks/typescript/exercises/space-age/yarn.lock +2739 -0
- metadata +226 -26
- data/tracks/csharp/docs/img/AddFiles.png +0 -0
- data/tracks/csharp/docs/img/SolutionExplorer.png +0 -0
- data/tracks/csharp/docs/img/TestExplorer.png +0 -0
- data/tracks/csharp/docs/img/addNewClass.png +0 -0
- data/tracks/csharp/docs/img/createNewProject.png +0 -0
- data/tracks/csharp/docs/img/dragDropFolders.png +0 -0
- data/tracks/csharp/docs/img/nUnitExecuteTests.png +0 -0
- data/tracks/csharp/docs/img/nUnitRunner.png +0 -0
- data/tracks/csharp/docs/img/newProject.png +0 -0
- data/tracks/csharp/docs/img/nugetManageNunitRunner.png +0 -0
- data/tracks/csharp/docs/img/nugetMenu.png +0 -0
- data/tracks/csharp/docs/img/xamarin-add-new-project.png +0 -0
- data/tracks/csharp/docs/img/xamarin-add-reference.png +0 -0
- data/tracks/csharp/docs/img/xamarin-csharp.jpg +0 -0
- data/tracks/csharp/docs/img/xamarin-edit-reference.png +0 -0
- data/tracks/csharp/docs/img/xamarin-naming.png +0 -0
- data/tracks/csharp/docs/img/xamarin-nunit.jpg +0 -0
- data/tracks/csharp/docs/img/xamarin-tests.png +0 -0
- data/tracks/csharp/exercises/exercises.csproj +0 -363
- data/tracks/csharp/exercises/paket.references +0 -2
- data/tracks/csharp/exercises/rna-transcription/ComplementTest.cs +0 -39
- data/tracks/java/exercises/pangram/src/main/java/.keep +0 -0
- data/tracks/java/exercises/pangram/src/test/java/PangramsTest.java +0 -75
@@ -0,0 +1,14 @@
|
|
1
|
+
using System;
|
2
|
+
|
3
|
+
public static class Beer
|
4
|
+
{
|
5
|
+
public static string Verse(int number)
|
6
|
+
{
|
7
|
+
throw new NotImplementedException("You need to implement this function.");
|
8
|
+
}
|
9
|
+
|
10
|
+
public static string Sing(int start, int stop)
|
11
|
+
{
|
12
|
+
throw new NotImplementedException("You need to implement this function.");
|
13
|
+
}
|
14
|
+
}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<Project Sdk="Microsoft.NET.Sdk">
|
2
|
+
|
3
|
+
<PropertyGroup>
|
4
|
+
<OutputType>Exe</OutputType>
|
5
|
+
<TargetFramework>netcoreapp1.0</TargetFramework>
|
6
|
+
</PropertyGroup>
|
7
|
+
|
8
|
+
<ItemGroup>
|
9
|
+
<Compile Remove="Example.cs" />
|
10
|
+
</ItemGroup>
|
11
|
+
|
12
|
+
<ItemGroup>
|
13
|
+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0" />
|
14
|
+
<PackageReference Include="xunit" Version="2.2.0" />
|
15
|
+
<PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
|
16
|
+
</ItemGroup>
|
17
|
+
|
18
|
+
</Project>
|
@@ -1,20 +1,22 @@
|
|
1
|
-
using
|
1
|
+
using Xunit;
|
2
2
|
|
3
3
|
public class BeerTests
|
4
4
|
{
|
5
|
-
[
|
6
|
-
[
|
7
|
-
[
|
8
|
-
[
|
9
|
-
|
5
|
+
[Theory]
|
6
|
+
[InlineData(8, "8 bottles of beer on the wall, 8 bottles of beer.\nTake one down and pass it around, 7 bottles of beer on the wall.\n")]
|
7
|
+
[InlineData(2, "2 bottles of beer on the wall, 2 bottles of beer.\nTake one down and pass it around, 1 bottle of beer on the wall.\n")]
|
8
|
+
[InlineData(1, "1 bottle of beer on the wall, 1 bottle of beer.\nTake it down and pass it around, no more bottles of beer on the wall.\n")]
|
9
|
+
[InlineData(0, "No more bottles of beer on the wall, no more bottles of beer.\nGo to the store and buy some more, 99 bottles of beer on the wall.\n")]
|
10
|
+
public void Verse(int number, string expected)
|
10
11
|
{
|
11
|
-
|
12
|
+
Assert.Equal(expected, Beer.Verse(number));
|
12
13
|
}
|
13
14
|
|
14
|
-
[
|
15
|
-
[
|
16
|
-
|
15
|
+
[Theory(Skip = "Remove to run test")]
|
16
|
+
[InlineData(8, 6, "8 bottles of beer on the wall, 8 bottles of beer.\nTake one down and pass it around, 7 bottles of beer on the wall.\n\n7 bottles of beer on the wall, 7 bottles of beer.\nTake one down and pass it around, 6 bottles of beer on the wall.\n\n6 bottles of beer on the wall, 6 bottles of beer.\nTake one down and pass it around, 5 bottles of beer on the wall.\n\n")]
|
17
|
+
[InlineData(3, 0, "3 bottles of beer on the wall, 3 bottles of beer.\nTake one down and pass it around, 2 bottles of beer on the wall.\n\n2 bottles of beer on the wall, 2 bottles of beer.\nTake one down and pass it around, 1 bottle of beer on the wall.\n\n1 bottle of beer on the wall, 1 bottle of beer.\nTake it down and pass it around, no more bottles of beer on the wall.\n\nNo more bottles of beer on the wall, no more bottles of beer.\nGo to the store and buy some more, 99 bottles of beer on the wall.\n\n")]
|
18
|
+
public void Sing(int start, int stop, string expected)
|
17
19
|
{
|
18
|
-
|
20
|
+
Assert.Equal(expected, Beer.Sing(start, stop));
|
19
21
|
}
|
20
22
|
}
|
@@ -0,0 +1,53 @@
|
|
1
|
+
using System;
|
2
|
+
using System.Collections;
|
3
|
+
using System.Collections.Generic;
|
4
|
+
|
5
|
+
public class BinarySearchTree : IEnumerable<int>
|
6
|
+
{
|
7
|
+
public BinarySearchTree(int value)
|
8
|
+
{
|
9
|
+
}
|
10
|
+
|
11
|
+
public BinarySearchTree(IEnumerable<int> values)
|
12
|
+
{
|
13
|
+
}
|
14
|
+
|
15
|
+
public int Value
|
16
|
+
{
|
17
|
+
get
|
18
|
+
{
|
19
|
+
throw new NotImplementedException("You need to implement this function.");
|
20
|
+
}
|
21
|
+
}
|
22
|
+
|
23
|
+
public BinarySearchTree Left
|
24
|
+
{
|
25
|
+
get
|
26
|
+
{
|
27
|
+
throw new NotImplementedException("You need to implement this function.");
|
28
|
+
}
|
29
|
+
}
|
30
|
+
|
31
|
+
public BinarySearchTree Right
|
32
|
+
{
|
33
|
+
get
|
34
|
+
{
|
35
|
+
throw new NotImplementedException("You need to implement this function.");
|
36
|
+
}
|
37
|
+
}
|
38
|
+
|
39
|
+
public BinarySearchTree Add(int value)
|
40
|
+
{
|
41
|
+
throw new NotImplementedException("You need to implement this function.");
|
42
|
+
}
|
43
|
+
|
44
|
+
public IEnumerator<int> GetEnumerator()
|
45
|
+
{
|
46
|
+
throw new NotImplementedException("You need to implement this function.");
|
47
|
+
}
|
48
|
+
|
49
|
+
IEnumerator IEnumerable.GetEnumerator()
|
50
|
+
{
|
51
|
+
throw new NotImplementedException("You need to implement this function.");
|
52
|
+
}
|
53
|
+
}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<Project Sdk="Microsoft.NET.Sdk">
|
2
|
+
|
3
|
+
<PropertyGroup>
|
4
|
+
<OutputType>Exe</OutputType>
|
5
|
+
<TargetFramework>netcoreapp1.0</TargetFramework>
|
6
|
+
</PropertyGroup>
|
7
|
+
|
8
|
+
<ItemGroup>
|
9
|
+
<Compile Remove="Example.cs" />
|
10
|
+
</ItemGroup>
|
11
|
+
|
12
|
+
<ItemGroup>
|
13
|
+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0" />
|
14
|
+
<PackageReference Include="xunit" Version="2.2.0" />
|
15
|
+
<PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
|
16
|
+
</ItemGroup>
|
17
|
+
|
18
|
+
</Project>
|
@@ -1,85 +1,77 @@
|
|
1
1
|
using System.Linq;
|
2
|
-
using
|
2
|
+
using Xunit;
|
3
3
|
|
4
4
|
public class BinarySearchTreeTest
|
5
5
|
{
|
6
|
-
[
|
6
|
+
[Fact]
|
7
7
|
public void Data_is_retained()
|
8
8
|
{
|
9
9
|
var tree = new BinarySearchTree(4);
|
10
|
-
Assert.
|
10
|
+
Assert.Equal(4, tree.Value);
|
11
11
|
}
|
12
12
|
|
13
|
-
[
|
14
|
-
[Test]
|
13
|
+
[Fact(Skip = "Remove to run test")]
|
15
14
|
public void Inserting_less()
|
16
15
|
{
|
17
16
|
var tree = new BinarySearchTree(4).Add(2);
|
18
|
-
Assert.
|
19
|
-
Assert.
|
17
|
+
Assert.Equal(4, tree.Value);
|
18
|
+
Assert.Equal(2, tree.Left.Value);
|
20
19
|
}
|
21
20
|
|
22
|
-
[
|
23
|
-
[Test]
|
21
|
+
[Fact(Skip = "Remove to run test")]
|
24
22
|
public void Inserting_same()
|
25
23
|
{
|
26
24
|
var tree = new BinarySearchTree(4).Add(4);
|
27
|
-
Assert.
|
28
|
-
Assert.
|
25
|
+
Assert.Equal(4, tree.Value);
|
26
|
+
Assert.Equal(4, tree.Left.Value);
|
29
27
|
}
|
30
28
|
|
31
|
-
[
|
32
|
-
[Test]
|
29
|
+
[Fact(Skip = "Remove to run test")]
|
33
30
|
public void Inserting_greater()
|
34
31
|
{
|
35
32
|
var tree = new BinarySearchTree(4).Add(5);
|
36
|
-
Assert.
|
37
|
-
Assert.
|
33
|
+
Assert.Equal(4, tree.Value);
|
34
|
+
Assert.Equal(5, tree.Right.Value);
|
38
35
|
}
|
39
36
|
|
40
|
-
[
|
41
|
-
[Test]
|
37
|
+
[Fact(Skip = "Remove to run test")]
|
42
38
|
public void Complex_tree()
|
43
39
|
{
|
44
40
|
var tree = new BinarySearchTree(new [] { 4, 2, 6, 1, 3, 7, 5 });
|
45
|
-
Assert.
|
46
|
-
Assert.
|
47
|
-
Assert.
|
48
|
-
Assert.
|
49
|
-
Assert.
|
50
|
-
Assert.
|
51
|
-
Assert.
|
41
|
+
Assert.Equal(4, tree.Value);
|
42
|
+
Assert.Equal(2, tree.Left.Value);
|
43
|
+
Assert.Equal(1, tree.Left.Left.Value);
|
44
|
+
Assert.Equal(3, tree.Left.Right.Value);
|
45
|
+
Assert.Equal(6, tree.Right.Value);
|
46
|
+
Assert.Equal(5, tree.Right.Left.Value);
|
47
|
+
Assert.Equal(7, tree.Right.Right.Value);
|
52
48
|
}
|
53
49
|
|
54
|
-
[
|
55
|
-
[Test]
|
50
|
+
[Fact(Skip = "Remove to run test")]
|
56
51
|
public void Iterating_one_element()
|
57
52
|
{
|
58
53
|
var elements = new BinarySearchTree(4).AsEnumerable();
|
59
|
-
Assert.
|
54
|
+
Assert.Equal(new [] { 4 }, elements);
|
60
55
|
}
|
61
56
|
|
62
|
-
[
|
63
|
-
[Test]
|
57
|
+
[Fact(Skip = "Remove to run test")]
|
64
58
|
public void Iterating_over_smaller_element()
|
65
59
|
{
|
66
60
|
var elements = new BinarySearchTree(new[] { 4, 2 }).AsEnumerable();
|
67
|
-
Assert.
|
61
|
+
Assert.Equal(new[] { 2, 4 }, elements);
|
68
62
|
}
|
69
63
|
|
70
|
-
[
|
71
|
-
[Test]
|
64
|
+
[Fact(Skip = "Remove to run test")]
|
72
65
|
public void Iterating_over_larger_element()
|
73
66
|
{
|
74
67
|
var elements = new BinarySearchTree(new[] { 4, 5 }).AsEnumerable();
|
75
|
-
Assert.
|
68
|
+
Assert.Equal(new[] { 4, 5 }, elements);
|
76
69
|
}
|
77
70
|
|
78
|
-
[
|
79
|
-
[Test]
|
71
|
+
[Fact(Skip = "Remove to run test")]
|
80
72
|
public void Iterating_over_complex_element()
|
81
73
|
{
|
82
74
|
var elements = new BinarySearchTree(new[] { 4, 2, 1, 3, 6, 7, 5 }).AsEnumerable();
|
83
|
-
Assert.
|
75
|
+
Assert.Equal(new[] { 1, 2, 3, 4, 5, 6, 7 }, elements);
|
84
76
|
}
|
85
77
|
}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<Project Sdk="Microsoft.NET.Sdk">
|
2
|
+
|
3
|
+
<PropertyGroup>
|
4
|
+
<OutputType>Exe</OutputType>
|
5
|
+
<TargetFramework>netcoreapp1.0</TargetFramework>
|
6
|
+
</PropertyGroup>
|
7
|
+
|
8
|
+
<ItemGroup>
|
9
|
+
<Compile Remove="Example.cs" />
|
10
|
+
</ItemGroup>
|
11
|
+
|
12
|
+
<ItemGroup>
|
13
|
+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0" />
|
14
|
+
<PackageReference Include="xunit" Version="2.2.0" />
|
15
|
+
<PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
|
16
|
+
</ItemGroup>
|
17
|
+
|
18
|
+
</Project>
|
@@ -1,76 +1,67 @@
|
|
1
|
-
using
|
1
|
+
using Xunit;
|
2
2
|
|
3
|
-
[TestFixture]
|
4
3
|
public class BinarySearchTest
|
5
4
|
{
|
6
|
-
[
|
5
|
+
[Fact]
|
7
6
|
public void Should_return_minus_one_when_an_empty_array_is_searched()
|
8
7
|
{
|
9
8
|
var input = new int[0];
|
10
|
-
Assert.
|
9
|
+
Assert.Equal(-1, BinarySearch.Search(input, 6));
|
11
10
|
}
|
12
11
|
|
13
|
-
[
|
14
|
-
[Test]
|
12
|
+
[Fact(Skip = "Remove to run test")]
|
15
13
|
public void Should_be_able_to_find_a_value_in_a_single_element_array_with_one_access()
|
16
14
|
{
|
17
15
|
var input = new[] { 6 };
|
18
|
-
Assert.
|
16
|
+
Assert.Equal(0, BinarySearch.Search(input, 6));
|
19
17
|
}
|
20
18
|
|
21
|
-
[
|
22
|
-
[Test]
|
19
|
+
[Fact(Skip = "Remove to run test")]
|
23
20
|
public void Should_return_minus_one_if_a_value_is_less_than_the_element_in_a_single_element_array()
|
24
21
|
{
|
25
22
|
var input = new[] { 94 };
|
26
|
-
Assert.
|
23
|
+
Assert.Equal(-1, BinarySearch.Search(input, 6));
|
27
24
|
}
|
28
25
|
|
29
|
-
[
|
30
|
-
[Test]
|
26
|
+
[Fact(Skip = "Remove to run test")]
|
31
27
|
public void Should_return_minus_one_if_a_value_is_greater_than_the_element_in_a_single_element_array()
|
32
28
|
{
|
33
29
|
var input = new[] { 94 };
|
34
|
-
Assert.
|
30
|
+
Assert.Equal(-1, BinarySearch.Search(input, 602));
|
35
31
|
}
|
36
32
|
|
37
|
-
[
|
38
|
-
[Test]
|
33
|
+
[Fact(Skip = "Remove to run test")]
|
39
34
|
public void Should_find_an_element_in_a_longer_array()
|
40
35
|
{
|
41
36
|
var input = new[] { 6, 67, 123, 345, 456, 457, 490, 2002, 54321, 54322 };
|
42
|
-
Assert.
|
37
|
+
Assert.Equal(7, BinarySearch.Search(input, 2002));
|
43
38
|
}
|
44
39
|
|
45
|
-
[
|
46
|
-
[Test]
|
40
|
+
[Fact(Skip = "Remove to run test")]
|
47
41
|
public void Should_find_elements_at_the_beginning_of_an_array()
|
48
42
|
{
|
49
43
|
var input = new[] { 6, 67, 123, 345, 456, 457, 490, 2002, 54321, 54322 };
|
50
|
-
Assert.
|
44
|
+
Assert.Equal(0, BinarySearch.Search(input, 6));
|
51
45
|
}
|
52
46
|
|
53
|
-
[
|
54
|
-
[Test]
|
47
|
+
[Fact(Skip = "Remove to run test")]
|
55
48
|
public void Should_find_elements_at_the_end_of_an_array()
|
56
49
|
{
|
57
50
|
var input = new[] { 6, 67, 123, 345, 456, 457, 490, 2002, 54321, 54322 };
|
58
|
-
Assert.
|
51
|
+
Assert.Equal(9, BinarySearch.Search(input, 54322));
|
59
52
|
}
|
60
53
|
|
61
|
-
[
|
62
|
-
[Test]
|
54
|
+
[Fact(Skip = "Remove to run test")]
|
63
55
|
public void Should_return_minus_one_if_a_value_is_less_than_all_elements_in_a_long_array()
|
64
56
|
{
|
65
57
|
var input = new[] { 6, 67, 123, 345, 456, 457, 490, 2002, 54321, 54322 };
|
66
|
-
Assert.
|
58
|
+
Assert.Equal(-1, BinarySearch.Search(input, 2));
|
67
59
|
}
|
68
60
|
|
69
|
-
[
|
70
|
-
[Test]
|
61
|
+
[Fact(Skip = "Remove to run test")]
|
71
62
|
public void Should_return_minus_one_if_a_value_is_greater_than_all_elements_in_a_long_array()
|
72
63
|
{
|
73
64
|
var input = new[] { 6, 67, 123, 345, 456, 457, 490, 2002, 54321, 54322 };
|
74
|
-
Assert.
|
65
|
+
Assert.Equal(-1, BinarySearch.Search(input, 54323));
|
75
66
|
}
|
76
67
|
}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<Project Sdk="Microsoft.NET.Sdk">
|
2
|
+
|
3
|
+
<PropertyGroup>
|
4
|
+
<OutputType>Exe</OutputType>
|
5
|
+
<TargetFramework>netcoreapp1.0</TargetFramework>
|
6
|
+
</PropertyGroup>
|
7
|
+
|
8
|
+
<ItemGroup>
|
9
|
+
<Compile Remove="Example.cs" />
|
10
|
+
</ItemGroup>
|
11
|
+
|
12
|
+
<ItemGroup>
|
13
|
+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0" />
|
14
|
+
<PackageReference Include="xunit" Version="2.2.0" />
|
15
|
+
<PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
|
16
|
+
</ItemGroup>
|
17
|
+
|
18
|
+
</Project>
|
@@ -1,130 +1,112 @@
|
|
1
|
-
using
|
1
|
+
using Xunit;
|
2
2
|
|
3
|
-
[TestFixture]
|
4
3
|
public class BobTest
|
5
4
|
{
|
6
|
-
[
|
5
|
+
[Fact]
|
7
6
|
public void Stating_something ()
|
8
7
|
{
|
9
|
-
Assert.
|
8
|
+
Assert.Equal("Whatever.", Bob.Hey("Tom-ay-to, tom-aaaah-to."));
|
10
9
|
}
|
11
10
|
|
12
|
-
[
|
13
|
-
[Test]
|
11
|
+
[Fact(Skip = "Remove to run test")]
|
14
12
|
public void Shouting ()
|
15
13
|
{
|
16
|
-
Assert.
|
14
|
+
Assert.Equal("Whoa, chill out!", Bob.Hey("WATCH OUT!"));
|
17
15
|
}
|
18
16
|
|
19
|
-
[
|
20
|
-
[Test]
|
17
|
+
[Fact(Skip = "Remove to run test")]
|
21
18
|
public void Asking_a_question ()
|
22
19
|
{
|
23
|
-
Assert.
|
20
|
+
Assert.Equal("Sure.", Bob.Hey("Does this cryogenic chamber make me look fat?"));
|
24
21
|
}
|
25
22
|
|
26
|
-
[
|
27
|
-
[Test]
|
23
|
+
[Fact(Skip = "Remove to run test")]
|
28
24
|
public void Asking_a_question_with_a_trailing_space()
|
29
25
|
{
|
30
|
-
Assert.
|
26
|
+
Assert.Equal("Sure.", Bob.Hey("Do I like my spacebar too much? "));
|
31
27
|
}
|
32
28
|
|
33
|
-
[
|
34
|
-
[Test]
|
29
|
+
[Fact(Skip = "Remove to run test")]
|
35
30
|
public void Asking_a_numeric_question ()
|
36
31
|
{
|
37
|
-
Assert.
|
32
|
+
Assert.Equal("Sure.", Bob.Hey("You are, what, like 15?"));
|
38
33
|
}
|
39
34
|
|
40
|
-
[
|
41
|
-
[Test]
|
35
|
+
[Fact(Skip = "Remove to run test")]
|
42
36
|
public void Talking_forcefully ()
|
43
37
|
{
|
44
|
-
Assert.
|
38
|
+
Assert.Equal("Whatever.", Bob.Hey("Let's go make out behind the gym!"));
|
45
39
|
}
|
46
40
|
|
47
|
-
[
|
48
|
-
[Test]
|
41
|
+
[Fact(Skip = "Remove to run test")]
|
49
42
|
public void Using_acronyms_in_regular_search ()
|
50
43
|
{
|
51
|
-
Assert.
|
44
|
+
Assert.Equal("Whatever.", Bob.Hey("It's OK if you don't want to go to the DMV."));
|
52
45
|
}
|
53
46
|
|
54
|
-
[
|
55
|
-
[Test]
|
47
|
+
[Fact(Skip = "Remove to run test")]
|
56
48
|
public void Forceful_questions ()
|
57
49
|
{
|
58
|
-
Assert.
|
50
|
+
Assert.Equal("Whoa, chill out!", Bob.Hey("WHAT THE HELL WERE YOU THINKING?"));
|
59
51
|
}
|
60
52
|
|
61
|
-
[
|
62
|
-
[Test]
|
53
|
+
[Fact(Skip = "Remove to run test")]
|
63
54
|
public void Shouting_numbers ()
|
64
55
|
{
|
65
|
-
Assert.
|
56
|
+
Assert.Equal("Whoa, chill out!", Bob.Hey("1, 2, 3 GO!"));
|
66
57
|
}
|
67
58
|
|
68
|
-
[
|
69
|
-
[Test]
|
59
|
+
[Fact(Skip = "Remove to run test")]
|
70
60
|
public void Only_numbers ()
|
71
61
|
{
|
72
|
-
Assert.
|
62
|
+
Assert.Equal("Whatever.", Bob.Hey("1, 2, 3"));
|
73
63
|
}
|
74
64
|
|
75
|
-
[
|
76
|
-
[Test]
|
65
|
+
[Fact(Skip = "Remove to run test")]
|
77
66
|
public void Question_with_only_numbers ()
|
78
67
|
{
|
79
|
-
Assert.
|
68
|
+
Assert.Equal("Sure.", Bob.Hey("4?"));
|
80
69
|
}
|
81
70
|
|
82
|
-
[
|
83
|
-
[Test]
|
71
|
+
[Fact(Skip = "Remove to run test")]
|
84
72
|
public void Shouting_with_special_characters ()
|
85
73
|
{
|
86
|
-
Assert.
|
74
|
+
Assert.Equal("Whoa, chill out!", Bob.Hey("ZOMG THE %^*@#$(*^ ZOMBIES ARE COMING!!11!!1!"));
|
87
75
|
}
|
88
76
|
|
89
|
-
[
|
90
|
-
[Test]
|
77
|
+
[Fact(Skip = "Remove to run test")]
|
91
78
|
public void Shouting_with_no_exclamation_mark ()
|
92
79
|
{
|
93
|
-
Assert.
|
80
|
+
Assert.Equal("Whoa, chill out!", Bob.Hey("I HATE YOU"));
|
94
81
|
}
|
95
82
|
|
96
|
-
[
|
97
|
-
[Test]
|
83
|
+
[Fact(Skip = "Remove to run test")]
|
98
84
|
public void Statement_containing_question_mark ()
|
99
85
|
{
|
100
|
-
Assert.
|
86
|
+
Assert.Equal("Whatever.", Bob.Hey("Ending with ? means a question."));
|
101
87
|
}
|
102
88
|
|
103
|
-
[
|
104
|
-
[Test]
|
89
|
+
[Fact(Skip = "Remove to run test")]
|
105
90
|
public void Prattling_on ()
|
106
91
|
{
|
107
|
-
Assert.
|
92
|
+
Assert.Equal("Sure.", Bob.Hey("Wait! Hang on. Are you going to be OK?"));
|
108
93
|
}
|
109
94
|
|
110
|
-
[
|
111
|
-
[Test]
|
95
|
+
[Fact(Skip = "Remove to run test")]
|
112
96
|
public void Silence ()
|
113
97
|
{
|
114
|
-
Assert.
|
98
|
+
Assert.Equal("Fine. Be that way!", Bob.Hey(""));
|
115
99
|
}
|
116
100
|
|
117
|
-
[
|
118
|
-
[Test]
|
101
|
+
[Fact(Skip = "Remove to run test")]
|
119
102
|
public void Prolonged_silence ()
|
120
103
|
{
|
121
|
-
Assert.
|
104
|
+
Assert.Equal("Fine. Be that way!", Bob.Hey(" "));
|
122
105
|
}
|
123
106
|
|
124
|
-
[
|
125
|
-
[Test]
|
107
|
+
[Fact(Skip = "Remove to run test")]
|
126
108
|
public void Multiple_line_question ()
|
127
109
|
{
|
128
|
-
Assert.
|
110
|
+
Assert.Equal("Whatever.", Bob.Hey("Does this cryogenic chamber make me look fat?\nno"));
|
129
111
|
}
|
130
112
|
}
|