trackler 2.0.3.4 → 2.0.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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