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,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,17 +1,16 @@
1
- using NUnit.Framework;
1
+ using Xunit;
2
2
 
3
3
  public class ZebraPuzzleTest
4
4
  {
5
- [Test]
5
+ [Fact]
6
6
  public void Who_drinks_water()
7
7
  {
8
- Assert.That(ZebraPuzzle.WhoDrinks(Drink.Water), Is.EqualTo(Nationality.Norwegian));
8
+ Assert.Equal(Nationality.Norwegian, ZebraPuzzle.WhoDrinks(Drink.Water));
9
9
  }
10
10
 
11
- [Ignore("Remove to run test")]
12
- [Test]
11
+ [Fact(Skip = "Remove to run test")]
13
12
  public void Who_owns_the_zebra()
14
13
  {
15
- Assert.That(ZebraPuzzle.WhoOwns(Pet.Zebra), Is.EqualTo(Nationality.Japanese));
14
+ Assert.Equal(Nationality.Japanese, ZebraPuzzle.WhoOwns(Pet.Zebra));
16
15
  }
17
16
  }
@@ -0,0 +1,64 @@
1
+ using System;
2
+
3
+ public class BinTree<T>
4
+ {
5
+ public BinTree(T value, BinTree<T> left, BinTree<T> right)
6
+ {
7
+ throw new NotImplementedException("You need to implement this function.");
8
+ }
9
+
10
+ public T Value { get; }
11
+ public BinTree<T> Left { get; }
12
+ public BinTree<T> Right { get; }
13
+ }
14
+
15
+ public class Zipper<T>
16
+ {
17
+ public T Value
18
+ {
19
+ get
20
+ {
21
+ throw new NotImplementedException("You need to implement this function.");
22
+ }
23
+ }
24
+
25
+ public Zipper<T> SetValue(T newValue)
26
+ {
27
+ throw new NotImplementedException("You need to implement this function.");
28
+ }
29
+
30
+ public Zipper<T> SetLeft(BinTree<T> binTree)
31
+ {
32
+ throw new NotImplementedException("You need to implement this function.");
33
+ }
34
+
35
+ public Zipper<T> SetRight(BinTree<T> binTree)
36
+ {
37
+ throw new NotImplementedException("You need to implement this function.");
38
+ }
39
+
40
+ public Zipper<T> Left()
41
+ {
42
+ throw new NotImplementedException("You need to implement this function.");
43
+ }
44
+
45
+ public Zipper<T> Right()
46
+ {
47
+ throw new NotImplementedException("You need to implement this function.");
48
+ }
49
+
50
+ public Zipper<T> Up()
51
+ {
52
+ throw new NotImplementedException("You need to implement this function.");
53
+ }
54
+
55
+ public BinTree<T> ToTree()
56
+ {
57
+ throw new NotImplementedException("You need to implement this function.");
58
+ }
59
+
60
+ public static Zipper<T> FromTree(BinTree<T> tree)
61
+ {
62
+ throw new NotImplementedException("You need to implement this function.");
63
+ }
64
+ }
@@ -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,83 +1,85 @@
1
- using NUnit.Framework;
1
+ using Xunit;
2
2
 
3
3
  public class ZipperTest
4
4
  {
5
5
  private static BinTree<int> bt(int v, BinTree<int> l, BinTree<int> r) => new BinTree<int>(v, l, r);
6
6
  private static BinTree<int> leaf(int v) => bt(v, null, null);
7
7
 
8
- private static readonly BinTree<int> empty = null;
9
- private static readonly BinTree<int> t1 = new BinTree<int>(1, bt(2, empty, leaf(3)), leaf(4));
10
- private static readonly BinTree<int> t2 = new BinTree<int>(1, bt(5, empty, leaf(3)), leaf(4));
11
- private static readonly BinTree<int> t3 = new BinTree<int>(1, bt(2, leaf(5), leaf(3)), leaf(4));
12
- private static readonly BinTree<int> t4 = new BinTree<int>(1, leaf(2), leaf(4));
8
+ private readonly BinTree<int> empty;
9
+ private readonly BinTree<int> t1;
10
+ private readonly BinTree<int> t2;
11
+ private readonly BinTree<int> t3;
12
+ private readonly BinTree<int> t4;
13
13
 
14
- [Test]
14
+ public ZipperTest()
15
+ {
16
+ empty = null;
17
+ t1 = new BinTree<int>(1, bt(2, empty, leaf(3)), leaf(4));
18
+ t2 = new BinTree<int>(1, bt(5, empty, leaf(3)), leaf(4));
19
+ t3 = new BinTree<int>(1, bt(2, leaf(5), leaf(3)), leaf(4));
20
+ t4 = new BinTree<int>(1, leaf(2), leaf(4));
21
+ }
22
+
23
+ [Fact]
15
24
  public void Data_is_retained()
16
25
  {
17
26
  var zipper = Zipper<int>.FromTree(t1);
18
27
  var tree = zipper.ToTree();
19
- Assert.That(tree, Is.EqualTo(t1));
28
+ Assert.Equal(t1, tree);
20
29
  }
21
30
 
22
- [Ignore("Remove to run test")]
23
- [Test]
31
+ [Fact(Skip = "Remove to run test")]
24
32
  public void Left_right_and_value()
25
33
  {
26
34
  var zipper = Zipper<int>.FromTree(t1);
27
- Assert.That(zipper.Left().Right().Value, Is.EqualTo(3));
35
+ Assert.Equal(3, zipper.Left().Right().Value);
28
36
  }
29
37
 
30
- [Ignore("Remove to run test")]
31
- [Test]
38
+ [Fact(Skip = "Remove to run test")]
32
39
  public void Dead_end()
33
40
  {
34
41
  var zipper = Zipper<int>.FromTree(t1);
35
- Assert.That(zipper.Left().Left(), Is.Null);
42
+ Assert.Null(zipper.Left().Left());
36
43
  }
37
44
 
38
- [Ignore("Remove to run test")]
39
- [Test]
45
+ [Fact(Skip = "Remove to run test")]
40
46
  public void Tree_from_deep_focus()
41
47
  {
42
48
  var zipper = Zipper<int>.FromTree(t1);
43
- Assert.That(zipper.Left().Right().ToTree(), Is.EqualTo(t1));
49
+ Assert.Equal(t1, zipper.Left().Right().ToTree());
44
50
  }
45
51
 
46
- [Ignore("Remove to run test")]
47
- [Test]
52
+ [Fact(Skip = "Remove to run test")]
48
53
  public void Set_value()
49
54
  {
50
55
  var zipper = Zipper<int>.FromTree(t1);
51
56
  var updatedZipper = zipper.Left().SetValue(5);
52
57
  var tree = updatedZipper.ToTree();
53
- Assert.That(tree, Is.EqualTo(t2));
58
+ Assert.Equal(t2, tree);
54
59
  }
55
60
 
56
- [Ignore("Remove to run test")]
57
- [Test]
61
+ [Fact(Skip = "Remove to run test")]
58
62
  public void Set_left_with_value()
59
63
  {
60
64
  var zipper = Zipper<int>.FromTree(t1);
61
65
  var updatedZipper = zipper.Left().SetLeft(new BinTree<int>(5, null, null));
62
66
  var tree = updatedZipper.ToTree();
63
- Assert.That(tree, Is.EqualTo(t3));
67
+ Assert.Equal(t3, tree);
64
68
  }
65
69
 
66
- [Ignore("Remove to run test")]
67
- [Test]
70
+ [Fact(Skip = "Remove to run test")]
68
71
  public void Set_right_to_null()
69
72
  {
70
73
  var zipper = Zipper<int>.FromTree(t1);
71
74
  var updatedZipper = zipper.Left().SetRight(null);
72
75
  var tree = updatedZipper.ToTree();
73
- Assert.That(tree, Is.EqualTo(t4));
76
+ Assert.Equal(t4, tree);
74
77
  }
75
78
 
76
- [Ignore("Remove to run test")]
77
- [Test]
79
+ [Fact(Skip = "Remove to run test")]
78
80
  public void Different_paths_to_same_zipper()
79
81
  {
80
82
  var zipper = Zipper<int>.FromTree(t1);
81
- Assert.That(zipper.Left().Up().Right().ToTree(), Is.EqualTo(zipper.Right().ToTree()));
83
+ Assert.Equal(zipper.Right().ToTree(), zipper.Left().Up().Right().ToTree());
82
84
  }
83
85
  }
@@ -1,6 +1,2 @@
1
1
  source https://www.nuget.org/api/v2/
2
- nuget FAKE
3
- nuget NUnit
4
- nuget NUnit.ConsoleRunner
5
- nuget Sprache
6
- github nunit/nunit-transforms nunit3-junit/nunit3-junit.xslt
2
+ nuget FAKE
@@ -1,80 +1,3 @@
1
1
  NUGET
2
2
  remote: https://www.nuget.org/api/v2
3
- FAKE (4.37.2)
4
- Microsoft.NETCore.Platforms (1.0.1) - framework: netstandard10, >= netstandard12
5
- Microsoft.NETCore.Targets (1.0.1) - framework: netstandard10, >= netstandard12
6
- NUnit (3.4.1)
7
- NUnit.ConsoleRunner (3.4.1)
8
- Sprache (2.1)
9
- System.Globalization (>= 4.0.11) - framework: >= netstandard10
10
- System.Linq (>= 4.1) - framework: >= netstandard10
11
- System.Runtime (>= 4.1) - framework: >= netstandard10
12
- System.Text.RegularExpressions (>= 4.1) - framework: >= netstandard10
13
- System.Collections (4.0.11) - framework: netstandard10, >= netstandard16
14
- Microsoft.NETCore.Platforms (>= 1.0.1) - framework: dnxcore50, netstandard10, >= netstandard13
15
- Microsoft.NETCore.Targets (>= 1.0.1) - framework: dnxcore50, netstandard10, >= netstandard13
16
- System.Runtime (>= 4.1) - framework: dnxcore50, netstandard10, >= netstandard13
17
- System.Diagnostics.Debug (4.0.11) - framework: >= netstandard16
18
- Microsoft.NETCore.Platforms (>= 1.0.1) - framework: dnxcore50, netstandard10, >= netstandard13
19
- Microsoft.NETCore.Targets (>= 1.0.1) - framework: dnxcore50, netstandard10, >= netstandard13
20
- System.Runtime (>= 4.1) - framework: dnxcore50, netstandard10, >= netstandard13
21
- System.Globalization (4.0.11) - framework: >= netstandard10
22
- Microsoft.NETCore.Platforms (>= 1.0.1) - framework: dnxcore50, netstandard10, >= netstandard13
23
- Microsoft.NETCore.Targets (>= 1.0.1) - framework: dnxcore50, netstandard10, >= netstandard13
24
- System.Runtime (>= 4.1) - framework: dnxcore50, netstandard10, >= netstandard13
25
- System.IO (4.1) - framework: >= netstandard16
26
- Microsoft.NETCore.Platforms (>= 1.0.1) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard15
27
- Microsoft.NETCore.Targets (>= 1.0.1) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard15
28
- System.Runtime (>= 4.1) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard15
29
- System.Text.Encoding (>= 4.0.11) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard15
30
- System.Threading.Tasks (>= 4.0.11) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard15
31
- System.Linq (4.1) - framework: >= netstandard10
32
- System.Collections (>= 4.0.11) - framework: dnxcore50, netstandard10, >= netstandard16
33
- System.Diagnostics.Debug (>= 4.0.11) - framework: dnxcore50, >= netstandard16
34
- System.Resources.ResourceManager (>= 4.0.1) - framework: dnxcore50, >= netstandard16
35
- System.Runtime (>= 4.1) - framework: dnxcore50, netstandard10, >= netstandard16
36
- System.Runtime.Extensions (>= 4.1) - framework: dnxcore50, >= netstandard16
37
- System.Reflection (4.1) - framework: >= netstandard16
38
- Microsoft.NETCore.Platforms (>= 1.0.1) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard15
39
- Microsoft.NETCore.Targets (>= 1.0.1) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard15
40
- System.IO (>= 4.1) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard15
41
- System.Reflection.Primitives (>= 4.0.1) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard15
42
- System.Runtime (>= 4.1) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard15
43
- System.Reflection.Primitives (4.0.1) - framework: >= netstandard16
44
- Microsoft.NETCore.Platforms (>= 1.0.1) - framework: dnxcore50, >= netstandard10
45
- Microsoft.NETCore.Targets (>= 1.0.1) - framework: dnxcore50, >= netstandard10
46
- System.Runtime (>= 4.1) - framework: dnxcore50, >= netstandard10
47
- System.Resources.ResourceManager (4.0.1) - framework: >= netstandard16
48
- Microsoft.NETCore.Platforms (>= 1.0.1) - framework: dnxcore50, >= netstandard10
49
- Microsoft.NETCore.Targets (>= 1.0.1) - framework: dnxcore50, >= netstandard10
50
- System.Globalization (>= 4.0.11) - framework: dnxcore50, >= netstandard10
51
- System.Reflection (>= 4.1) - framework: dnxcore50, >= netstandard10
52
- System.Runtime (>= 4.1) - framework: dnxcore50, >= netstandard10
53
- System.Runtime (4.1) - framework: >= netstandard10
54
- Microsoft.NETCore.Platforms (>= 1.0.1) - framework: dnxcore50, netstandard10, netstandard12, netstandard13, >= netstandard15
55
- Microsoft.NETCore.Targets (>= 1.0.1) - framework: dnxcore50, netstandard10, netstandard12, netstandard13, >= netstandard15
56
- System.Runtime.Extensions (4.1) - framework: >= netstandard16
57
- Microsoft.NETCore.Platforms (>= 1.0.1) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard15
58
- Microsoft.NETCore.Targets (>= 1.0.1) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard15
59
- System.Runtime (>= 4.1) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard15
60
- System.Text.Encoding (4.0.11) - framework: >= netstandard16
61
- Microsoft.NETCore.Platforms (>= 1.0.1) - framework: dnxcore50, netstandard10, >= netstandard13
62
- Microsoft.NETCore.Targets (>= 1.0.1) - framework: dnxcore50, netstandard10, >= netstandard13
63
- System.Runtime (>= 4.1) - framework: dnxcore50, netstandard10, >= netstandard13
64
- System.Text.RegularExpressions (4.1) - framework: >= netstandard10
65
- System.Collections (>= 4.0.11) - framework: dnxcore50, >= netstandard16
66
- System.Globalization (>= 4.0.11) - framework: dnxcore50, >= netstandard16
67
- System.Resources.ResourceManager (>= 4.0.1) - framework: dnxcore50, >= netstandard16
68
- System.Runtime (>= 4.1) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard16
69
- System.Runtime.Extensions (>= 4.1) - framework: dnxcore50, >= netstandard16
70
- System.Threading (>= 4.0.11) - framework: dnxcore50, >= netstandard16
71
- System.Threading (4.0.11) - framework: >= netstandard16
72
- System.Runtime (>= 4.1) - framework: dnxcore50, netstandard10, >= netstandard13
73
- System.Threading.Tasks (>= 4.0.11) - framework: dnxcore50, netstandard10, >= netstandard13
74
- System.Threading.Tasks (4.0.11) - framework: >= netstandard16
75
- Microsoft.NETCore.Platforms (>= 1.0.1) - framework: dnxcore50, netstandard10, >= netstandard13
76
- Microsoft.NETCore.Targets (>= 1.0.1) - framework: dnxcore50, netstandard10, >= netstandard13
77
- System.Runtime (>= 4.1) - framework: dnxcore50, netstandard10, >= netstandard13
78
- GITHUB
79
- remote: nunit/nunit-transforms
80
- nunit3-junit/nunit3-junit.xslt (2a7c74198375b4b280ff3e79033c3d44e3083850)
3
+ FAKE (4.50)
@@ -36,8 +36,8 @@ In particular, please read the [Pull Request Guidelines](https://github.com/exer
36
36
  ## xgo style
37
37
 
38
38
  Let's walk through the `leap` exercise to see what is included in an exercise
39
- implementation. Navigate into the *leap* directory, you'll see there are five
40
- files there.
39
+ implementation. Navigate into the *leap* directory, you'll see there are a
40
+ number of files there.
41
41
 
42
42
  ```sh
43
43
  ~/exercism/go/leap
@@ -112,9 +112,16 @@ these though. Usually they will just bench the combined time to run over all
112
112
  the test data rather than attempt precise timings on single function calls. They
113
113
  are useful if they let the solver try a change and see a performance effect.
114
114
 
115
+ ### Testable examples
116
+
117
+ Some exercises can contain [Example tests](https://blog.golang.org/examples) that document the exercise API. These
118
+ examples are run alongside the standard exercise tests and will verify that the
119
+ exercise API is working as expected. They are not required by all exercises and
120
+ are most useful when clarifying the API of the exercise.
121
+
115
122
  ### Stub files
116
123
 
117
- Stub files, such as `leap.go`, are a starting point for solutions. Not all exercises
124
+ Stub files, such as *leap.go*, are a starting point for solutions. Not all exercises
118
125
  need to do this; this is most helpful in the early exercises for newcomers to Go.
119
126
  By convention, the stub file for an exercise with slug `exercise-slug`
120
127
  must be named `exercise_slug.go`. This is because CI needs to delete stub files
@@ -64,6 +64,6 @@ fi
64
64
 
65
65
  # This is the last command in the file,
66
66
  # so the exit status of this script is the exit status of go test.
67
- # If this ever changes, remember to preserve the exit status acordingly.
67
+ # If this ever changes, remember to preserve the exit status accordingly.
68
68
  # Otherwise Travis may falsely report a test as passed when it has failed.
69
69
  go test -cpu 2 $RACE ./...
@@ -24,6 +24,13 @@ Should the tests change in a way that old submissions will or could no longer
24
24
  work the test writer should increase the `targetTestVersion` value which will cause
25
25
  the tests to fail with a clear message when an old submission is run with them.
26
26
 
27
+ ### Testable examples
28
+
29
+ [Example tests](https://blog.golang.org/examples) are used in some exercises and
30
+ are run alongside the standard exercise tests. These examples are used for
31
+ documenting and verifying the exercise's API and can be useful in determining
32
+ what the expected exercise API is.
33
+
27
34
  ## Go fmt
28
35
 
29
36
  Please run [`go fmt`](http://blog.golang.org/go-fmt-your-code) on your code before submitting it.
@@ -13,7 +13,7 @@ func Song() (result string) {
13
13
  return
14
14
  }
15
15
 
16
- // Verses returns an exerpt of the lyrics of 99 bottles of beer
16
+ // Verses returns an excerpt of the lyrics of 99 bottles of beer
17
17
  // between verse start and stop. The verse numbers count backwards, so the
18
18
  // first verse sung will be verse 99, and the last will be verse 0
19
19
  func Verses(start, stop int) (string, error) {
@@ -4,7 +4,7 @@
4
4
  // with the exercise README.
5
5
  //
6
6
  // * If there are duplicate values of the key you are searching for, you can't
7
- // just stop at the first one you find; you must find the first occurance in
7
+ // just stop at the first one you find; you must find the first occurrence in
8
8
  // the slice.
9
9
  //
10
10
  // * There is no special "not found" indication. If the search key is not
@@ -0,0 +1,40 @@
1
+ package clock
2
+
3
+ import "fmt"
4
+
5
+ func ExampleClock() {
6
+ // Create a clock
7
+ clock1 := New(10, 30)
8
+ fmt.Println(clock1.String())
9
+
10
+ // Add 30 minutes to it
11
+ clock1 = clock1.Add(30)
12
+ fmt.Println(clock1.String())
13
+
14
+ // Subtract an hour and a half from it
15
+ clock1 = clock1.Add(-90)
16
+ fmt.Println(clock1.String())
17
+
18
+ // Create a second clock
19
+ clock2 := New(9, 30)
20
+ fmt.Println(clock2.String())
21
+
22
+ // Are the clocks equal?
23
+ fmt.Println(clock2 == clock1)
24
+
25
+ // Change the second clock
26
+ clock2 = clock2.Add(30)
27
+ fmt.Println(clock2.String())
28
+
29
+ // Are the clocks equal now?
30
+ fmt.Println(clock2 == clock1)
31
+
32
+ // Output:
33
+ // 10:30
34
+ // 11:00
35
+ // 09:30
36
+ // 09:30
37
+ // true
38
+ // 10:00
39
+ // false
40
+ }