trackler 2.2.1.179 → 2.2.1.180

Sign up to get free protection for your applications and to get access to all the features.
Files changed (144) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/problem-specifications/exercises/yacht/description.md +14 -13
  4. data/tracks/ballerina/config.json +1 -0
  5. data/tracks/coffeescript/config.json +138 -41
  6. data/tracks/coffeescript/docs/ABOUT.md +3 -7
  7. data/tracks/coq/config.json +1 -0
  8. data/tracks/d/config.json +1 -0
  9. data/tracks/dart/config.json +1 -0
  10. data/tracks/elixir/config.json +17 -16
  11. data/tracks/elixir/docs/ABOUT.md +10 -2
  12. data/tracks/fortran/config.json +1 -0
  13. data/tracks/gnu-apl/config.json +1 -0
  14. data/tracks/go/config.json +13 -0
  15. data/tracks/go/exercises/list-ops/README.md +27 -0
  16. data/tracks/go/exercises/list-ops/example.go +99 -0
  17. data/tracks/go/exercises/list-ops/listops_test.go +291 -0
  18. data/tracks/groovy/config.json +1 -0
  19. data/tracks/haxe/config.json +1 -0
  20. data/tracks/perl5/exercises/leap/.meta/exercise-data.yaml +3 -5
  21. data/tracks/perl5/exercises/leap/.meta/solutions/Leap.pm +2 -4
  22. data/tracks/perl5/exercises/leap/Leap.pm +1 -1
  23. data/tracks/perl5/exercises/leap/leap.t +2 -2
  24. data/tracks/php/config.json +1 -0
  25. data/tracks/plsql/config.json +1 -0
  26. data/tracks/pony/config.json +1 -0
  27. data/tracks/purescript/config.json +1 -0
  28. data/tracks/reasonml/config/exercise_readme.go.tmpl +18 -2
  29. data/tracks/reasonml/exercises/anagram/README.md +15 -4
  30. data/tracks/reasonml/exercises/armstrong-numbers/README.md +3 -4
  31. data/tracks/reasonml/exercises/binary-search/README.md +14 -7
  32. data/tracks/reasonml/exercises/bob/README.md +14 -6
  33. data/tracks/reasonml/exercises/change/README.md +2 -4
  34. data/tracks/reasonml/exercises/hello-world/README.md +2 -3
  35. data/tracks/reasonml/exercises/isogram/README.md +4 -6
  36. data/tracks/reasonml/exercises/leap/README.md +14 -4
  37. data/tracks/reasonml/exercises/pangram/README.md +13 -3
  38. data/tracks/reasonml/exercises/phone-number/README.md +15 -7
  39. data/tracks/reasonml/exercises/raindrops/README.md +14 -7
  40. data/tracks/reasonml/exercises/rna-transcription/README.md +13 -3
  41. data/tracks/reasonml/exercises/roman-numerals/README.md +4 -8
  42. data/tracks/reasonml/exercises/run-length-encoding/README.md +14 -7
  43. data/tracks/reasonml/exercises/space-age/README.md +13 -3
  44. data/tracks/reasonml/exercises/word-count/README.md +18 -8
  45. data/tracks/rust/.travis.yml +1 -0
  46. data/tracks/rust/_test/check-exercises-for-authors.sh +10 -0
  47. data/tracks/rust/bin/format_exercises +2 -0
  48. data/tracks/rust/exercises/accumulate/Cargo.toml +0 -1
  49. data/tracks/rust/exercises/accumulate/example.rs +4 -1
  50. data/tracks/rust/exercises/acronym/example.rs +6 -5
  51. data/tracks/rust/exercises/acronym/tests/acronym.rs +1 -1
  52. data/tracks/rust/exercises/all-your-base/example.rs +8 -2
  53. data/tracks/rust/exercises/allergies/example.rs +28 -6
  54. data/tracks/rust/exercises/alphametics/example.rs +18 -10
  55. data/tracks/rust/exercises/anagram/example.rs +8 -4
  56. data/tracks/rust/exercises/atbash-cipher/example.rs +15 -15
  57. data/tracks/rust/exercises/beer-song/example.rs +18 -12
  58. data/tracks/rust/exercises/binary-search/Cargo.toml +0 -1
  59. data/tracks/rust/exercises/binary-search/example.rs +3 -4
  60. data/tracks/rust/exercises/bob/example.rs +11 -5
  61. data/tracks/rust/exercises/book-store/Cargo-example.toml +0 -1
  62. data/tracks/rust/exercises/book-store/Cargo.toml +0 -1
  63. data/tracks/rust/exercises/book-store/example.rs +15 -19
  64. data/tracks/rust/exercises/bowling/example.rs +3 -1
  65. data/tracks/rust/exercises/bracket-push/example.rs +7 -2
  66. data/tracks/rust/exercises/circular-buffer/example.rs +1 -1
  67. data/tracks/rust/exercises/clock/.meta/ALLOWED_TO_NOT_COMPILE +3 -0
  68. data/tracks/rust/exercises/clock/Cargo.toml +0 -1
  69. data/tracks/rust/exercises/clock/example.rs +5 -3
  70. data/tracks/rust/exercises/clock/src/lib.rs +14 -0
  71. data/tracks/rust/exercises/collatz-conjecture/example.rs +2 -2
  72. data/tracks/rust/exercises/crypto-square/Cargo-example.toml +0 -1
  73. data/tracks/rust/exercises/crypto-square/Cargo.toml +0 -1
  74. data/tracks/rust/exercises/custom-set/example.rs +17 -15
  75. data/tracks/rust/exercises/decimal/Cargo-example.toml +0 -1
  76. data/tracks/rust/exercises/decimal/Cargo.toml +0 -1
  77. data/tracks/rust/exercises/decimal/example.rs +5 -5
  78. data/tracks/rust/exercises/diamond/Cargo.toml +0 -1
  79. data/tracks/rust/exercises/difference-of-squares/example.rs +1 -1
  80. data/tracks/rust/exercises/dominoes/example.rs +20 -19
  81. data/tracks/rust/exercises/etl/example.rs +4 -3
  82. data/tracks/rust/exercises/forth/example.rs +29 -45
  83. data/tracks/rust/exercises/grade-school/example.rs +4 -2
  84. data/tracks/rust/exercises/hexadecimal/example.rs +2 -4
  85. data/tracks/rust/exercises/isbn-verifier/example.rs +5 -6
  86. data/tracks/rust/exercises/isbn-verifier/tests/isbn-verifier.rs +12 -0
  87. data/tracks/rust/exercises/isogram/example.rs +9 -3
  88. data/tracks/rust/exercises/largest-series-product/example.rs +2 -1
  89. data/tracks/rust/exercises/luhn-from/example.rs +3 -1
  90. data/tracks/rust/exercises/luhn/example.rs +5 -3
  91. data/tracks/rust/exercises/macros/Cargo.toml +0 -1
  92. data/tracks/rust/exercises/nth-prime/Cargo.toml +0 -1
  93. data/tracks/rust/exercises/nth-prime/example.rs +6 -6
  94. data/tracks/rust/exercises/nucleotide-codons/Cargo.toml +0 -1
  95. data/tracks/rust/exercises/nucleotide-codons/example.rs +23 -17
  96. data/tracks/rust/exercises/nucleotide-count/example.rs +15 -5
  97. data/tracks/rust/exercises/nucleotide-count/src/lib.rs +15 -0
  98. data/tracks/rust/exercises/nucleotide-count/tests/nucleotide-count.rs +3 -3
  99. data/tracks/rust/exercises/palindrome-products/Cargo.toml +0 -1
  100. data/tracks/rust/exercises/pangram/example.rs +6 -6
  101. data/tracks/rust/exercises/parallel-letter-frequency/example.rs +7 -4
  102. data/tracks/rust/exercises/pascals-triangle/example.rs +6 -2
  103. data/tracks/rust/exercises/perfect-numbers/example.rs +2 -2
  104. data/tracks/rust/exercises/phone-number/example.rs +11 -15
  105. data/tracks/rust/exercises/pig-latin/Cargo-example.toml +0 -1
  106. data/tracks/rust/exercises/pig-latin/Cargo.toml +0 -1
  107. data/tracks/rust/exercises/pig-latin/example.rs +6 -2
  108. data/tracks/rust/exercises/poker/Cargo-example.toml +0 -1
  109. data/tracks/rust/exercises/poker/Cargo.toml +0 -1
  110. data/tracks/rust/exercises/poker/example.rs +9 -8
  111. data/tracks/rust/exercises/prime-factors/Cargo.toml +0 -1
  112. data/tracks/rust/exercises/prime-factors/example.rs +1 -1
  113. data/tracks/rust/exercises/protein-translation/Cargo.toml +0 -1
  114. data/tracks/rust/exercises/protein-translation/example.rs +6 -5
  115. data/tracks/rust/exercises/proverb/Cargo.toml +0 -1
  116. data/tracks/rust/exercises/proverb/example.rs +0 -1
  117. data/tracks/rust/exercises/pythagorean-triplet/Cargo.toml +0 -1
  118. data/tracks/rust/exercises/pythagorean-triplet/example.rs +3 -3
  119. data/tracks/rust/exercises/queen-attack/example.rs +3 -3
  120. data/tracks/rust/exercises/react/example.rs +61 -29
  121. data/tracks/rust/exercises/reverse-string/Cargo.toml +0 -1
  122. data/tracks/rust/exercises/rna-transcription/example.rs +17 -9
  123. data/tracks/rust/exercises/robot-name/example.rs +4 -3
  124. data/tracks/rust/exercises/robot-simulator/example.rs +5 -2
  125. data/tracks/rust/exercises/roman-numerals/example.rs +15 -14
  126. data/tracks/rust/exercises/rotational-cipher/Cargo.toml +0 -1
  127. data/tracks/rust/exercises/rotational-cipher/example.rs +10 -14
  128. data/tracks/rust/exercises/rotational-cipher/src/lib.rs +7 -1
  129. data/tracks/rust/exercises/run-length-encoding/Cargo.toml +0 -1
  130. data/tracks/rust/exercises/run-length-encoding/example.rs +34 -29
  131. data/tracks/rust/exercises/saddle-points/example.rs +0 -1
  132. data/tracks/rust/exercises/say/Cargo.toml +0 -1
  133. data/tracks/rust/exercises/say/example.rs +34 -8
  134. data/tracks/rust/exercises/series/example.rs +6 -8
  135. data/tracks/rust/exercises/simple-linked-list/example.rs +0 -2
  136. data/tracks/rust/exercises/spiral-matrix/example.rs +0 -1
  137. data/tracks/rust/exercises/tournament/example.rs +33 -20
  138. data/tracks/rust/exercises/triangle/example.rs +1 -1
  139. data/tracks/rust/exercises/two-bucket/example.rs +2 -6
  140. data/tracks/rust/exercises/two-fer/example.rs +3 -3
  141. data/tracks/rust/exercises/variable-length-quantity/example.rs +2 -3
  142. data/tracks/rust/exercises/word-count/example.rs +4 -1
  143. data/tracks/rust/exercises/wordy/example.rs +10 -4
  144. metadata +7 -2
@@ -1,5 +1,5 @@
1
- use std::iter::FromIterator;
2
1
  use std::collections::BTreeSet;
2
+ use std::iter::FromIterator;
3
3
 
4
4
  pub struct Triangle {
5
5
  sides: [u16; 3],
@@ -15,7 +15,7 @@ use std::collections::{HashSet, VecDeque};
15
15
  #[derive(PartialEq, Eq, Debug)]
16
16
  pub enum Bucket {
17
17
  One,
18
- Two
18
+ Two,
19
19
  }
20
20
 
21
21
  /// A struct to hold your results in.
@@ -31,11 +31,7 @@ pub struct BucketStats {
31
31
  }
32
32
 
33
33
  /// Solve the bucket problem
34
- pub fn solve(capacity_1: u8,
35
- capacity_2: u8,
36
- goal: u8,
37
- start_bucket: &Bucket) -> BucketStats
38
- {
34
+ pub fn solve(capacity_1: u8, capacity_2: u8, goal: u8, start_bucket: &Bucket) -> BucketStats {
39
35
  let state = match *start_bucket {
40
36
  Bucket::One => (capacity_1, 0),
41
37
  Bucket::Two => (0, capacity_2),
@@ -1,6 +1,6 @@
1
- pub fn twofer(name: &str)-> String {
1
+ pub fn twofer(name: &str) -> String {
2
2
  match name {
3
3
  "" => "One for you, one for me.".to_string(),
4
- _ => format!("One for {}, one for me.",name),
4
+ _ => format!("One for {}, one for me.", name),
5
5
  }
6
- }
6
+ }
@@ -77,7 +77,7 @@ fn to_bytes_single(mut value: u32) -> Vec<u8> {
77
77
  pub fn from_bytes(bytes: &[u8]) -> Result<Vec<u32>, Error> {
78
78
  let mut res = vec![];
79
79
  let mut tmp = 0;
80
- for (i,b) in bytes.iter().enumerate() {
80
+ for (i, b) in bytes.iter().enumerate() {
81
81
  // test if first 7 bit are set, to check for overflow
82
82
  if (tmp & 0xfe_00_00_00) > 0 {
83
83
  return Err(Error::Overflow);
@@ -92,7 +92,7 @@ pub fn from_bytes(bytes: &[u8]) -> Result<Vec<u32>, Error> {
92
92
  tmp = 0;
93
93
  } else {
94
94
  // check for incomplete bytes
95
- if i+1 == bytes.len() {
95
+ if i + 1 == bytes.len() {
96
96
  // the next index would be past the end,
97
97
  // i.e. there are no more bytes.
98
98
  return Err(Error::IncompleteNumber);
@@ -100,6 +100,5 @@ pub fn from_bytes(bytes: &[u8]) -> Result<Vec<u32>, Error> {
100
100
  }
101
101
  }
102
102
 
103
-
104
103
  Ok(res)
105
104
  }
@@ -4,7 +4,10 @@ pub fn word_count(input: &str) -> HashMap<String, u32> {
4
4
  let mut map: HashMap<String, u32> = HashMap::new();
5
5
  let lower = input.to_lowercase();
6
6
  let slice: &str = lower.as_ref();
7
- for word in slice.split(|c: char| !c.is_alphanumeric()).filter(|s| !s.is_empty()) {
7
+ for word in slice
8
+ .split(|c: char| !c.is_alphanumeric())
9
+ .filter(|s| !s.is_empty())
10
+ {
8
11
  *map.entry(word.to_string()).or_insert(0) += 1;
9
12
  }
10
13
  map
@@ -18,14 +18,18 @@ impl Token {
18
18
  }
19
19
 
20
20
  fn is_operator(&self) -> bool {
21
- self.value == String::from("plus") || self.value == String::from("minus") ||
22
- self.value == String::from("multiplied") || self.value == String::from("divided")
21
+ self.value == String::from("plus")
22
+ || self.value == String::from("minus")
23
+ || self.value == String::from("multiplied")
24
+ || self.value == String::from("divided")
23
25
  }
24
26
  }
25
27
 
26
28
  impl WordProblem {
27
29
  pub fn new(c: &str) -> Self {
28
- WordProblem { command: String::from(c) }
30
+ WordProblem {
31
+ command: String::from(c),
32
+ }
29
33
  }
30
34
 
31
35
  pub fn answer(&self) -> Result<isize, ()> {
@@ -74,7 +78,9 @@ impl WordProblem {
74
78
  fn tokens(&self) -> Vec<Token> {
75
79
  self.command
76
80
  .split(|c: char| c.is_whitespace() || c == '?')
77
- .map(|w| Token { value: String::from(w) })
81
+ .map(|w| Token {
82
+ value: String::from(w),
83
+ })
78
84
  .filter(|t| t.is_valid())
79
85
  .collect()
80
86
  }
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.179
4
+ version: 2.2.1.180
5
5
  platform: ruby
6
6
  authors:
7
7
  - Katrina Owen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-07-04 00:00:00.000000000 Z
11
+ date: 2018-07-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip
@@ -6451,6 +6451,9 @@ files:
6451
6451
  - tracks/go/exercises/linked-list/cases_test.go
6452
6452
  - tracks/go/exercises/linked-list/example.go
6453
6453
  - tracks/go/exercises/linked-list/linked_list_test.go
6454
+ - tracks/go/exercises/list-ops/README.md
6455
+ - tracks/go/exercises/list-ops/example.go
6456
+ - tracks/go/exercises/list-ops/listops_test.go
6454
6457
  - tracks/go/exercises/luhn/.meta/gen.go
6455
6458
  - tracks/go/exercises/luhn/README.md
6456
6459
  - tracks/go/exercises/luhn/cases_test.go
@@ -13251,6 +13254,7 @@ files:
13251
13254
  - tracks/rust/README.md
13252
13255
  - tracks/rust/_test/WINDOWS_README.md
13253
13256
  - tracks/rust/_test/check-configlet-fmt.sh
13257
+ - tracks/rust/_test/check-exercises-for-authors.sh
13254
13258
  - tracks/rust/_test/check-exercises.sh
13255
13259
  - tracks/rust/_test/check-stubs.sh
13256
13260
  - tracks/rust/_test/count-ignores.sh
@@ -13367,6 +13371,7 @@ files:
13367
13371
  - tracks/rust/exercises/circular-buffer/src/lib.rs
13368
13372
  - tracks/rust/exercises/circular-buffer/tests/circular-buffer.rs
13369
13373
  - tracks/rust/exercises/clock/.gitignore
13374
+ - tracks/rust/exercises/clock/.meta/ALLOWED_TO_NOT_COMPILE
13370
13375
  - tracks/rust/exercises/clock/.meta/hints.md
13371
13376
  - tracks/rust/exercises/clock/Cargo.toml
13372
13377
  - tracks/rust/exercises/clock/README.md