trackler 2.2.1.71 → 2.2.1.72
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/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
|