trackler 2.0.8.33 → 2.0.8.34
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/trackler/version.rb +1 -1
- data/tracks/csharp/exercises/food-chain/Example.cs +2 -2
- data/tracks/csharp/exercises/food-chain/FoodChain.cs +2 -2
- data/tracks/csharp/exercises/food-chain/FoodChainTest.cs +150 -73
- data/tracks/csharp/exercises/luhn/LuhnTest.cs +5 -8
- data/tracks/csharp/generators/Data/CanonicalDataValue.cs +10 -0
- data/tracks/csharp/generators/Exercises/FoodChainExercise.cs +27 -0
- data/tracks/csharp/generators/Exercises/NthPrimeExercise.cs +1 -3
- data/tracks/csharp/generators/Methods/EqualityTestMethodGenerator.cs +25 -1
- data/tracks/csharp/generators/Methods/TestMethodGenerator.cs +16 -4
- data/tracks/csharp/generators/Methods/TestMethodOptions.cs +1 -0
- data/tracks/csharp/generators/Methods/TestMethodRenderer.cs +15 -7
- data/tracks/csharp/generators/Program.cs +2 -0
- data/tracks/java/exercises/difference-of-squares/src/example/java/{Difference.java → DifferenceOfSquaresCalculator.java} +4 -4
- data/tracks/java/exercises/difference-of-squares/src/main/java/DifferenceOfSquaresCalculator.java +5 -0
- data/tracks/java/exercises/difference-of-squares/src/test/java/{DifferenceTest.java → DifferenceOfSquaresCalculatorTest.java} +18 -11
- data/tracks/java/exercises/sum-of-multiples/src/example/java/SumOfMultiples.java +17 -9
- data/tracks/java/exercises/sum-of-multiples/src/test/java/SumOfMultiplesTest.java +73 -88
- data/tracks/perl6/.travis.yml +3 -0
- data/tracks/python/exercises/bob/bob_test.py +47 -71
- data/tracks/python/exercises/leap/leap_test.py +10 -11
- data/tracks/python/exercises/pangram/pangram_test.py +16 -16
- data/tracks/python/exercises/prime-factors/prime_factors_test.py +11 -21
- data/tracks/python/exercises/sieve/sieve_test.py +32 -24
- data/tracks/swift/.gitignore +3 -0
- data/tracks/swift/.swiftlint.yml +4 -2
- data/tracks/swift/exercises/kindergarten-garden/Sources/KindergartenGardenExample.swift +4 -4
- data/tracks/swift/exercises/kindergarten-garden/Tests/KindergartenGardenTests/KindergartenGardenTests.swift +25 -25
- data/tracks/swift/exercises/meetup/Sources/MeetupExample.swift +6 -6
- data/tracks/swift/exercises/poker/Sources/PokerExample.swift +12 -14
- data/tracks/swift/exercises/robot-simulator/Sources/RobotSimulatorExample.swift +6 -6
- data/tracks/swift/exercises/robot-simulator/Tests/RobotSimulatorTests/RobotSimulatorTests.swift +4 -4
- metadata +7 -5
- data/tracks/java/exercises/difference-of-squares/src/main/java/Difference.java +0 -5
@@ -10,11 +10,11 @@ func == (lhs: Date, rhs: Date) -> Bool {
|
|
10
10
|
struct Date {
|
11
11
|
|
12
12
|
enum DateFormatingOption {
|
13
|
-
case
|
14
|
-
case
|
13
|
+
case yyyyMMdd
|
14
|
+
case yyyyMMddTHHmmss
|
15
15
|
}
|
16
16
|
|
17
|
-
var descriptionStyle: DateFormatingOption = .
|
17
|
+
var descriptionStyle: DateFormatingOption = .yyyyMMdd
|
18
18
|
|
19
19
|
fileprivate var tmDateBacking: tm = tm()
|
20
20
|
|
@@ -73,8 +73,8 @@ extension Date:CustomStringConvertible {
|
|
73
73
|
let dateTime = dateOnly + "T" + date[3] + ":" + date[4] + ":" + date[5]
|
74
74
|
|
75
75
|
switch descriptionStyle {
|
76
|
-
case .
|
77
|
-
case .
|
76
|
+
case .yyyyMMdd : return dateOnly
|
77
|
+
case .yyyyMMddTHHmmss : return dateTime
|
78
78
|
}
|
79
79
|
}
|
80
80
|
}
|
@@ -85,7 +85,7 @@ extension Date {
|
|
85
85
|
guard let date = Date.dateFromString(from) else { return nil }
|
86
86
|
tmDateBacking = date.tmDateBacking
|
87
87
|
if from.characters.count > 10 {
|
88
|
-
self.descriptionStyle = .
|
88
|
+
self.descriptionStyle = .yyyyMMddTHHmmss
|
89
89
|
}
|
90
90
|
}
|
91
91
|
|
@@ -68,8 +68,7 @@ enum HandRank {
|
|
68
68
|
toReturn[each] = (toReturn[each] ?? 0) + 1
|
69
69
|
}
|
70
70
|
}
|
71
|
-
let result = toReturn.map({ key, value in return (rank:key, count:value) }).sorted(by: {
|
72
|
-
(one, two) in
|
71
|
+
let result = toReturn.map({ key, value in return (rank:key, count:value) }).sorted(by: { (one, two) in
|
73
72
|
return one.count == two.count ? one.rank > two.rank : one.count > two.count
|
74
73
|
})
|
75
74
|
return result
|
@@ -79,7 +78,7 @@ enum HandRank {
|
|
79
78
|
let suits = inputHand.hand.map({ $0.suit })
|
80
79
|
let first = suits[0]
|
81
80
|
for each in suits {
|
82
|
-
guard first == each else { return (false, .
|
81
|
+
guard first == each else { return (false, .none) }
|
83
82
|
}
|
84
83
|
return (true, first)
|
85
84
|
}
|
@@ -88,7 +87,7 @@ enum HandRank {
|
|
88
87
|
let sorted = inputHand.hand.sorted(by: { $0.rank < $1.rank })
|
89
88
|
let first = sorted[0].rank.rawValue
|
90
89
|
for (index, each) in sorted.enumerated() {
|
91
|
-
|
90
|
+
guard each.rank.rawValue != index + first else { continue }
|
92
91
|
// checks for Ace as the lowest card
|
93
92
|
guard let aceIndex = inputHand.hand.index(where: { $0.rank.rawValue == 14 })else { return (false, .ace) }
|
94
93
|
var replacedAced = inputHand.hand.map({ $0.rank.rawValue })
|
@@ -98,7 +97,6 @@ enum HandRank {
|
|
98
97
|
for (idx, eachVal) in replacedAced.enumerated() {
|
99
98
|
guard eachVal == firstVal + idx else { return (false, .ace) }
|
100
99
|
}
|
101
|
-
}
|
102
100
|
}
|
103
101
|
let last = sorted[sorted.count - 1].rank
|
104
102
|
return (true, last)
|
@@ -318,16 +316,16 @@ enum Rank: Int {
|
|
318
316
|
}
|
319
317
|
|
320
318
|
enum Suit: String {
|
321
|
-
case
|
322
|
-
case
|
319
|
+
case spades, hearts, diamonds, clubs
|
320
|
+
case none
|
323
321
|
|
324
322
|
init?(_ suit: String) {
|
325
323
|
|
326
324
|
switch suit {
|
327
|
-
case "♡": self = .
|
328
|
-
case "♢": self = .
|
329
|
-
case "♧": self = .
|
330
|
-
case "♤": self = .
|
325
|
+
case "♡": self = .hearts
|
326
|
+
case "♢": self = .diamonds
|
327
|
+
case "♧": self = .clubs
|
328
|
+
case "♤": self = .spades
|
331
329
|
case _ : return nil
|
332
330
|
}
|
333
331
|
}
|
@@ -350,9 +348,9 @@ func < (lhs: Suit, rhs: Suit) -> Bool {
|
|
350
348
|
switch (lhs, rhs) {
|
351
349
|
case (_, _) where lhs == rhs:
|
352
350
|
return false
|
353
|
-
case (.
|
354
|
-
(.
|
355
|
-
(.
|
351
|
+
case (.spades, _),
|
352
|
+
(.hearts, .diamonds), (.hearts, .clubs),
|
353
|
+
(.diamonds, .clubs):
|
356
354
|
return false
|
357
355
|
default:
|
358
356
|
return true
|
@@ -10,9 +10,9 @@ struct SimulatedRobot {
|
|
10
10
|
}
|
11
11
|
|
12
12
|
enum Instruction: String {
|
13
|
-
case
|
14
|
-
case
|
15
|
-
case
|
13
|
+
case turnLeft = "L"
|
14
|
+
case turnRight = "R"
|
15
|
+
case advance = "A"
|
16
16
|
}
|
17
17
|
|
18
18
|
var bearing: Direction = .north
|
@@ -82,9 +82,9 @@ struct SimulatedRobot {
|
|
82
82
|
mutating func evaluate(_ commands: String) {
|
83
83
|
for instruction in instructions(commands) {
|
84
84
|
switch instruction {
|
85
|
-
case .
|
86
|
-
case .
|
87
|
-
case .
|
85
|
+
case .turnLeft: turnLeft()
|
86
|
+
case .turnRight: turnRight()
|
87
|
+
case .advance: advance()
|
88
88
|
}
|
89
89
|
}
|
90
90
|
}
|
data/tracks/swift/exercises/robot-simulator/Tests/RobotSimulatorTests/RobotSimulatorTests.swift
CHANGED
@@ -111,19 +111,19 @@ class RobotSimulatorTests: XCTestCase {
|
|
111
111
|
}
|
112
112
|
|
113
113
|
func testInstructionForTurningLeft() {
|
114
|
-
XCTAssertEqual([.
|
114
|
+
XCTAssertEqual([.turnLeft], robot.instructions("L"))
|
115
115
|
}
|
116
116
|
|
117
117
|
func testInstructionForTurningRight() {
|
118
|
-
XCTAssertEqual([.
|
118
|
+
XCTAssertEqual([.turnRight], robot.instructions("R"))
|
119
119
|
}
|
120
120
|
|
121
121
|
func testInstructionForAdvancing() {
|
122
|
-
XCTAssertEqual([.
|
122
|
+
XCTAssertEqual([.advance], robot.instructions("A"))
|
123
123
|
}
|
124
124
|
|
125
125
|
func testSeriesOfInstructions() {
|
126
|
-
XCTAssertEqual([.
|
126
|
+
XCTAssertEqual([.turnRight, .advance, .advance, .turnLeft], robot.instructions("RAAL"))
|
127
127
|
}
|
128
128
|
|
129
129
|
func testInstructRobot() {
|
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.8.
|
4
|
+
version: 2.0.8.34
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Katrina Owen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-03-
|
11
|
+
date: 2017-03-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubyzip
|
@@ -1837,12 +1837,14 @@ files:
|
|
1837
1837
|
- tracks/csharp/generators/Data/CanonicalDataCaseJsonConverter.cs
|
1838
1838
|
- tracks/csharp/generators/Data/CanonicalDataCasesJsonConverter.cs
|
1839
1839
|
- tracks/csharp/generators/Data/CanonicalDataParser.cs
|
1840
|
+
- tracks/csharp/generators/Data/CanonicalDataValue.cs
|
1840
1841
|
- tracks/csharp/generators/Data/ExerciseCollection.cs
|
1841
1842
|
- tracks/csharp/generators/Exercises/AcronymExercise.cs
|
1842
1843
|
- tracks/csharp/generators/Exercises/AtbashCipherExercise.cs
|
1843
1844
|
- tracks/csharp/generators/Exercises/BooleanExercise.cs
|
1844
1845
|
- tracks/csharp/generators/Exercises/EqualityExercise.cs
|
1845
1846
|
- tracks/csharp/generators/Exercises/Exercise.cs
|
1847
|
+
- tracks/csharp/generators/Exercises/FoodChainExercise.cs
|
1846
1848
|
- tracks/csharp/generators/Exercises/IsogramExercise.cs
|
1847
1849
|
- tracks/csharp/generators/Exercises/LeapExercise.cs
|
1848
1850
|
- tracks/csharp/generators/Exercises/LuhnExercise.cs
|
@@ -4285,9 +4287,9 @@ files:
|
|
4285
4287
|
- tracks/java/exercises/diamond/src/main/java/DiamondPrinter.java
|
4286
4288
|
- tracks/java/exercises/diamond/src/test/java/DiamondPrinterTest.java
|
4287
4289
|
- tracks/java/exercises/difference-of-squares/build.gradle
|
4288
|
-
- tracks/java/exercises/difference-of-squares/src/example/java/
|
4289
|
-
- tracks/java/exercises/difference-of-squares/src/main/java/
|
4290
|
-
- tracks/java/exercises/difference-of-squares/src/test/java/
|
4290
|
+
- tracks/java/exercises/difference-of-squares/src/example/java/DifferenceOfSquaresCalculator.java
|
4291
|
+
- tracks/java/exercises/difference-of-squares/src/main/java/DifferenceOfSquaresCalculator.java
|
4292
|
+
- tracks/java/exercises/difference-of-squares/src/test/java/DifferenceOfSquaresCalculatorTest.java
|
4291
4293
|
- tracks/java/exercises/etl/build.gradle
|
4292
4294
|
- tracks/java/exercises/etl/src/example/java/Etl.java
|
4293
4295
|
- tracks/java/exercises/etl/src/main/java/Etl.java
|