trackler 2.2.1.159 → 2.2.1.160

Sign up to get free protection for your applications and to get access to all the features.
Files changed (293) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/tracks/bash/config/maintainers.json +16 -15
  4. data/tracks/bash/config.json +111 -103
  5. data/tracks/c/config/maintainers.json +14 -14
  6. data/tracks/c/config.json +263 -242
  7. data/tracks/ceylon/config/maintainers.json +8 -8
  8. data/tracks/ceylon/config.json +30 -32
  9. data/tracks/cfml/config/maintainers.json +6 -4
  10. data/tracks/cfml/config.json +145 -92
  11. data/tracks/common-lisp/config/maintainers.json +26 -26
  12. data/tracks/common-lisp/config.json +152 -149
  13. data/tracks/cpp/config/maintainers.json +11 -11
  14. data/tracks/cpp/config.json +162 -161
  15. data/tracks/dart/config/maintainers.json +21 -17
  16. data/tracks/dart/config.json +57 -57
  17. data/tracks/delphi/config.json +1 -0
  18. data/tracks/delphi/docs/ABOUT.md +9 -6
  19. data/tracks/ecmascript/config/maintainers.json +11 -11
  20. data/tracks/ecmascript/config.json +563 -544
  21. data/tracks/ecmascript/exercises/accumulate/package.json +1 -1
  22. data/tracks/ecmascript/exercises/acronym/package.json +1 -1
  23. data/tracks/ecmascript/exercises/all-your-base/package.json +1 -1
  24. data/tracks/ecmascript/exercises/allergies/package.json +1 -1
  25. data/tracks/ecmascript/exercises/alphametics/package.json +1 -1
  26. data/tracks/ecmascript/exercises/anagram/package.json +1 -1
  27. data/tracks/ecmascript/exercises/armstrong-numbers/package.json +1 -1
  28. data/tracks/ecmascript/exercises/atbash-cipher/package.json +1 -1
  29. data/tracks/ecmascript/exercises/beer-song/package.json +1 -1
  30. data/tracks/ecmascript/exercises/binary/package.json +1 -1
  31. data/tracks/ecmascript/exercises/binary-search/package.json +1 -1
  32. data/tracks/ecmascript/exercises/binary-search-tree/package.json +1 -1
  33. data/tracks/ecmascript/exercises/bob/package.json +1 -1
  34. data/tracks/ecmascript/exercises/bowling/package.json +1 -1
  35. data/tracks/ecmascript/exercises/bracket-push/package.json +1 -1
  36. data/tracks/ecmascript/exercises/change/package.json +1 -1
  37. data/tracks/ecmascript/exercises/circular-buffer/package.json +1 -1
  38. data/tracks/ecmascript/exercises/clock/package.json +1 -1
  39. data/tracks/ecmascript/exercises/collatz-conjecture/package.json +1 -1
  40. data/tracks/ecmascript/exercises/complex-numbers/package.json +1 -1
  41. data/tracks/ecmascript/exercises/connect/package.json +1 -1
  42. data/tracks/ecmascript/exercises/crypto-square/package.json +1 -1
  43. data/tracks/ecmascript/exercises/custom-set/package.json +1 -1
  44. data/tracks/ecmascript/exercises/diamond/package.json +1 -1
  45. data/tracks/ecmascript/exercises/difference-of-squares/package.json +1 -1
  46. data/tracks/ecmascript/exercises/diffie-hellman/package.json +1 -1
  47. data/tracks/ecmascript/exercises/etl/package.json +1 -1
  48. data/tracks/ecmascript/exercises/flatten-array/package.json +1 -1
  49. data/tracks/ecmascript/exercises/food-chain/package.json +1 -1
  50. data/tracks/ecmascript/exercises/gigasecond/package.json +1 -1
  51. data/tracks/ecmascript/exercises/grade-school/package.json +1 -1
  52. data/tracks/ecmascript/exercises/grains/package.json +1 -1
  53. data/tracks/ecmascript/exercises/hamming/package.json +1 -1
  54. data/tracks/ecmascript/exercises/hello-world/package.json +1 -1
  55. data/tracks/ecmascript/exercises/hexadecimal/package.json +1 -1
  56. data/tracks/ecmascript/exercises/house/package.json +1 -1
  57. data/tracks/ecmascript/exercises/isbn-verifier/package.json +1 -1
  58. data/tracks/ecmascript/exercises/isogram/package.json +1 -1
  59. data/tracks/ecmascript/exercises/kindergarten-garden/package.json +1 -1
  60. data/tracks/ecmascript/exercises/largest-series-product/package.json +1 -1
  61. data/tracks/ecmascript/exercises/leap/package.json +1 -1
  62. data/tracks/ecmascript/exercises/linked-list/package.json +1 -1
  63. data/tracks/ecmascript/exercises/list-ops/package.json +1 -1
  64. data/tracks/ecmascript/exercises/luhn/package.json +1 -1
  65. data/tracks/ecmascript/exercises/matrix/package.json +1 -1
  66. data/tracks/ecmascript/exercises/meetup/package.json +1 -1
  67. data/tracks/ecmascript/exercises/minesweeper/package.json +1 -1
  68. data/tracks/ecmascript/exercises/nth-prime/package.json +1 -1
  69. data/tracks/ecmascript/exercises/nucleotide-count/package.json +1 -1
  70. data/tracks/ecmascript/exercises/ocr-numbers/package.json +1 -1
  71. data/tracks/ecmascript/exercises/octal/package.json +1 -1
  72. data/tracks/ecmascript/exercises/palindrome-products/package.json +1 -1
  73. data/tracks/ecmascript/exercises/pangram/package.json +1 -1
  74. data/tracks/ecmascript/exercises/pascals-triangle/package.json +1 -1
  75. data/tracks/ecmascript/exercises/perfect-numbers/package.json +1 -1
  76. data/tracks/ecmascript/exercises/phone-number/package.json +1 -1
  77. data/tracks/ecmascript/exercises/pig-latin/package.json +1 -1
  78. data/tracks/ecmascript/exercises/prime-factors/package.json +1 -1
  79. data/tracks/ecmascript/exercises/protein-translation/package.json +1 -1
  80. data/tracks/ecmascript/exercises/proverb/package.json +1 -1
  81. data/tracks/ecmascript/exercises/pythagorean-triplet/package.json +1 -1
  82. data/tracks/ecmascript/exercises/queen-attack/example.js +2 -2
  83. data/tracks/ecmascript/exercises/queen-attack/package.json +1 -1
  84. data/tracks/ecmascript/exercises/raindrops/package.json +1 -1
  85. data/tracks/ecmascript/exercises/react/package.json +1 -1
  86. data/tracks/ecmascript/exercises/rectangles/package.json +1 -1
  87. data/tracks/ecmascript/exercises/rna-transcription/package.json +1 -1
  88. data/tracks/ecmascript/exercises/robot-name/package.json +1 -1
  89. data/tracks/ecmascript/exercises/robot-simulator/package.json +1 -1
  90. data/tracks/ecmascript/exercises/roman-numerals/package.json +1 -1
  91. data/tracks/ecmascript/exercises/rotational-cipher/package.json +1 -1
  92. data/tracks/ecmascript/exercises/run-length-encoding/package.json +1 -1
  93. data/tracks/ecmascript/exercises/saddle-points/package.json +1 -1
  94. data/tracks/ecmascript/exercises/say/package.json +1 -1
  95. data/tracks/ecmascript/exercises/scrabble-score/package.json +1 -1
  96. data/tracks/ecmascript/exercises/secret-handshake/package.json +1 -1
  97. data/tracks/ecmascript/exercises/series/package.json +1 -1
  98. data/tracks/ecmascript/exercises/sieve/package.json +1 -1
  99. data/tracks/ecmascript/exercises/simple-cipher/package.json +1 -1
  100. data/tracks/ecmascript/exercises/simple-linked-list/package.json +1 -1
  101. data/tracks/ecmascript/exercises/space-age/package.json +1 -1
  102. data/tracks/ecmascript/exercises/spiral-matrix/package.json +1 -1
  103. data/tracks/ecmascript/exercises/strain/package.json +1 -1
  104. data/tracks/ecmascript/exercises/sublist/package.json +1 -1
  105. data/tracks/ecmascript/exercises/sum-of-multiples/package.json +1 -1
  106. data/tracks/ecmascript/exercises/transpose/package.json +1 -1
  107. data/tracks/ecmascript/exercises/triangle/package.json +1 -1
  108. data/tracks/ecmascript/exercises/trinary/package.json +1 -1
  109. data/tracks/ecmascript/exercises/twelve-days/package.json +1 -1
  110. data/tracks/ecmascript/exercises/two-bucket/package.json +1 -1
  111. data/tracks/ecmascript/exercises/two-fer/package.json +1 -1
  112. data/tracks/ecmascript/exercises/word-count/package.json +1 -1
  113. data/tracks/ecmascript/exercises/word-search/package.json +1 -1
  114. data/tracks/ecmascript/exercises/wordy/example.js +16 -4
  115. data/tracks/ecmascript/exercises/wordy/package.json +1 -1
  116. data/tracks/ecmascript/package.json +1 -1
  117. data/tracks/elisp/config/maintainers.json +6 -6
  118. data/tracks/elisp/config.json +103 -103
  119. data/tracks/elisp/exercises/two-fer/two-fer.el +3 -3
  120. data/tracks/elm/config/maintainers.json +11 -11
  121. data/tracks/elm/config.json +171 -171
  122. data/tracks/erlang/README.md +31 -28
  123. data/tracks/erlang/config/maintainers.json +13 -7
  124. data/tracks/erlang/config.json +99 -190
  125. data/tracks/factor/config/maintainers.json +5 -5
  126. data/tracks/factor/config.json +17 -19
  127. data/tracks/fsharp/config/maintainers.json +16 -16
  128. data/tracks/fsharp/config.json +485 -469
  129. data/tracks/gnu-apl/config/maintainers.json +6 -5
  130. data/tracks/gnu-apl/config.json +46 -20
  131. data/tracks/go/config/maintainers.json +43 -32
  132. data/tracks/go/config.json +475 -457
  133. data/tracks/haskell/config/maintainers.json +26 -15
  134. data/tracks/haskell/config.json +22 -2
  135. data/tracks/idris/config/maintainers.json +6 -6
  136. data/tracks/idris/config.json +24 -35
  137. data/tracks/java/config/maintainers.json +39 -29
  138. data/tracks/java/config.json +458 -433
  139. data/tracks/javascript/config/maintainers.json +40 -40
  140. data/tracks/javascript/config.json +577 -551
  141. data/tracks/javascript/docs/LEARNING.md +1 -1
  142. data/tracks/javascript/exercises/pangram/pangram.spec.js +15 -10
  143. data/tracks/julia/REQUIRE +1 -0
  144. data/tracks/julia/config/maintainers.json +5 -5
  145. data/tracks/julia/config.json +106 -108
  146. data/tracks/kotlin/config/maintainers.json +15 -15
  147. data/tracks/kotlin/config.json +273 -257
  148. data/tracks/kotlin/exercises/accumulate/build.gradle +1 -1
  149. data/tracks/kotlin/exercises/acronym/build.gradle +1 -1
  150. data/tracks/kotlin/exercises/all-your-base/build.gradle +1 -1
  151. data/tracks/kotlin/exercises/allergies/.meta/version +1 -1
  152. data/tracks/kotlin/exercises/allergies/build.gradle +1 -1
  153. data/tracks/kotlin/exercises/anagram/build.gradle +1 -1
  154. data/tracks/kotlin/exercises/atbash-cipher/build.gradle +1 -1
  155. data/tracks/kotlin/exercises/bank-account/build.gradle +17 -17
  156. data/tracks/kotlin/exercises/beer-song/.meta/version +1 -1
  157. data/tracks/kotlin/exercises/beer-song/build.gradle +1 -1
  158. data/tracks/kotlin/exercises/binary/build.gradle +1 -1
  159. data/tracks/kotlin/exercises/binary-search/build.gradle +1 -2
  160. data/tracks/kotlin/exercises/bob/build.gradle +1 -1
  161. data/tracks/kotlin/exercises/bracket-push/build.gradle +1 -1
  162. data/tracks/kotlin/exercises/change/.meta/version +1 -1
  163. data/tracks/kotlin/exercises/change/build.gradle +1 -2
  164. data/tracks/kotlin/exercises/clock/build.gradle +1 -1
  165. data/tracks/kotlin/exercises/collatz-conjecture/build.gradle +1 -1
  166. data/tracks/kotlin/exercises/complex-numbers/build.gradle +1 -1
  167. data/tracks/kotlin/exercises/diamond/build.gradle +1 -1
  168. data/tracks/kotlin/exercises/difference-of-squares/build.gradle +1 -1
  169. data/tracks/kotlin/exercises/etl/build.gradle +1 -1
  170. data/tracks/kotlin/exercises/flatten-array/build.gradle +1 -1
  171. data/tracks/kotlin/exercises/forth/build.gradle +1 -1
  172. data/tracks/kotlin/exercises/gigasecond/build.gradle +1 -1
  173. data/tracks/kotlin/exercises/grade-school/build.gradle +1 -1
  174. data/tracks/kotlin/exercises/grains/build.gradle +1 -1
  175. data/tracks/kotlin/exercises/hamming/build.gradle +1 -1
  176. data/tracks/kotlin/exercises/hello-world/build.gradle +1 -1
  177. data/tracks/kotlin/exercises/hexadecimal/build.gradle +1 -1
  178. data/tracks/kotlin/exercises/isogram/build.gradle +1 -1
  179. data/tracks/kotlin/exercises/largest-series-product/build.gradle +1 -1
  180. data/tracks/kotlin/exercises/leap/.meta/version +1 -1
  181. data/tracks/kotlin/exercises/leap/build.gradle +1 -1
  182. data/tracks/kotlin/exercises/linked-list/build.gradle +1 -1
  183. data/tracks/kotlin/exercises/list-ops/build.gradle +1 -1
  184. data/tracks/kotlin/exercises/luhn/build.gradle +1 -1
  185. data/tracks/kotlin/exercises/meetup/.meta/version +1 -1
  186. data/tracks/kotlin/exercises/meetup/build.gradle +1 -1
  187. data/tracks/kotlin/exercises/minesweeper/build.gradle +1 -1
  188. data/tracks/kotlin/exercises/nth-prime/build.gradle +1 -1
  189. data/tracks/kotlin/exercises/nucleotide-count/build.gradle +1 -1
  190. data/tracks/kotlin/exercises/pangram/build.gradle +1 -1
  191. data/tracks/kotlin/exercises/pascals-triangle/.meta/version +1 -1
  192. data/tracks/kotlin/exercises/pascals-triangle/build.gradle +1 -1
  193. data/tracks/kotlin/exercises/perfect-numbers/build.gradle +1 -1
  194. data/tracks/kotlin/exercises/phone-number/build.gradle +1 -1
  195. data/tracks/kotlin/exercises/pig-latin/build.gradle +1 -1
  196. data/tracks/kotlin/exercises/prime-factors/build.gradle +1 -1
  197. data/tracks/kotlin/exercises/raindrops/build.gradle +1 -1
  198. data/tracks/kotlin/exercises/react/build.gradle +1 -1
  199. data/tracks/kotlin/exercises/rna-transcription/build.gradle +1 -1
  200. data/tracks/kotlin/exercises/robot-name/build.gradle +1 -1
  201. data/tracks/kotlin/exercises/robot-simulator/build.gradle +1 -1
  202. data/tracks/kotlin/exercises/roman-numerals/build.gradle +1 -1
  203. data/tracks/kotlin/exercises/rotational-cipher/.meta/version +1 -1
  204. data/tracks/kotlin/exercises/rotational-cipher/build.gradle +1 -1
  205. data/tracks/kotlin/exercises/saddle-points/build.gradle +1 -1
  206. data/tracks/kotlin/exercises/say/.meta/version +1 -1
  207. data/tracks/kotlin/exercises/say/build.gradle +1 -1
  208. data/tracks/kotlin/exercises/scrabble-score/build.gradle +1 -1
  209. data/tracks/kotlin/exercises/secret-handshake/build.gradle +1 -1
  210. data/tracks/kotlin/exercises/series/build.gradle +1 -1
  211. data/tracks/kotlin/exercises/sieve/build.gradle +1 -1
  212. data/tracks/kotlin/exercises/simple-cipher/build.gradle +1 -1
  213. data/tracks/kotlin/exercises/space-age/build.gradle +1 -1
  214. data/tracks/kotlin/exercises/spiral-matrix/build.gradle +1 -1
  215. data/tracks/kotlin/exercises/strain/build.gradle +1 -1
  216. data/tracks/kotlin/exercises/sublist/.meta/version +1 -1
  217. data/tracks/kotlin/exercises/sublist/build.gradle +1 -1
  218. data/tracks/kotlin/exercises/sum-of-multiples/build.gradle +15 -16
  219. data/tracks/kotlin/exercises/triangle/build.gradle +15 -16
  220. data/tracks/kotlin/exercises/two-fer/build.gradle +1 -1
  221. data/tracks/kotlin/exercises/word-count/build.gradle +1 -1
  222. data/tracks/lfe/config/maintainers.json +6 -6
  223. data/tracks/lfe/config.json +128 -125
  224. data/tracks/lfe/docs/LEARNING.md +1 -1
  225. data/tracks/lua/config/maintainers.json +16 -16
  226. data/tracks/lua/config.json +331 -327
  227. data/tracks/mips/config/maintainers.json +5 -5
  228. data/tracks/mips/config.json +29 -59
  229. data/tracks/nim/config/maintainers.json +8 -8
  230. data/tracks/nim/config.json +185 -127
  231. data/tracks/nim/exercises/allergies/allergies_test.nim +7 -7
  232. data/tracks/nim/exercises/allergies/example.nim +2 -2
  233. data/tracks/nim/exercises/difference-of-squares/difference_of_squares_test.nim +4 -4
  234. data/tracks/nim/exercises/difference-of-squares/example.nim +3 -3
  235. data/tracks/nim/exercises/gigasecond/example.nim +1 -1
  236. data/tracks/nim/exercises/gigasecond/gigasecond_test.nim +5 -5
  237. data/tracks/nim/exercises/nucleotide-count/example.nim +1 -1
  238. data/tracks/nim/exercises/nucleotide-count/nucleotide_count_test.nim +6 -6
  239. data/tracks/nim/exercises/pangram/example.nim +1 -1
  240. data/tracks/nim/exercises/pangram/pangram_test.nim +11 -11
  241. data/tracks/nim/exercises/triangle/example.nim +4 -4
  242. data/tracks/nim/exercises/triangle/triangle_test.nim +14 -14
  243. data/tracks/nim/exercises/word-count/HINT.md +8 -0
  244. data/tracks/nim/exercises/word-count/example.nim +8 -15
  245. data/tracks/nim/exercises/word-count/word_count_test.nim +63 -55
  246. data/tracks/perl6/Dockerfile +1 -1
  247. data/tracks/perl6/config/maintainers.json +8 -8
  248. data/tracks/perl6/config.json +72 -127
  249. data/tracks/powershell/.gitignore +2 -1
  250. data/tracks/powershell/config/maintainers.json +8 -8
  251. data/tracks/powershell/config.json +54 -37
  252. data/tracks/powershell/exercises/reverse-string/.version +1 -0
  253. data/tracks/powershell/exercises/reverse-string/README.md +13 -0
  254. data/tracks/powershell/exercises/reverse-string/ReverseString.example.ps1 +21 -0
  255. data/tracks/powershell/exercises/reverse-string/ReverseString.ps1 +9 -0
  256. data/tracks/powershell/exercises/reverse-string/ReverseString.tests.ps1 +21 -0
  257. data/tracks/powershell/exercises/sum-of-multiples/.version +1 -0
  258. data/tracks/powershell/exercises/sum-of-multiples/README.md +15 -0
  259. data/tracks/powershell/exercises/sum-of-multiples/SumOfMultiples.example.ps1 +20 -0
  260. data/tracks/powershell/exercises/sum-of-multiples/SumOfMultiples.ps1 +9 -0
  261. data/tracks/powershell/exercises/sum-of-multiples/SumOfMultiples.tests.ps1 +29 -0
  262. data/tracks/python/config/maintainers.json +17 -17
  263. data/tracks/python/config.json +331 -283
  264. data/tracks/python/exercises/diffie-hellman/diffie_hellman_test.py +16 -47
  265. data/tracks/r/config/maintainers.json +16 -16
  266. data/tracks/r/config.json +128 -117
  267. data/tracks/racket/config/maintainers.json +16 -16
  268. data/tracks/racket/config.json +106 -102
  269. data/tracks/reasonml/config/maintainers.json +1 -1
  270. data/tracks/reasonml/config.json +37 -23
  271. data/tracks/reasonml/exercises/bob/README.md +29 -0
  272. data/tracks/reasonml/exercises/bob/__tests__/Bob_test.re +103 -0
  273. data/tracks/reasonml/exercises/bob/bsconfig.json +30 -0
  274. data/tracks/reasonml/exercises/bob/package-lock.json +5855 -0
  275. data/tracks/reasonml/exercises/bob/package.json +20 -0
  276. data/tracks/reasonml/exercises/bob/src/Example.re +41 -0
  277. data/tracks/reasonml/exercises/hello-world/src/{HelloWorld.re → Example.re} +0 -0
  278. data/tracks/reasonml/exercises/leap/src/{Leap.re → Example.re} +0 -0
  279. data/tracks/reasonml/exercises/rna-transcription/__tests__/RnaTranscription_test.re +24 -0
  280. data/tracks/reasonml/exercises/rna-transcription/bsconfig.json +30 -0
  281. data/tracks/reasonml/exercises/rna-transcription/package.json +20 -0
  282. data/tracks/reasonml/exercises/rna-transcription/src/Example.re +14 -0
  283. data/tracks/reasonml/exercises/space-age/src/{Space_age.re → Example.re} +0 -0
  284. data/tracks/scala/config/maintainers.json +22 -10
  285. data/tracks/scala/config.json +362 -350
  286. data/tracks/scala/docs/ABOUT.md +7 -2
  287. data/tracks/scheme/config/maintainers.json +11 -11
  288. data/tracks/scheme/config.json +72 -72
  289. data/tracks/typescript/config/maintainers.json +15 -15
  290. data/tracks/typescript/config.json +382 -362
  291. data/tracks/vimscript/config/maintainers.json +11 -11
  292. data/tracks/vimscript/config.json +41 -89
  293. metadata +27 -5
@@ -1,4 +1,4 @@
1
- * [Eloquent JavaScript: A Modern Introduction to Programming (2nd Ed.)](http://eloquentjavascript.net)
1
+ * [Eloquent JavaScript: A Modern Introduction to Programming](http://eloquentjavascript.net)
2
2
  * [JavaScript: The Good Parts](http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742)
3
3
  * [Crockford on JavaScript](http://javascript.crockford.com/)
4
4
  * [idiomatic.js: Principles of Writing Consistent, Idiomatic JavaScript](https://github.com/rwaldron/idiomatic.js)
@@ -1,23 +1,28 @@
1
1
  var Pangram = require('./pangram');
2
2
 
3
3
  describe('Pangram()', function () {
4
- it('empty sentence', function () {
4
+ it('sentence empty', function () {
5
5
  var pangram = new Pangram('');
6
6
  expect(pangram.isPangram()).toBe(false);
7
7
  });
8
8
 
9
+ xit('recognizes a perfect lower case pangram', function () {
10
+ var pangram = new Pangram('abcdefghijklmnopqrstuvwxyz');
11
+ expect(pangram.isPangram()).toBe(true);
12
+ });
13
+
9
14
  xit('pangram with only lower case', function () {
10
15
  var pangram = new Pangram('the quick brown fox jumps over the lazy dog');
11
16
  expect(pangram.isPangram()).toBe(true);
12
17
  });
13
18
 
14
- xit("missing character 'x'", function () {
19
+ xit("missing character 'x'", function () {
15
20
  var pangram = new Pangram('a quick movement of the enemy will jeopardize five gunboats');
16
21
  expect(pangram.isPangram()).toBe(false);
17
22
  });
18
23
 
19
- xit("another missing character 'x'", function () {
20
- var pangram = new Pangram('the quick brown fish jumps over the lazy dog');
24
+ xit("another missing character, e.g. 'h'", function () {
25
+ var pangram = new Pangram('five boxing wizards jump quickly at it');
21
26
  expect(pangram.isPangram()).toBe(false);
22
27
  });
23
28
 
@@ -27,22 +32,22 @@ describe('Pangram()', function () {
27
32
  });
28
33
 
29
34
  xit('pangram with numbers', function () {
30
- var pangram = new Pangram('the 1 quick brown fox jumps over the 2 lazy dogs');
35
+ var pangram = new Pangram('the 1 quick brown fox jumps over the 2 lazy dog');
31
36
  expect(pangram.isPangram()).toBe(true);
32
37
  });
33
38
 
34
- xit('missing letters replaced by numbers', function () {
39
+ xit('missing letters replaced by numbers', function () {
35
40
  var pangram = new Pangram('7h3 qu1ck brown fox jumps ov3r 7h3 lazy dog');
36
41
  expect(pangram.isPangram()).toBe(false);
37
42
  });
38
43
 
39
44
  xit('pangram with mixed case and punctuation', function () {
40
- var pangram = new Pangram('"Five quacking Zephyrs jolt my wax bed."');
45
+ var pangram = new Pangram('\"Five quacking Zephyrs jolt my wax bed.\"');
41
46
  expect(pangram.isPangram()).toBe(true);
42
47
  });
43
48
 
44
- xit('pangram with non-ascii characters', function () {
45
- var pangram = new Pangram('Victor jagt zwölf Boxkämpfer quer über den großen Sylter Deich.');
46
- expect(pangram.isPangram()).toBe(true);
49
+ xit('upper and lower case versions of the same character should not be counted separately', function () {
50
+ var pangram = new Pangram('the quick brown fox jumps over with lazy FX');
51
+ expect(pangram.isPangram()).toBe(false);
47
52
  });
48
53
  });
@@ -0,0 +1 @@
1
+ julia v0.7-alpha
@@ -1,15 +1,15 @@
1
1
  {
2
+ "docs_url": "https://github.com/exercism/docs/blob/master/maintaining-a-track/maintainer-configuration.md",
2
3
  "maintainers": [
3
4
  {
4
5
  "github_username": "SaschaMann",
5
- "show_on_website": false,
6
6
  "alumnus": false,
7
+ "show_on_website": false,
7
8
  "name": null,
8
- "bio": null,
9
9
  "link_text": null,
10
10
  "link_url": null,
11
- "avatar_url": null
11
+ "avatar_url": null,
12
+ "bio": null
12
13
  }
13
- ],
14
- "docs_url": "https://github.com/exercism/docs/blob/master/maintaining-a-track/maintainer-configuration.md"
14
+ ]
15
15
  }
@@ -2,9 +2,10 @@
2
2
  "language": "Julia",
3
3
  "active": true,
4
4
  "blurb": "Julia is an open-source high-level, dynamic programming language whose sweet spot is technical and scientific computing. It is convenient for day-to-day work and fast enough for high performance computing.",
5
- "exercises": [{
6
- "uuid": "a668410d-41aa-4710-a68f-54521da6486d",
5
+ "exercises": [
6
+ {
7
7
  "slug": "hello-world",
8
+ "uuid": "a668410d-41aa-4710-a68f-54521da6486d",
8
9
  "core": true,
9
10
  "unlocked_by": null,
10
11
  "difficulty": 1,
@@ -13,131 +14,131 @@
13
14
  ]
14
15
  },
15
16
  {
16
- "uuid": "8740c914-f008-4b6b-8e7d-7470e78e6a8e",
17
17
  "slug": "leap",
18
+ "uuid": "8740c914-f008-4b6b-8e7d-7470e78e6a8e",
18
19
  "core": true,
19
20
  "unlocked_by": null,
20
21
  "difficulty": 1,
21
22
  "topics": [
22
- "control-flow (conditionals)",
23
- "integers",
24
- "arithmetics"
23
+ "arithmetics",
24
+ "control_flow_conditionals",
25
+ "integers"
25
26
  ]
26
27
  },
27
28
  {
28
- "uuid": "54c24809-c6e7-419b-8ec3-6d8d128ca546",
29
29
  "slug": "nucleotide-count",
30
+ "uuid": "54c24809-c6e7-419b-8ec3-6d8d128ca546",
30
31
  "core": true,
31
32
  "unlocked_by": null,
32
33
  "difficulty": 1,
33
34
  "topics": [
34
35
  "chars",
35
- "strings",
36
- "control-flow (loops)"
36
+ "control_flow_loops",
37
+ "strings"
37
38
  ]
38
39
  },
39
40
  {
40
- "uuid": "878e9897-c4b6-40ff-9034-8f2aedf07a91",
41
41
  "slug": "hamming",
42
+ "uuid": "878e9897-c4b6-40ff-9034-8f2aedf07a91",
42
43
  "core": false,
43
44
  "unlocked_by": "nucleotide-count",
44
45
  "difficulty": 1,
45
46
  "topics": [
47
+ "exceptions",
46
48
  "generators",
47
- "strings",
48
- "exceptions"
49
+ "strings"
49
50
  ]
50
51
  },
51
52
  {
52
- "uuid": "0d5f865c-b704-445c-ac31-df34168f54aa",
53
53
  "slug": "rna-transcription",
54
+ "uuid": "0d5f865c-b704-445c-ac31-df34168f54aa",
54
55
  "core": false,
55
56
  "unlocked_by": "nucleotide-count",
56
57
  "difficulty": 1,
57
58
  "topics": [
58
- "exception handling",
59
- "strings",
60
- "pattern matching",
61
- "filtering"
59
+ "exception_handling",
60
+ "filtering",
61
+ "pattern_matching",
62
+ "strings"
62
63
  ]
63
64
  },
64
65
  {
65
- "uuid": "9474a13b-09c1-4e4d-90e3-1a14fde5eb62",
66
66
  "slug": "bob",
67
+ "uuid": "9474a13b-09c1-4e4d-90e3-1a14fde5eb62",
67
68
  "core": false,
68
69
  "unlocked_by": null,
69
70
  "difficulty": 2,
70
71
  "topics": [
72
+ "control_flow_if_else_statements",
71
73
  "strings",
72
- "unicode",
73
- "control-flow (if-else statements)"
74
+ "unicode"
74
75
  ]
75
76
  },
76
77
  {
77
- "uuid": "9814f832-8bd1-4a2b-9a1e-fc0e3e8541b5",
78
78
  "slug": "run-length-encoding",
79
+ "uuid": "9814f832-8bd1-4a2b-9a1e-fc0e3e8541b5",
79
80
  "core": false,
80
81
  "unlocked_by": "nucleotide-count",
81
82
  "difficulty": 1,
82
83
  "topics": [
83
- "strings",
84
84
  "algorithms",
85
+ "strings",
85
86
  "text_formatting"
86
87
  ]
87
88
  },
88
89
  {
89
- "uuid": "4bc9a4f8-fc4d-4e6b-a93c-07069bbc5bc9",
90
90
  "slug": "pangram",
91
+ "uuid": "4bc9a4f8-fc4d-4e6b-a93c-07069bbc5bc9",
91
92
  "core": true,
92
93
  "unlocked_by": null,
93
94
  "difficulty": 1,
94
95
  "topics": [
95
96
  "arrays",
96
- "strings",
97
- "filtering"
97
+ "filtering",
98
+ "strings"
98
99
  ]
99
100
  },
100
101
  {
101
- "uuid": "d2cb1621-2a2e-4791-a6b6-fdbca74a5583",
102
102
  "slug": "anagram",
103
+ "uuid": "d2cb1621-2a2e-4791-a6b6-fdbca74a5583",
103
104
  "core": false,
104
105
  "unlocked_by": "pangram",
105
106
  "difficulty": 2,
106
107
  "topics": [
107
- "control-flow (loops)",
108
108
  "arrays",
109
- "strings",
109
+ "control_flow_loops",
110
+ "filtering",
110
111
  "sorting",
111
- "filtering"
112
+ "strings"
112
113
  ]
113
114
  },
114
115
  {
115
- "uuid": "79ea05f1-3f27-4b92-bc47-0cebcd8d5a6f",
116
116
  "slug": "rotational-cipher",
117
+ "uuid": "79ea05f1-3f27-4b92-bc47-0cebcd8d5a6f",
117
118
  "core": true,
118
119
  "unlocked_by": null,
119
120
  "difficulty": 2,
120
121
  "topics": [
121
- "string literals",
122
122
  "metaprogramming",
123
+ "string_literals",
123
124
  "strings"
124
125
  ]
125
126
  },
126
127
  {
127
- "uuid": "a4638670-941d-4213-8407-d9ebba70bd42",
128
128
  "slug": "atbash-cipher",
129
+ "uuid": "a4638670-941d-4213-8407-d9ebba70bd42",
129
130
  "core": false,
130
131
  "unlocked_by": "rotational-cipher",
131
132
  "difficulty": 1,
132
133
  "topics": [
133
- "strings",
134
- "control-flow (conditionals)",
135
- "control-flow (loops)"
134
+ "control_flow_conditionals",
135
+ "control_flow_loops",
136
+ "strings"
136
137
  ]
137
138
  },
138
139
  {
139
- "uuid": "16550822-4751-4bb3-9e15-80361006e2d6",
140
140
  "slug": "difference-of-squares",
141
+ "uuid": "16550822-4751-4bb3-9e15-80361006e2d6",
141
142
  "core": true,
142
143
  "unlocked_by": null,
143
144
  "difficulty": 1,
@@ -146,146 +147,146 @@
146
147
  ]
147
148
  },
148
149
  {
149
- "uuid": "bf709fe6-d269-467a-a3da-5bbdaf674f91",
150
150
  "slug": "pascals-triangle",
151
+ "uuid": "bf709fe6-d269-467a-a3da-5bbdaf674f91",
151
152
  "core": false,
152
153
  "unlocked_by": "difference-of-squares",
153
154
  "difficulty": 1,
154
155
  "topics": [
155
- "control-flow (conditionals)",
156
+ "control_flow_conditionals",
157
+ "exceptions",
156
158
  "integers",
157
- "mathematics",
158
- "exceptions"
159
+ "mathematics"
159
160
  ]
160
161
  },
161
162
  {
162
- "uuid": "7a083573-2c68-47cc-8bc8-c0e483cf0e50",
163
163
  "slug": "raindrops",
164
+ "uuid": "7a083573-2c68-47cc-8bc8-c0e483cf0e50",
164
165
  "core": true,
165
166
  "unlocked_by": null,
166
167
  "difficulty": 1,
167
168
  "topics": [
168
- "control-flow (loops)",
169
169
  "arrays",
170
+ "control_flow_loops",
170
171
  "strings"
171
172
  ]
172
173
  },
173
174
  {
174
- "uuid": "5feec698-0bf8-4308-9f72-2cecaab5e75e",
175
175
  "slug": "scrabble-score",
176
+ "uuid": "5feec698-0bf8-4308-9f72-2cecaab5e75e",
176
177
  "core": false,
177
178
  "unlocked_by": "nucleotide-count",
178
179
  "difficulty": 1,
179
180
  "topics": [
180
- "control-flow (loops)",
181
- "control-flow (conditionals)",
182
181
  "arrays",
182
+ "control_flow_conditionals",
183
+ "control_flow_loops",
183
184
  "strings"
184
185
  ]
185
186
  },
186
187
  {
187
- "uuid": "07875495-146f-44a3-b13a-e8e74a37b87d",
188
188
  "slug": "word-count",
189
+ "uuid": "07875495-146f-44a3-b13a-e8e74a37b87d",
189
190
  "core": false,
190
191
  "unlocked_by": "nucleotide-count",
191
192
  "difficulty": 1,
192
193
  "topics": [
193
- "control-flow (loops)",
194
194
  "arrays",
195
+ "control_flow_loops",
195
196
  "strings"
196
197
  ]
197
198
  },
198
199
  {
199
- "uuid": "cc08d672-9c58-4e7a-bfb7-344cbad811f7",
200
200
  "slug": "luhn",
201
+ "uuid": "cc08d672-9c58-4e7a-bfb7-344cbad811f7",
201
202
  "core": false,
202
203
  "unlocked_by": "raindrops",
203
204
  "difficulty": 1,
204
205
  "topics": [
205
- "strings",
206
206
  "arithmetics",
207
- "control-flow (conditionals)"
207
+ "control_flow_conditionals",
208
+ "strings"
208
209
  ]
209
210
  },
210
211
  {
211
- "uuid": "58c41643-971c-4199-a10f-7dc21093e5e3",
212
212
  "slug": "roman-numerals",
213
+ "uuid": "58c41643-971c-4199-a10f-7dc21093e5e3",
213
214
  "core": false,
214
215
  "unlocked_by": "raindrops",
215
216
  "difficulty": 1,
216
217
  "topics": [
217
- "control-flow (loops)",
218
- "strings",
219
- "mathematics"
218
+ "control_flow_loops",
219
+ "mathematics",
220
+ "strings"
220
221
  ]
221
222
  },
222
223
  {
223
- "uuid": "19f9e7c4-f2a5-4636-b7b2-4e0a15977e01",
224
224
  "slug": "isogram",
225
+ "uuid": "19f9e7c4-f2a5-4636-b7b2-4e0a15977e01",
225
226
  "core": false,
226
227
  "unlocked_by": "pangram",
227
228
  "difficulty": 1,
228
229
  "topics": [
229
- "control-flow (loops)",
230
- "control-flow (conditionals)",
231
230
  "arrays",
231
+ "control_flow_conditionals",
232
+ "control_flow_loops",
232
233
  "strings"
233
234
  ]
234
235
  },
235
236
  {
236
- "uuid": "bccc00fa-811c-4bf9-8e55-07a0d0affb08",
237
237
  "slug": "etl",
238
+ "uuid": "bccc00fa-811c-4bf9-8e55-07a0d0affb08",
238
239
  "core": false,
239
240
  "unlocked_by": "nucleotide-count",
240
241
  "difficulty": 2,
241
242
  "topics": [
242
243
  "arrays",
243
- "strings",
244
- "sorting"
244
+ "sorting",
245
+ "strings"
245
246
  ]
246
247
  },
247
248
  {
248
- "uuid": "d1d5a74a-d488-4e2e-bd63-b74730057c98",
249
249
  "slug": "collatz-conjecture",
250
+ "uuid": "d1d5a74a-d488-4e2e-bd63-b74730057c98",
250
251
  "core": false,
251
252
  "unlocked_by": "difference-of-squares",
252
253
  "difficulty": 2,
253
254
  "topics": [
254
- "mathematics",
255
- "control-flow (exceptions)",
256
- "control-flow (if-else statements)"
255
+ "control_flow_exceptions",
256
+ "control_flow_if_else_statements",
257
+ "mathematics"
257
258
  ]
258
259
  },
259
260
  {
260
- "uuid": "5e3b376a-06ab-442f-8d18-710db7778db6",
261
261
  "slug": "sieve",
262
+ "uuid": "5e3b376a-06ab-442f-8d18-710db7778db6",
262
263
  "core": false,
263
264
  "unlocked_by": "difference-of-squares",
264
265
  "difficulty": 2,
265
266
  "topics": [
266
- "control-flow (loops)",
267
- "control-flow (conditionals)",
268
- "mathematics",
269
267
  "arrays",
270
- "filtering"
268
+ "control_flow_conditionals",
269
+ "control_flow_loops",
270
+ "filtering",
271
+ "mathematics"
271
272
  ]
272
273
  },
273
274
  {
274
- "uuid": "c09ed7ec-fa7c-4f6a-994f-3d3eb7f22df4",
275
275
  "slug": "trinary",
276
+ "uuid": "c09ed7ec-fa7c-4f6a-994f-3d3eb7f22df4",
276
277
  "core": false,
277
278
  "unlocked_by": "secret-handshake",
278
279
  "difficulty": 2,
279
280
  "topics": [
280
281
  "arrays",
281
- "strings",
282
282
  "integers",
283
- "mathematics"
283
+ "mathematics",
284
+ "strings"
284
285
  ]
285
286
  },
286
287
  {
287
- "uuid": "d2c85375-c0e7-4e04-88f1-08736e5afa04",
288
288
  "slug": "secret-handshake",
289
+ "uuid": "d2c85375-c0e7-4e04-88f1-08736e5afa04",
289
290
  "core": true,
290
291
  "unlocked_by": null,
291
292
  "difficulty": 2,
@@ -296,58 +297,58 @@
296
297
  ]
297
298
  },
298
299
  {
299
- "uuid": "f7a3f344-a9fa-4a36-ac44-12bc8673899e",
300
300
  "slug": "phone-number",
301
+ "uuid": "f7a3f344-a9fa-4a36-ac44-12bc8673899e",
301
302
  "core": false,
302
303
  "unlocked_by": null,
303
304
  "difficulty": 1,
304
305
  "topics": [
305
- "pattern_matching",
306
306
  "conditionals",
307
- "strings",
308
- "regular_expressions"
307
+ "pattern_matching",
308
+ "regular_expressions",
309
+ "strings"
309
310
  ]
310
311
  },
311
312
  {
312
- "uuid": "f5be4623-2a9a-4bf5-bb32-dd81eddf0683",
313
313
  "slug": "triangle",
314
+ "uuid": "f5be4623-2a9a-4bf5-bb32-dd81eddf0683",
314
315
  "core": false,
315
316
  "unlocked_by": null,
316
317
  "difficulty": 1,
317
318
  "topics": [
318
- "conditionals",
319
- "functional abstraction",
320
- "mathematics"
319
+ "conditionals",
320
+ "functional_abstraction",
321
+ "mathematics"
321
322
  ]
322
323
  },
323
324
  {
324
- "uuid": "e5a6d640-cd76-4453-8247-fd34ffed4fe5",
325
325
  "slug": "transpose",
326
+ "uuid": "e5a6d640-cd76-4453-8247-fd34ffed4fe5",
326
327
  "core": false,
327
328
  "unlocked_by": null,
328
329
  "difficulty": 2,
329
330
  "topics": [
330
- "control-flow (loops)",
331
- "control-flow (conditionals)",
332
331
  "arrays",
332
+ "control_flow_conditionals",
333
+ "control_flow_loops",
333
334
  "strings"
334
335
  ]
335
336
  },
336
337
  {
337
- "uuid": "7cb2d96a-4707-4cec-9ead-313fcb5fbb94",
338
338
  "slug": "robot-name",
339
+ "uuid": "7cb2d96a-4707-4cec-9ead-313fcb5fbb94",
339
340
  "core": true,
340
341
  "unlocked_by": null,
341
342
  "difficulty": 2,
342
343
  "topics": [
343
- "structs",
344
+ "randomness",
344
345
  "strings",
345
- "randomness"
346
+ "structs"
346
347
  ]
347
348
  },
348
349
  {
349
- "uuid": "c64e03cc-1952-4b2d-9a53-25c43187a4e6",
350
350
  "slug": "gigasecond",
351
+ "uuid": "c64e03cc-1952-4b2d-9a53-25c43187a4e6",
351
352
  "core": false,
352
353
  "unlocked_by": null,
353
354
  "difficulty": 1,
@@ -356,8 +357,8 @@
356
357
  ]
357
358
  },
358
359
  {
359
- "uuid": "e4b19962-ebc1-4f12-9ac8-45f17faeaa55",
360
360
  "slug": "robot-simulator",
361
+ "uuid": "e4b19962-ebc1-4f12-9ac8-45f17faeaa55",
361
362
  "core": false,
362
363
  "unlocked_by": "robot-name",
363
364
  "difficulty": 2,
@@ -366,38 +367,38 @@
366
367
  ]
367
368
  },
368
369
  {
369
- "uuid": "eca7e62c-7bbf-436c-8011-2920cb2ab1c1",
370
370
  "slug": "complex-numbers",
371
+ "uuid": "eca7e62c-7bbf-436c-8011-2920cb2ab1c1",
371
372
  "core": true,
372
373
  "unlocked_by": null,
373
374
  "difficulty": 2,
374
375
  "topics": [
375
- "structs",
376
+ "function_extension",
376
377
  "mathematics",
377
378
  "methods",
378
- "multiple dispatch",
379
- "function extension"
379
+ "multiple_dispatch",
380
+ "structs"
380
381
  ]
381
382
  },
382
383
  {
383
- "uuid": "b47377f7-84af-4a10-83ef-c2444a4f8940",
384
384
  "slug": "custom-set",
385
+ "uuid": "b47377f7-84af-4a10-83ef-c2444a4f8940",
385
386
  "core": true,
386
387
  "unlocked_by": null,
387
388
  "difficulty": 5,
388
389
  "topics": [
389
- "types",
390
- "parametric types",
391
- "methods",
392
- "multiple dispatch",
393
- "function extension",
390
+ "function_extension",
391
+ "iterators",
394
392
  "mathematics",
395
- "iterators"
393
+ "methods",
394
+ "multiple_dispatch",
395
+ "parametric_types",
396
+ "types"
396
397
  ]
397
398
  },
398
399
  {
399
- "uuid": "4cc2a5d6-e662-4d99-81d4-05d6bcd500f4",
400
400
  "slug": "grains",
401
+ "uuid": "4cc2a5d6-e662-4d99-81d4-05d6bcd500f4",
401
402
  "core": false,
402
403
  "unlocked_by": "difference-of-squares",
403
404
  "difficulty": 1,
@@ -406,20 +407,17 @@
406
407
  ]
407
408
  },
408
409
  {
409
- "uuid": "22b64a2b-7f08-444d-be6e-8b42e5c9207c",
410
410
  "slug": "isbn-verifier",
411
+ "uuid": "22b64a2b-7f08-444d-be6e-8b42e5c9207c",
411
412
  "core": false,
412
413
  "unlocked_by": "raindrops",
413
414
  "difficulty": 2,
414
415
  "topics": [
415
- "strings",
416
416
  "arithmetics",
417
- "control-flow (conditionals)",
418
- "metaprogramming"
417
+ "control_flow_conditionals",
418
+ "metaprogramming",
419
+ "strings"
419
420
  ]
420
421
  }
421
- ],
422
- "foregone": [
423
-
424
422
  ]
425
423
  }
@@ -2,34 +2,34 @@
2
2
  "docs_url": "https://github.com/exercism/docs/blob/master/maintaining-a-track/maintainer-configuration.md",
3
3
  "maintainers": [
4
4
  {
5
- "alumnus": false,
6
- "avatar_url": null,
7
- "bio": null,
8
5
  "github_username": "michel-slm",
6
+ "alumnus": false,
7
+ "show_on_website": false,
8
+ "name": null,
9
9
  "link_text": null,
10
10
  "link_url": null,
11
- "name": null,
12
- "show_on_website": false
11
+ "avatar_url": null,
12
+ "bio": null
13
13
  },
14
14
  {
15
- "alumnus": false,
16
- "avatar_url": null,
17
- "bio": null,
18
15
  "github_username": "sdavids13",
16
+ "alumnus": false,
17
+ "show_on_website": false,
18
+ "name": null,
19
19
  "link_text": null,
20
20
  "link_url": null,
21
- "name": null,
22
- "show_on_website": false
21
+ "avatar_url": null,
22
+ "bio": null
23
23
  },
24
24
  {
25
- "alumnus": true,
26
- "avatar_url": null,
27
- "bio": null,
28
25
  "github_username": "stkent",
26
+ "alumnus": true,
27
+ "show_on_website": false,
28
+ "name": null,
29
29
  "link_text": null,
30
30
  "link_url": null,
31
- "name": null,
32
- "show_on_website": false
31
+ "avatar_url": null,
32
+ "bio": null
33
33
  }
34
34
  ]
35
35
  }