trackler 2.2.1.60 → 2.2.1.61
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/problem-specifications/exercises/beer-song/canonical-data.json +366 -31
- data/problem-specifications/exercises/beer-song/description.md +1 -1
- data/problem-specifications/exercises/pascals-triangle/canonical-data.json +19 -1
- data/problem-specifications/exercises/proverb/canonical-data.json +91 -0
- data/problem-specifications/exercises/proverb/description.md +5 -3
- data/tracks/c/README.md +0 -10
- data/tracks/c/config/maintainers.json +45 -0
- data/tracks/c/config.json +1 -2
- data/tracks/c/docs/TESTS.md +43 -44
- data/tracks/d/docs/INSTALLATION.md +1 -1
- data/tracks/delphi/exercises/beer-song/README.md +1 -1
- data/tracks/delphi/exercises/beer-song/inputdata.txt +3 -1
- data/tracks/delphi/exercises/beer-song/uBeerSongExample.pas +14 -5
- data/tracks/delphi/exercises/beer-song/uBeerSongTests.pas +58 -42
- data/tracks/delphi/exercises/nucleotide-count/README.md +2 -2
- data/tracks/ecmascript/config.json +14 -0
- data/tracks/ecmascript/exercises/house/README.md +146 -0
- data/tracks/ecmascript/exercises/house/example.js +62 -0
- data/tracks/ecmascript/exercises/house/house.spec.js +292 -0
- data/tracks/ecmascript/exercises/house/package.json +71 -0
- data/tracks/go/exercises/allergies/example.go +3 -2
- data/tracks/go/exercises/custom-set/cases_test.go +7 -2
- data/tracks/go/exercises/isogram/.meta/gen.go +55 -0
- data/tracks/go/exercises/isogram/cases_test.go +57 -0
- data/tracks/go/exercises/isogram/isogram_test.go +4 -20
- data/tracks/java/config.json +7 -1
- data/tracks/java/exercises/luhn/src/test/java/LuhnValidatorTest.java +6 -1
- data/tracks/javascript/.eslintignore +0 -3
- data/tracks/javascript/exercises/acronym/example.js +2 -1
- data/tracks/javascript/exercises/diamond/diamond.spec.js +3 -3
- data/tracks/javascript/exercises/diamond/example.js +2 -2
- data/tracks/javascript/exercises/sum-of-multiples/sum-of-multiples.spec.js +9 -9
- data/tracks/python/config.json +33 -11
- data/tracks/python/exercises/dominoes/README.md +28 -0
- data/tracks/python/exercises/dominoes/dominoes.py +2 -0
- data/tracks/python/exercises/dominoes/dominoes_test.py +114 -0
- data/tracks/python/exercises/dominoes/example.py +30 -0
- data/tracks/python/exercises/grains/grains_test.py +5 -7
- data/tracks/python/exercises/phone-number/example.py +7 -13
- data/tracks/python/exercises/phone-number/phone_number_test.py +15 -15
- data/tracks/python/exercises/poker/poker_test.py +93 -52
- data/tracks/python/exercises/react/README.md +30 -0
- data/tracks/python/exercises/react/example.py +65 -0
- data/tracks/python/exercises/react/react.py +17 -0
- data/tracks/python/exercises/react/react_test.py +136 -0
- data/tracks/rust/exercises/pascals-triangle/Cargo.toml +1 -1
- data/tracks/rust/exercises/pascals-triangle/tests/pascals-triangle.rs +56 -0
- data/tracks/swift/Package.swift +1 -1
- data/tracks/swift/config.json +11 -0
- data/tracks/swift/exercises/atbash-cipher/Sources/AtbashExample.swift +1 -1
- data/tracks/swift/exercises/bracket-push/Sources/BracketPushExample.swift +1 -1
- data/tracks/swift/exercises/collatz-conjecture/Package.swift +5 -0
- data/tracks/swift/exercises/collatz-conjecture/README.md +41 -0
- data/tracks/swift/exercises/collatz-conjecture/Sources/CollatzConjecture.swift +1 -0
- data/tracks/swift/exercises/collatz-conjecture/Sources/CollatzConjectureExample.swift +27 -0
- data/tracks/swift/exercises/collatz-conjecture/Tests/CollatzConjectureTests/CollatzConjectureTests.swift +40 -0
- data/tracks/swift/exercises/collatz-conjecture/Tests/LinuxMain.swift +6 -0
- data/tracks/swift/exercises/dominoes/Sources/DominoesExample.swift +3 -3
- data/tracks/swift/exercises/grains/Tests/GrainsTests/GrainsTests.swift +3 -3
- data/tracks/swift/exercises/kindergarten-garden/Sources/KindergartenGardenExample.swift +2 -2
- data/tracks/swift/exercises/meetup/Sources/MeetupExample.swift +1 -1
- data/tracks/swift/exercises/nucleotide-count/Sources/NucleotideCountExample.swift +2 -2
- data/tracks/swift/exercises/poker/Sources/PokerExample.swift +137 -131
- data/tracks/swift/exercises/rna-transcription/Sources/RnaTranscriptionExample.swift +2 -2
- data/tracks/swift/exercises/rotational-cipher/Sources/RotationalCipherExample.swift +12 -12
- metadata +24 -2
@@ -88,15 +88,15 @@ enum HandRank {
|
|
88
88
|
let first = sorted[0].rank.rawValue
|
89
89
|
for (index, each) in sorted.enumerated() {
|
90
90
|
guard each.rank.rawValue != index + first else { continue }
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
91
|
+
// checks for Ace as the lowest card
|
92
|
+
guard let aceIndex = inputHand.hand.index(where: { $0.rank.rawValue == 14 })else { return (false, .ace) }
|
93
|
+
var replacedAced = inputHand.hand.map({ $0.rank.rawValue })
|
94
|
+
replacedAced[aceIndex] = 1 // swaps ace value to lowest
|
95
|
+
replacedAced.sort()
|
96
|
+
let firstVal = replacedAced[0]
|
97
|
+
for (idx, eachVal) in replacedAced.enumerated() {
|
98
|
+
guard eachVal == firstVal + idx else { return (false, .ace) }
|
99
|
+
}
|
100
100
|
}
|
101
101
|
let last = sorted[sorted.count - 1].rank
|
102
102
|
return (true, last)
|
@@ -144,104 +144,103 @@ enum HandRank {
|
|
144
144
|
}
|
145
145
|
}
|
146
146
|
|
147
|
-
extension HandRank
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
147
|
+
extension HandRank: Equatable {
|
148
|
+
static func == (lhs: HandRank, rhs: HandRank) -> Bool {
|
149
|
+
switch (lhs, rhs) {
|
150
|
+
//straightFlush(Rank,Suit)
|
151
|
+
case (HandRank.straightFlush(let lRank, let lSuit), HandRank.straightFlush(let rRank, let rSuit)):
|
152
|
+
return lRank == rRank && lSuit == rSuit
|
153
|
+
//fourOfAKind(four:Rank)
|
154
|
+
case (HandRank.fourOfAKind(four: let lFour),
|
155
|
+
HandRank.fourOfAKind(four: let rFour)):
|
156
|
+
return lFour == rFour
|
157
|
+
//fullHouse(three:Rank)
|
158
|
+
case (HandRank.fullHouse(three: let lThree),
|
159
|
+
HandRank.fullHouse(three: let rThree)):
|
160
|
+
return lThree == rThree
|
161
|
+
//flush(Suit)
|
162
|
+
case (HandRank.flush(let lRank, let lSuit), HandRank.flush(let rRank, let rSuit)):
|
163
|
+
return lSuit == rSuit && lRank == rRank
|
164
|
+
//straight(high:Rank)
|
165
|
+
case (HandRank.straight(high: let lRank),
|
166
|
+
HandRank.straight(high: let rRank)):
|
167
|
+
return lRank == rRank
|
168
|
+
//threeOfAKind(three:Rank)
|
169
|
+
case (HandRank.threeOfAKind(three: let lRank),
|
170
|
+
HandRank.threeOfAKind(three: let rRank)):
|
171
|
+
return lRank == rRank
|
172
|
+
//twoPair(high:Rank,low:Rank, highCard:PlayingCard)
|
173
|
+
case (HandRank.twoPair(high: let lHigh, low: let lLow, highCard: let lCard), HandRank.twoPair(high: let rHigh, low: let rLow, highCard: let rCard)):
|
174
|
+
return lHigh == rHigh && lLow == rLow && lCard == rCard
|
175
|
+
//onePair(Rank)
|
176
|
+
case (HandRank.onePair(let lPairRank, card1: let lCard1, card2: let lCard2, card3: let lCard3),
|
177
|
+
HandRank.onePair(let rPairRank, card1: let rCard1, card2: let rCard2, card3: let rCard3)):
|
178
|
+
return lPairRank == rPairRank && lCard1 == rCard1 && lCard2 == rCard2 && lCard3 == rCard3
|
179
|
+
//highCard(PlayingCard)
|
180
|
+
case (HandRank.highCard(let lCard), HandRank.highCard(let rCard)):
|
181
|
+
return lCard == rCard
|
182
|
+
default:
|
183
|
+
return false
|
184
|
+
}
|
185
185
|
}
|
186
186
|
}
|
187
|
-
// swiftlint:disable:next cyclomatic_complexity
|
188
|
-
// swiftlint:disable:next empty_enum_arguments
|
189
|
-
func < (lhs: HandRank, rhs: HandRank) -> Bool {
|
190
|
-
switch (lhs, rhs) {
|
191
|
-
case (_, _) where lhs == rhs:
|
192
|
-
return false
|
193
|
-
|
194
|
-
//straightFlush(Rank,Suit)
|
195
|
-
case (HandRank.straightFlush(let lRank, let lSuit), HandRank.straightFlush(let rRank, let rSuit)):
|
196
|
-
return lRank == rRank ? lSuit < rSuit : lRank < rRank
|
197
|
-
|
198
|
-
//fourOfAKind(four:Rank)
|
199
|
-
case (HandRank.fourOfAKind(four: let lFour),
|
200
|
-
HandRank.fourOfAKind(four: let rFour)):
|
201
|
-
return lFour < rFour
|
202
|
-
|
203
|
-
//fullHouse(three:Rank)
|
204
|
-
case (HandRank.fullHouse(three: let lRank),
|
205
|
-
HandRank.fullHouse(three: let rRank)):
|
206
|
-
return lRank < rRank
|
207
|
-
|
208
|
-
//flush(Suit)
|
209
|
-
case (HandRank.flush(let lRank, let lSuit), HandRank.flush(let rRank, let rSuit)):
|
210
|
-
return lRank == rRank ? lSuit < rSuit : lRank < rRank
|
211
|
-
|
212
|
-
//straight(high:Rank)
|
213
|
-
case (HandRank.straight(high: let lRank),
|
214
|
-
HandRank.straight(high: let rRank)):
|
215
|
-
return lRank < rRank
|
216
|
-
|
217
|
-
//threeOfAKind(three:Rank)
|
218
|
-
case (HandRank.threeOfAKind(three: let lRank),
|
219
|
-
HandRank.threeOfAKind(three: let rRank)):
|
220
|
-
return lRank < rRank
|
221
|
-
|
222
|
-
//twoPair(high:Rank,low:Rank, highCard:PlayingCard)
|
223
|
-
case (HandRank.twoPair(high: let lHigh, low: let lLow, highCard: let lCard), HandRank.twoPair(high: let rHigh, low: let rLow, highCard: let rCard)):
|
224
|
-
if lHigh == rHigh && lLow == rLow {
|
225
|
-
return lCard < rCard
|
226
|
-
} else {
|
227
|
-
return lHigh < rHigh
|
228
|
-
}
|
229
187
|
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
188
|
+
extension HandRank: Comparable {
|
189
|
+
static func < (lhs: HandRank, rhs: HandRank) -> Bool {
|
190
|
+
switch (lhs, rhs) {
|
191
|
+
case (_, _) where lhs == rhs:
|
192
|
+
return false
|
193
|
+
|
194
|
+
//straightFlush(Rank,Suit)
|
195
|
+
case (HandRank.straightFlush(let lRank, let lSuit), HandRank.straightFlush(let rRank, let rSuit)):
|
196
|
+
return lRank == rRank ? lSuit < rSuit : lRank < rRank
|
197
|
+
|
198
|
+
//fourOfAKind(four:Rank)
|
199
|
+
case (HandRank.fourOfAKind(four: let lFour),
|
200
|
+
HandRank.fourOfAKind(four: let rFour)):
|
201
|
+
return lFour < rFour
|
202
|
+
|
203
|
+
//fullHouse(three:Rank)
|
204
|
+
case (HandRank.fullHouse(three: let lRank),
|
205
|
+
HandRank.fullHouse(three: let rRank)):
|
206
|
+
return lRank < rRank
|
207
|
+
|
208
|
+
//flush(Suit)
|
209
|
+
case (HandRank.flush(let lRank, let lSuit), HandRank.flush(let rRank, let rSuit)):
|
210
|
+
return lRank == rRank ? lSuit < rSuit : lRank < rRank
|
211
|
+
|
212
|
+
//straight(high:Rank)
|
213
|
+
case (HandRank.straight(high: let lRank),
|
214
|
+
HandRank.straight(high: let rRank)):
|
215
|
+
return lRank < rRank
|
216
|
+
|
217
|
+
//threeOfAKind(three:Rank)
|
218
|
+
case (HandRank.threeOfAKind(three: let lRank),
|
219
|
+
HandRank.threeOfAKind(three: let rRank)):
|
220
|
+
return lRank < rRank
|
221
|
+
|
222
|
+
//twoPair(high:Rank,low:Rank, highCard:PlayingCard)
|
223
|
+
case (HandRank.twoPair(high: let lHigh, low: let lLow, highCard: let lCard), HandRank.twoPair(high: let rHigh, low: let rLow, highCard: let rCard)):
|
224
|
+
if lHigh == rHigh && lLow == rLow {
|
225
|
+
return lCard < rCard
|
226
|
+
} else {
|
227
|
+
return lHigh < rHigh
|
228
|
+
}
|
234
229
|
|
235
|
-
|
236
|
-
|
237
|
-
|
230
|
+
//onePair(Rank)
|
231
|
+
case (HandRank.onePair(let lPairRank, card1: let lCard1, card2: let lCard2, card3: let lCard3),
|
232
|
+
HandRank.onePair(let rPairRank, card1: let rCard1, card2: let rCard2, card3: let rCard3)):
|
233
|
+
return lPairRank == rPairRank ? (lCard1 == rCard1 ? (lCard2 == rCard2 ? lCard3 < rCard3 :lCard2 < rCard2):lCard1 < rCard1):lPairRank < rPairRank
|
238
234
|
|
239
|
-
|
240
|
-
|
241
|
-
|
235
|
+
//highCard(PlayingCard)
|
236
|
+
case (HandRank.highCard(let lCard), HandRank.highCard(let rCard)):
|
237
|
+
return lCard < rCard
|
242
238
|
|
239
|
+
default:
|
240
|
+
return lhs.order() < rhs.order()
|
241
|
+
}
|
242
|
+
}
|
243
243
|
}
|
244
|
-
// swiftlint:enable:next empty_enum_arguments
|
245
244
|
|
246
245
|
struct PokerHand {
|
247
246
|
let hand: [PlayingCard]
|
@@ -262,15 +261,19 @@ struct PokerHand {
|
|
262
261
|
if handParsed.count == 5 { self.hand = handParsed } else { return nil }
|
263
262
|
}
|
264
263
|
}
|
265
|
-
extension PokerHand : Equatable, Comparable {}
|
266
264
|
|
267
|
-
|
268
|
-
|
265
|
+
extension PokerHand: Equatable {
|
266
|
+
static func == (lhs: PokerHand, rhs: PokerHand) -> Bool {
|
267
|
+
return lhs.hand == rhs.hand
|
268
|
+
}
|
269
269
|
}
|
270
270
|
|
271
|
-
|
272
|
-
|
271
|
+
extension PokerHand: Comparable {
|
272
|
+
static func < (lhs: PokerHand, rhs: PokerHand) -> Bool {
|
273
|
+
return lhs.handRank() < rhs.handRank()
|
274
|
+
}
|
273
275
|
}
|
276
|
+
|
274
277
|
struct PlayingCard {
|
275
278
|
let rank: Rank
|
276
279
|
let suit: Suit
|
@@ -290,15 +293,18 @@ struct PlayingCard {
|
|
290
293
|
}
|
291
294
|
}
|
292
295
|
|
293
|
-
extension PlayingCard
|
294
|
-
|
295
|
-
|
296
|
-
|
296
|
+
extension PlayingCard: Equatable {
|
297
|
+
static func == (lhs: PlayingCard, rhs: PlayingCard) -> Bool {
|
298
|
+
return lhs.rank == rhs.rank && lhs.suit == rhs.suit
|
299
|
+
}
|
297
300
|
}
|
298
301
|
|
299
|
-
|
300
|
-
|
302
|
+
extension PlayingCard: Comparable {
|
303
|
+
static func < (lhs: PlayingCard, rhs: PlayingCard) -> Bool {
|
304
|
+
return lhs.rank == rhs.rank ? lhs.suit < rhs.suit : lhs.rank < rhs.rank
|
305
|
+
}
|
301
306
|
}
|
307
|
+
|
302
308
|
enum Rank: Int {
|
303
309
|
case two = 2
|
304
310
|
case three, four, five, six, seven, eight, nine, ten
|
@@ -333,28 +339,28 @@ enum Suit: String {
|
|
333
339
|
}
|
334
340
|
}
|
335
341
|
|
336
|
-
extension Rank
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
342
|
+
extension Rank: Comparable {
|
343
|
+
static func < (lhs: Rank, rhs: Rank) -> Bool {
|
344
|
+
switch (lhs, rhs) {
|
345
|
+
case (_, _) where lhs == rhs:
|
346
|
+
return false
|
347
|
+
default:
|
348
|
+
return lhs.rawValue < rhs.rawValue
|
349
|
+
}
|
344
350
|
}
|
345
351
|
}
|
346
352
|
|
347
|
-
extension Suit: Comparable {
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
353
|
+
extension Suit: Comparable {
|
354
|
+
static func < (lhs: Suit, rhs: Suit) -> Bool {
|
355
|
+
switch (lhs, rhs) {
|
356
|
+
case (_, _) where lhs == rhs:
|
357
|
+
return false
|
358
|
+
case (.spades, _),
|
359
|
+
(.hearts, .diamonds), (.hearts, .clubs),
|
360
|
+
(.diamonds, .clubs):
|
361
|
+
return false
|
362
|
+
default:
|
363
|
+
return true
|
364
|
+
}
|
359
365
|
}
|
360
366
|
}
|
@@ -13,9 +13,9 @@ struct Nucleotide {
|
|
13
13
|
self.value = nucleotide
|
14
14
|
}
|
15
15
|
|
16
|
-
private let dnaToRna: [Character:String] = [ "G": "C", "C": "G", "T": "A", "A": "U" ]
|
16
|
+
private let dnaToRna: [Character: String] = [ "G": "C", "C": "G", "T": "A", "A": "U" ]
|
17
17
|
|
18
|
-
private func transcribe(_ dict: [Character
|
18
|
+
private func transcribe(_ dict: [Character: String]) throws -> String {
|
19
19
|
var tempText = ""
|
20
20
|
for each in self.value.characters {
|
21
21
|
if dict[each] == nil {
|
@@ -7,18 +7,18 @@ struct RotationalCipher {
|
|
7
7
|
target.unicodeScalars.forEach { unicode in
|
8
8
|
|
9
9
|
switch unicode.value {
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
10
|
+
case 65...90: // A to Z
|
11
|
+
var scalar = unicode.value + UInt32(ROT)
|
12
|
+
if scalar > 90 { scalar -= 26 }
|
13
|
+
result.append(Character(UnicodeScalar(scalar)!))
|
14
|
+
|
15
|
+
case 97...122: // a to z
|
16
|
+
var scalar = unicode.value + UInt32(ROT)
|
17
|
+
if scalar > 122 { scalar -= 26 }
|
18
|
+
result.append(Character(UnicodeScalar(scalar)!))
|
19
|
+
|
20
|
+
default:
|
21
|
+
result.append(Character(unicode))
|
22
22
|
}
|
23
23
|
|
24
24
|
}
|
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.2.1.
|
4
|
+
version: 2.2.1.61
|
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-11-
|
11
|
+
date: 2017-11-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubyzip
|
@@ -454,6 +454,7 @@ files:
|
|
454
454
|
- problem-specifications/exercises/prime-factors/metadata.yml
|
455
455
|
- problem-specifications/exercises/protein-translation/description.md
|
456
456
|
- problem-specifications/exercises/protein-translation/metadata.yml
|
457
|
+
- problem-specifications/exercises/proverb/canonical-data.json
|
457
458
|
- problem-specifications/exercises/proverb/description.md
|
458
459
|
- problem-specifications/exercises/proverb/metadata.yml
|
459
460
|
- problem-specifications/exercises/pythagorean-triplet/description.md
|
@@ -652,6 +653,7 @@ files:
|
|
652
653
|
- tracks/c/bin/verify-indent
|
653
654
|
- tracks/c/config.json
|
654
655
|
- tracks/c/config/exercise_readme.go.tmpl
|
656
|
+
- tracks/c/config/maintainers.json
|
655
657
|
- tracks/c/docs/ABOUT.md
|
656
658
|
- tracks/c/docs/CONTRIBUTING.md
|
657
659
|
- tracks/c/docs/C_STYLE_GUIDE.md
|
@@ -3464,6 +3466,10 @@ files:
|
|
3464
3466
|
- tracks/ecmascript/exercises/hexadecimal/example.js
|
3465
3467
|
- tracks/ecmascript/exercises/hexadecimal/hexadecimal.spec.js
|
3466
3468
|
- tracks/ecmascript/exercises/hexadecimal/package.json
|
3469
|
+
- tracks/ecmascript/exercises/house/README.md
|
3470
|
+
- tracks/ecmascript/exercises/house/example.js
|
3471
|
+
- tracks/ecmascript/exercises/house/house.spec.js
|
3472
|
+
- tracks/ecmascript/exercises/house/package.json
|
3467
3473
|
- tracks/ecmascript/exercises/isbn-verifier/README.md
|
3468
3474
|
- tracks/ecmascript/exercises/isbn-verifier/example.js
|
3469
3475
|
- tracks/ecmascript/exercises/isbn-verifier/isbn-verifier.spec.js
|
@@ -5774,7 +5780,9 @@ files:
|
|
5774
5780
|
- tracks/go/exercises/isbn-verifier/README.md
|
5775
5781
|
- tracks/go/exercises/isbn-verifier/example.go
|
5776
5782
|
- tracks/go/exercises/isbn-verifier/isbn_verifier_test.go
|
5783
|
+
- tracks/go/exercises/isogram/.meta/gen.go
|
5777
5784
|
- tracks/go/exercises/isogram/README.md
|
5785
|
+
- tracks/go/exercises/isogram/cases_test.go
|
5778
5786
|
- tracks/go/exercises/isogram/example.go
|
5779
5787
|
- tracks/go/exercises/isogram/isogram_test.go
|
5780
5788
|
- tracks/go/exercises/kindergarten-garden/README.md
|
@@ -10564,6 +10572,10 @@ files:
|
|
10564
10572
|
- tracks/python/exercises/diffie-hellman/diffie_hellman.py
|
10565
10573
|
- tracks/python/exercises/diffie-hellman/diffie_hellman_test.py
|
10566
10574
|
- tracks/python/exercises/diffie-hellman/example.py
|
10575
|
+
- tracks/python/exercises/dominoes/README.md
|
10576
|
+
- tracks/python/exercises/dominoes/dominoes.py
|
10577
|
+
- tracks/python/exercises/dominoes/dominoes_test.py
|
10578
|
+
- tracks/python/exercises/dominoes/example.py
|
10567
10579
|
- tracks/python/exercises/error-handling/.meta/hints.md
|
10568
10580
|
- tracks/python/exercises/error-handling/README.md
|
10569
10581
|
- tracks/python/exercises/error-handling/error_handling.py
|
@@ -10741,6 +10753,10 @@ files:
|
|
10741
10753
|
- tracks/python/exercises/raindrops/example.py
|
10742
10754
|
- tracks/python/exercises/raindrops/raindrops.py
|
10743
10755
|
- tracks/python/exercises/raindrops/raindrops_test.py
|
10756
|
+
- tracks/python/exercises/react/README.md
|
10757
|
+
- tracks/python/exercises/react/example.py
|
10758
|
+
- tracks/python/exercises/react/react.py
|
10759
|
+
- tracks/python/exercises/react/react_test.py
|
10744
10760
|
- tracks/python/exercises/rectangles/README.md
|
10745
10761
|
- tracks/python/exercises/rectangles/example.py
|
10746
10762
|
- tracks/python/exercises/rectangles/rectangles.py
|
@@ -13053,6 +13069,12 @@ files:
|
|
13053
13069
|
- tracks/swift/exercises/clock/Sources/ClockExample.swift
|
13054
13070
|
- tracks/swift/exercises/clock/Tests/ClockTests/ClockTests.swift
|
13055
13071
|
- tracks/swift/exercises/clock/Tests/LinuxMain.swift
|
13072
|
+
- tracks/swift/exercises/collatz-conjecture/Package.swift
|
13073
|
+
- tracks/swift/exercises/collatz-conjecture/README.md
|
13074
|
+
- tracks/swift/exercises/collatz-conjecture/Sources/CollatzConjecture.swift
|
13075
|
+
- tracks/swift/exercises/collatz-conjecture/Sources/CollatzConjectureExample.swift
|
13076
|
+
- tracks/swift/exercises/collatz-conjecture/Tests/CollatzConjectureTests/CollatzConjectureTests.swift
|
13077
|
+
- tracks/swift/exercises/collatz-conjecture/Tests/LinuxMain.swift
|
13056
13078
|
- tracks/swift/exercises/crypto-square/.gitignore
|
13057
13079
|
- tracks/swift/exercises/crypto-square/Package.swift
|
13058
13080
|
- tracks/swift/exercises/crypto-square/README.md
|