trackler 2.0.3.4 → 2.0.3.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. checksums.yaml +4 -4
  2. data/common/exercises/all-your-base/canonical-data.json +21 -21
  3. data/common/exercises/wordy/description.md +24 -38
  4. data/common/exercises/wordy/metadata.yml +1 -1
  5. data/lib/trackler/version.rb +1 -1
  6. data/tracks/c/config.json +10 -0
  7. data/tracks/c/exercises/meetup/makefile +15 -0
  8. data/tracks/c/exercises/meetup/src/example.c +139 -0
  9. data/tracks/c/exercises/meetup/src/example.h +7 -0
  10. data/tracks/c/exercises/meetup/test/test_meetup.c +223 -0
  11. data/tracks/c/exercises/meetup/test/vendor/unity.c +1300 -0
  12. data/tracks/c/exercises/meetup/test/vendor/unity.h +274 -0
  13. data/tracks/c/exercises/meetup/test/vendor/unity_internals.h +701 -0
  14. data/tracks/crystal/config.json +12 -0
  15. data/tracks/crystal/exercises/pascals-triangle/spec/pascals_triangle_spec.cr +30 -0
  16. data/tracks/crystal/exercises/pascals-triangle/src/example.cr +19 -0
  17. data/tracks/crystal/exercises/pascals-triangle/src/pascals_triangle.cr +1 -0
  18. data/tracks/crystal/exercises/run-length-encoding/spec/run_length_encoding_spec.cr +36 -0
  19. data/tracks/crystal/exercises/run-length-encoding/src/example.cr +40 -0
  20. data/tracks/crystal/src/generator/exercises/pascals-triangle.cr +58 -0
  21. data/tracks/crystal/src/generator/exercises/run_length_encoding.cr +42 -0
  22. data/tracks/javascript/config.json +8 -1
  23. data/tracks/javascript/exercises/all-your-base/all-your-base.spec.js +141 -0
  24. data/tracks/javascript/exercises/all-your-base/example.js +59 -0
  25. data/tracks/javascript/exercises/word-count/example.js +5 -5
  26. data/tracks/javascript/exercises/word-count/word-count.spec.js +23 -8
  27. data/tracks/lua/SETUP.md +60 -7
  28. data/tracks/lua/config.json +9 -0
  29. data/tracks/lua/exercises/say/example.lua +4 -4
  30. data/tracks/lua/exercises/variable-length-quantity/example.lua +36 -0
  31. data/tracks/lua/exercises/variable-length-quantity/variable-length-quantity_spec.lua +73 -0
  32. data/tracks/objective-c/.travis.yml +1 -0
  33. data/tracks/objective-c/config.json +8 -0
  34. data/tracks/objective-c/docs/TESTS.md +1 -1
  35. data/tracks/objective-c/exercises/transpose/TransposeExample.h +7 -0
  36. data/tracks/objective-c/exercises/transpose/TransposeExample.m +59 -0
  37. data/tracks/objective-c/exercises/transpose/TransposeTest.m +150 -0
  38. data/tracks/objective-c/xcodeProject/ObjectiveC.xcodeproj/project.pbxproj +18 -0
  39. data/tracks/ocaml/.gitignore +1 -0
  40. data/tracks/ocaml/tools/test-generator/Makefile +3 -0
  41. data/tracks/ocaml/tools/test-generator/src/controller.ml +11 -16
  42. data/tracks/ocaml/tools/test-generator/src/model.ml +4 -0
  43. data/tracks/ocaml/tools/test-generator/src/parser.ml +8 -1
  44. data/tracks/ocaml/tools/test-generator/src/special_cases.ml +5 -0
  45. data/tracks/ocaml/tools/test-generator/templates/all-your-base/template.ml +16 -0
  46. data/tracks/ocaml/tools/test-generator/test/model_test.ml +2 -0
  47. data/tracks/ocaml/tools/test-generator/test/parser_test.ml +8 -0
  48. data/tracks/perl5/docs/RESOURCES.md +57 -0
  49. data/tracks/perl5/exercises/hamming/Example.pm +7 -0
  50. data/tracks/perl5/exercises/hamming/hamming.t +17 -4
  51. data/tracks/perl5/exercises/rna-transcription/rna.t +4 -4
  52. data/tracks/perl6/.gitignore +2 -0
  53. data/tracks/perl6/config.json +5 -0
  54. data/tracks/perl6/exercises/phone-number/Example.pm +30 -0
  55. data/tracks/perl6/exercises/phone-number/cases.json +47 -0
  56. data/tracks/perl6/exercises/phone-number/phone.t +48 -0
  57. data/tracks/purescript/.gitignore +8 -0
  58. data/tracks/purescript/config.json +8 -3
  59. data/tracks/purescript/exercises/hello-world/bower.json +17 -0
  60. data/tracks/purescript/exercises/hello-world/examples/src/HelloWorld.purs +8 -0
  61. data/tracks/purescript/exercises/hello-world/src/HelloWorld.purs +6 -0
  62. data/tracks/purescript/exercises/hello-world/test/Main.purs +18 -0
  63. data/tracks/scala/exercises/leap/HINTS.md +4 -0
  64. data/tracks/scala/exercises/robot-name/HINTS.md +5 -0
  65. data/tracks/swift/docs/INSTALLATION.md +4 -1
  66. data/tracks/swift/exercises/accumulate/AccumulateTest.swift +1 -1
  67. data/tracks/swift/exercises/binary/BinaryExample.swift +4 -1
  68. data/tracks/swift/exercises/crypto-square/CryptoSquareExample.swift +3 -2
  69. data/tracks/swift/exercises/leap/LeapExample.swift +1 -3
  70. data/tracks/swift/exercises/pascals-triangle/PascalsTriangleTest.swift +1 -1
  71. data/tracks/swift/exercises/poker/PokerExample.swift +3 -3
  72. data/tracks/swift/exercises/poker/PokerTest.swift +38 -38
  73. data/tracks/swift/exercises/saddle-points/SaddlePointsTest.swift +1 -1
  74. data/tracks/swift/exercises/scrabble-score/ScrabbleScoreExample.swift +6 -3
  75. data/tracks/swift/exercises/series/SeriesTest.swift +1 -1
  76. data/tracks/swift/exercises/simple-linked-list/SimpleLinkedListExample.swift +2 -2
  77. data/tracks/swift/exercises/space-age/SpaceAgeExample.swift +10 -12
  78. data/tracks/swift/exercises/strain/StrainTest.swift +1 -1
  79. data/tracks/swift/exercises/tournament/TournamentExample.swift +2 -2
  80. data/tracks/swift/exercises/triangle/TriangleExample.swift +7 -3
  81. data/tracks/swift/exercises/wordy/WordyExample.swift +1 -2
  82. metadata +34 -3
  83. data/tracks/purescript/exercises/.keep +0 -0
@@ -3,7 +3,7 @@
3
3
  #endif
4
4
 
5
5
  private extension XCTest {
6
- func XCTAssertEqualMultiArray(_ aArray1: Array<Array<Int>>, _ aArray2: Array<Array<Int>>) {
6
+ func XCTAssertEqualMultiArray(_ aArray1: [[Int]], _ aArray2: [[Int]]) {
7
7
  XCTAssertEqual(Array(aArray1.joined()), Array(aArray2.joined()))
8
8
  }
9
9
  }
@@ -22,9 +22,11 @@ private extension String {
22
22
  return stripCharacters(" ")
23
23
  }
24
24
 
25
- var isEmptyOrWhiteSpace: Bool { get {
25
+ var isEmptyOrWhiteSpace: Bool {
26
26
  return self.stripWhiteSpace.isEmpty
27
- }}}
27
+ }
28
+ }
29
+
28
30
  struct Scrabble {
29
31
 
30
32
  static var letterScores =
@@ -32,7 +34,8 @@ struct Scrabble {
32
34
 
33
35
  static func score(_ input: String) -> Int {
34
36
  if input.isEmptyOrWhiteSpace {
35
- return 0}
37
+ return 0
38
+ }
36
39
 
37
40
  var count: Int = 0
38
41
  for each in input.lowercasedCustom().characters {
@@ -3,7 +3,7 @@
3
3
  #endif
4
4
 
5
5
  private extension XCTest {
6
- func XCTAssertEqualMultiArray(_ aArray1: Array<Array<Int>>, _ aArray2: Array<Array<Int>>) {
6
+ func XCTAssertEqualMultiArray(_ aArray1: [[Int]], _ aArray2: [[Int]]) {
7
7
  XCTAssertEqual(Array(aArray1.joined()), Array(aArray2.joined()))
8
8
  }
9
9
  }
@@ -20,10 +20,10 @@ class Element<T> {
20
20
  return toA(self)
21
21
  }
22
22
 
23
- private var countArray: Array<T> = []
23
+ private var countArray: [T] = []
24
24
 
25
25
  @discardableResult
26
- private func toA(_ input: Element, _ tempArray: Array<T> = []) -> [T] {
26
+ private func toA(_ input: Element, _ tempArray: [T] = []) -> [T] {
27
27
  if tempArray.isEmpty && input.value != nil {
28
28
  countArray.append(input.value!)
29
29
  }
@@ -1,21 +1,19 @@
1
1
  import Darwin
2
2
 
3
3
  struct SpaceAge {
4
+ var seconds: Float = 0
4
5
 
5
- var seconds: Float = 0
6
-
7
- var onMercury: Float { get { return round((seconds / 7_600_530.24)*100)/100}}
8
- var onVenus: Float { get { return round((seconds / 19_413_907.2)*100)/100}}
9
- var onEarth: Float { get { return round((seconds / 31_558_149.76)*100)/100}}
10
- var onMars: Float { get { return round((seconds / 59_354_294.4)*100)/100}}
11
- var onJupiter: Float { get { return round((seconds / 374_335_776.0)*100)/100}}
12
- var onSaturn: Float { get { return round((seconds / 929_596_608.0)*100)/100}}
13
- var onUranus: Float { get { return round((seconds / 2_661_041_808.0)*100)/100}}
14
- var onNeptune: Float { get { return round((seconds / 5_200_418_592.0)*100)/100}}
6
+ var onMercury: Float { return round((seconds / 7_600_530.24) * 100) / 100 }
7
+ var onVenus: Float { return round((seconds / 19_413_907.2) * 100) / 100 }
8
+ var onEarth: Float { return round((seconds / 31_558_149.76) * 100) / 100 }
9
+ var onMars: Float { return round((seconds / 59_354_294.4) * 100) / 100 }
10
+ var onJupiter: Float { return round((seconds / 374_335_776.0) * 100) / 100 }
11
+ var onSaturn: Float { return round((seconds / 929_596_608.0) * 100) / 100 }
12
+ var onUranus: Float { return round((seconds / 2_661_041_808.0) * 100) / 100 }
13
+ var onNeptune: Float { return round((seconds / 5_200_418_592.0) * 100) / 100 }
14
+
15
15
  init(_ input: Float) {
16
-
17
16
  self.seconds = input
18
-
19
17
  }
20
18
 
21
19
  }
@@ -3,7 +3,7 @@
3
3
  #endif
4
4
 
5
5
  private extension XCTest {
6
- func XCTAssertEqualMultiArray(_ aArray1: Array<Array<Int>>, _ aArray2: Array<Array<Int>>) {
6
+ func XCTAssertEqualMultiArray(_ aArray1: [[Int]], _ aArray2: [[Int]]) {
7
7
  XCTAssertEqual(Array(aArray1.joined()), Array(aArray2.joined()))
8
8
  }
9
9
  }
@@ -7,7 +7,7 @@ private extension String {
7
7
  if removeSpaces.hasSuffix("\n") {
8
8
  return String(removeSpaces.characters.dropLast())
9
9
  }
10
- return removeSpaces
10
+ return removeSpaces
11
11
 
12
12
  }
13
13
 
@@ -63,7 +63,7 @@ struct Tournament {
63
63
  }
64
64
  }
65
65
 
66
- private var teams = Dictionary<String, TeamResult>()
66
+ private var teams = [String : TeamResult]()
67
67
  private mutating func addResult(_ team1: String, team2: String, outcome: Outcome) -> Void {
68
68
  // Invert outcome for the second team.
69
69
  let outcome2: Outcome = (outcome == Outcome.win) ? Outcome.loss :
@@ -5,7 +5,9 @@ struct Triangle {
5
5
  var b: Double = 0
6
6
  var c: Double = 0
7
7
 
8
- var kind: String { get { return self.Kind() }}
8
+ var kind: String {
9
+ return self.Kind()
10
+ }
9
11
 
10
12
  init(_ a: Double, _ b: Double, _ c: Double) {
11
13
  (self.a, self.b, self.c) = (a, b, c)
@@ -41,10 +43,12 @@ struct Triangle {
41
43
  let unique = uniqueSides()
42
44
 
43
45
  if unique == 1 {
44
- return triangleKind.Equilateral}
46
+ return triangleKind.Equilateral
47
+ }
45
48
 
46
49
  if unique == 2 {
47
- return triangleKind.Isosceles}
50
+ return triangleKind.Isosceles
51
+ }
48
52
 
49
53
  return triangleKind.Scalene
50
54
  }
@@ -29,9 +29,8 @@ private extension String {
29
29
 
30
30
  }
31
31
 
32
- func componentsSeparatedByStringCustom(_ input: String)->Array<String> {
32
+ func componentsSeparatedByStringCustom(_ input: String) -> [String] {
33
33
  return components(separatedBy: input)
34
-
35
34
  }
36
35
 
37
36
  }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trackler
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.3.4
4
+ version: 2.0.3.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Katrina Owen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-12-06 00:00:00.000000000 Z
11
+ date: 2016-12-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip
@@ -628,6 +628,13 @@ files:
628
628
  - tracks/c/exercises/leap/test/vendor/unity.c
629
629
  - tracks/c/exercises/leap/test/vendor/unity.h
630
630
  - tracks/c/exercises/leap/test/vendor/unity_internals.h
631
+ - tracks/c/exercises/meetup/makefile
632
+ - tracks/c/exercises/meetup/src/example.c
633
+ - tracks/c/exercises/meetup/src/example.h
634
+ - tracks/c/exercises/meetup/test/test_meetup.c
635
+ - tracks/c/exercises/meetup/test/vendor/unity.c
636
+ - tracks/c/exercises/meetup/test/vendor/unity.h
637
+ - tracks/c/exercises/meetup/test/vendor/unity_internals.h
631
638
  - tracks/c/exercises/nth-prime/makefile
632
639
  - tracks/c/exercises/nth-prime/src/example.c
633
640
  - tracks/c/exercises/nth-prime/src/example.h
@@ -1194,6 +1201,9 @@ files:
1194
1201
  - tracks/crystal/exercises/pangram/spec/pangram_spec.cr
1195
1202
  - tracks/crystal/exercises/pangram/src/example.cr
1196
1203
  - tracks/crystal/exercises/pangram/src/pangram.cr
1204
+ - tracks/crystal/exercises/pascals-triangle/spec/pascals_triangle_spec.cr
1205
+ - tracks/crystal/exercises/pascals-triangle/src/example.cr
1206
+ - tracks/crystal/exercises/pascals-triangle/src/pascals_triangle.cr
1197
1207
  - tracks/crystal/exercises/raindrops/spec/raindrops_spec.cr
1198
1208
  - tracks/crystal/exercises/raindrops/src/example.cr
1199
1209
  - tracks/crystal/exercises/raindrops/src/raindrops.cr
@@ -1206,6 +1216,8 @@ files:
1206
1216
  - tracks/crystal/exercises/roman-numerals/spec/roman_numerals_spec.cr
1207
1217
  - tracks/crystal/exercises/roman-numerals/src/example.cr
1208
1218
  - tracks/crystal/exercises/roman-numerals/src/roman_numerals.cr
1219
+ - tracks/crystal/exercises/run-length-encoding/spec/run_length_encoding_spec.cr
1220
+ - tracks/crystal/exercises/run-length-encoding/src/example.cr
1209
1221
  - tracks/crystal/exercises/sieve/spec/sieve_spec.cr
1210
1222
  - tracks/crystal/exercises/sieve/src/example.cr
1211
1223
  - tracks/crystal/exercises/sieve/src/sieve.cr
@@ -1217,6 +1229,8 @@ files:
1217
1229
  - tracks/crystal/src/generator/exercises/exercise_test_case.cr
1218
1230
  - tracks/crystal/src/generator/exercises/forth.cr
1219
1231
  - tracks/crystal/src/generator/exercises/hello_world.cr
1232
+ - tracks/crystal/src/generator/exercises/pascals-triangle.cr
1233
+ - tracks/crystal/src/generator/exercises/run_length_encoding.cr
1220
1234
  - tracks/crystal/src/generator/exercises/templates/example.tt
1221
1235
  - tracks/crystal/src/generator/generate.cr
1222
1236
  - tracks/crystal/src/generator/spec/exercise_generator_spec.cr
@@ -3712,6 +3726,8 @@ files:
3712
3726
  - tracks/javascript/exercises/acronym/acronym.spec.js
3713
3727
  - tracks/javascript/exercises/acronym/example.js
3714
3728
  - tracks/javascript/exercises/acronym/package.json
3729
+ - tracks/javascript/exercises/all-your-base/all-your-base.spec.js
3730
+ - tracks/javascript/exercises/all-your-base/example.js
3715
3731
  - tracks/javascript/exercises/allergies/allergies.spec.js
3716
3732
  - tracks/javascript/exercises/allergies/example.js
3717
3733
  - tracks/javascript/exercises/anagram/anagram.spec.js
@@ -4554,6 +4570,8 @@ files:
4554
4570
  - tracks/lua/exercises/transpose/transpose_spec.lua
4555
4571
  - tracks/lua/exercises/triangle/example.lua
4556
4572
  - tracks/lua/exercises/triangle/triangle_spec.lua
4573
+ - tracks/lua/exercises/variable-length-quantity/example.lua
4574
+ - tracks/lua/exercises/variable-length-quantity/variable-length-quantity_spec.lua
4557
4575
  - tracks/lua/exercises/word-count/example.lua
4558
4576
  - tracks/lua/exercises/word-count/word-count_spec.lua
4559
4577
  - tracks/lua/exercises/word-search/example.lua
@@ -4739,6 +4757,9 @@ files:
4739
4757
  - tracks/objective-c/exercises/sum-of-multiples/SumOfMultiplesExample.h
4740
4758
  - tracks/objective-c/exercises/sum-of-multiples/SumOfMultiplesExample.m
4741
4759
  - tracks/objective-c/exercises/sum-of-multiples/SumOfMultiplesTest.m
4760
+ - tracks/objective-c/exercises/transpose/TransposeExample.h
4761
+ - tracks/objective-c/exercises/transpose/TransposeExample.m
4762
+ - tracks/objective-c/exercises/transpose/TransposeTest.m
4742
4763
  - tracks/objective-c/exercises/triangle/TriangleExample.h
4743
4764
  - tracks/objective-c/exercises/triangle/TriangleExample.m
4744
4765
  - tracks/objective-c/exercises/triangle/TriangleTest.m
@@ -4940,6 +4961,7 @@ files:
4940
4961
  - tracks/ocaml/tools/test-generator/src/template.ml
4941
4962
  - tracks/ocaml/tools/test-generator/src/test_gen.ml
4942
4963
  - tracks/ocaml/tools/test-generator/src/utils.ml
4964
+ - tracks/ocaml/tools/test-generator/templates/all-your-base/template.ml
4943
4965
  - tracks/ocaml/tools/test-generator/templates/anagram/template.ml
4944
4966
  - tracks/ocaml/tools/test-generator/templates/bob/template.ml
4945
4967
  - tracks/ocaml/tools/test-generator/templates/bracket-push/template.ml
@@ -4990,6 +5012,7 @@ files:
4990
5012
  - tracks/perl5/docs/ABOUT.md
4991
5013
  - tracks/perl5/docs/INSTALLATION.md
4992
5014
  - tracks/perl5/docs/LEARNING.md
5015
+ - tracks/perl5/docs/RESOURCES.md
4993
5016
  - tracks/perl5/docs/TESTS.md
4994
5017
  - tracks/perl5/exercises/accumulate/Example.pm
4995
5018
  - tracks/perl5/exercises/accumulate/accumulate.t
@@ -5159,6 +5182,9 @@ files:
5159
5182
  - tracks/perl6/exercises/grains/grains.t
5160
5183
  - tracks/perl6/exercises/leap/Example.pm
5161
5184
  - tracks/perl6/exercises/leap/leap.t
5185
+ - tracks/perl6/exercises/phone-number/Example.pm
5186
+ - tracks/perl6/exercises/phone-number/cases.json
5187
+ - tracks/perl6/exercises/phone-number/phone.t
5162
5188
  - tracks/perl6/exercises/raindrops/Example.pm
5163
5189
  - tracks/perl6/exercises/raindrops/raindrops.t
5164
5190
  - tracks/perl6/exercises/rna-transcription/Example.pm
@@ -5403,7 +5429,10 @@ files:
5403
5429
  - tracks/purescript/docs/LEARNING.md
5404
5430
  - tracks/purescript/docs/RESOURCES.md
5405
5431
  - tracks/purescript/docs/TESTS.md
5406
- - tracks/purescript/exercises/.keep
5432
+ - tracks/purescript/exercises/hello-world/bower.json
5433
+ - tracks/purescript/exercises/hello-world/examples/src/HelloWorld.purs
5434
+ - tracks/purescript/exercises/hello-world/src/HelloWorld.purs
5435
+ - tracks/purescript/exercises/hello-world/test/Main.purs
5407
5436
  - tracks/purescript/img/icon.png
5408
5437
  - tracks/python/.git
5409
5438
  - tracks/python/.gitignore
@@ -6360,6 +6389,7 @@ files:
6360
6389
  - tracks/scala/exercises/largest-series-product/example.scala
6361
6390
  - tracks/scala/exercises/largest-series-product/src/main/scala/.keep
6362
6391
  - tracks/scala/exercises/largest-series-product/src/test/scala/SeriesTest.scala
6392
+ - tracks/scala/exercises/leap/HINTS.md
6363
6393
  - tracks/scala/exercises/leap/build.sbt
6364
6394
  - tracks/scala/exercises/leap/example.scala
6365
6395
  - tracks/scala/exercises/leap/src/main/scala/.keep
@@ -6451,6 +6481,7 @@ files:
6451
6481
  - tracks/scala/exercises/rna-transcription/example.scala
6452
6482
  - tracks/scala/exercises/rna-transcription/src/main/scala/.keep
6453
6483
  - tracks/scala/exercises/rna-transcription/src/test/scala/transcription_test.scala
6484
+ - tracks/scala/exercises/robot-name/HINTS.md
6454
6485
  - tracks/scala/exercises/robot-name/build.sbt
6455
6486
  - tracks/scala/exercises/robot-name/example.scala
6456
6487
  - tracks/scala/exercises/robot-name/src/main/scala/.keep
File without changes