trackler 2.2.1.71 → 2.2.1.72
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.
- checksums.yaml +4 -4
- data/lib/trackler/version.rb +1 -1
- data/problem-specifications/exercises/book-store/canonical-data.json +9 -2
- data/problem-specifications/exercises/word-count/canonical-data.json +9 -0
- data/tracks/bash/CONTRIBUTING.md +199 -0
- data/tracks/bash/config.json +24 -11
- data/tracks/bash/exercises/triangle/README.md +38 -0
- data/tracks/bash/exercises/triangle/example.sh +56 -0
- data/tracks/bash/exercises/triangle/triangle_test.sh +126 -0
- data/tracks/bash/img/canonical-data-example.png +0 -0
- data/tracks/bash/img/create-pr.png +0 -0
- data/tracks/bash/img/fork-repository.png +0 -0
- data/tracks/c/exercises/acronym/makefile +1 -1
- data/tracks/c/exercises/all-your-base/makefile +1 -1
- data/tracks/c/exercises/allergies/makefile +1 -1
- data/tracks/c/exercises/anagram/makefile +1 -1
- data/tracks/c/exercises/atbash-cipher/makefile +1 -1
- data/tracks/c/exercises/beer-song/makefile +1 -1
- data/tracks/c/exercises/binary-search/makefile +1 -1
- data/tracks/c/exercises/binary/makefile +1 -1
- data/tracks/c/exercises/bob/makefile +1 -1
- data/tracks/c/exercises/clock/makefile +1 -1
- data/tracks/c/exercises/collatz-conjecture/makefile +1 -1
- data/tracks/c/exercises/difference-of-squares/makefile +1 -1
- data/tracks/c/exercises/gigasecond/makefile +1 -1
- data/tracks/c/exercises/grains/makefile +1 -1
- data/tracks/c/exercises/hamming/makefile +1 -1
- data/tracks/c/exercises/hamming/test/test_hamming.c +2 -2
- data/tracks/c/exercises/hello-world/makefile +1 -1
- data/tracks/c/exercises/isogram/makefile +1 -1
- data/tracks/c/exercises/largest-series-product/makefile +1 -1
- data/tracks/c/exercises/leap/makefile +1 -1
- data/tracks/c/exercises/meetup/makefile +1 -1
- data/tracks/c/exercises/nth-prime/makefile +1 -1
- data/tracks/c/exercises/nucleotide-count/makefile +1 -1
- data/tracks/c/exercises/palindrome-products/makefile +1 -1
- data/tracks/c/exercises/pangram/makefile +1 -1
- data/tracks/c/exercises/pascals-triangle/makefile +1 -1
- data/tracks/c/exercises/perfect-numbers/makefile +1 -1
- data/tracks/c/exercises/phone-number/makefile +1 -1
- data/tracks/c/exercises/queen-attack/makefile +1 -1
- data/tracks/c/exercises/raindrops/makefile +1 -1
- data/tracks/c/exercises/react/makefile +1 -1
- data/tracks/c/exercises/rna-transcription/makefile +1 -1
- data/tracks/c/exercises/robot-simulator/makefile +1 -1
- data/tracks/c/exercises/roman-numerals/makefile +1 -1
- data/tracks/c/exercises/scrabble-score/makefile +1 -1
- data/tracks/c/exercises/series/makefile +1 -1
- data/tracks/c/exercises/sieve/makefile +1 -1
- data/tracks/c/exercises/space-age/makefile +1 -1
- data/tracks/c/exercises/sublist/makefile +1 -1
- data/tracks/c/exercises/sum-of-multiples/makefile +1 -1
- data/tracks/c/exercises/triangle/makefile +1 -1
- data/tracks/c/exercises/word-count/makefile +1 -1
- data/tracks/delphi/exercises/allergies/README.md +1 -1
- data/tracks/delphi/exercises/bank-account/README.md +1 -1
- data/tracks/delphi/exercises/beer-song/README.md +1 -1
- data/tracks/delphi/exercises/binary-search/README.md +1 -1
- data/tracks/delphi/exercises/bob/README.md +1 -1
- data/tracks/delphi/exercises/book-store/README.md +1 -1
- data/tracks/delphi/exercises/book-store/uBookStoreExample.pas +34 -14
- data/tracks/delphi/exercises/book-store/uBookStoreTests.pas +36 -1
- data/tracks/delphi/exercises/bowling/README.md +1 -1
- data/tracks/delphi/exercises/circular-buffer/README.md +1 -1
- data/tracks/delphi/exercises/clock/README.md +1 -1
- data/tracks/delphi/exercises/collatz-conjecture/README.md +1 -1
- data/tracks/delphi/exercises/etl/README.md +1 -1
- data/tracks/delphi/exercises/grains/README.md +1 -1
- data/tracks/delphi/exercises/hamming/README.md +1 -1
- data/tracks/delphi/exercises/hello-world/README.md +1 -1
- data/tracks/delphi/exercises/leap/README.md +1 -1
- data/tracks/delphi/exercises/minesweeper/README.md +1 -1
- data/tracks/delphi/exercises/nucleotide-count/README.md +1 -1
- data/tracks/delphi/exercises/perfect-numbers/README.md +1 -1
- data/tracks/delphi/exercises/phone-number/README.md +1 -1
- data/tracks/delphi/exercises/pig-latin/README.md +1 -1
- data/tracks/delphi/exercises/poker/README.md +1 -1
- data/tracks/delphi/exercises/raindrops/README.md +1 -1
- data/tracks/delphi/exercises/reverse-string/README.md +1 -1
- data/tracks/delphi/exercises/rna-transcription/README.md +1 -1
- data/tracks/delphi/exercises/roman-numerals/README.md +1 -1
- data/tracks/delphi/exercises/saddle-points/README.md +1 -1
- data/tracks/delphi/exercises/triangle/README.md +1 -1
- data/tracks/delphi/exercises/two-fer/README.md +1 -1
- data/tracks/delphi/exercises/wordy/README.md +1 -1
- data/tracks/ecmascript/.travis.yml +1 -1
- data/tracks/ecmascript/Makefile +4 -5
- data/tracks/ecmascript/README.md +2 -1
- data/tracks/ecmascript/config.json +12 -0
- data/tracks/ecmascript/exercises/change/package.json +5 -3
- data/tracks/ecmascript/exercises/protein-translation/package.json +2 -2
- data/tracks/ecmascript/exercises/react/README.md +41 -0
- data/tracks/ecmascript/exercises/react/example.js +101 -0
- data/tracks/ecmascript/exercises/react/package.json +71 -0
- data/tracks/ecmascript/exercises/react/react.spec.js +211 -0
- data/tracks/ecmascript/exercises/rectangles/package.json +1 -2
- data/tracks/ecmascript/exercises/rotational-cipher/package.json +1 -2
- data/tracks/ecmascript/exercises/spiral-matrix/package.json +1 -2
- data/tracks/ecmascript/exercises/transpose/package.json +2 -2
- data/tracks/erlang/docs/ABOUT.md +1 -1
- data/tracks/go/exercises/binary-search/.meta/gen.go +55 -0
- data/tracks/go/exercises/binary-search/binary_search_test.go +26 -167
- data/tracks/go/exercises/binary-search/cases_test.go +73 -0
- data/tracks/go/exercises/binary-search/example.go +8 -30
- data/tracks/go/exercises/nth-prime/.meta/gen.go +76 -0
- data/tracks/go/exercises/nth-prime/cases_test.go +43 -0
- data/tracks/go/exercises/nth-prime/nth_prime_test.go +4 -18
- data/tracks/go/exercises/prime-factors/.meta/gen.go +54 -0
- data/tracks/go/exercises/prime-factors/cases_test.go +48 -0
- data/tracks/go/exercises/prime-factors/prime_factors_test.go +4 -19
- data/tracks/groovy/config.json +13 -1
- data/tracks/groovy/exercises/linked-list/DoubleLinkedList.groovy +19 -0
- data/tracks/groovy/exercises/linked-list/DoubleLinkedListSpec.groovy +79 -0
- data/tracks/groovy/exercises/linked-list/Example.groovy +57 -0
- data/tracks/groovy/exercises/linked-list/README.md +49 -0
- data/tracks/java/bin/run-journey-test-from-ci.sh +1 -1
- data/tracks/java/config.json +10 -0
- data/tracks/java/config/maintainers.json +8 -1
- data/tracks/java/docs/MAINTAINING.md +3 -3
- data/tracks/java/exercises/accumulate/.meta/src/reference/java/Accumulate.java +2 -2
- data/tracks/java/exercises/binary/.meta/src/reference/java/Binary.java +3 -3
- data/tracks/java/exercises/circular-buffer/.meta/src/reference/java/BufferIOException.java +1 -1
- data/tracks/java/exercises/circular-buffer/.meta/src/reference/java/CircularBuffer.java +6 -6
- data/tracks/java/exercises/circular-buffer/src/main/java/BufferIOException.java +1 -1
- data/tracks/java/exercises/clock/.meta/src/reference/java/Clock.java +3 -3
- data/tracks/java/exercises/crypto-square/.meta/src/reference/java/Crypto.java +7 -7
- data/tracks/java/exercises/etl/.meta/src/reference/java/Etl.java +2 -2
- data/tracks/java/exercises/etl/src/main/java/Etl.java +2 -2
- data/tracks/java/exercises/kindergarten-garden/.meta/src/reference/java/KindergartenGarden.java +4 -4
- data/tracks/java/exercises/kindergarten-garden/.meta/src/reference/java/Plant.java +2 -2
- data/tracks/java/exercises/kindergarten-garden/src/main/java/Plant.java +2 -2
- data/tracks/java/exercises/nth-prime/.meta/src/reference/java/PrimeCalculator.java +2 -2
- data/tracks/java/exercises/reverse-string/.meta/src/reference/java/ReverseString.java +7 -0
- data/tracks/java/exercises/reverse-string/.meta/version +1 -0
- data/tracks/java/exercises/reverse-string/README.md +25 -0
- data/tracks/java/exercises/reverse-string/build.gradle +17 -0
- data/tracks/java/exercises/reverse-string/src/main/java/ReverseString.java +7 -0
- data/tracks/java/exercises/reverse-string/src/test/java/ReverseStringTest.java +37 -0
- data/tracks/java/exercises/run-length-encoding/.meta/src/reference/java/RunLengthEncoding.java +4 -4
- data/tracks/java/exercises/settings.gradle +1 -0
- data/tracks/kotlin/docs/RESOURCES.md +1 -1
- data/tracks/kotlin/exercises/accumulate/build.gradle +1 -1
- data/tracks/kotlin/exercises/acronym/build.gradle +1 -1
- data/tracks/kotlin/exercises/all-your-base/build.gradle +1 -1
- data/tracks/kotlin/exercises/allergies/build.gradle +1 -1
- data/tracks/kotlin/exercises/anagram/build.gradle +1 -1
- data/tracks/kotlin/exercises/atbash-cipher/build.gradle +1 -1
- data/tracks/kotlin/exercises/bank-account/build.gradle +1 -1
- data/tracks/kotlin/exercises/beer-song/build.gradle +1 -1
- data/tracks/kotlin/exercises/binary-search/build.gradle +1 -1
- data/tracks/kotlin/exercises/binary/build.gradle +1 -1
- data/tracks/kotlin/exercises/bob/build.gradle +1 -1
- data/tracks/kotlin/exercises/bracket-push/build.gradle +1 -1
- data/tracks/kotlin/exercises/change/build.gradle +1 -1
- data/tracks/kotlin/exercises/clock/build.gradle +1 -1
- data/tracks/kotlin/exercises/collatz-conjecture/build.gradle +1 -1
- data/tracks/kotlin/exercises/complex-numbers/build.gradle +1 -1
- data/tracks/kotlin/exercises/diamond/build.gradle +1 -1
- data/tracks/kotlin/exercises/difference-of-squares/build.gradle +1 -1
- data/tracks/kotlin/exercises/etl/build.gradle +1 -1
- data/tracks/kotlin/exercises/flatten-array/build.gradle +1 -1
- data/tracks/kotlin/exercises/forth/build.gradle +1 -1
- data/tracks/kotlin/exercises/gigasecond/build.gradle +1 -1
- data/tracks/kotlin/exercises/grade-school/build.gradle +1 -1
- data/tracks/kotlin/exercises/grains/build.gradle +1 -1
- data/tracks/kotlin/exercises/hamming/build.gradle +1 -1
- data/tracks/kotlin/exercises/hello-world/build.gradle +1 -1
- data/tracks/kotlin/exercises/hexadecimal/build.gradle +1 -1
- data/tracks/kotlin/exercises/isogram/build.gradle +1 -1
- data/tracks/kotlin/exercises/largest-series-product/build.gradle +1 -1
- data/tracks/kotlin/exercises/leap/build.gradle +1 -1
- data/tracks/kotlin/exercises/linked-list/build.gradle +1 -1
- data/tracks/kotlin/exercises/list-ops/build.gradle +1 -1
- data/tracks/kotlin/exercises/luhn/build.gradle +1 -1
- data/tracks/kotlin/exercises/meetup/build.gradle +1 -1
- data/tracks/kotlin/exercises/minesweeper/build.gradle +1 -1
- data/tracks/kotlin/exercises/nth-prime/build.gradle +1 -1
- data/tracks/kotlin/exercises/nucleotide-count/build.gradle +1 -1
- data/tracks/kotlin/exercises/pangram/build.gradle +1 -1
- data/tracks/kotlin/exercises/pascals-triangle/build.gradle +1 -1
- data/tracks/kotlin/exercises/perfect-numbers/build.gradle +1 -1
- data/tracks/kotlin/exercises/phone-number/build.gradle +1 -1
- data/tracks/kotlin/exercises/pig-latin/build.gradle +1 -1
- data/tracks/kotlin/exercises/prime-factors/build.gradle +1 -1
- data/tracks/kotlin/exercises/raindrops/build.gradle +1 -1
- data/tracks/kotlin/exercises/react/build.gradle +1 -1
- data/tracks/kotlin/exercises/rna-transcription/build.gradle +1 -1
- data/tracks/kotlin/exercises/robot-name/build.gradle +1 -1
- data/tracks/kotlin/exercises/robot-simulator/build.gradle +1 -1
- data/tracks/kotlin/exercises/roman-numerals/build.gradle +1 -1
- data/tracks/kotlin/exercises/rotational-cipher/build.gradle +1 -1
- data/tracks/kotlin/exercises/saddle-points/build.gradle +1 -1
- data/tracks/kotlin/exercises/say/build.gradle +1 -1
- data/tracks/kotlin/exercises/scrabble-score/build.gradle +1 -1
- data/tracks/kotlin/exercises/secret-handshake/build.gradle +1 -1
- data/tracks/kotlin/exercises/series/build.gradle +1 -1
- data/tracks/kotlin/exercises/sieve/build.gradle +1 -1
- data/tracks/kotlin/exercises/simple-cipher/README.md +4 -6
- data/tracks/kotlin/exercises/simple-cipher/build.gradle +1 -1
- data/tracks/kotlin/exercises/space-age/build.gradle +1 -1
- data/tracks/kotlin/exercises/spiral-matrix/build.gradle +1 -1
- data/tracks/kotlin/exercises/strain/build.gradle +1 -1
- data/tracks/kotlin/exercises/sublist/build.gradle +1 -1
- data/tracks/kotlin/exercises/sum-of-multiples/build.gradle +1 -1
- data/tracks/kotlin/exercises/triangle/build.gradle +1 -1
- data/tracks/kotlin/exercises/two-fer/build.gradle +1 -1
- data/tracks/kotlin/exercises/word-count/build.gradle +1 -1
- data/tracks/lua/.gitignore +1 -0
- data/tracks/lua/config.json +12 -0
- data/tracks/lua/exercises/isbn-verifier/README.md +52 -0
- data/tracks/lua/exercises/isbn-verifier/example.lua +16 -0
- data/tracks/lua/exercises/isbn-verifier/isbn-verifier_spec.lua +55 -0
- data/tracks/ocaml/.travis-ci.sh +1 -1
- data/tracks/ocaml/.travis.yml +1 -1
- data/tracks/ocaml/README.md +1 -1
- data/tracks/perl6/config.json +10 -0
- data/tracks/perl6/exercises/acronym/Acronym.pm6 +4 -0
- data/tracks/perl6/exercises/acronym/Example.pm6 +5 -0
- data/tracks/perl6/exercises/acronym/README.md +33 -0
- data/tracks/perl6/exercises/acronym/acronym.t +96 -0
- data/tracks/perl6/exercises/acronym/example.yaml +19 -0
- data/tracks/perl6/exercises/word-count/Example.pm6 +1 -1
- data/tracks/perl6/exercises/word-count/WordCount.pm6 +1 -1
- data/tracks/perl6/exercises/word-count/example.yaml +2 -2
- data/tracks/perl6/exercises/word-count/word-count.t +11 -2
- data/tracks/pony/docs/RESOURCES.md +1 -1
- data/tracks/purescript/docs/INSTALLATION.md +1 -3
- data/tracks/python/config.json +1 -1
- data/tracks/r/exercises/word-count/test_word-count.R +5 -0
- data/tracks/ruby/README.md +73 -10
- data/tracks/rust/config.json +34 -0
- data/tracks/rust/exercises/book-store/Cargo.toml +1 -1
- data/tracks/rust/exercises/book-store/tests/book-store.rs +7 -0
- data/tracks/rust/exercises/diffie-hellman/.gitignore +9 -0
- data/tracks/rust/exercises/diffie-hellman/Cargo-example.toml +6 -0
- data/tracks/rust/exercises/diffie-hellman/Cargo.toml +5 -0
- data/tracks/rust/exercises/diffie-hellman/README.md +77 -0
- data/tracks/rust/exercises/diffie-hellman/example.rs +15 -0
- data/tracks/rust/exercises/diffie-hellman/src/lib.rs +11 -0
- data/tracks/rust/exercises/diffie-hellman/tests/diffie-hellman.rs +60 -0
- data/tracks/rust/exercises/macros/.gitignore +3 -0
- data/tracks/rust/exercises/macros/.meta/description.md +29 -0
- data/tracks/rust/exercises/macros/.meta/metadata.yml +3 -0
- data/tracks/rust/exercises/macros/Cargo.toml +6 -0
- data/tracks/rust/exercises/macros/README.md +70 -0
- data/tracks/rust/exercises/macros/example.rs +16 -0
- data/tracks/rust/exercises/macros/src/lib.rs +6 -0
- data/tracks/rust/exercises/macros/tests/macros.rs +62 -0
- data/tracks/rust/exercises/simple-linked-list/.gitignore +7 -0
- data/tracks/rust/exercises/simple-linked-list/.meta/hints.md +34 -0
- data/tracks/rust/exercises/simple-linked-list/Cargo.toml +5 -0
- data/tracks/rust/exercises/simple-linked-list/README.md +96 -0
- data/tracks/rust/exercises/simple-linked-list/example.rs +87 -0
- data/tracks/rust/exercises/simple-linked-list/src/lib.rs +46 -0
- data/tracks/rust/exercises/simple-linked-list/tests/simple-linked-list.rs +91 -0
- data/tracks/swift/.travis.yml +1 -1
- data/tracks/swift/config.json +24 -0
- data/tracks/swift/exercises/isbn-verifier/Package.swift +5 -0
- data/tracks/swift/exercises/isbn-verifier/README.md +39 -0
- data/tracks/swift/exercises/isbn-verifier/Sources/IsbnVerifier.swift +1 -0
- data/tracks/swift/exercises/isbn-verifier/Sources/IsbnVerifierExample.swift +35 -0
- data/tracks/swift/exercises/isbn-verifier/Tests/IsbnVerifierTests/IsbnVerifierTests.swift +75 -0
- data/tracks/swift/exercises/isbn-verifier/Tests/LinuxMain.swift +6 -0
- data/tracks/swift/exercises/two-fer/Package.swift +5 -0
- data/tracks/swift/exercises/two-fer/README.md +54 -0
- data/tracks/swift/exercises/two-fer/Sources/TwoFer.swift +1 -0
- data/tracks/swift/exercises/two-fer/Sources/TwoFerExample.swift +6 -0
- data/tracks/swift/exercises/two-fer/Tests/LinuxMain.swift +6 -0
- data/tracks/swift/exercises/two-fer/Tests/TwoFerTests/TwoFerTests.swift +25 -0
- metadata +71 -2
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
extern crate simple_linked_list;
|
|
2
|
+
|
|
3
|
+
use simple_linked_list::SimpleLinkedList;
|
|
4
|
+
|
|
5
|
+
#[test]
|
|
6
|
+
fn test_new_list_is_empty() {
|
|
7
|
+
let list: SimpleLinkedList<u32> = SimpleLinkedList::new();
|
|
8
|
+
assert_eq!(list.len(), 0, "list's length must be 0");
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
#[test]
|
|
12
|
+
#[ignore]
|
|
13
|
+
fn test_push_increments_length() {
|
|
14
|
+
let mut list: SimpleLinkedList<u32> = SimpleLinkedList::new();
|
|
15
|
+
list.push(1);
|
|
16
|
+
assert_eq!(list.len(), 1, "list's length must be 1");
|
|
17
|
+
list.push(2);
|
|
18
|
+
assert_eq!(list.len(), 2, "list's length must be 2");
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
#[test]
|
|
22
|
+
#[ignore]
|
|
23
|
+
fn test_pop_decrements_length() {
|
|
24
|
+
let mut list: SimpleLinkedList<u32> = SimpleLinkedList::new();
|
|
25
|
+
list.push(1);
|
|
26
|
+
list.push(2);
|
|
27
|
+
list.pop();
|
|
28
|
+
assert_eq!(list.len(), 1, "list's length must be 1");
|
|
29
|
+
list.pop();
|
|
30
|
+
assert_eq!(list.len(), 0, "list's length must be 0");
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
#[test]
|
|
34
|
+
#[ignore]
|
|
35
|
+
fn test_pop_returns_last_added_element() {
|
|
36
|
+
let mut list: SimpleLinkedList<u32> = SimpleLinkedList::new();
|
|
37
|
+
list.push(1);
|
|
38
|
+
list.push(2);
|
|
39
|
+
assert_eq!(list.pop(), Some(2), "Element must be 2");
|
|
40
|
+
assert_eq!(list.pop(), Some(1), "Element must be 1");
|
|
41
|
+
assert_eq!(list.pop(), None, "No element should be contained in list");
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
#[test]
|
|
45
|
+
#[ignore]
|
|
46
|
+
fn test_peek_returns_head_element() {
|
|
47
|
+
let mut list: SimpleLinkedList<u32> = SimpleLinkedList::new();
|
|
48
|
+
assert_eq!(list.peek(), None, "No element should be contained in list");
|
|
49
|
+
list.push(2);
|
|
50
|
+
assert_eq!(list.peek(), Some(&2), "Element must be 2");
|
|
51
|
+
assert_eq!(list.peek(), Some(&2), "Element must be still 2");
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
#[test]
|
|
55
|
+
#[ignore]
|
|
56
|
+
fn test_from_slice() {
|
|
57
|
+
let array = ["1", "2", "3", "4"];
|
|
58
|
+
let mut list = SimpleLinkedList::from(array.as_ref());
|
|
59
|
+
assert_eq!(list.pop(), Some("4"));
|
|
60
|
+
assert_eq!(list.pop(), Some("3"));
|
|
61
|
+
assert_eq!(list.pop(), Some("2"));
|
|
62
|
+
assert_eq!(list.pop(), Some("1"));
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
#[test]
|
|
66
|
+
#[ignore]
|
|
67
|
+
fn test_reverse() {
|
|
68
|
+
let mut list: SimpleLinkedList<u32> = SimpleLinkedList::new();
|
|
69
|
+
list.push(1);
|
|
70
|
+
list.push(2);
|
|
71
|
+
list.push(3);
|
|
72
|
+
let mut rev_list = list.rev();
|
|
73
|
+
assert_eq!(rev_list.pop(), Some(1));
|
|
74
|
+
assert_eq!(rev_list.pop(), Some(2));
|
|
75
|
+
assert_eq!(rev_list.pop(), Some(3));
|
|
76
|
+
assert_eq!(rev_list.pop(), None);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
#[test]
|
|
81
|
+
#[ignore]
|
|
82
|
+
fn test_into_vector() {
|
|
83
|
+
let mut v = Vec::new();
|
|
84
|
+
let mut s = SimpleLinkedList::new();
|
|
85
|
+
for i in vec![1, 2, 3] {
|
|
86
|
+
v.push(i);
|
|
87
|
+
s.push(i);
|
|
88
|
+
}
|
|
89
|
+
let s_as_vec: Vec<i32> = s.into();
|
|
90
|
+
assert_eq!(v, s_as_vec);
|
|
91
|
+
}
|
data/tracks/swift/.travis.yml
CHANGED
|
@@ -18,7 +18,7 @@ matrix:
|
|
|
18
18
|
- script:
|
|
19
19
|
- bin/fetch-configlet
|
|
20
20
|
- bin/configlet lint .
|
|
21
|
-
- docker run -v `pwd`:/swift
|
|
21
|
+
- docker run -v `pwd`:/swift swift:4.0.2 bash -c "cd /swift && ./xswift-test-spm"
|
|
22
22
|
env: JOB=Linux40
|
|
23
23
|
sudo: required
|
|
24
24
|
services: docker
|
data/tracks/swift/config.json
CHANGED
|
@@ -12,6 +12,17 @@
|
|
|
12
12
|
"unlocked_by": null,
|
|
13
13
|
"uuid": "63906530-1e13-491a-ab17-aee66d619fd8"
|
|
14
14
|
},
|
|
15
|
+
{
|
|
16
|
+
"core": false,
|
|
17
|
+
"difficulty": 1,
|
|
18
|
+
"slug": "two-fer",
|
|
19
|
+
"topics": [
|
|
20
|
+
"optional_values",
|
|
21
|
+
"text_formatting"
|
|
22
|
+
],
|
|
23
|
+
"unlocked_by": null,
|
|
24
|
+
"uuid": "ed859c29-fae0-4a32-9074-ac3c3cf324c2"
|
|
25
|
+
},
|
|
15
26
|
{
|
|
16
27
|
"core": false,
|
|
17
28
|
"difficulty": 1,
|
|
@@ -358,6 +369,19 @@
|
|
|
358
369
|
"unlocked_by": null,
|
|
359
370
|
"uuid": "6d70fd81-76a4-4e44-a64a-9a070e07e83d"
|
|
360
371
|
},
|
|
372
|
+
{
|
|
373
|
+
"core": false,
|
|
374
|
+
"difficulty": 3,
|
|
375
|
+
"slug": "isbn-verifier",
|
|
376
|
+
"topics": [
|
|
377
|
+
"conditionals",
|
|
378
|
+
"loops",
|
|
379
|
+
"pattern_matching",
|
|
380
|
+
"strings"
|
|
381
|
+
],
|
|
382
|
+
"unlocked_by": null,
|
|
383
|
+
"uuid": "5854447a-ff9f-4321-bd5c-430555b91fc6"
|
|
384
|
+
},
|
|
361
385
|
{
|
|
362
386
|
"core": false,
|
|
363
387
|
"difficulty": 4,
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# ISBN Verifier
|
|
2
|
+
|
|
3
|
+
Check if a given ISBN-10 is valid.
|
|
4
|
+
|
|
5
|
+
## Functionality
|
|
6
|
+
|
|
7
|
+
Given an unknown string the program should check if the provided string is a valid ISBN-10.
|
|
8
|
+
Putting this into place requires some thinking about preprocessing/parsing of the string prior to calculating the check digit for the ISBN.
|
|
9
|
+
|
|
10
|
+
The program should allow for ISBN-10 without the separating dashes to be verified as well.
|
|
11
|
+
|
|
12
|
+
## ISBN
|
|
13
|
+
|
|
14
|
+
Let's take a random ISBN-10 number, say `3-598-21508-8` for this.
|
|
15
|
+
The first digit block indicates the group where the ISBN belongs. Groups can consist of shared languages, geographic regions or countries. The leading '3' signals this ISBN is from a german speaking country.
|
|
16
|
+
The following number block is to identify the publisher. Since this is a three digit publisher number there is a 5 digit title number for this book.
|
|
17
|
+
The last digit in the ISBN is the check digit which is used to detect read errors.
|
|
18
|
+
|
|
19
|
+
The first 9 digits in the ISBN have to be between 0 and 9.
|
|
20
|
+
The check digit can additionally be an 'X' to allow 10 to be a valid check digit as well.
|
|
21
|
+
|
|
22
|
+
A valid ISBN-10 is calculated with this formula `(x1 * 10 + x2 * 9 + x3 * 8 + x4 * 7 + x5 * 6 + x6 * 5 + x7 * 4 + x8 * 3 + x9 * 2 + x10 * 1) mod 11 == 0`
|
|
23
|
+
So for our example ISBN this means:
|
|
24
|
+
(3 * 10 + 5 * 9 + 9 * 8 + 8 * 7 + 2 * 6 + 1 * 5 + 5 * 4 + 0 * 3 + 8 * 2 + 8 * 1) mod 11 = 0
|
|
25
|
+
|
|
26
|
+
Which proves that the ISBN is valid.
|
|
27
|
+
|
|
28
|
+
## Setup
|
|
29
|
+
|
|
30
|
+
Go through the project setup instructions for Xcode using Swift:
|
|
31
|
+
|
|
32
|
+
http://exercism.io/languages/swift
|
|
33
|
+
|
|
34
|
+
## Source
|
|
35
|
+
|
|
36
|
+
Converting a string into a number and some basic processing utilizing a relatable real world example. [https://en.wikipedia.org/wiki/International_Standard_Book_Number#ISBN-10_check_digit_calculation](https://en.wikipedia.org/wiki/International_Standard_Book_Number)
|
|
37
|
+
|
|
38
|
+
## Submitting Incomplete Solutions
|
|
39
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//Solution goes in Sources
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
struct IsbnVerifier {
|
|
2
|
+
|
|
3
|
+
static func isValid(_ string: String) -> Bool {
|
|
4
|
+
// This will be considerably less awkward after Swift 3 support is dropped
|
|
5
|
+
let cleanedString = string.characters.split(separator: "-").map(String.init).joined()
|
|
6
|
+
|
|
7
|
+
guard cleanedString.characters.count == 10 else {
|
|
8
|
+
return false
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
var digits = [Int]()
|
|
12
|
+
|
|
13
|
+
for character in cleanedString.characters.dropLast() {
|
|
14
|
+
if let digit = Int(String(character)) {
|
|
15
|
+
digits.append(digit)
|
|
16
|
+
} else {
|
|
17
|
+
return false
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
if cleanedString.characters.last == "X" {
|
|
22
|
+
digits.append(10)
|
|
23
|
+
} else if let last = cleanedString.characters.last, let digit = Int(String(last)) {
|
|
24
|
+
digits.append(digit)
|
|
25
|
+
} else {
|
|
26
|
+
return false
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
let sum = digits.enumerated().reduce(0) {
|
|
30
|
+
return $0 + (10 - $1.offset) * $1.element
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return sum % 11 == 0
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import XCTest
|
|
2
|
+
@testable import IsbnVerifier
|
|
3
|
+
|
|
4
|
+
class IsbnVerifierTests: XCTestCase {
|
|
5
|
+
|
|
6
|
+
func testValidIsbnNumber() {
|
|
7
|
+
XCTAssertTrue(IsbnVerifier.isValid("3-598-21508-8"))
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
func testInvalidIsbnCheckDigit() {
|
|
11
|
+
XCTAssertFalse(IsbnVerifier.isValid("3-598-21508-9"))
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
func testValidIsbnNumberWithACheckDigitOf10() {
|
|
15
|
+
XCTAssertTrue(IsbnVerifier.isValid("3-598-21507-X"))
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
func testCheckDigitIsACharacterOtherThanX() {
|
|
19
|
+
XCTAssertFalse(IsbnVerifier.isValid("3-598-21507-A"))
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
func testInvalidCharacterInIsbn() {
|
|
23
|
+
XCTAssertFalse(IsbnVerifier.isValid("3-598-2K507-0"))
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
func testXIsOnlyValidAsACheckDigit() {
|
|
27
|
+
XCTAssertFalse(IsbnVerifier.isValid("3-598-2X507-9"))
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
func testValidIsbnWithoutSeparatingDashes() {
|
|
31
|
+
XCTAssertTrue(IsbnVerifier.isValid("3598215088"))
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
func testIsbnWithoutSeparatingDashesAndXAsCheckDigit() {
|
|
35
|
+
XCTAssertTrue(IsbnVerifier.isValid("359821507X"))
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
func testIsbnWithoutCheckDigitAndDashes() {
|
|
39
|
+
XCTAssertFalse(IsbnVerifier.isValid("359821507"))
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
func testTooLongIsbnAndNoDashes() {
|
|
43
|
+
XCTAssertFalse(IsbnVerifier.isValid("3598215078X"))
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
func testIsbnWithoutCheckDigit() {
|
|
47
|
+
XCTAssertFalse(IsbnVerifier.isValid("3-598-21507"))
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
func testTooLongIsbn() {
|
|
51
|
+
XCTAssertFalse(IsbnVerifier.isValid("3-598-21507-XX"))
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
func testCheckDigitOfXShouldNotBeUsedFor0() {
|
|
55
|
+
XCTAssertFalse(IsbnVerifier.isValid("3-598-21515-X"))
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
static var allTests: [(String, (IsbnVerifierTests) -> () throws -> Void)] {
|
|
59
|
+
return [
|
|
60
|
+
("testValidIsbnNumber", testValidIsbnNumber),
|
|
61
|
+
("testInvalidIsbnCheckDigit", testInvalidIsbnCheckDigit),
|
|
62
|
+
("testValidIsbnNumberWithACheckDigitOf10", testValidIsbnNumberWithACheckDigitOf10),
|
|
63
|
+
("testCheckDigitIsACharacterOtherThanX", testCheckDigitIsACharacterOtherThanX),
|
|
64
|
+
("testInvalidCharacterInIsbn", testInvalidCharacterInIsbn),
|
|
65
|
+
("testXIsOnlyValidAsACheckDigit", testXIsOnlyValidAsACheckDigit),
|
|
66
|
+
("testValidIsbnWithoutSeparatingDashes", testValidIsbnWithoutSeparatingDashes),
|
|
67
|
+
("testIsbnWithoutSeparatingDashesAndXAsCheckDigit", testIsbnWithoutSeparatingDashesAndXAsCheckDigit),
|
|
68
|
+
("testIsbnWithoutCheckDigitAndDashes", testIsbnWithoutCheckDigitAndDashes),
|
|
69
|
+
("testTooLongIsbnAndNoDashes", testTooLongIsbnAndNoDashes),
|
|
70
|
+
("testIsbnWithoutCheckDigit", testIsbnWithoutCheckDigit),
|
|
71
|
+
("testTooLongIsbn", testTooLongIsbn),
|
|
72
|
+
("testCheckDigitOfXShouldNotBeUsedFor0", testCheckDigitOfXShouldNotBeUsedFor0)
|
|
73
|
+
]
|
|
74
|
+
}
|
|
75
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Two Fer
|
|
2
|
+
|
|
3
|
+
`Two-fer` or `2-fer` is short for two for one. One for you and one for me.
|
|
4
|
+
|
|
5
|
+
```text
|
|
6
|
+
"One for X, one for me."
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
When X is a name or "you".
|
|
10
|
+
|
|
11
|
+
If the given name is "Alice", the result should be "One for Alice, one for me."
|
|
12
|
+
If no name is given, the result should be "One for you, one for me."
|
|
13
|
+
|
|
14
|
+
## Test-Driven Development
|
|
15
|
+
|
|
16
|
+
As programmers mature, they eventually want to test their code.
|
|
17
|
+
|
|
18
|
+
Here at Exercism we simulate [Test-Driven
|
|
19
|
+
Development](http://en.wikipedia.org/wiki/Test-driven_development) (TDD), where
|
|
20
|
+
you write your tests before writing any functionality. The simulation comes in
|
|
21
|
+
the form of a pre-written test suite, which will signal that you have solved
|
|
22
|
+
the problem.
|
|
23
|
+
|
|
24
|
+
It will also provide you with a safety net to explore other solutions without
|
|
25
|
+
breaking the functionality.
|
|
26
|
+
|
|
27
|
+
### A typical TDD workflow on Exercism:
|
|
28
|
+
|
|
29
|
+
1. Run the test file and pick one test that's failing.
|
|
30
|
+
2. Write some code to fix the test you picked.
|
|
31
|
+
3. Re-run the tests to confirm the test is now passing.
|
|
32
|
+
4. Repeat from step 1.
|
|
33
|
+
5. Submit your solution (`exercism submit /path/to/file`)
|
|
34
|
+
|
|
35
|
+
## Instructions
|
|
36
|
+
|
|
37
|
+
Submissions are encouraged to be general, within reason. Having said that, it's
|
|
38
|
+
also important not to over-engineer a solution.
|
|
39
|
+
|
|
40
|
+
It's important to remember that the goal is to make code as expressive and
|
|
41
|
+
readable as we can.
|
|
42
|
+
|
|
43
|
+
## Setup
|
|
44
|
+
|
|
45
|
+
Go through the project setup instructions for Xcode using Swift:
|
|
46
|
+
|
|
47
|
+
http://exercism.io/languages/swift
|
|
48
|
+
|
|
49
|
+
## Source
|
|
50
|
+
|
|
51
|
+
This is an exercise to introduce users to basic programming constructs, just after hello World. [https://en.wikipedia.org/wiki/Two-fer](https://en.wikipedia.org/wiki/Two-fer)
|
|
52
|
+
|
|
53
|
+
## Submitting Incomplete Solutions
|
|
54
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//Solution goes in Sources
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import XCTest
|
|
2
|
+
@testable import TwoFer
|
|
3
|
+
|
|
4
|
+
class TwoFerTests: XCTestCase {
|
|
5
|
+
|
|
6
|
+
func testNoNameGiven() {
|
|
7
|
+
XCTAssertEqual(TwoFer.twoFer(), "One for you, one for me.")
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
func testANameGiven() {
|
|
11
|
+
XCTAssertEqual(TwoFer.twoFer(name: "Alice"), "One for Alice, one for me.")
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
func testAnotherNameGiven() {
|
|
15
|
+
XCTAssertEqual(TwoFer.twoFer(name: "Bob"), "One for Bob, one for me.")
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
static var allTests: [(String, (TwoFerTests) -> () throws -> Void)] {
|
|
19
|
+
return [
|
|
20
|
+
("testNoNameGiven", testNoNameGiven),
|
|
21
|
+
("testANameGiven", testANameGiven),
|
|
22
|
+
("testAnotherNameGiven", testAnotherNameGiven),
|
|
23
|
+
]
|
|
24
|
+
}
|
|
25
|
+
}
|
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.72
|
|
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-30 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rubyzip
|
|
@@ -582,6 +582,7 @@ files:
|
|
|
582
582
|
- tracks/bash/.git
|
|
583
583
|
- tracks/bash/.gitignore
|
|
584
584
|
- tracks/bash/.travis.yml
|
|
585
|
+
- tracks/bash/CONTRIBUTING.md
|
|
585
586
|
- tracks/bash/LICENSE
|
|
586
587
|
- tracks/bash/README.md
|
|
587
588
|
- tracks/bash/bin/fetch-configlet
|
|
@@ -638,6 +639,9 @@ files:
|
|
|
638
639
|
- tracks/bash/exercises/rna-transcription/README.md
|
|
639
640
|
- tracks/bash/exercises/rna-transcription/example.sh
|
|
640
641
|
- tracks/bash/exercises/rna-transcription/rna_transcription_test.sh
|
|
642
|
+
- tracks/bash/exercises/triangle/README.md
|
|
643
|
+
- tracks/bash/exercises/triangle/example.sh
|
|
644
|
+
- tracks/bash/exercises/triangle/triangle_test.sh
|
|
641
645
|
- tracks/bash/exercises/two-fer/README.md
|
|
642
646
|
- tracks/bash/exercises/two-fer/example.sh
|
|
643
647
|
- tracks/bash/exercises/two-fer/two_fer_test.sh
|
|
@@ -645,6 +649,9 @@ files:
|
|
|
645
649
|
- tracks/bash/exercises/word-count/example.awk
|
|
646
650
|
- tracks/bash/exercises/word-count/example.sh
|
|
647
651
|
- tracks/bash/exercises/word-count/word_count_test.sh
|
|
652
|
+
- tracks/bash/img/canonical-data-example.png
|
|
653
|
+
- tracks/bash/img/create-pr.png
|
|
654
|
+
- tracks/bash/img/fork-repository.png
|
|
648
655
|
- tracks/bash/img/icon.png
|
|
649
656
|
- tracks/c/.git
|
|
650
657
|
- tracks/c/.github/stale.yml
|
|
@@ -3609,6 +3616,10 @@ files:
|
|
|
3609
3616
|
- tracks/ecmascript/exercises/raindrops/example.js
|
|
3610
3617
|
- tracks/ecmascript/exercises/raindrops/package.json
|
|
3611
3618
|
- tracks/ecmascript/exercises/raindrops/raindrops.spec.js
|
|
3619
|
+
- tracks/ecmascript/exercises/react/README.md
|
|
3620
|
+
- tracks/ecmascript/exercises/react/example.js
|
|
3621
|
+
- tracks/ecmascript/exercises/react/package.json
|
|
3622
|
+
- tracks/ecmascript/exercises/react/react.spec.js
|
|
3612
3623
|
- tracks/ecmascript/exercises/rectangles/README.md
|
|
3613
3624
|
- tracks/ecmascript/exercises/rectangles/example.js
|
|
3614
3625
|
- tracks/ecmascript/exercises/rectangles/package.json
|
|
@@ -5698,8 +5709,10 @@ files:
|
|
|
5698
5709
|
- tracks/go/exercises/binary-search-tree/README.md
|
|
5699
5710
|
- tracks/go/exercises/binary-search-tree/binary_search_tree_test.go
|
|
5700
5711
|
- tracks/go/exercises/binary-search-tree/example.go
|
|
5712
|
+
- tracks/go/exercises/binary-search/.meta/gen.go
|
|
5701
5713
|
- tracks/go/exercises/binary-search/README.md
|
|
5702
5714
|
- tracks/go/exercises/binary-search/binary_search_test.go
|
|
5715
|
+
- tracks/go/exercises/binary-search/cases_test.go
|
|
5703
5716
|
- tracks/go/exercises/binary-search/example.go
|
|
5704
5717
|
- tracks/go/exercises/binary/README.md
|
|
5705
5718
|
- tracks/go/exercises/binary/binary_test.go
|
|
@@ -5876,7 +5889,9 @@ files:
|
|
|
5876
5889
|
- tracks/go/exercises/minesweeper/board.go
|
|
5877
5890
|
- tracks/go/exercises/minesweeper/example.go
|
|
5878
5891
|
- tracks/go/exercises/minesweeper/minesweeper_test.go
|
|
5892
|
+
- tracks/go/exercises/nth-prime/.meta/gen.go
|
|
5879
5893
|
- tracks/go/exercises/nth-prime/README.md
|
|
5894
|
+
- tracks/go/exercises/nth-prime/cases_test.go
|
|
5880
5895
|
- tracks/go/exercises/nth-prime/example.go
|
|
5881
5896
|
- tracks/go/exercises/nth-prime/nth_prime_test.go
|
|
5882
5897
|
- tracks/go/exercises/nucleotide-count/README.md
|
|
@@ -5933,7 +5948,9 @@ files:
|
|
|
5933
5948
|
- tracks/go/exercises/pov/README.md
|
|
5934
5949
|
- tracks/go/exercises/pov/example.go
|
|
5935
5950
|
- tracks/go/exercises/pov/pov_test.go
|
|
5951
|
+
- tracks/go/exercises/prime-factors/.meta/gen.go
|
|
5936
5952
|
- tracks/go/exercises/prime-factors/README.md
|
|
5953
|
+
- tracks/go/exercises/prime-factors/cases_test.go
|
|
5937
5954
|
- tracks/go/exercises/prime-factors/example.go
|
|
5938
5955
|
- tracks/go/exercises/prime-factors/prime_factors_test.go
|
|
5939
5956
|
- tracks/go/exercises/protein-translation/README.md
|
|
@@ -6147,6 +6164,10 @@ files:
|
|
|
6147
6164
|
- tracks/groovy/exercises/leap/Leap.groovy
|
|
6148
6165
|
- tracks/groovy/exercises/leap/LeapSpec.groovy
|
|
6149
6166
|
- tracks/groovy/exercises/leap/README.md
|
|
6167
|
+
- tracks/groovy/exercises/linked-list/DoubleLinkedList.groovy
|
|
6168
|
+
- tracks/groovy/exercises/linked-list/DoubleLinkedListSpec.groovy
|
|
6169
|
+
- tracks/groovy/exercises/linked-list/Example.groovy
|
|
6170
|
+
- tracks/groovy/exercises/linked-list/README.md
|
|
6150
6171
|
- tracks/groovy/exercises/nth-prime/Example.groovy
|
|
6151
6172
|
- tracks/groovy/exercises/nth-prime/NthPrime.groovy
|
|
6152
6173
|
- tracks/groovy/exercises/nth-prime/NthPrimeSpec.groovy
|
|
@@ -7349,6 +7370,12 @@ files:
|
|
|
7349
7370
|
- tracks/java/exercises/rectangles/build.gradle
|
|
7350
7371
|
- tracks/java/exercises/rectangles/src/main/java/.keep
|
|
7351
7372
|
- tracks/java/exercises/rectangles/src/test/java/RectangleCounterTest.java
|
|
7373
|
+
- tracks/java/exercises/reverse-string/.meta/src/reference/java/ReverseString.java
|
|
7374
|
+
- tracks/java/exercises/reverse-string/.meta/version
|
|
7375
|
+
- tracks/java/exercises/reverse-string/README.md
|
|
7376
|
+
- tracks/java/exercises/reverse-string/build.gradle
|
|
7377
|
+
- tracks/java/exercises/reverse-string/src/main/java/ReverseString.java
|
|
7378
|
+
- tracks/java/exercises/reverse-string/src/test/java/ReverseStringTest.java
|
|
7352
7379
|
- tracks/java/exercises/rna-transcription/.meta/src/reference/java/RnaTranscription.java
|
|
7353
7380
|
- tracks/java/exercises/rna-transcription/.meta/version
|
|
7354
7381
|
- tracks/java/exercises/rna-transcription/README.md
|
|
@@ -8787,6 +8814,9 @@ files:
|
|
|
8787
8814
|
- tracks/lua/exercises/house/README.md
|
|
8788
8815
|
- tracks/lua/exercises/house/example.lua
|
|
8789
8816
|
- tracks/lua/exercises/house/house_spec.lua
|
|
8817
|
+
- tracks/lua/exercises/isbn-verifier/README.md
|
|
8818
|
+
- tracks/lua/exercises/isbn-verifier/example.lua
|
|
8819
|
+
- tracks/lua/exercises/isbn-verifier/isbn-verifier_spec.lua
|
|
8790
8820
|
- tracks/lua/exercises/isogram/README.md
|
|
8791
8821
|
- tracks/lua/exercises/isogram/example.lua
|
|
8792
8822
|
- tracks/lua/exercises/isogram/isogram_spec.lua
|
|
@@ -9860,6 +9890,11 @@ files:
|
|
|
9860
9890
|
- tracks/perl6/exercises/accumulate/README.md
|
|
9861
9891
|
- tracks/perl6/exercises/accumulate/accumulate.t
|
|
9862
9892
|
- tracks/perl6/exercises/accumulate/example.yaml
|
|
9893
|
+
- tracks/perl6/exercises/acronym/Acronym.pm6
|
|
9894
|
+
- tracks/perl6/exercises/acronym/Example.pm6
|
|
9895
|
+
- tracks/perl6/exercises/acronym/README.md
|
|
9896
|
+
- tracks/perl6/exercises/acronym/acronym.t
|
|
9897
|
+
- tracks/perl6/exercises/acronym/example.yaml
|
|
9863
9898
|
- tracks/perl6/exercises/all-your-base/AllYourBase.pm6
|
|
9864
9899
|
- tracks/perl6/exercises/all-your-base/Example.pm6
|
|
9865
9900
|
- tracks/perl6/exercises/all-your-base/README.md
|
|
@@ -11916,6 +11951,13 @@ files:
|
|
|
11916
11951
|
- tracks/rust/exercises/difference-of-squares/example.rs
|
|
11917
11952
|
- tracks/rust/exercises/difference-of-squares/src/lib.rs
|
|
11918
11953
|
- tracks/rust/exercises/difference-of-squares/tests/difference-of-square.rs
|
|
11954
|
+
- tracks/rust/exercises/diffie-hellman/.gitignore
|
|
11955
|
+
- tracks/rust/exercises/diffie-hellman/Cargo-example.toml
|
|
11956
|
+
- tracks/rust/exercises/diffie-hellman/Cargo.toml
|
|
11957
|
+
- tracks/rust/exercises/diffie-hellman/README.md
|
|
11958
|
+
- tracks/rust/exercises/diffie-hellman/example.rs
|
|
11959
|
+
- tracks/rust/exercises/diffie-hellman/src/lib.rs
|
|
11960
|
+
- tracks/rust/exercises/diffie-hellman/tests/diffie-hellman.rs
|
|
11919
11961
|
- tracks/rust/exercises/dominoes/.gitignore
|
|
11920
11962
|
- tracks/rust/exercises/dominoes/Cargo.lock
|
|
11921
11963
|
- tracks/rust/exercises/dominoes/Cargo.toml
|
|
@@ -12027,6 +12069,14 @@ files:
|
|
|
12027
12069
|
- tracks/rust/exercises/luhn/example.rs
|
|
12028
12070
|
- tracks/rust/exercises/luhn/src/lib.rs
|
|
12029
12071
|
- tracks/rust/exercises/luhn/tests/luhn.rs
|
|
12072
|
+
- tracks/rust/exercises/macros/.gitignore
|
|
12073
|
+
- tracks/rust/exercises/macros/.meta/description.md
|
|
12074
|
+
- tracks/rust/exercises/macros/.meta/metadata.yml
|
|
12075
|
+
- tracks/rust/exercises/macros/Cargo.toml
|
|
12076
|
+
- tracks/rust/exercises/macros/README.md
|
|
12077
|
+
- tracks/rust/exercises/macros/example.rs
|
|
12078
|
+
- tracks/rust/exercises/macros/src/lib.rs
|
|
12079
|
+
- tracks/rust/exercises/macros/tests/macros.rs
|
|
12030
12080
|
- tracks/rust/exercises/minesweeper/.gitignore
|
|
12031
12081
|
- tracks/rust/exercises/minesweeper/Cargo.lock
|
|
12032
12082
|
- tracks/rust/exercises/minesweeper/Cargo.toml
|
|
@@ -12240,6 +12290,13 @@ files:
|
|
|
12240
12290
|
- tracks/rust/exercises/sieve/example.rs
|
|
12241
12291
|
- tracks/rust/exercises/sieve/src/lib.rs
|
|
12242
12292
|
- tracks/rust/exercises/sieve/tests/sieve.rs
|
|
12293
|
+
- tracks/rust/exercises/simple-linked-list/.gitignore
|
|
12294
|
+
- tracks/rust/exercises/simple-linked-list/.meta/hints.md
|
|
12295
|
+
- tracks/rust/exercises/simple-linked-list/Cargo.toml
|
|
12296
|
+
- tracks/rust/exercises/simple-linked-list/README.md
|
|
12297
|
+
- tracks/rust/exercises/simple-linked-list/example.rs
|
|
12298
|
+
- tracks/rust/exercises/simple-linked-list/src/lib.rs
|
|
12299
|
+
- tracks/rust/exercises/simple-linked-list/tests/simple-linked-list.rs
|
|
12243
12300
|
- tracks/rust/exercises/space-age/.gitignore
|
|
12244
12301
|
- tracks/rust/exercises/space-age/Cargo.lock
|
|
12245
12302
|
- tracks/rust/exercises/space-age/Cargo.toml
|
|
@@ -13326,6 +13383,12 @@ files:
|
|
|
13326
13383
|
- tracks/swift/exercises/house/Sources/HouseExample.swift
|
|
13327
13384
|
- tracks/swift/exercises/house/Tests/HouseTests/HouseTests.swift
|
|
13328
13385
|
- tracks/swift/exercises/house/Tests/LinuxMain.swift
|
|
13386
|
+
- tracks/swift/exercises/isbn-verifier/Package.swift
|
|
13387
|
+
- tracks/swift/exercises/isbn-verifier/README.md
|
|
13388
|
+
- tracks/swift/exercises/isbn-verifier/Sources/IsbnVerifier.swift
|
|
13389
|
+
- tracks/swift/exercises/isbn-verifier/Sources/IsbnVerifierExample.swift
|
|
13390
|
+
- tracks/swift/exercises/isbn-verifier/Tests/IsbnVerifierTests/IsbnVerifierTests.swift
|
|
13391
|
+
- tracks/swift/exercises/isbn-verifier/Tests/LinuxMain.swift
|
|
13329
13392
|
- tracks/swift/exercises/isogram/.gitignore
|
|
13330
13393
|
- tracks/swift/exercises/isogram/Package.swift
|
|
13331
13394
|
- tracks/swift/exercises/isogram/README.md
|
|
@@ -13653,6 +13716,12 @@ files:
|
|
|
13653
13716
|
- tracks/swift/exercises/twelve-days/Sources/TwelveDaysExample.swift
|
|
13654
13717
|
- tracks/swift/exercises/twelve-days/Tests/LinuxMain.swift
|
|
13655
13718
|
- tracks/swift/exercises/twelve-days/Tests/TwelveDaysTests/TwelveDaysTests.swift
|
|
13719
|
+
- tracks/swift/exercises/two-fer/Package.swift
|
|
13720
|
+
- tracks/swift/exercises/two-fer/README.md
|
|
13721
|
+
- tracks/swift/exercises/two-fer/Sources/TwoFer.swift
|
|
13722
|
+
- tracks/swift/exercises/two-fer/Sources/TwoFerExample.swift
|
|
13723
|
+
- tracks/swift/exercises/two-fer/Tests/LinuxMain.swift
|
|
13724
|
+
- tracks/swift/exercises/two-fer/Tests/TwoFerTests/TwoFerTests.swift
|
|
13656
13725
|
- tracks/swift/exercises/word-count/.gitignore
|
|
13657
13726
|
- tracks/swift/exercises/word-count/Package.swift
|
|
13658
13727
|
- tracks/swift/exercises/word-count/README.md
|