trackler 2.2.1.6 → 2.2.1.7
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/c/README.md +27 -0
- data/tracks/coffeescript/config.json +1 -0
- data/tracks/coldfusion/config.json +1 -1
- data/tracks/crystal/README.md +27 -7
- data/tracks/crystal/config/maintainers.json +25 -0
- data/tracks/crystal/generator/spec/remote_data_file_spec.cr +1 -1
- data/tracks/crystal/generator/src/exercise_generator.cr +1 -1
- data/tracks/crystal/generator/src/remote_data_file.cr +2 -2
- data/tracks/csharp/config.json +1 -2
- data/tracks/csharp/config/maintainers.json +55 -0
- data/tracks/csharp/docs/EXERCISE_README_INSERT.md +1 -1
- data/tracks/csharp/exercises/accumulate/README.md +1 -1
- data/tracks/csharp/exercises/acronym/README.md +1 -1
- data/tracks/csharp/exercises/all-your-base/README.md +1 -1
- data/tracks/csharp/exercises/allergies/README.md +1 -1
- data/tracks/csharp/exercises/alphametics/README.md +1 -1
- data/tracks/csharp/exercises/anagram/README.md +1 -1
- data/tracks/csharp/exercises/atbash-cipher/README.md +1 -1
- data/tracks/csharp/exercises/bank-account/README.md +1 -1
- data/tracks/csharp/exercises/beer-song/README.md +1 -1
- data/tracks/csharp/exercises/binary-search-tree/README.md +1 -1
- data/tracks/csharp/exercises/binary-search/README.md +1 -1
- data/tracks/csharp/exercises/bob/README.md +1 -1
- data/tracks/csharp/exercises/book-store/README.md +1 -1
- data/tracks/csharp/exercises/bowling/README.md +1 -1
- data/tracks/csharp/exercises/bracket-push/README.md +1 -1
- data/tracks/csharp/exercises/change/README.md +1 -1
- data/tracks/csharp/exercises/circular-buffer/README.md +1 -1
- data/tracks/csharp/exercises/clock/README.md +1 -1
- data/tracks/csharp/exercises/connect/README.md +1 -1
- data/tracks/csharp/exercises/crypto-square/README.md +1 -1
- data/tracks/csharp/exercises/custom-set/README.md +1 -1
- data/tracks/csharp/exercises/diamond/README.md +1 -1
- data/tracks/csharp/exercises/difference-of-squares/README.md +1 -1
- data/tracks/csharp/exercises/diffie-hellman/README.md +1 -1
- data/tracks/csharp/exercises/dominoes/README.md +1 -1
- data/tracks/csharp/exercises/dot-dsl/README.md +1 -1
- data/tracks/csharp/exercises/error-handling/README.md +1 -1
- data/tracks/csharp/exercises/etl/README.md +1 -1
- data/tracks/csharp/exercises/flatten-array/README.md +1 -1
- data/tracks/csharp/exercises/food-chain/README.md +1 -1
- data/tracks/csharp/exercises/forth/README.md +1 -1
- data/tracks/csharp/exercises/gigasecond/README.md +1 -1
- data/tracks/csharp/exercises/go-counting/README.md +1 -1
- data/tracks/csharp/exercises/grade-school/README.md +1 -1
- data/tracks/csharp/exercises/grains/README.md +1 -1
- data/tracks/csharp/exercises/grep/README.md +1 -1
- data/tracks/csharp/exercises/hamming/README.md +1 -1
- data/tracks/csharp/exercises/hangman/README.md +1 -1
- data/tracks/csharp/exercises/hello-world/README.md +1 -1
- data/tracks/csharp/exercises/house/README.md +1 -1
- data/tracks/csharp/exercises/isogram/README.md +1 -1
- data/tracks/csharp/exercises/kindergarten-garden/README.md +1 -1
- data/tracks/csharp/exercises/largest-series-product/README.md +1 -1
- data/tracks/csharp/exercises/leap/README.md +1 -1
- data/tracks/csharp/exercises/ledger/README.md +1 -1
- data/tracks/csharp/exercises/linked-list/README.md +1 -1
- data/tracks/csharp/exercises/list-ops/README.md +1 -1
- data/tracks/csharp/exercises/luhn/README.md +1 -1
- data/tracks/csharp/exercises/markdown/README.md +1 -1
- data/tracks/csharp/exercises/matrix/README.md +1 -1
- data/tracks/csharp/exercises/meetup/README.md +1 -1
- data/tracks/csharp/exercises/minesweeper/README.md +1 -1
- data/tracks/csharp/exercises/nth-prime/README.md +1 -1
- data/tracks/csharp/exercises/nucleotide-count/README.md +1 -1
- data/tracks/csharp/exercises/ocr-numbers/README.md +1 -1
- data/tracks/csharp/exercises/palindrome-products/README.md +1 -1
- data/tracks/csharp/exercises/pangram/README.md +1 -1
- data/tracks/csharp/exercises/parallel-letter-frequency/README.md +1 -1
- data/tracks/csharp/exercises/pascals-triangle/README.md +1 -1
- data/tracks/csharp/exercises/perfect-numbers/README.md +1 -1
- data/tracks/csharp/exercises/phone-number/README.md +1 -1
- data/tracks/csharp/exercises/pig-latin/README.md +1 -1
- data/tracks/csharp/exercises/poker/README.md +1 -1
- data/tracks/csharp/exercises/pov/README.md +1 -1
- data/tracks/csharp/exercises/prime-factors/README.md +1 -1
- data/tracks/csharp/exercises/protein-translation/README.md +1 -1
- data/tracks/csharp/exercises/proverb/README.md +1 -1
- data/tracks/csharp/exercises/pythagorean-triplet/README.md +1 -1
- data/tracks/csharp/exercises/queen-attack/README.md +1 -1
- data/tracks/csharp/exercises/rail-fence-cipher/README.md +1 -1
- data/tracks/csharp/exercises/raindrops/README.md +1 -1
- data/tracks/csharp/exercises/react/README.md +1 -1
- data/tracks/csharp/exercises/rectangles/README.md +1 -1
- data/tracks/csharp/exercises/rna-transcription/README.md +1 -1
- data/tracks/csharp/exercises/robot-name/README.md +1 -1
- data/tracks/csharp/exercises/robot-simulator/README.md +1 -1
- data/tracks/csharp/exercises/roman-numerals/README.md +1 -1
- data/tracks/csharp/exercises/rotational-cipher/README.md +1 -1
- data/tracks/csharp/exercises/run-length-encoding/README.md +1 -1
- data/tracks/csharp/exercises/saddle-points/README.md +1 -1
- data/tracks/csharp/exercises/say/README.md +1 -1
- data/tracks/csharp/exercises/scale-generator/README.md +1 -1
- data/tracks/csharp/exercises/scrabble-score/README.md +1 -1
- data/tracks/csharp/exercises/secret-handshake/README.md +1 -1
- data/tracks/csharp/exercises/series/README.md +1 -1
- data/tracks/csharp/exercises/sgf-parsing/README.md +1 -1
- data/tracks/csharp/exercises/sieve/README.md +1 -1
- data/tracks/csharp/exercises/simple-cipher/README.md +1 -1
- data/tracks/csharp/exercises/simple-linked-list/README.md +1 -1
- data/tracks/csharp/exercises/space-age/README.md +1 -1
- data/tracks/csharp/exercises/strain/README.md +1 -1
- data/tracks/csharp/exercises/sublist/README.md +1 -1
- data/tracks/csharp/exercises/sum-of-multiples/README.md +1 -1
- data/tracks/csharp/exercises/tournament/README.md +1 -1
- data/tracks/csharp/exercises/transpose/README.md +1 -1
- data/tracks/csharp/exercises/tree-building/README.md +1 -1
- data/tracks/csharp/exercises/triangle/README.md +1 -1
- data/tracks/csharp/exercises/twelve-days/README.md +1 -1
- data/tracks/csharp/exercises/two-bucket/README.md +1 -1
- data/tracks/csharp/exercises/variable-length-quantity/README.md +1 -1
- data/tracks/csharp/exercises/word-count/README.md +1 -1
- data/tracks/csharp/exercises/word-search/README.md +1 -1
- data/tracks/csharp/exercises/wordy/README.md +1 -1
- data/tracks/csharp/exercises/zebra-puzzle/README.md +1 -1
- data/tracks/csharp/exercises/zipper/README.md +1 -1
- data/tracks/d/config.json +1 -0
- data/tracks/dart/config/maintainers.json +15 -0
- data/tracks/ecmascript/config.json +76 -193
- data/tracks/ecmascript/exercises/twelve-days/README.md +66 -0
- data/tracks/ecmascript/exercises/twelve-days/example.js +53 -0
- data/tracks/ecmascript/exercises/twelve-days/package.json +68 -0
- data/tracks/ecmascript/exercises/twelve-days/twelve-days.spec.js +106 -0
- data/tracks/factor/config.json +1 -1
- data/tracks/fsharp/config/maintainers.json +35 -0
- data/tracks/go/config.json +82 -38
- data/tracks/go/config/maintainers.json +13 -22
- data/tracks/go/exercises/bowling/cases_test.go +11 -11
- data/tracks/go/exercises/forth/cases_test.go +7 -7
- data/tracks/go/exercises/forth/example.go +1 -1
- data/tracks/go/exercises/forth/forth_test.go +1 -1
- data/tracks/go/exercises/hamming/cases_test.go +7 -7
- data/tracks/go/exercises/hamming/hamming.go +1 -1
- data/tracks/go/exercises/phone-number/cases_test.go +2 -7
- data/tracks/go/exercises/phone-number/example.go +1 -1
- data/tracks/go/exercises/phone-number/phone_number_test.go +1 -1
- data/tracks/go/exercises/rna-transcription/cases_test.go +7 -7
- data/tracks/go/exercises/secret-handshake/cases_test.go +1 -1
- data/tracks/groovy/config.json +1 -0
- data/tracks/haxe/config.json +1 -1
- data/tracks/java/.travis.yml +1 -1
- data/tracks/java/config/maintainers.json +20 -0
- data/tracks/java/exercises/custom-set/src/test/java/CustomSetTest.java +1 -1
- data/tracks/java/exercises/word-count/src/test/java/WordCountTest.java +1 -1
- data/tracks/javascript/config.json +229 -247
- data/tracks/kotlin/config/maintainers.json +35 -0
- data/tracks/lfe/config/maintainers.json +15 -0
- data/tracks/lisp/config/maintainers.json +55 -0
- data/tracks/ocaml/config.json +0 -5
- data/tracks/ocaml/config/maintainers.json +25 -0
- data/tracks/perl5/config/maintainers.json +25 -0
- data/tracks/perl6/config/maintainers.json +25 -0
- data/tracks/pony/config/maintainers.json +15 -0
- data/tracks/pony/exercises/atbash-cipher/example.pony +2 -2
- data/tracks/pony/exercises/beer-song/example.pony +1 -1
- data/tracks/pony/exercises/bob/example.pony +1 -1
- data/tracks/pony/exercises/difference-of-squares/example.pony +1 -1
- data/tracks/pony/exercises/hamming/test.pony +12 -12
- data/tracks/pony/exercises/pascals-triangle/example.pony +1 -1
- data/tracks/pony/exercises/pascals-triangle/test.pony +6 -6
- data/tracks/pony/exercises/rna-transcription/test.pony +3 -3
- data/tracks/pony/exercises/roman-numerals/test.pony +3 -3
- data/tracks/purescript/config/maintainers.json +35 -0
- data/tracks/r/config.json +140 -81
- data/tracks/r/exercises/collatz-conjecture/README.md +43 -0
- data/tracks/r/exercises/collatz-conjecture/collatz-conjecture.R +3 -0
- data/tracks/r/exercises/collatz-conjecture/example.R +13 -0
- data/tracks/r/exercises/collatz-conjecture/test_collatz-conjecture.R +28 -0
- data/tracks/r/exercises/nucleotide-count/README.md +43 -0
- data/tracks/r/exercises/nucleotide-count/example.R +17 -0
- data/tracks/r/exercises/nucleotide-count/nucleotide-count.R +3 -0
- data/tracks/r/exercises/nucleotide-count/test_nucleotide-count.R +51 -0
- data/tracks/r/exercises/pangram/README.md +25 -0
- data/tracks/r/exercises/pangram/example.R +14 -0
- data/tracks/r/exercises/pangram/pangram.R +3 -0
- data/tracks/r/exercises/pangram/test_pangram.R +42 -0
- data/tracks/r/exercises/triangle/.meta/hints.md +4 -0
- data/tracks/r/exercises/triangle/README.md +41 -0
- data/tracks/r/exercises/triangle/example.R +23 -0
- data/tracks/r/exercises/triangle/test_triangle.R +72 -0
- data/tracks/r/exercises/triangle/triangle.R +3 -0
- data/tracks/rust/config.json +32 -1
- data/tracks/rust/config/maintainers.json +1 -6
- data/tracks/rust/exercises/acronym/tests/acronym.rs +1 -1
- data/tracks/rust/exercises/beer-song/example.rs +1 -1
- data/tracks/rust/exercises/circular-buffer/example.rs +8 -10
- data/tracks/rust/exercises/circular-buffer/tests/circular-buffer.rs +2 -2
- data/tracks/rust/exercises/clock/.meta/hints.md +10 -0
- data/tracks/rust/exercises/clock/Cargo.lock +4 -0
- data/tracks/rust/exercises/clock/Cargo.toml +6 -0
- data/tracks/rust/exercises/clock/README.md +57 -0
- data/tracks/rust/exercises/clock/example.rs +32 -0
- data/tracks/{ocaml/exercises/point-mutations/example.ml → rust/exercises/clock/src/lib.rs} +0 -0
- data/tracks/rust/exercises/clock/tests/clock.rs +331 -0
- data/tracks/rust/exercises/custom-set/tests/custom-set.rs +3 -3
- data/tracks/rust/exercises/dominoes/example.rs +1 -1
- data/tracks/rust/exercises/grade-school/example.rs +1 -1
- data/tracks/rust/exercises/hamming/example.rs +1 -1
- data/tracks/rust/exercises/nth-prime/Cargo.lock +4 -0
- data/tracks/rust/exercises/nth-prime/Cargo.toml +6 -0
- data/tracks/rust/exercises/nth-prime/README.md +47 -0
- data/tracks/rust/exercises/nth-prime/example.rs +28 -0
- data/tracks/rust/exercises/nth-prime/src/lib.rs +0 -0
- data/tracks/rust/exercises/nth-prime/tests/nth-prime.rs +30 -0
- data/tracks/rust/exercises/parallel-letter-frequency/example.rs +1 -1
- data/tracks/rust/exercises/phone-number/example.rs +1 -1
- data/tracks/rust/exercises/pythagorean-triplet/Cargo.lock +4 -0
- data/tracks/rust/exercises/pythagorean-triplet/Cargo.toml +6 -0
- data/tracks/rust/exercises/pythagorean-triplet/README.md +56 -0
- data/tracks/rust/exercises/pythagorean-triplet/example.rs +11 -0
- data/tracks/rust/exercises/pythagorean-triplet/src/lib.rs +0 -0
- data/tracks/rust/exercises/pythagorean-triplet/tests/pythagorean-triplet.rs +6 -0
- data/tracks/rust/exercises/rna-transcription/tests/rna-transcription.rs +1 -1
- data/tracks/rust/exercises/robot-name/tests/robot-name.rs +2 -2
- data/tracks/rust/exercises/say/example.rs +4 -4
- data/tracks/rust/exercises/say/tests/say.rs +4 -4
- data/tracks/rust/exercises/tournament/example.rs +2 -2
- data/tracks/scala/config/maintainers.json +10 -6
- data/tracks/scala/exercises/bracket-push/example.scala +2 -2
- data/tracks/scala/exercises/bracket-push/src/test/scala/BracketPushTest.scala +74 -0
- data/tracks/scala/exercises/crypto-square/example.scala +9 -9
- data/tracks/scala/exercises/crypto-square/src/test/scala/CryptoSquareTest.scala +33 -41
- data/tracks/scala/testgen/src/main/scala/BracketPushTestGenerator.scala +9 -38
- data/tracks/scala/testgen/src/main/scala/CryptoSquareTestGenerator.scala +17 -0
- data/tracks/sml/config.json +1 -1
- data/tracks/swift/config/maintainers.json +35 -0
- data/tracks/swift/docs/ABOUT.md +15 -5
- data/tracks/vimscript/config/maintainers.json +35 -0
- metadata +58 -8
- data/tracks/ocaml/exercises/point-mutations/Makefile +0 -8
- data/tracks/ocaml/exercises/point-mutations/README.md +0 -81
- data/tracks/ocaml/exercises/point-mutations/dna.mli +0 -6
- data/tracks/scala/exercises/bracket-push/src/test/scala/BracketsTest.scala +0 -68
- data/tracks/scala/exercises/crypto-square/src/main/scala/CryptoSquare.scala +0 -11
@@ -0,0 +1,74 @@
|
|
1
|
+
import org.scalatest.{Matchers, FunSuite}
|
2
|
+
|
3
|
+
/** @version 1.1.0 */
|
4
|
+
class BracketPushTest extends FunSuite with Matchers {
|
5
|
+
|
6
|
+
test("paired square brackets") {
|
7
|
+
BracketPush.isPaired("[]") should be (true)
|
8
|
+
}
|
9
|
+
|
10
|
+
test("empty string") {
|
11
|
+
pending
|
12
|
+
BracketPush.isPaired("") should be (true)
|
13
|
+
}
|
14
|
+
|
15
|
+
test("unpaired brackets") {
|
16
|
+
pending
|
17
|
+
BracketPush.isPaired("[[") should be (false)
|
18
|
+
}
|
19
|
+
|
20
|
+
test("wrong ordered brackets") {
|
21
|
+
pending
|
22
|
+
BracketPush.isPaired("}{") should be (false)
|
23
|
+
}
|
24
|
+
|
25
|
+
test("wrong closing bracket") {
|
26
|
+
pending
|
27
|
+
BracketPush.isPaired("{]") should be (false)
|
28
|
+
}
|
29
|
+
|
30
|
+
test("paired with whitespace") {
|
31
|
+
pending
|
32
|
+
BracketPush.isPaired("{ }") should be (true)
|
33
|
+
}
|
34
|
+
|
35
|
+
test("simple nested brackets") {
|
36
|
+
pending
|
37
|
+
BracketPush.isPaired("{[]}") should be (true)
|
38
|
+
}
|
39
|
+
|
40
|
+
test("several paired brackets") {
|
41
|
+
pending
|
42
|
+
BracketPush.isPaired("{}[]") should be (true)
|
43
|
+
}
|
44
|
+
|
45
|
+
test("paired and nested brackets") {
|
46
|
+
pending
|
47
|
+
BracketPush.isPaired("([{}({}[])])") should be (true)
|
48
|
+
}
|
49
|
+
|
50
|
+
test("unopened closing brackets") {
|
51
|
+
pending
|
52
|
+
BracketPush.isPaired("{[)][]}") should be (false)
|
53
|
+
}
|
54
|
+
|
55
|
+
test("unpaired and nested brackets") {
|
56
|
+
pending
|
57
|
+
BracketPush.isPaired("([{])") should be (false)
|
58
|
+
}
|
59
|
+
|
60
|
+
test("paired and wrong nested brackets") {
|
61
|
+
pending
|
62
|
+
BracketPush.isPaired("[({]})") should be (false)
|
63
|
+
}
|
64
|
+
|
65
|
+
test("math expression") {
|
66
|
+
pending
|
67
|
+
BracketPush.isPaired("(((185 + 223.85) * 15) - 543)/2") should be (true)
|
68
|
+
}
|
69
|
+
|
70
|
+
test("complex latex expression") {
|
71
|
+
pending
|
72
|
+
BracketPush.isPaired("\\\\left(\\\\begin{array}{cc} \\\\frac{1}{3} & x\\\\\\\\ \\\\mathrm{e}^{x} &... x^2 \\\\end{array}\\\\right)") should be (true)
|
73
|
+
}
|
74
|
+
}
|
@@ -1,11 +1,11 @@
|
|
1
1
|
object CryptoSquare {
|
2
|
-
def
|
2
|
+
def normalizedPlaintext(text: String): String =
|
3
3
|
text.filter(c => c.isLetterOrDigit).toLowerCase
|
4
4
|
|
5
5
|
def squareSize(text: String): Int = Math.ceil(Math.sqrt(text.length)).asInstanceOf[Int]
|
6
6
|
|
7
7
|
def plaintextSegments(text: String): List[String] = {
|
8
|
-
val normalized =
|
8
|
+
val normalized = normalizedPlaintext(text)
|
9
9
|
val size = squareSize(normalized)
|
10
10
|
size match {
|
11
11
|
case 0 => List.empty
|
@@ -13,13 +13,13 @@ object CryptoSquare {
|
|
13
13
|
}
|
14
14
|
}
|
15
15
|
|
16
|
-
def
|
16
|
+
def encoded(text: String): String = {
|
17
17
|
val plainSegs = plaintextSegments(text)
|
18
18
|
|
19
|
-
transpose(plainSegs).mkString
|
19
|
+
transpose(plainSegs).mkString.filter(c => !c.isWhitespace)
|
20
20
|
}
|
21
21
|
|
22
|
-
def
|
22
|
+
def ciphertext(text: String): String = {
|
23
23
|
val plainSegs = plaintextSegments(text)
|
24
24
|
|
25
25
|
transpose(plainSegs).mkString(" ")
|
@@ -30,10 +30,10 @@ object CryptoSquare {
|
|
30
30
|
List.empty
|
31
31
|
} else {
|
32
32
|
val size = texts.head.length
|
33
|
-
// Scala's transpose must work on
|
34
|
-
// strip off the padding before return.
|
35
|
-
val padded = texts.map(s => s.padTo(size, "
|
36
|
-
padded.transpose.map(item => item.mkString.replaceAll("
|
33
|
+
// Scala's transpose must work on Lists where all elements are same size.
|
34
|
+
// So pad the List. Then strip off the padding before return.
|
35
|
+
val padded = texts.map(s => s.padTo(size, "\u0000"))
|
36
|
+
padded.transpose.map(item => item.mkString.replaceAll("\u0000", " "))
|
37
37
|
}
|
38
38
|
}
|
39
39
|
}
|
@@ -1,72 +1,64 @@
|
|
1
|
-
import org.scalatest.{Matchers,
|
1
|
+
import org.scalatest.{Matchers, FunSuite}
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
3
|
+
/** @version 2.0.0 */
|
4
|
+
class CryptoSquareTest extends FunSuite with Matchers {
|
5
|
+
|
6
|
+
test("Lowercase") {
|
7
|
+
CryptoSquare.normalizedPlaintext("Hello") should be ("hello")
|
6
8
|
}
|
7
9
|
|
8
|
-
|
10
|
+
test("Remove spaces") {
|
9
11
|
pending
|
10
|
-
CryptoSquare.
|
12
|
+
CryptoSquare.normalizedPlaintext("Hi there") should be ("hithere")
|
11
13
|
}
|
12
14
|
|
15
|
+
test("Remove punctuation") {
|
16
|
+
pending
|
17
|
+
CryptoSquare.normalizedPlaintext("@1, 2%, 3 Go!") should be ("123go")
|
18
|
+
}
|
13
19
|
|
14
|
-
|
20
|
+
test("empty plaintext results in an empty rectangle") {
|
15
21
|
pending
|
16
|
-
CryptoSquare.
|
17
|
-
CryptoSquare.squareSize("123456789") should equal(3)
|
22
|
+
CryptoSquare.plaintextSegments("") should be (List())
|
18
23
|
}
|
19
24
|
|
20
|
-
|
25
|
+
test("4 character plaintext results in an 2x2 rectangle") {
|
21
26
|
pending
|
22
|
-
CryptoSquare.
|
23
|
-
CryptoSquare.squareSize("123456789abcd") should equal(4)
|
27
|
+
CryptoSquare.plaintextSegments("Ab Cd") should be (List("ab", "cd"))
|
24
28
|
}
|
25
29
|
|
26
|
-
|
30
|
+
test("9 character plaintext results in an 3x3 rectangle") {
|
27
31
|
pending
|
28
|
-
CryptoSquare.
|
32
|
+
CryptoSquare.plaintextSegments("This is fun!") should be (List("thi", "sis", "fun"))
|
29
33
|
}
|
30
34
|
|
35
|
+
test("54 character plaintext results in an 8x7 rectangle") {
|
36
|
+
pending
|
37
|
+
CryptoSquare.plaintextSegments("If man was meant to stay on the ground, god would have given us roots.") should be (List("ifmanwas", "meanttos", "tayonthe", "groundgo", "dwouldha", "vegivenu", "sroots"))
|
38
|
+
}
|
31
39
|
|
32
|
-
|
40
|
+
test("empty plaintext results in an empty encode") {
|
33
41
|
pending
|
34
|
-
CryptoSquare.
|
35
|
-
equal(List("neverv", "exthin", "eheart", "withid", "lewoes"))
|
42
|
+
CryptoSquare.encoded("") should be ("")
|
36
43
|
}
|
37
44
|
|
38
|
-
|
45
|
+
test("Non-empty plaintext results in the combined plaintext segments") {
|
39
46
|
pending
|
40
|
-
CryptoSquare.
|
41
|
-
equal(List("zomg", "zomb", "ies"))
|
47
|
+
CryptoSquare.encoded("If man was meant to stay on the ground, god would have given us roots.") should be ("imtgdvsfearwermayoogoanouuiontnnlvtwttddesaohghnsseoau")
|
42
48
|
}
|
43
49
|
|
44
|
-
|
50
|
+
test("empty plaintext results in an empty ciphertext") {
|
45
51
|
pending
|
46
|
-
CryptoSquare.ciphertext("
|
47
|
-
equal("tasneyinicdsmiohooelntuillibsuuml")
|
48
|
-
CryptoSquare.ciphertext("We all know interspecies romance is weird.") should
|
49
|
-
equal("wneiaweoreneawssciliprerlneoidktcms")
|
52
|
+
CryptoSquare.ciphertext("") should be ("")
|
50
53
|
}
|
51
54
|
|
52
|
-
|
55
|
+
test("9 character plaintext results in 3 chunks of 3 characters") {
|
53
56
|
pending
|
54
|
-
CryptoSquare.
|
55
|
-
equal("msemo aanin dnin ndla etlt shui")
|
56
|
-
CryptoSquare.normalizedCiphertext("If man was meant to stay on the ground " +
|
57
|
-
"god would have given us roots") should
|
58
|
-
equal("imtgdvs fearwer mayoogo anouuio ntnnlvt wttddes aohghn sseoau")
|
57
|
+
CryptoSquare.ciphertext("This is fun!") should be ("tsf hiu isn")
|
59
58
|
}
|
60
59
|
|
61
|
-
|
60
|
+
test("54 character plaintext results in 7 chunks, the last two padded with spaces") {
|
62
61
|
pending
|
63
|
-
CryptoSquare.ciphertext("") should
|
64
|
-
equal("")
|
65
|
-
CryptoSquare.ciphertext(" ") should
|
66
|
-
equal("")
|
67
|
-
CryptoSquare.normalizedCiphertext("") should
|
68
|
-
equal("")
|
69
|
-
CryptoSquare.normalizedCiphertext(" ") should
|
70
|
-
equal("")
|
62
|
+
CryptoSquare.ciphertext("If man was meant to stay on the ground, god would have given us roots.") should be ("imtgdvs fearwer mayoogo anouuio ntnnlvt wttddes aohghn sseoau ")
|
71
63
|
}
|
72
|
-
}
|
64
|
+
}
|
@@ -1,44 +1,15 @@
|
|
1
|
-
import
|
1
|
+
import java.io.File
|
2
2
|
|
3
|
-
import
|
4
|
-
|
5
|
-
class BracketPushTestGenerator {
|
6
|
-
implicit val testCaseReader = Json.reads[BracketTestCase]
|
7
|
-
|
8
|
-
private val filename = "bracket-push.json"
|
9
|
-
private val fileContents = Source.fromFile(filename).getLines.mkString
|
10
|
-
private val json = Json.parse(fileContents)
|
11
|
-
|
12
|
-
def write {
|
13
|
-
print("import org.scalatest.{FunSuite, Matchers}" + System.lineSeparator())
|
14
|
-
print(System.lineSeparator())
|
15
|
-
print("class BracketsTest extends FunSuite with Matchers {" + System.lineSeparator())
|
16
|
-
|
17
|
-
writeTestCases()
|
18
|
-
|
19
|
-
print("}" + System.lineSeparator())
|
20
|
-
}
|
21
|
-
|
22
|
-
private def writeTestCases(): Unit = {
|
23
|
-
val testCases = (json \ "cases").get.as[List[BracketTestCase]]
|
24
|
-
|
25
|
-
testCases.foreach(tc => {
|
26
|
-
print("\ttest(\"" + tc.description + "\") {" + System.lineSeparator())
|
27
|
-
println("pending")
|
28
|
-
println("Brackets.areBalanced(\"\"\"" + tc.input + "\"\"\") should be (" + tc.expected + ")")
|
29
|
-
|
30
|
-
print("\t}" + System.lineSeparator())
|
31
|
-
print(System.lineSeparator())
|
32
|
-
})
|
33
|
-
}
|
34
|
-
}
|
35
|
-
|
36
|
-
case class BracketTestCase(description: String,
|
37
|
-
input: String,
|
38
|
-
expected: Boolean)
|
3
|
+
import testgen.TestSuiteBuilder._
|
4
|
+
import testgen._
|
39
5
|
|
40
6
|
object BracketPushTestGenerator {
|
41
7
|
def main(args: Array[String]): Unit = {
|
42
|
-
new
|
8
|
+
val file = new File("src/main/resources/bracket-push.json")
|
9
|
+
|
10
|
+
val code = TestSuiteBuilder.build(file, fromLabeledTest("input"))
|
11
|
+
println(s"-------------")
|
12
|
+
println(code)
|
13
|
+
println(s"-------------")
|
43
14
|
}
|
44
15
|
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import java.io.File
|
2
|
+
|
3
|
+
import testgen.TestSuiteBuilder._
|
4
|
+
import testgen._
|
5
|
+
|
6
|
+
object CryptoSquareTestGenerator {
|
7
|
+
def main(args: Array[String]): Unit = {
|
8
|
+
val file = new File("src/main/resources/crypto-square.json")
|
9
|
+
|
10
|
+
val code = TestSuiteBuilder.build(file,
|
11
|
+
fromLabeledTestAlt("normalizedPlaintext" -> Seq("plaintext"), "plaintextSegments" -> Seq("plaintext"),
|
12
|
+
"encoded" -> Seq("plaintext"), "ciphertext" -> Seq("plaintext")))
|
13
|
+
println(s"-------------")
|
14
|
+
println(code)
|
15
|
+
println(s"-------------")
|
16
|
+
}
|
17
|
+
}
|
data/tracks/sml/config.json
CHANGED
@@ -0,0 +1,35 @@
|
|
1
|
+
{
|
2
|
+
"maintainers": [
|
3
|
+
{
|
4
|
+
"github_username": "hankturowski",
|
5
|
+
"show_on_website": false,
|
6
|
+
"alumnus": false,
|
7
|
+
"name": null,
|
8
|
+
"bio": null,
|
9
|
+
"link_text": null,
|
10
|
+
"link_url": null,
|
11
|
+
"avatar_url": null
|
12
|
+
},
|
13
|
+
{
|
14
|
+
"github_username": "masters3d",
|
15
|
+
"show_on_website": false,
|
16
|
+
"alumnus": false,
|
17
|
+
"name": null,
|
18
|
+
"bio": null,
|
19
|
+
"link_text": null,
|
20
|
+
"link_url": null,
|
21
|
+
"avatar_url": null
|
22
|
+
},
|
23
|
+
{
|
24
|
+
"github_username": "robtimp",
|
25
|
+
"show_on_website": false,
|
26
|
+
"alumnus": false,
|
27
|
+
"name": null,
|
28
|
+
"bio": null,
|
29
|
+
"link_text": null,
|
30
|
+
"link_url": null,
|
31
|
+
"avatar_url": null
|
32
|
+
}
|
33
|
+
],
|
34
|
+
"docs_url": "https://github.com/exercism/docs/blob/master/maintaining-a-track/maintainer-configuration.md"
|
35
|
+
}
|
data/tracks/swift/docs/ABOUT.md
CHANGED
@@ -1,9 +1,19 @@
|
|
1
|
-
Swift is a modern open source programming language that runs
|
1
|
+
Swift is a modern open source programming language that runs on macOS, Linux and on Windows using a linux subsystem.
|
2
2
|
|
3
|
-
Swift
|
3
|
+
Swift was developed initially by Apple to interoperate with their key frameworks, Cocoa and CocoaTouch, both of which are mostly implemented in Objective-C.
|
4
4
|
|
5
|
-
|
5
|
+
Swift is influenced by a large number of existing programming languages, and it incorporates concepts from a wide range of programming methods. Everything from scripting to object oriented and functional programming.
|
6
6
|
|
7
|
-
|
7
|
+
Apple refers to Swift as a "protocol oriented programming language" and has expressed the goal of eventually making Swift useful for everything from scripts to an operating system.
|
8
8
|
|
9
|
-
|
9
|
+
***
|
10
|
+
|
11
|
+
This [Swift Tour](https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/GuidedTour.html) is an introduction the language on Apple's Public Developer Website.
|
12
|
+
|
13
|
+
***
|
14
|
+
|
15
|
+
[Wikipedia's Swift Page](https://en.wikipedia.org/wiki/Swift_(programming_language)) giving a good, Wikipedia-styled overview.
|
16
|
+
|
17
|
+
***
|
18
|
+
|
19
|
+
Swift is documented in [The Swift Programming Language](https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/index.html) - again, on Apple's Public Developer Website - and in the [iBooks Store](https://itunes.apple.com/us/book/swift-programming-language/id881256329?mt=11). The ePub version is also available on [Swift.org](https://swift.org/documentation/#the-swift-programming-language).
|
@@ -0,0 +1,35 @@
|
|
1
|
+
{
|
2
|
+
"maintainers": [
|
3
|
+
{
|
4
|
+
"github_username": "kotp",
|
5
|
+
"show_on_website": false,
|
6
|
+
"alumnus": false,
|
7
|
+
"name": null,
|
8
|
+
"bio": null,
|
9
|
+
"link_text": null,
|
10
|
+
"link_url": null,
|
11
|
+
"avatar_url": null
|
12
|
+
},
|
13
|
+
{
|
14
|
+
"github_username": "mhinz",
|
15
|
+
"show_on_website": false,
|
16
|
+
"alumnus": false,
|
17
|
+
"name": null,
|
18
|
+
"bio": null,
|
19
|
+
"link_text": null,
|
20
|
+
"link_url": null,
|
21
|
+
"avatar_url": null
|
22
|
+
},
|
23
|
+
{
|
24
|
+
"github_username": "kevinlitchfield",
|
25
|
+
"show_on_website": false,
|
26
|
+
"alumnus": false,
|
27
|
+
"name": null,
|
28
|
+
"bio": null,
|
29
|
+
"link_text": null,
|
30
|
+
"link_url": null,
|
31
|
+
"avatar_url": null
|
32
|
+
}
|
33
|
+
],
|
34
|
+
"docs_url": "https://github.com/exercism/docs/blob/master/maintaining-a-track/maintainer-configuration.md"
|
35
|
+
}
|
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.7
|
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
|
+
date: 2017-08-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubyzip
|
@@ -1634,6 +1634,7 @@ files:
|
|
1634
1634
|
- tracks/crystal/bin/fetch-configlet
|
1635
1635
|
- tracks/crystal/config.json
|
1636
1636
|
- tracks/crystal/config/exercise_readme.go.tmpl
|
1637
|
+
- tracks/crystal/config/maintainers.json
|
1637
1638
|
- tracks/crystal/docs/ABOUT.md
|
1638
1639
|
- tracks/crystal/docs/EXERCISE_README_INSERT.md
|
1639
1640
|
- tracks/crystal/docs/INSTALLATION.md
|
@@ -1764,6 +1765,7 @@ files:
|
|
1764
1765
|
- tracks/csharp/circle.yml
|
1765
1766
|
- tracks/csharp/config.json
|
1766
1767
|
- tracks/csharp/config/exercise_readme.go.tmpl
|
1768
|
+
- tracks/csharp/config/maintainers.json
|
1767
1769
|
- tracks/csharp/docs/ABOUT.md
|
1768
1770
|
- tracks/csharp/docs/EXERCISE_README_INSERT.md
|
1769
1771
|
- tracks/csharp/docs/INSTALLATION.md
|
@@ -2487,6 +2489,7 @@ files:
|
|
2487
2489
|
- tracks/dart/bin/fetch-configlet
|
2488
2490
|
- tracks/dart/config.json
|
2489
2491
|
- tracks/dart/config/exercise_readme.go.tmpl
|
2492
|
+
- tracks/dart/config/maintainers.json
|
2490
2493
|
- tracks/dart/docs/ABOUT.md
|
2491
2494
|
- tracks/dart/docs/EXERCISE_README_INSERT.md
|
2492
2495
|
- tracks/dart/docs/INSTALLATION.md
|
@@ -2988,6 +2991,10 @@ files:
|
|
2988
2991
|
- tracks/ecmascript/exercises/trinary/example.js
|
2989
2992
|
- tracks/ecmascript/exercises/trinary/package.json
|
2990
2993
|
- tracks/ecmascript/exercises/trinary/trinary.spec.js
|
2994
|
+
- tracks/ecmascript/exercises/twelve-days/README.md
|
2995
|
+
- tracks/ecmascript/exercises/twelve-days/example.js
|
2996
|
+
- tracks/ecmascript/exercises/twelve-days/package.json
|
2997
|
+
- tracks/ecmascript/exercises/twelve-days/twelve-days.spec.js
|
2991
2998
|
- tracks/ecmascript/exercises/two-bucket/README.md
|
2992
2999
|
- tracks/ecmascript/exercises/two-bucket/example.js
|
2993
3000
|
- tracks/ecmascript/exercises/two-bucket/package.json
|
@@ -4051,6 +4058,7 @@ files:
|
|
4051
4058
|
- tracks/fsharp/circle.yml
|
4052
4059
|
- tracks/fsharp/config.json
|
4053
4060
|
- tracks/fsharp/config/exercise_readme.go.tmpl
|
4061
|
+
- tracks/fsharp/config/maintainers.json
|
4054
4062
|
- tracks/fsharp/docs/ABOUT.md
|
4055
4063
|
- tracks/fsharp/docs/EXERCISE_README_INSERT.md
|
4056
4064
|
- tracks/fsharp/docs/INSTALLATION.md
|
@@ -6462,6 +6470,7 @@ files:
|
|
6462
6470
|
- tracks/kotlin/bin/unit-tests.sh
|
6463
6471
|
- tracks/kotlin/config.json
|
6464
6472
|
- tracks/kotlin/config/exercise_readme.go.tmpl
|
6473
|
+
- tracks/kotlin/config/maintainers.json
|
6465
6474
|
- tracks/kotlin/docs/ABOUT.md
|
6466
6475
|
- tracks/kotlin/docs/EXERCISE_README_INSERT.md
|
6467
6476
|
- tracks/kotlin/docs/INSTALLATION.md
|
@@ -6827,6 +6836,7 @@ files:
|
|
6827
6836
|
- tracks/lfe/bin/fetch-configlet
|
6828
6837
|
- tracks/lfe/config.json
|
6829
6838
|
- tracks/lfe/config/exercise_readme.go.tmpl
|
6839
|
+
- tracks/lfe/config/maintainers.json
|
6830
6840
|
- tracks/lfe/docs/ABOUT.md
|
6831
6841
|
- tracks/lfe/docs/EXERCISE_README_INSERT.md
|
6832
6842
|
- tracks/lfe/docs/INSTALLATION.md
|
@@ -7095,6 +7105,7 @@ files:
|
|
7095
7105
|
- tracks/lisp/bin/xlisp-test.lisp
|
7096
7106
|
- tracks/lisp/config.json
|
7097
7107
|
- tracks/lisp/config/exercise_readme.go.tmpl
|
7108
|
+
- tracks/lisp/config/maintainers.json
|
7098
7109
|
- tracks/lisp/docs/ABOUT.md
|
7099
7110
|
- tracks/lisp/docs/EXERCISE_README_INSERT.md
|
7100
7111
|
- tracks/lisp/docs/INSTALLATION.md
|
@@ -7790,6 +7801,7 @@ files:
|
|
7790
7801
|
- tracks/ocaml/bin/fetch-configlet
|
7791
7802
|
- tracks/ocaml/config.json
|
7792
7803
|
- tracks/ocaml/config/exercise_readme.go.tmpl
|
7804
|
+
- tracks/ocaml/config/maintainers.json
|
7793
7805
|
- tracks/ocaml/docs/ABOUT.md
|
7794
7806
|
- tracks/ocaml/docs/EXERCISE_README_INSERT.md
|
7795
7807
|
- tracks/ocaml/docs/INSTALLATION.md
|
@@ -7971,10 +7983,6 @@ files:
|
|
7971
7983
|
- tracks/ocaml/exercises/phone-number/example.ml
|
7972
7984
|
- tracks/ocaml/exercises/phone-number/phone_number.mli
|
7973
7985
|
- tracks/ocaml/exercises/phone-number/test.ml
|
7974
|
-
- tracks/ocaml/exercises/point-mutations/Makefile
|
7975
|
-
- tracks/ocaml/exercises/point-mutations/README.md
|
7976
|
-
- tracks/ocaml/exercises/point-mutations/dna.mli
|
7977
|
-
- tracks/ocaml/exercises/point-mutations/example.ml
|
7978
7986
|
- tracks/ocaml/exercises/prime-factors/.merlin
|
7979
7987
|
- tracks/ocaml/exercises/prime-factors/Makefile
|
7980
7988
|
- tracks/ocaml/exercises/prime-factors/README.md
|
@@ -8129,6 +8137,7 @@ files:
|
|
8129
8137
|
- tracks/perl5/bin/fetch-configlet
|
8130
8138
|
- tracks/perl5/config.json
|
8131
8139
|
- tracks/perl5/config/exercise_readme.go.tmpl
|
8140
|
+
- tracks/perl5/config/maintainers.json
|
8132
8141
|
- tracks/perl5/cpanfile
|
8133
8142
|
- tracks/perl5/docs/ABOUT.md
|
8134
8143
|
- tracks/perl5/docs/EXERCISE_README_INSERT.md
|
@@ -8369,6 +8378,7 @@ files:
|
|
8369
8378
|
- tracks/perl6/bin/fetch-configlet
|
8370
8379
|
- tracks/perl6/config.json
|
8371
8380
|
- tracks/perl6/config/exercise_readme.go.tmpl
|
8381
|
+
- tracks/perl6/config/maintainers.json
|
8372
8382
|
- tracks/perl6/docs/ABOUT.md
|
8373
8383
|
- tracks/perl6/docs/EXERCISE_README_INSERT.md
|
8374
8384
|
- tracks/perl6/docs/INSTALLATION.md
|
@@ -8732,6 +8742,7 @@ files:
|
|
8732
8742
|
- tracks/pony/bin/test-exercises
|
8733
8743
|
- tracks/pony/config.json
|
8734
8744
|
- tracks/pony/config/exercise_readme.go.tmpl
|
8745
|
+
- tracks/pony/config/maintainers.json
|
8735
8746
|
- tracks/pony/docs/ABOUT.md
|
8736
8747
|
- tracks/pony/docs/EXERCISE_README_INSERT.md
|
8737
8748
|
- tracks/pony/docs/INSTALLATION.md
|
@@ -8863,6 +8874,7 @@ files:
|
|
8863
8874
|
- tracks/purescript/bin/test.sh
|
8864
8875
|
- tracks/purescript/config.json
|
8865
8876
|
- tracks/purescript/config/exercise_readme.go.tmpl
|
8877
|
+
- tracks/purescript/config/maintainers.json
|
8866
8878
|
- tracks/purescript/docs/ABOUT.md
|
8867
8879
|
- tracks/purescript/docs/EXERCISE_README_INSERT.md
|
8868
8880
|
- tracks/purescript/docs/INSTALLATION.md
|
@@ -9388,6 +9400,10 @@ files:
|
|
9388
9400
|
- tracks/r/exercises/bob/bob.R
|
9389
9401
|
- tracks/r/exercises/bob/example.R
|
9390
9402
|
- tracks/r/exercises/bob/test_bob.R
|
9403
|
+
- tracks/r/exercises/collatz-conjecture/README.md
|
9404
|
+
- tracks/r/exercises/collatz-conjecture/collatz-conjecture.R
|
9405
|
+
- tracks/r/exercises/collatz-conjecture/example.R
|
9406
|
+
- tracks/r/exercises/collatz-conjecture/test_collatz-conjecture.R
|
9391
9407
|
- tracks/r/exercises/difference-of-squares/README.md
|
9392
9408
|
- tracks/r/exercises/difference-of-squares/difference-of-squares.R
|
9393
9409
|
- tracks/r/exercises/difference-of-squares/example.R
|
@@ -9420,6 +9436,14 @@ files:
|
|
9420
9436
|
- tracks/r/exercises/luhn/example.R
|
9421
9437
|
- tracks/r/exercises/luhn/luhn.R
|
9422
9438
|
- tracks/r/exercises/luhn/test_luhn.R
|
9439
|
+
- tracks/r/exercises/nucleotide-count/README.md
|
9440
|
+
- tracks/r/exercises/nucleotide-count/example.R
|
9441
|
+
- tracks/r/exercises/nucleotide-count/nucleotide-count.R
|
9442
|
+
- tracks/r/exercises/nucleotide-count/test_nucleotide-count.R
|
9443
|
+
- tracks/r/exercises/pangram/README.md
|
9444
|
+
- tracks/r/exercises/pangram/example.R
|
9445
|
+
- tracks/r/exercises/pangram/pangram.R
|
9446
|
+
- tracks/r/exercises/pangram/test_pangram.R
|
9423
9447
|
- tracks/r/exercises/pascals-triangle/README.md
|
9424
9448
|
- tracks/r/exercises/pascals-triangle/example.R
|
9425
9449
|
- tracks/r/exercises/pascals-triangle/pascals-triangle.R
|
@@ -9472,6 +9496,11 @@ files:
|
|
9472
9496
|
- tracks/r/exercises/tournament/example.R
|
9473
9497
|
- tracks/r/exercises/tournament/test_tournament.R
|
9474
9498
|
- tracks/r/exercises/tournament/tournament.R
|
9499
|
+
- tracks/r/exercises/triangle/.meta/hints.md
|
9500
|
+
- tracks/r/exercises/triangle/README.md
|
9501
|
+
- tracks/r/exercises/triangle/example.R
|
9502
|
+
- tracks/r/exercises/triangle/test_triangle.R
|
9503
|
+
- tracks/r/exercises/triangle/triangle.R
|
9475
9504
|
- tracks/r/exercises/word-count/README.md
|
9476
9505
|
- tracks/r/exercises/word-count/example.R
|
9477
9506
|
- tracks/r/exercises/word-count/test_word-count.R
|
@@ -10134,6 +10163,13 @@ files:
|
|
10134
10163
|
- tracks/rust/exercises/circular-buffer/example.rs
|
10135
10164
|
- tracks/rust/exercises/circular-buffer/src/lib.rs
|
10136
10165
|
- tracks/rust/exercises/circular-buffer/tests/circular-buffer.rs
|
10166
|
+
- tracks/rust/exercises/clock/.meta/hints.md
|
10167
|
+
- tracks/rust/exercises/clock/Cargo.lock
|
10168
|
+
- tracks/rust/exercises/clock/Cargo.toml
|
10169
|
+
- tracks/rust/exercises/clock/README.md
|
10170
|
+
- tracks/rust/exercises/clock/example.rs
|
10171
|
+
- tracks/rust/exercises/clock/src/lib.rs
|
10172
|
+
- tracks/rust/exercises/clock/tests/clock.rs
|
10137
10173
|
- tracks/rust/exercises/custom-set/.gitignore
|
10138
10174
|
- tracks/rust/exercises/custom-set/Cargo.lock
|
10139
10175
|
- tracks/rust/exercises/custom-set/Cargo.toml
|
@@ -10254,6 +10290,12 @@ files:
|
|
10254
10290
|
- tracks/rust/exercises/minesweeper/example.rs
|
10255
10291
|
- tracks/rust/exercises/minesweeper/src/lib.rs
|
10256
10292
|
- tracks/rust/exercises/minesweeper/tests/minesweeper.rs
|
10293
|
+
- tracks/rust/exercises/nth-prime/Cargo.lock
|
10294
|
+
- tracks/rust/exercises/nth-prime/Cargo.toml
|
10295
|
+
- tracks/rust/exercises/nth-prime/README.md
|
10296
|
+
- tracks/rust/exercises/nth-prime/example.rs
|
10297
|
+
- tracks/rust/exercises/nth-prime/src/lib.rs
|
10298
|
+
- tracks/rust/exercises/nth-prime/tests/nth-prime.rs
|
10257
10299
|
- tracks/rust/exercises/nucleotide-codons/.gitignore
|
10258
10300
|
- tracks/rust/exercises/nucleotide-codons/Cargo.lock
|
10259
10301
|
- tracks/rust/exercises/nucleotide-codons/Cargo.toml
|
@@ -10330,6 +10372,12 @@ files:
|
|
10330
10372
|
- tracks/rust/exercises/proverb/example.rs
|
10331
10373
|
- tracks/rust/exercises/proverb/src/lib.rs
|
10332
10374
|
- tracks/rust/exercises/proverb/tests/proverb.rs
|
10375
|
+
- tracks/rust/exercises/pythagorean-triplet/Cargo.lock
|
10376
|
+
- tracks/rust/exercises/pythagorean-triplet/Cargo.toml
|
10377
|
+
- tracks/rust/exercises/pythagorean-triplet/README.md
|
10378
|
+
- tracks/rust/exercises/pythagorean-triplet/example.rs
|
10379
|
+
- tracks/rust/exercises/pythagorean-triplet/src/lib.rs
|
10380
|
+
- tracks/rust/exercises/pythagorean-triplet/tests/pythagorean-triplet.rs
|
10333
10381
|
- tracks/rust/exercises/queen-attack/.gitignore
|
10334
10382
|
- tracks/rust/exercises/queen-attack/Cargo.lock
|
10335
10383
|
- tracks/rust/exercises/queen-attack/Cargo.toml
|
@@ -10576,7 +10624,7 @@ files:
|
|
10576
10624
|
- tracks/scala/exercises/bracket-push/build.sbt
|
10577
10625
|
- tracks/scala/exercises/bracket-push/example.scala
|
10578
10626
|
- tracks/scala/exercises/bracket-push/src/main/scala/.keep
|
10579
|
-
- tracks/scala/exercises/bracket-push/src/test/scala/
|
10627
|
+
- tracks/scala/exercises/bracket-push/src/test/scala/BracketPushTest.scala
|
10580
10628
|
- tracks/scala/exercises/change/README.md
|
10581
10629
|
- tracks/scala/exercises/change/build.sbt
|
10582
10630
|
- tracks/scala/exercises/change/example.scala
|
@@ -10597,7 +10645,6 @@ files:
|
|
10597
10645
|
- tracks/scala/exercises/crypto-square/build.sbt
|
10598
10646
|
- tracks/scala/exercises/crypto-square/example.scala
|
10599
10647
|
- tracks/scala/exercises/crypto-square/src/main/scala/.keep
|
10600
|
-
- tracks/scala/exercises/crypto-square/src/main/scala/CryptoSquare.scala
|
10601
10648
|
- tracks/scala/exercises/crypto-square/src/test/scala/CryptoSquareTest.scala
|
10602
10649
|
- tracks/scala/exercises/custom-set/README.md
|
10603
10650
|
- tracks/scala/exercises/custom-set/build.sbt
|
@@ -10960,6 +11007,7 @@ files:
|
|
10960
11007
|
- tracks/scala/testgen/src/main/scala/BookStoreTestGenerator.scala
|
10961
11008
|
- tracks/scala/testgen/src/main/scala/BowlingTestGenerator.scala
|
10962
11009
|
- tracks/scala/testgen/src/main/scala/BracketPushTestGenerator.scala
|
11010
|
+
- tracks/scala/testgen/src/main/scala/CryptoSquareTestGenerator.scala
|
10963
11011
|
- tracks/scala/testgen/src/main/scala/CustomSetTestGenerator.scala
|
10964
11012
|
- tracks/scala/testgen/src/main/scala/DifferenceOfSquaresTestGenerator.scala
|
10965
11013
|
- tracks/scala/testgen/src/main/scala/EtlTestGenerator.scala
|
@@ -11127,6 +11175,7 @@ files:
|
|
11127
11175
|
- tracks/swift/circle.yml
|
11128
11176
|
- tracks/swift/config.json
|
11129
11177
|
- tracks/swift/config/exercise_readme.go.tmpl
|
11178
|
+
- tracks/swift/config/maintainers.json
|
11130
11179
|
- tracks/swift/docs/ABOUT.md
|
11131
11180
|
- tracks/swift/docs/EXERCISE_README_INSERT.md
|
11132
11181
|
- tracks/swift/docs/INSTALLATION.md
|
@@ -11879,6 +11928,7 @@ files:
|
|
11879
11928
|
- tracks/vimscript/bin/pre-push
|
11880
11929
|
- tracks/vimscript/config.json
|
11881
11930
|
- tracks/vimscript/config/exercise_readme.go.tmpl
|
11931
|
+
- tracks/vimscript/config/maintainers.json
|
11882
11932
|
- tracks/vimscript/docs/ABOUT.md
|
11883
11933
|
- tracks/vimscript/docs/EXERCISE_README_INSERT.md
|
11884
11934
|
- tracks/vimscript/docs/INSTALLATION.md
|