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.
Files changed (409) hide show
  1. checksums.yaml +4 -4
  2. data/common/exercises/robot-simulator/canonical-data.json +238 -214
  3. data/common/exercises/secret-handshake/canonical-data.json +80 -64
  4. data/lib/trackler/version.rb +1 -1
  5. data/tracks/csharp/.gitignore +6 -1
  6. data/tracks/csharp/.travis.yml +26 -3
  7. data/tracks/csharp/Zipper.cs +137 -0
  8. data/tracks/csharp/appveyor.yml +6 -1
  9. data/tracks/csharp/build.fsx +59 -47
  10. data/tracks/csharp/circle.yml +15 -5
  11. data/tracks/csharp/docs/INSTALLATION.md +12 -177
  12. data/tracks/csharp/docs/TESTS.md +21 -38
  13. data/tracks/csharp/exercises/accumulate/Accumulate.cs +10 -0
  14. data/tracks/csharp/exercises/accumulate/Accumulate.csproj +18 -0
  15. data/tracks/csharp/exercises/accumulate/AccumulateTest.cs +16 -27
  16. data/tracks/csharp/exercises/acronym/Acronym.cs +9 -0
  17. data/tracks/csharp/exercises/acronym/Acronym.csproj +18 -0
  18. data/tracks/csharp/exercises/acronym/AcronymTest.cs +17 -20
  19. data/tracks/csharp/exercises/acronym/Example.cs +11 -14
  20. data/tracks/csharp/exercises/all-your-base/AllYourBase.cs +9 -0
  21. data/tracks/csharp/exercises/all-your-base/AllYourBase.csproj +18 -0
  22. data/tracks/csharp/exercises/all-your-base/AllYourBaseTest.cs +30 -51
  23. data/tracks/csharp/exercises/allergies/Allergies.cs +19 -0
  24. data/tracks/csharp/exercises/allergies/Allergies.csproj +18 -0
  25. data/tracks/csharp/exercises/allergies/AllergiesTest.cs +28 -40
  26. data/tracks/csharp/exercises/alphametics/Alphametics.cs +10 -0
  27. data/tracks/csharp/exercises/alphametics/Alphametics.csproj +19 -0
  28. data/tracks/csharp/exercises/alphametics/AlphameticsTest.cs +18 -24
  29. data/tracks/csharp/exercises/alphametics/Example.cs +6 -1
  30. data/tracks/csharp/exercises/anagram/Anagram.cs +14 -0
  31. data/tracks/csharp/exercises/anagram/Anagram.csproj +18 -0
  32. data/tracks/csharp/exercises/anagram/AnagramTest.cs +19 -28
  33. data/tracks/csharp/exercises/atbash-cipher/AtbashCipher.cs +9 -0
  34. data/tracks/csharp/exercises/atbash-cipher/AtbashCipher.csproj +18 -0
  35. data/tracks/csharp/exercises/atbash-cipher/AtbashTest.cs +11 -11
  36. data/tracks/csharp/exercises/atbash-cipher/Example.cs +1 -1
  37. data/tracks/csharp/exercises/bank-account/BankAccount.cs +27 -0
  38. data/tracks/csharp/exercises/bank-account/BankAccount.csproj +18 -0
  39. data/tracks/csharp/exercises/bank-account/BankAccountTest.cs +14 -18
  40. data/tracks/csharp/exercises/beer-song/BeerSong.cs +14 -0
  41. data/tracks/csharp/exercises/beer-song/BeerSong.csproj +18 -0
  42. data/tracks/csharp/exercises/beer-song/BeerTest.cs +13 -11
  43. data/tracks/csharp/exercises/binary-search-tree/BinarySearchTree.cs +53 -0
  44. data/tracks/csharp/exercises/binary-search-tree/BinarySearchTree.csproj +18 -0
  45. data/tracks/csharp/exercises/binary-search-tree/BinarySearchTreeTest.cs +28 -36
  46. data/tracks/csharp/exercises/binary-search/BinarySearch.cs +9 -0
  47. data/tracks/csharp/exercises/binary-search/BinarySearch.csproj +18 -0
  48. data/tracks/csharp/exercises/binary-search/BinarySearchTest.cs +19 -28
  49. data/tracks/csharp/exercises/bob/Bob.cs +9 -0
  50. data/tracks/csharp/exercises/bob/Bob.csproj +18 -0
  51. data/tracks/csharp/exercises/bob/BobTest.cs +37 -55
  52. data/tracks/csharp/exercises/bob/Example.cs +2 -3
  53. data/tracks/csharp/exercises/book-store/BookStore.cs +10 -0
  54. data/tracks/csharp/exercises/book-store/BookStore.csproj +18 -0
  55. data/tracks/csharp/exercises/book-store/BookStoreTest.cs +25 -37
  56. data/tracks/csharp/exercises/book-store/Example.cs +1 -1
  57. data/tracks/csharp/exercises/bowling/Bowling.cs +14 -0
  58. data/tracks/csharp/exercises/bowling/Bowling.csproj +18 -0
  59. data/tracks/csharp/exercises/bowling/BowlingTest.cs +49 -72
  60. data/tracks/csharp/exercises/bracket-push/BracketPush.cs +9 -0
  61. data/tracks/csharp/exercises/bracket-push/BracketPush.csproj +18 -0
  62. data/tracks/csharp/exercises/bracket-push/BracketPushTest.cs +25 -36
  63. data/tracks/csharp/exercises/change/Change.cs +9 -0
  64. data/tracks/csharp/exercises/change/Change.csproj +18 -0
  65. data/tracks/csharp/exercises/change/ChangeTest.cs +15 -22
  66. data/tracks/csharp/exercises/circular-buffer/CircularBuffer.cs +29 -0
  67. data/tracks/csharp/exercises/circular-buffer/CircularBuffer.csproj +18 -0
  68. data/tracks/csharp/exercises/circular-buffer/CircularBufferTest.cs +36 -43
  69. data/tracks/csharp/exercises/clock/Clock.cs +24 -0
  70. data/tracks/csharp/exercises/clock/Clock.csproj +18 -0
  71. data/tracks/csharp/exercises/clock/ClockTest.cs +35 -48
  72. data/tracks/csharp/exercises/connect/Connect.cs +21 -0
  73. data/tracks/csharp/exercises/connect/Connect.csproj +18 -0
  74. data/tracks/csharp/exercises/connect/ConnectTest.cs +17 -24
  75. data/tracks/csharp/exercises/connect/Example.cs +36 -37
  76. data/tracks/csharp/exercises/crypto-square/CryptoSquare.cs +41 -0
  77. data/tracks/csharp/exercises/crypto-square/CryptoSquare.csproj +18 -0
  78. data/tracks/csharp/exercises/crypto-square/CryptoSquareTest.cs +33 -49
  79. data/tracks/csharp/exercises/custom-set/CustomSet.cs +88 -0
  80. data/tracks/csharp/exercises/custom-set/CustomSet.csproj +18 -0
  81. data/tracks/csharp/exercises/custom-set/CustomSetTest.cs +75 -111
  82. data/tracks/csharp/exercises/custom-set/Example.cs +20 -2
  83. data/tracks/csharp/exercises/diamond/Diamond.cs +9 -0
  84. data/tracks/csharp/exercises/diamond/Diamond.csproj +18 -0
  85. data/tracks/csharp/exercises/diamond/DiamondTest.cs +35 -26
  86. data/tracks/csharp/exercises/difference-of-squares/DifferenceOfSquares.cs +19 -0
  87. data/tracks/csharp/exercises/difference-of-squares/DifferenceOfSquares.csproj +18 -0
  88. data/tracks/csharp/exercises/difference-of-squares/DifferenceOfSquaresTest.cs +21 -38
  89. data/tracks/csharp/exercises/difference-of-squares/Example.cs +5 -17
  90. data/tracks/csharp/exercises/diffie-hellman/DiffieHellman.cs +20 -0
  91. data/tracks/csharp/exercises/diffie-hellman/DiffieHellman.csproj +18 -0
  92. data/tracks/csharp/exercises/diffie-hellman/DiffieHellmanTest.cs +16 -18
  93. data/tracks/csharp/exercises/dominoes/Dominoes.cs +10 -0
  94. data/tracks/csharp/exercises/dominoes/Dominoes.csproj +18 -0
  95. data/tracks/csharp/exercises/dominoes/DominoesTest.cs +35 -46
  96. data/tracks/csharp/exercises/dot-dsl/DotDsl.cs +15 -0
  97. data/tracks/csharp/exercises/dot-dsl/DotDsl.csproj +18 -0
  98. data/tracks/csharp/exercises/dot-dsl/DotDslTest.cs +40 -30
  99. data/tracks/csharp/exercises/error-handling/ErrorHandling.cs +24 -0
  100. data/tracks/csharp/exercises/error-handling/ErrorHandling.csproj +18 -0
  101. data/tracks/csharp/exercises/error-handling/ErrorHandlingTest.cs +12 -16
  102. data/tracks/csharp/exercises/etl/ETLTest.cs +9 -13
  103. data/tracks/csharp/exercises/etl/Etl.cs +10 -0
  104. data/tracks/csharp/exercises/etl/Etl.csproj +18 -0
  105. data/tracks/csharp/exercises/etl/Example.cs +1 -1
  106. data/tracks/csharp/exercises/exercises.sln +1475 -0
  107. data/tracks/csharp/exercises/flatten-array/FlattenArray.cs +10 -0
  108. data/tracks/csharp/exercises/flatten-array/FlattenArray.csproj +18 -0
  109. data/tracks/csharp/exercises/flatten-array/FlattenArrayTest.cs +18 -22
  110. data/tracks/csharp/exercises/food-chain/FoodChain.cs +14 -0
  111. data/tracks/csharp/exercises/food-chain/FoodChain.csproj +18 -0
  112. data/tracks/csharp/exercises/food-chain/FoodChainTest.cs +11 -15
  113. data/tracks/csharp/exercises/forth/Forth.cs +27 -0
  114. data/tracks/csharp/exercises/forth/Forth.csproj +19 -0
  115. data/tracks/csharp/exercises/forth/ForthTest.cs +42 -56
  116. data/tracks/csharp/exercises/gigasecond/Example.cs +1 -1
  117. data/tracks/csharp/exercises/gigasecond/Gigasecond.cs +9 -0
  118. data/tracks/csharp/exercises/gigasecond/Gigasecond.csproj +18 -0
  119. data/tracks/csharp/exercises/gigasecond/GigasecondTest.cs +7 -10
  120. data/tracks/csharp/exercises/go-counting/Example.cs +44 -44
  121. data/tracks/csharp/exercises/go-counting/GoCounting.cs +27 -0
  122. data/tracks/csharp/exercises/go-counting/GoCounting.csproj +18 -0
  123. data/tracks/csharp/exercises/go-counting/GoCountingTest.cs +53 -41
  124. data/tracks/csharp/exercises/grade-school/Example.cs +12 -14
  125. data/tracks/csharp/exercises/grade-school/GradeSchool.cs +20 -0
  126. data/tracks/csharp/exercises/grade-school/GradeSchool.csproj +18 -0
  127. data/tracks/csharp/exercises/grade-school/GradeSchoolTest.cs +21 -41
  128. data/tracks/csharp/exercises/grains/Example.cs +1 -1
  129. data/tracks/csharp/exercises/grains/Grains.cs +14 -0
  130. data/tracks/csharp/exercises/grains/Grains.csproj +18 -0
  131. data/tracks/csharp/exercises/grains/GrainsTest.cs +17 -25
  132. data/tracks/csharp/exercises/grep/Grep.cs +9 -0
  133. data/tracks/csharp/exercises/grep/Grep.csproj +18 -0
  134. data/tracks/csharp/exercises/grep/GrepTest.cs +62 -79
  135. data/tracks/csharp/exercises/hamming/Example.cs +2 -15
  136. data/tracks/csharp/exercises/hamming/Hamming.cs +9 -0
  137. data/tracks/csharp/exercises/hamming/Hamming.csproj +18 -0
  138. data/tracks/csharp/exercises/hamming/HammingTest.cs +13 -19
  139. data/tracks/csharp/exercises/hangman/Example.cs +11 -11
  140. data/tracks/csharp/exercises/hangman/Hangman.cs +34 -0
  141. data/tracks/csharp/exercises/hangman/Hangman.csproj +18 -0
  142. data/tracks/csharp/exercises/hangman/HangmanTest.cs +37 -42
  143. data/tracks/csharp/exercises/hello-world/HelloWorld.cs +9 -0
  144. data/tracks/csharp/exercises/hello-world/HelloWorld.csproj +18 -0
  145. data/tracks/csharp/exercises/hello-world/HelloWorldTest.cs +3 -4
  146. data/tracks/csharp/exercises/house/House.cs +9 -0
  147. data/tracks/csharp/exercises/house/House.csproj +18 -0
  148. data/tracks/csharp/exercises/house/HouseTest.cs +3 -3
  149. data/tracks/csharp/exercises/isogram/Isogram.cs +9 -0
  150. data/tracks/csharp/exercises/isogram/Isogram.csproj +18 -0
  151. data/tracks/csharp/exercises/isogram/IsogramTest.cs +14 -14
  152. data/tracks/csharp/exercises/kindergarten-garden/KinderGartenGardenTest.cs +28 -33
  153. data/tracks/csharp/exercises/kindergarten-garden/KindergartenGarden.cs +27 -0
  154. data/tracks/csharp/exercises/kindergarten-garden/KindergartenGarden.csproj +18 -0
  155. data/tracks/csharp/exercises/largest-series-product/LargestSeriesProduct.cs +9 -0
  156. data/tracks/csharp/exercises/largest-series-product/LargestSeriesProduct.csproj +18 -0
  157. data/tracks/csharp/exercises/largest-series-product/LargestSeriesProductTest.cs +31 -48
  158. data/tracks/csharp/exercises/leap/Leap.cs +9 -0
  159. data/tracks/csharp/exercises/leap/Leap.csproj +18 -0
  160. data/tracks/csharp/exercises/leap/LeapTest.cs +9 -13
  161. data/tracks/csharp/exercises/ledger/Example.cs +16 -5
  162. data/tracks/csharp/exercises/ledger/Ledger.cs +4 -1
  163. data/tracks/csharp/exercises/ledger/Ledger.csproj +18 -0
  164. data/tracks/csharp/exercises/ledger/LedgerTest.cs +21 -21
  165. data/tracks/csharp/exercises/linked-list/LinkedList.cs +24 -0
  166. data/tracks/csharp/exercises/linked-list/LinkedList.csproj +18 -0
  167. data/tracks/csharp/exercises/linked-list/LinkedListTest.cs +34 -42
  168. data/tracks/csharp/exercises/list-ops/ListOps.cs +46 -0
  169. data/tracks/csharp/exercises/list-ops/ListOps.csproj +18 -0
  170. data/tracks/csharp/exercises/list-ops/ListOpsTest.cs +50 -73
  171. data/tracks/csharp/exercises/luhn/Luhn.cs +9 -0
  172. data/tracks/csharp/exercises/luhn/Luhn.csproj +18 -0
  173. data/tracks/csharp/exercises/luhn/LuhnTest.cs +10 -10
  174. data/tracks/csharp/exercises/markdown/Markdown.csproj +18 -0
  175. data/tracks/csharp/exercises/markdown/MarkdownTest.cs +19 -19
  176. data/tracks/csharp/exercises/matrix/Matrix.cs +34 -0
  177. data/tracks/csharp/exercises/matrix/Matrix.csproj +18 -0
  178. data/tracks/csharp/exercises/matrix/MatrixTest.cs +42 -36
  179. data/tracks/csharp/exercises/meetup/Meetup.cs +23 -0
  180. data/tracks/csharp/exercises/meetup/Meetup.csproj +18 -0
  181. data/tracks/csharp/exercises/meetup/MeetupTest.cs +61 -61
  182. data/tracks/csharp/exercises/minesweeper/Minesweeper.cs +9 -0
  183. data/tracks/csharp/exercises/minesweeper/Minesweeper.csproj +18 -0
  184. data/tracks/csharp/exercises/minesweeper/MinesweeperTest.cs +15 -22
  185. data/tracks/csharp/exercises/nth-prime/NthPrime.cs +11 -0
  186. data/tracks/csharp/exercises/nth-prime/NthPrime.csproj +18 -0
  187. data/tracks/csharp/exercises/nth-prime/NthPrimeTest.cs +15 -14
  188. data/tracks/csharp/exercises/nucleotide-count/NucleotideCount.cs +24 -0
  189. data/tracks/csharp/exercises/nucleotide-count/NucleotideCount.csproj +18 -0
  190. data/tracks/csharp/exercises/nucleotide-count/NucleotideCountTest.cs +16 -24
  191. data/tracks/csharp/exercises/ocr-numbers/OcrNumbers.cs +9 -0
  192. data/tracks/csharp/exercises/ocr-numbers/OcrNumbers.csproj +18 -0
  193. data/tracks/csharp/exercises/ocr-numbers/OcrNumbersTest.cs +31 -45
  194. data/tracks/csharp/exercises/palindrome-products/PalindromeProducts.cs +42 -0
  195. data/tracks/csharp/exercises/palindrome-products/PalindromeProducts.csproj +18 -0
  196. data/tracks/csharp/exercises/palindrome-products/PalindromeTest.cs +25 -32
  197. data/tracks/csharp/exercises/pangram/Pangram.cs +9 -0
  198. data/tracks/csharp/exercises/pangram/Pangram.csproj +18 -0
  199. data/tracks/csharp/exercises/pangram/PangramTest.cs +21 -31
  200. data/tracks/csharp/exercises/parallel-letter-frequency/ParallelLetterFrequency.cs +10 -0
  201. data/tracks/csharp/exercises/parallel-letter-frequency/ParallelLetterFrequency.csproj +18 -0
  202. data/tracks/csharp/exercises/parallel-letter-frequency/ParallelLetterFrequencyTest.cs +17 -24
  203. data/tracks/csharp/exercises/pascals-triangle/PascalsTriangle.cs +10 -0
  204. data/tracks/csharp/exercises/pascals-triangle/PascalsTriangle.csproj +18 -0
  205. data/tracks/csharp/exercises/pascals-triangle/PascalsTriangleTest.cs +48 -20
  206. data/tracks/csharp/exercises/perfect-numbers/PerfectNumbers.cs +16 -0
  207. data/tracks/csharp/exercises/perfect-numbers/PerfectNumbers.csproj +18 -0
  208. data/tracks/csharp/exercises/perfect-numbers/PerfectNumbersTest.cs +16 -14
  209. data/tracks/csharp/exercises/phone-number/PhoneNumber.cs +24 -0
  210. data/tracks/csharp/exercises/phone-number/PhoneNumber.csproj +18 -0
  211. data/tracks/csharp/exercises/phone-number/PhoneNumberTest.cs +15 -22
  212. data/tracks/csharp/exercises/pig-latin/PigLatin.cs +9 -0
  213. data/tracks/csharp/exercises/pig-latin/PigLatin.csproj +18 -0
  214. data/tracks/csharp/exercises/pig-latin/PigLatinTest.cs +34 -43
  215. data/tracks/csharp/exercises/poker/Poker.cs +10 -0
  216. data/tracks/csharp/exercises/poker/Poker.csproj +18 -0
  217. data/tracks/csharp/exercises/poker/PokerTest.cs +40 -61
  218. data/tracks/csharp/exercises/pov/Pov.cs +43 -0
  219. data/tracks/csharp/exercises/pov/Pov.csproj +18 -0
  220. data/tracks/csharp/exercises/pov/PovTest.cs +24 -30
  221. data/tracks/csharp/exercises/prime-factors/PrimeFactors.cs +9 -0
  222. data/tracks/csharp/exercises/prime-factors/PrimeFactors.csproj +18 -0
  223. data/tracks/csharp/exercises/prime-factors/PrimeFactorsTest.cs +23 -34
  224. data/tracks/csharp/exercises/protein-translation/ProteinTranslation.cs +9 -0
  225. data/tracks/csharp/exercises/protein-translation/ProteinTranslation.csproj +18 -0
  226. data/tracks/csharp/exercises/protein-translation/ProteinTranslationTest.cs +37 -35
  227. data/tracks/csharp/exercises/proverb/Proverb.cs +14 -0
  228. data/tracks/csharp/exercises/proverb/Proverb.csproj +18 -0
  229. data/tracks/csharp/exercises/proverb/ProverbTest.cs +9 -12
  230. data/tracks/csharp/exercises/pythagorean-triplet/PythagoreanTriplet.cs +29 -0
  231. data/tracks/csharp/exercises/pythagorean-triplet/PythagoreanTriplet.csproj +18 -0
  232. data/tracks/csharp/exercises/pythagorean-triplet/PythagoreanTripletTest.cs +16 -21
  233. data/tracks/csharp/exercises/queen-attack/Example.cs +5 -14
  234. data/tracks/csharp/exercises/queen-attack/QueenAttack.cs +21 -0
  235. data/tracks/csharp/exercises/queen-attack/QueenAttack.csproj +18 -0
  236. data/tracks/csharp/exercises/queen-attack/QueenAttackTest.cs +17 -31
  237. data/tracks/csharp/exercises/rail-fence-cipher/RailFenceCipher.cs +18 -0
  238. data/tracks/csharp/exercises/rail-fence-cipher/RailFenceCipher.csproj +18 -0
  239. data/tracks/csharp/exercises/rail-fence-cipher/RailFenceCipherTest.cs +13 -18
  240. data/tracks/csharp/exercises/raindrops/Raindrops.cs +9 -0
  241. data/tracks/csharp/exercises/raindrops/Raindrops.csproj +18 -0
  242. data/tracks/csharp/exercises/raindrops/RaindropsTest.cs +29 -29
  243. data/tracks/csharp/exercises/react/React.cs +28 -0
  244. data/tracks/csharp/exercises/react/React.csproj +18 -0
  245. data/tracks/csharp/exercises/react/ReactTest.cs +24 -30
  246. data/tracks/csharp/exercises/rectangles/Example.cs +18 -19
  247. data/tracks/csharp/exercises/rectangles/Rectangles.cs +9 -0
  248. data/tracks/csharp/exercises/rectangles/Rectangles.csproj +18 -0
  249. data/tracks/csharp/exercises/rectangles/RectanglesTest.cs +21 -30
  250. data/tracks/csharp/exercises/rna-transcription/RnaTranscription.cs +9 -0
  251. data/tracks/csharp/exercises/rna-transcription/RnaTranscription.csproj +18 -0
  252. data/tracks/csharp/exercises/rna-transcription/RnaTranscriptionTest.cs +34 -0
  253. data/tracks/csharp/exercises/robot-name/RobotName.cs +17 -0
  254. data/tracks/csharp/exercises/robot-name/RobotName.csproj +18 -0
  255. data/tracks/csharp/exercises/robot-name/RobotNameTest.cs +10 -20
  256. data/tracks/csharp/exercises/robot-simulator/RobotSimulator.cs +64 -0
  257. data/tracks/csharp/exercises/robot-simulator/RobotSimulator.csproj +18 -0
  258. data/tracks/csharp/exercises/robot-simulator/RobotSimulatorTest.cs +19 -24
  259. data/tracks/csharp/exercises/roman-numerals/RomanNumerals.cs +9 -0
  260. data/tracks/csharp/exercises/roman-numerals/RomanNumerals.csproj +18 -0
  261. data/tracks/csharp/exercises/roman-numerals/RomanNumeralsTest.cs +23 -23
  262. data/tracks/csharp/exercises/run-length-encoding/RunLengthEncoding.cs +14 -0
  263. data/tracks/csharp/exercises/run-length-encoding/RunLengthEncoding.csproj +18 -0
  264. data/tracks/csharp/exercises/run-length-encoding/RunLengthEncodingTest.cs +15 -21
  265. data/tracks/csharp/exercises/saddle-points/SaddlePointTest.cs +11 -15
  266. data/tracks/csharp/exercises/saddle-points/SaddlePoints.cs +15 -0
  267. data/tracks/csharp/exercises/saddle-points/SaddlePoints.csproj +18 -0
  268. data/tracks/csharp/exercises/say/Example.cs +1 -1
  269. data/tracks/csharp/exercises/say/Say.cs +9 -0
  270. data/tracks/csharp/exercises/say/Say.csproj +18 -0
  271. data/tracks/csharp/exercises/say/SayTest.cs +34 -48
  272. data/tracks/csharp/exercises/scale-generator/Example.cs +1 -1
  273. data/tracks/csharp/exercises/scale-generator/ScaleGenerator.cs +9 -0
  274. data/tracks/csharp/exercises/scale-generator/ScaleGenerator.csproj +18 -0
  275. data/tracks/csharp/exercises/scale-generator/ScaleGeneratorTest.cs +29 -42
  276. data/tracks/csharp/exercises/scrabble-score/ScrabbleScore.cs +9 -0
  277. data/tracks/csharp/exercises/scrabble-score/ScrabbleScore.csproj +18 -0
  278. data/tracks/csharp/exercises/scrabble-score/ScrabbleScoreTest.cs +19 -28
  279. data/tracks/csharp/exercises/secret-handshake/SecretHandshake.cs +10 -0
  280. data/tracks/csharp/exercises/secret-handshake/SecretHandshake.csproj +18 -0
  281. data/tracks/csharp/exercises/secret-handshake/SecretHandshakeTest.cs +15 -22
  282. data/tracks/csharp/exercises/series/Series.cs +13 -0
  283. data/tracks/csharp/exercises/series/Series.csproj +18 -0
  284. data/tracks/csharp/exercises/series/SeriesTest.cs +26 -25
  285. data/tracks/csharp/exercises/sgf-parsing/Example.cs +11 -1
  286. data/tracks/csharp/exercises/sgf-parsing/SgfParsing.cs +12 -3
  287. data/tracks/csharp/exercises/sgf-parsing/SgfParsing.csproj +19 -0
  288. data/tracks/csharp/exercises/sgf-parsing/SgfParsingTest.cs +27 -37
  289. data/tracks/csharp/exercises/sieve/Sieve.cs +9 -0
  290. data/tracks/csharp/exercises/sieve/Sieve.csproj +18 -0
  291. data/tracks/csharp/exercises/sieve/SieveTest.cs +8 -12
  292. data/tracks/csharp/exercises/simple-cipher/SimpleCipher.cs +32 -0
  293. data/tracks/csharp/exercises/simple-cipher/SimpleCipher.csproj +18 -0
  294. data/tracks/csharp/exercises/simple-cipher/SimpleCipherTest.cs +44 -75
  295. data/tracks/csharp/exercises/simple-linked-list/SimpleLinkedList.cs +48 -0
  296. data/tracks/csharp/exercises/simple-linked-list/SimpleLinkedList.csproj +18 -0
  297. data/tracks/csharp/exercises/simple-linked-list/SimpleLinkedListTest.cs +31 -35
  298. data/tracks/csharp/exercises/space-age/Example.cs +21 -21
  299. data/tracks/csharp/exercises/space-age/SpaceAge.cs +48 -0
  300. data/tracks/csharp/exercises/space-age/SpaceAge.csproj +18 -0
  301. data/tracks/csharp/exercises/space-age/SpaceAgeTest.cs +24 -41
  302. data/tracks/csharp/exercises/strain/Strain.cs +15 -0
  303. data/tracks/csharp/exercises/strain/Strain.csproj +18 -0
  304. data/tracks/csharp/exercises/strain/StrainTest.cs +25 -37
  305. data/tracks/csharp/exercises/sublist/Sublist.cs +19 -0
  306. data/tracks/csharp/exercises/sublist/Sublist.csproj +18 -0
  307. data/tracks/csharp/exercises/sublist/SublistTest.cs +37 -54
  308. data/tracks/csharp/exercises/sum-of-multiples/SumOfMultiples.cs +10 -0
  309. data/tracks/csharp/exercises/sum-of-multiples/SumOfMultiples.csproj +18 -0
  310. data/tracks/csharp/exercises/sum-of-multiples/SumOfMultiplesTest.cs +15 -22
  311. data/tracks/csharp/exercises/tournament/Tournament.cs +10 -0
  312. data/tracks/csharp/exercises/tournament/Tournament.csproj +18 -0
  313. data/tracks/csharp/exercises/tournament/TournamentTest.cs +10 -13
  314. data/tracks/csharp/exercises/transpose/Transpose.cs +9 -0
  315. data/tracks/csharp/exercises/transpose/Transpose.csproj +18 -0
  316. data/tracks/csharp/exercises/transpose/TransposeTest.cs +21 -30
  317. data/tracks/csharp/exercises/tree-building/TreeBuilding.csproj +18 -0
  318. data/tracks/csharp/exercises/tree-building/TreeBuildingTest.cs +27 -26
  319. data/tracks/csharp/exercises/triangle/Example.cs +1 -1
  320. data/tracks/csharp/exercises/triangle/Triangle.cs +18 -0
  321. data/tracks/csharp/exercises/triangle/Triangle.csproj +18 -0
  322. data/tracks/csharp/exercises/triangle/TriangleTest.cs +26 -41
  323. data/tracks/csharp/exercises/twelve-days/Example.cs +4 -4
  324. data/tracks/csharp/exercises/twelve-days/TwelveDays.cs +19 -0
  325. data/tracks/csharp/exercises/twelve-days/TwelveDays.csproj +18 -0
  326. data/tracks/csharp/exercises/twelve-days/TwelveDaysTest.cs +29 -51
  327. data/tracks/csharp/exercises/two-bucket/TwoBucket.cs +27 -0
  328. data/tracks/csharp/exercises/two-bucket/TwoBucket.csproj +18 -0
  329. data/tracks/csharp/exercises/two-bucket/TwoBucketTest.cs +17 -20
  330. data/tracks/csharp/exercises/variable-length-quantity/VariableLengthQuantity.cs +14 -0
  331. data/tracks/csharp/exercises/variable-length-quantity/VariableLengthQuantity.csproj +18 -0
  332. data/tracks/csharp/exercises/variable-length-quantity/VariableLengthQuantityTest.cs +40 -51
  333. data/tracks/csharp/exercises/word-count/Example.cs +1 -1
  334. data/tracks/csharp/exercises/word-count/WordCount.cs +10 -0
  335. data/tracks/csharp/exercises/word-count/WordCount.csproj +18 -0
  336. data/tracks/csharp/exercises/word-count/WordCountTest.cs +23 -34
  337. data/tracks/csharp/exercises/word-search/Example.cs +18 -20
  338. data/tracks/csharp/exercises/word-search/WordSearch.cs +16 -0
  339. data/tracks/csharp/exercises/word-search/WordSearch.csproj +18 -0
  340. data/tracks/csharp/exercises/word-search/WordSearchTest.cs +30 -31
  341. data/tracks/csharp/exercises/wordy/Example.cs +1 -1
  342. data/tracks/csharp/exercises/wordy/Wordy.cs +9 -0
  343. data/tracks/csharp/exercises/wordy/Wordy.csproj +18 -0
  344. data/tracks/csharp/exercises/wordy/WordyTest.cs +34 -49
  345. data/tracks/csharp/exercises/zebra-puzzle/ZebraPuzzle.cs +22 -0
  346. data/tracks/csharp/exercises/zebra-puzzle/ZebraPuzzle.csproj +18 -0
  347. data/tracks/csharp/exercises/zebra-puzzle/ZebraPuzzleTest.cs +5 -6
  348. data/tracks/csharp/exercises/zipper/Zipper.cs +64 -0
  349. data/tracks/csharp/exercises/zipper/Zipper.csproj +18 -0
  350. data/tracks/csharp/exercises/zipper/ZipperTest.cs +31 -29
  351. data/tracks/csharp/paket.dependencies +1 -5
  352. data/tracks/csharp/paket.lock +1 -78
  353. data/tracks/go/README.md +10 -3
  354. data/tracks/go/bin/test-without-stubs +1 -1
  355. data/tracks/go/docs/TESTS.md +7 -0
  356. data/tracks/go/exercises/beer-song/example.go +1 -1
  357. data/tracks/go/exercises/binary-search/binary_search_test.go +1 -1
  358. data/tracks/go/exercises/clock/example_clock_test.go +40 -0
  359. data/tracks/go/exercises/grade-school/grade_school_test.go +1 -1
  360. data/tracks/go/exercises/hello-world/hello_example_test.go +20 -0
  361. data/tracks/go/exercises/minesweeper/minesweeper_test.go +1 -1
  362. data/tracks/go/exercises/pov/pov_test.go +4 -1
  363. data/tracks/java/exercises/pangram/src/example/java/{Pangrams.java → PangramChecker.java} +5 -3
  364. data/tracks/java/exercises/pangram/src/main/java/PangramChecker.java +6 -0
  365. data/tracks/java/exercises/pangram/src/test/java/PangramCheckerTest.java +82 -0
  366. data/tracks/ocaml/exercises/run-length-encoding/test.ml +9 -1
  367. data/tracks/ocaml/tools/test-generator/src/parser.ml +1 -1
  368. data/tracks/ocaml/tools/test-generator/src/special_cases.ml +15 -7
  369. data/tracks/python/exercises/list-ops/example.py +6 -6
  370. data/tracks/python/exercises/list-ops/list_ops_test.py +22 -37
  371. data/tracks/typescript/.gitignore +1 -1
  372. data/tracks/typescript/config.json +12 -0
  373. data/tracks/typescript/exercises/etl/etl.example.ts +16 -0
  374. data/tracks/typescript/exercises/etl/etl.test.ts +48 -0
  375. data/tracks/typescript/exercises/etl/package.json +36 -0
  376. data/tracks/typescript/exercises/etl/tsconfig.json +21 -0
  377. data/tracks/typescript/exercises/etl/tslint.json +127 -0
  378. data/tracks/typescript/exercises/etl/yarn.lock +2739 -0
  379. data/tracks/typescript/exercises/robot-name/robot-name.example.ts +1 -1
  380. data/tracks/typescript/exercises/space-age/package.json +36 -0
  381. data/tracks/typescript/exercises/space-age/space-age.example.ts +21 -0
  382. data/tracks/typescript/exercises/space-age/space-age.test.ts +56 -0
  383. data/tracks/typescript/exercises/space-age/tsconfig.json +21 -0
  384. data/tracks/typescript/exercises/space-age/tslint.json +127 -0
  385. data/tracks/typescript/exercises/space-age/yarn.lock +2739 -0
  386. metadata +226 -26
  387. data/tracks/csharp/docs/img/AddFiles.png +0 -0
  388. data/tracks/csharp/docs/img/SolutionExplorer.png +0 -0
  389. data/tracks/csharp/docs/img/TestExplorer.png +0 -0
  390. data/tracks/csharp/docs/img/addNewClass.png +0 -0
  391. data/tracks/csharp/docs/img/createNewProject.png +0 -0
  392. data/tracks/csharp/docs/img/dragDropFolders.png +0 -0
  393. data/tracks/csharp/docs/img/nUnitExecuteTests.png +0 -0
  394. data/tracks/csharp/docs/img/nUnitRunner.png +0 -0
  395. data/tracks/csharp/docs/img/newProject.png +0 -0
  396. data/tracks/csharp/docs/img/nugetManageNunitRunner.png +0 -0
  397. data/tracks/csharp/docs/img/nugetMenu.png +0 -0
  398. data/tracks/csharp/docs/img/xamarin-add-new-project.png +0 -0
  399. data/tracks/csharp/docs/img/xamarin-add-reference.png +0 -0
  400. data/tracks/csharp/docs/img/xamarin-csharp.jpg +0 -0
  401. data/tracks/csharp/docs/img/xamarin-edit-reference.png +0 -0
  402. data/tracks/csharp/docs/img/xamarin-naming.png +0 -0
  403. data/tracks/csharp/docs/img/xamarin-nunit.jpg +0 -0
  404. data/tracks/csharp/docs/img/xamarin-tests.png +0 -0
  405. data/tracks/csharp/exercises/exercises.csproj +0 -363
  406. data/tracks/csharp/exercises/paket.references +0 -2
  407. data/tracks/csharp/exercises/rna-transcription/ComplementTest.cs +0 -39
  408. data/tracks/java/exercises/pangram/src/main/java/.keep +0 -0
  409. 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 NUnit.Framework;
1
+ using Xunit;
2
2
 
3
3
  public class BeerTests
4
4
  {
5
- [TestCase(8, ExpectedResult = "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")]
6
- [TestCase(2, ExpectedResult = "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", Ignore = "Remove to run test case")]
7
- [TestCase(1, ExpectedResult = "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", Ignore = "Remove to run test case")]
8
- [TestCase(0, ExpectedResult = "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", Ignore = "Remove to run test case")]
9
- public string Verse(int number)
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
- return Beer.Verse(number);
12
+ Assert.Equal(expected, Beer.Verse(number));
12
13
  }
13
14
 
14
- [TestCase(8, 6, ExpectedResult = "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", Ignore = "Remove to run test case")]
15
- [TestCase(3, 0, ExpectedResult = "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", Ignore = "Remove to run test case")]
16
- public string Sing(int start, int stop)
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
- return Beer.Sing(start, stop);
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 NUnit.Framework;
2
+ using Xunit;
3
3
 
4
4
  public class BinarySearchTreeTest
5
5
  {
6
- [Test]
6
+ [Fact]
7
7
  public void Data_is_retained()
8
8
  {
9
9
  var tree = new BinarySearchTree(4);
10
- Assert.That(tree.Value, Is.EqualTo(4));
10
+ Assert.Equal(4, tree.Value);
11
11
  }
12
12
 
13
- [Ignore("Remove to run test")]
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.That(tree.Value, Is.EqualTo(4));
19
- Assert.That(tree.Left.Value, Is.EqualTo(2));
17
+ Assert.Equal(4, tree.Value);
18
+ Assert.Equal(2, tree.Left.Value);
20
19
  }
21
20
 
22
- [Ignore("Remove to run test")]
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.That(tree.Value, Is.EqualTo(4));
28
- Assert.That(tree.Left.Value, Is.EqualTo(4));
25
+ Assert.Equal(4, tree.Value);
26
+ Assert.Equal(4, tree.Left.Value);
29
27
  }
30
28
 
31
- [Ignore("Remove to run test")]
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.That(tree.Value, Is.EqualTo(4));
37
- Assert.That(tree.Right.Value, Is.EqualTo(5));
33
+ Assert.Equal(4, tree.Value);
34
+ Assert.Equal(5, tree.Right.Value);
38
35
  }
39
36
 
40
- [Ignore("Remove to run test")]
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.That(tree.Value, Is.EqualTo(4));
46
- Assert.That(tree.Left.Value, Is.EqualTo(2));
47
- Assert.That(tree.Left.Left.Value, Is.EqualTo(1));
48
- Assert.That(tree.Left.Right.Value, Is.EqualTo(3));
49
- Assert.That(tree.Right.Value, Is.EqualTo(6));
50
- Assert.That(tree.Right.Left.Value, Is.EqualTo(5));
51
- Assert.That(tree.Right.Right.Value, Is.EqualTo(7));
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
- [Ignore("Remove to run test")]
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.That(elements, Is.EqualTo(new [] { 4 }));
54
+ Assert.Equal(new [] { 4 }, elements);
60
55
  }
61
56
 
62
- [Ignore("Remove to run test")]
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.That(elements, Is.EqualTo(new[] { 2, 4 }));
61
+ Assert.Equal(new[] { 2, 4 }, elements);
68
62
  }
69
63
 
70
- [Ignore("Remove to run test")]
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.That(elements, Is.EqualTo(new[] { 4, 5 }));
68
+ Assert.Equal(new[] { 4, 5 }, elements);
76
69
  }
77
70
 
78
- [Ignore("Remove to run test")]
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.That(elements, Is.EqualTo(new[] { 1, 2, 3, 4, 5, 6, 7 }));
75
+ Assert.Equal(new[] { 1, 2, 3, 4, 5, 6, 7 }, elements);
84
76
  }
85
77
  }
@@ -0,0 +1,9 @@
1
+ using System;
2
+
3
+ public static class BinarySearch
4
+ {
5
+ public static int Search(int[] input, int target)
6
+ {
7
+ throw new NotImplementedException("You need to implement this function.");
8
+ }
9
+ }
@@ -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 NUnit.Framework;
1
+ using Xunit;
2
2
 
3
- [TestFixture]
4
3
  public class BinarySearchTest
5
4
  {
6
- [Test]
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.That(BinarySearch.Search(input, 6), Is.EqualTo(-1));
9
+ Assert.Equal(-1, BinarySearch.Search(input, 6));
11
10
  }
12
11
 
13
- [Ignore("Remove to run test")]
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.That(BinarySearch.Search(input, 6), Is.EqualTo(0));
16
+ Assert.Equal(0, BinarySearch.Search(input, 6));
19
17
  }
20
18
 
21
- [Ignore("Remove to run test")]
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.That(BinarySearch.Search(input, 6), Is.EqualTo(-1));
23
+ Assert.Equal(-1, BinarySearch.Search(input, 6));
27
24
  }
28
25
 
29
- [Ignore("Remove to run test")]
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.That(BinarySearch.Search(input, 602), Is.EqualTo(-1));
30
+ Assert.Equal(-1, BinarySearch.Search(input, 602));
35
31
  }
36
32
 
37
- [Ignore("Remove to run test")]
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.That(BinarySearch.Search(input, 2002), Is.EqualTo(7));
37
+ Assert.Equal(7, BinarySearch.Search(input, 2002));
43
38
  }
44
39
 
45
- [Ignore("Remove to run test")]
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.That(BinarySearch.Search(input, 6), Is.EqualTo(0));
44
+ Assert.Equal(0, BinarySearch.Search(input, 6));
51
45
  }
52
46
 
53
- [Ignore("Remove to run test")]
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.That(BinarySearch.Search(input, 54322), Is.EqualTo(9));
51
+ Assert.Equal(9, BinarySearch.Search(input, 54322));
59
52
  }
60
53
 
61
- [Ignore("Remove to run test")]
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.That(BinarySearch.Search(input, 2), Is.EqualTo(-1));
58
+ Assert.Equal(-1, BinarySearch.Search(input, 2));
67
59
  }
68
60
 
69
- [Ignore("Remove to run test")]
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.That(BinarySearch.Search(input, 54323), Is.EqualTo(-1));
65
+ Assert.Equal(-1, BinarySearch.Search(input, 54323));
75
66
  }
76
67
  }
@@ -0,0 +1,9 @@
1
+ using System;
2
+
3
+ public static class Bob
4
+ {
5
+ public static string Hey(string statement)
6
+ {
7
+ throw new NotImplementedException("You need to implement this function.");
8
+ }
9
+ }
@@ -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 NUnit.Framework;
1
+ using Xunit;
2
2
 
3
- [TestFixture]
4
3
  public class BobTest
5
4
  {
6
- [Test]
5
+ [Fact]
7
6
  public void Stating_something ()
8
7
  {
9
- Assert.That(Bob.Hey("Tom-ay-to, tom-aaaah-to."), Is.EqualTo("Whatever."));
8
+ Assert.Equal("Whatever.", Bob.Hey("Tom-ay-to, tom-aaaah-to."));
10
9
  }
11
10
 
12
- [Ignore("Remove to run test")]
13
- [Test]
11
+ [Fact(Skip = "Remove to run test")]
14
12
  public void Shouting ()
15
13
  {
16
- Assert.That(Bob.Hey("WATCH OUT!"), Is.EqualTo("Whoa, chill out!"));
14
+ Assert.Equal("Whoa, chill out!", Bob.Hey("WATCH OUT!"));
17
15
  }
18
16
 
19
- [Ignore("Remove to run test")]
20
- [Test]
17
+ [Fact(Skip = "Remove to run test")]
21
18
  public void Asking_a_question ()
22
19
  {
23
- Assert.That(Bob.Hey("Does this cryogenic chamber make me look fat?"), Is.EqualTo("Sure."));
20
+ Assert.Equal("Sure.", Bob.Hey("Does this cryogenic chamber make me look fat?"));
24
21
  }
25
22
 
26
- [Ignore("Remove to run test")]
27
- [Test]
23
+ [Fact(Skip = "Remove to run test")]
28
24
  public void Asking_a_question_with_a_trailing_space()
29
25
  {
30
- Assert.That(Bob.Hey("Do I like my spacebar too much? "), Is.EqualTo("Sure."));
26
+ Assert.Equal("Sure.", Bob.Hey("Do I like my spacebar too much? "));
31
27
  }
32
28
 
33
- [Ignore("Remove to run test")]
34
- [Test]
29
+ [Fact(Skip = "Remove to run test")]
35
30
  public void Asking_a_numeric_question ()
36
31
  {
37
- Assert.That(Bob.Hey("You are, what, like 15?"), Is.EqualTo("Sure."));
32
+ Assert.Equal("Sure.", Bob.Hey("You are, what, like 15?"));
38
33
  }
39
34
 
40
- [Ignore("Remove to run test")]
41
- [Test]
35
+ [Fact(Skip = "Remove to run test")]
42
36
  public void Talking_forcefully ()
43
37
  {
44
- Assert.That(Bob.Hey("Let's go make out behind the gym!"), Is.EqualTo("Whatever."));
38
+ Assert.Equal("Whatever.", Bob.Hey("Let's go make out behind the gym!"));
45
39
  }
46
40
 
47
- [Ignore("Remove to run test")]
48
- [Test]
41
+ [Fact(Skip = "Remove to run test")]
49
42
  public void Using_acronyms_in_regular_search ()
50
43
  {
51
- Assert.That(Bob.Hey("It's OK if you don't want to go to the DMV."), Is.EqualTo("Whatever."));
44
+ Assert.Equal("Whatever.", Bob.Hey("It's OK if you don't want to go to the DMV."));
52
45
  }
53
46
 
54
- [Ignore("Remove to run test")]
55
- [Test]
47
+ [Fact(Skip = "Remove to run test")]
56
48
  public void Forceful_questions ()
57
49
  {
58
- Assert.That(Bob.Hey("WHAT THE HELL WERE YOU THINKING?"), Is.EqualTo("Whoa, chill out!"));
50
+ Assert.Equal("Whoa, chill out!", Bob.Hey("WHAT THE HELL WERE YOU THINKING?"));
59
51
  }
60
52
 
61
- [Ignore("Remove to run test")]
62
- [Test]
53
+ [Fact(Skip = "Remove to run test")]
63
54
  public void Shouting_numbers ()
64
55
  {
65
- Assert.That(Bob.Hey("1, 2, 3 GO!"), Is.EqualTo("Whoa, chill out!"));
56
+ Assert.Equal("Whoa, chill out!", Bob.Hey("1, 2, 3 GO!"));
66
57
  }
67
58
 
68
- [Ignore("Remove to run test")]
69
- [Test]
59
+ [Fact(Skip = "Remove to run test")]
70
60
  public void Only_numbers ()
71
61
  {
72
- Assert.That(Bob.Hey("1, 2, 3"), Is.EqualTo("Whatever."));
62
+ Assert.Equal("Whatever.", Bob.Hey("1, 2, 3"));
73
63
  }
74
64
 
75
- [Ignore("Remove to run test")]
76
- [Test]
65
+ [Fact(Skip = "Remove to run test")]
77
66
  public void Question_with_only_numbers ()
78
67
  {
79
- Assert.That(Bob.Hey("4?"), Is.EqualTo("Sure."));
68
+ Assert.Equal("Sure.", Bob.Hey("4?"));
80
69
  }
81
70
 
82
- [Ignore("Remove to run test")]
83
- [Test]
71
+ [Fact(Skip = "Remove to run test")]
84
72
  public void Shouting_with_special_characters ()
85
73
  {
86
- Assert.That(Bob.Hey("ZOMG THE %^*@#$(*^ ZOMBIES ARE COMING!!11!!1!"), Is.EqualTo("Whoa, chill out!"));
74
+ Assert.Equal("Whoa, chill out!", Bob.Hey("ZOMG THE %^*@#$(*^ ZOMBIES ARE COMING!!11!!1!"));
87
75
  }
88
76
 
89
- [Ignore("Remove to run test")]
90
- [Test]
77
+ [Fact(Skip = "Remove to run test")]
91
78
  public void Shouting_with_no_exclamation_mark ()
92
79
  {
93
- Assert.That(Bob.Hey("I HATE YOU"), Is.EqualTo("Whoa, chill out!"));
80
+ Assert.Equal("Whoa, chill out!", Bob.Hey("I HATE YOU"));
94
81
  }
95
82
 
96
- [Ignore("Remove to run test")]
97
- [Test]
83
+ [Fact(Skip = "Remove to run test")]
98
84
  public void Statement_containing_question_mark ()
99
85
  {
100
- Assert.That(Bob.Hey("Ending with ? means a question."), Is.EqualTo("Whatever."));
86
+ Assert.Equal("Whatever.", Bob.Hey("Ending with ? means a question."));
101
87
  }
102
88
 
103
- [Ignore("Remove to run test")]
104
- [Test]
89
+ [Fact(Skip = "Remove to run test")]
105
90
  public void Prattling_on ()
106
91
  {
107
- Assert.That(Bob.Hey("Wait! Hang on. Are you going to be OK?"), Is.EqualTo("Sure."));
92
+ Assert.Equal("Sure.", Bob.Hey("Wait! Hang on. Are you going to be OK?"));
108
93
  }
109
94
 
110
- [Ignore("Remove to run test")]
111
- [Test]
95
+ [Fact(Skip = "Remove to run test")]
112
96
  public void Silence ()
113
97
  {
114
- Assert.That(Bob.Hey(""), Is.EqualTo("Fine. Be that way!"));
98
+ Assert.Equal("Fine. Be that way!", Bob.Hey(""));
115
99
  }
116
100
 
117
- [Ignore("Remove to run test")]
118
- [Test]
101
+ [Fact(Skip = "Remove to run test")]
119
102
  public void Prolonged_silence ()
120
103
  {
121
- Assert.That(Bob.Hey(" "), Is.EqualTo("Fine. Be that way!"));
104
+ Assert.Equal("Fine. Be that way!", Bob.Hey(" "));
122
105
  }
123
106
 
124
- [Ignore("Remove to run test")]
125
- [Test]
107
+ [Fact(Skip = "Remove to run test")]
126
108
  public void Multiple_line_question ()
127
109
  {
128
- Assert.That(Bob.Hey("Does this cryogenic chamber make me look fat?\nno"), Is.EqualTo("Whatever."));
110
+ Assert.Equal("Whatever.", Bob.Hey("Does this cryogenic chamber make me look fat?\nno"));
129
111
  }
130
112
  }