trackler 2.1.0.21 → 2.1.0.22

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.
Files changed (196) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/tracks/delphi/exercises/allergies/uAllergiesExample.pas +10 -3
  4. data/tracks/ocaml/.travis-ci.sh +3 -1
  5. data/tracks/ocaml/exercises/acronym/Makefile +1 -1
  6. data/tracks/ocaml/exercises/acronym/example.ml +1 -1
  7. data/tracks/ocaml/exercises/acronym/test.ml +2 -4
  8. data/tracks/ocaml/exercises/all-your-base/example.ml +1 -1
  9. data/tracks/ocaml/exercises/all-your-base/test.ml +1 -1
  10. data/tracks/ocaml/exercises/anagram/example.ml +1 -1
  11. data/tracks/ocaml/exercises/anagram/test.ml +1 -1
  12. data/tracks/ocaml/exercises/atbash-cipher/example.ml +1 -1
  13. data/tracks/ocaml/exercises/atbash-cipher/test.ml +1 -1
  14. data/tracks/ocaml/exercises/beer-song/example.ml +1 -1
  15. data/tracks/ocaml/exercises/beer-song/test.ml +1 -1
  16. data/tracks/ocaml/exercises/binary-search/Makefile +1 -1
  17. data/tracks/ocaml/exercises/binary-search/example.ml +5 -5
  18. data/tracks/ocaml/exercises/binary-search/test.ml +1 -1
  19. data/tracks/ocaml/exercises/bob/example.ml +1 -1
  20. data/tracks/ocaml/exercises/bob/test.ml +1 -1
  21. data/tracks/ocaml/exercises/bowling/bowling.mli +1 -1
  22. data/tracks/ocaml/exercises/bowling/example.ml +1 -1
  23. data/tracks/ocaml/exercises/bowling/test.ml +1 -1
  24. data/tracks/ocaml/exercises/bracket-push/example.ml +1 -1
  25. data/tracks/ocaml/exercises/bracket-push/test.ml +1 -1
  26. data/tracks/ocaml/exercises/change/example.ml +1 -1
  27. data/tracks/ocaml/exercises/change/test.ml +1 -1
  28. data/tracks/ocaml/exercises/connect/example.ml +1 -1
  29. data/tracks/ocaml/exercises/connect/test.ml +1 -1
  30. data/tracks/ocaml/exercises/difference-of-squares/example.ml +1 -1
  31. data/tracks/ocaml/exercises/difference-of-squares/test.ml +1 -1
  32. data/tracks/ocaml/exercises/dominoes/example.ml +1 -1
  33. data/tracks/ocaml/exercises/dominoes/test.ml +1 -1
  34. data/tracks/ocaml/exercises/etl/example.ml +1 -1
  35. data/tracks/ocaml/exercises/etl/test.ml +1 -1
  36. data/tracks/ocaml/exercises/grade-school/example.ml +1 -1
  37. data/tracks/ocaml/exercises/grade-school/grade_school.mli +1 -1
  38. data/tracks/ocaml/exercises/grade-school/test.ml +1 -1
  39. data/tracks/ocaml/exercises/hamming/example.ml +1 -1
  40. data/tracks/ocaml/exercises/hamming/test.ml +1 -1
  41. data/tracks/ocaml/exercises/hangman/example.ml +1 -1
  42. data/tracks/ocaml/exercises/hello-world/test.ml +1 -1
  43. data/tracks/ocaml/exercises/hexadecimal/example.ml +1 -1
  44. data/tracks/ocaml/exercises/hexadecimal/test.ml +1 -1
  45. data/tracks/ocaml/exercises/leap/test.ml +1 -1
  46. data/tracks/ocaml/exercises/list-ops/test.ml +1 -1
  47. data/tracks/ocaml/exercises/luhn/example.ml +1 -1
  48. data/tracks/ocaml/exercises/luhn/test.ml +1 -1
  49. data/tracks/ocaml/exercises/meetup/example.ml +1 -1
  50. data/tracks/ocaml/exercises/meetup/test.ml +1 -1
  51. data/tracks/ocaml/exercises/minesweeper/example.ml +1 -1
  52. data/tracks/ocaml/exercises/minesweeper/test.ml +1 -1
  53. data/tracks/ocaml/exercises/nucleotide-count/example.ml +1 -1
  54. data/tracks/ocaml/exercises/nucleotide-count/nucleotide_count.mli +1 -1
  55. data/tracks/ocaml/exercises/nucleotide-count/test.ml +1 -1
  56. data/tracks/ocaml/exercises/pangram/example.ml +1 -1
  57. data/tracks/ocaml/exercises/pangram/test.ml +1 -1
  58. data/tracks/ocaml/exercises/phone-number/example.ml +1 -1
  59. data/tracks/ocaml/exercises/phone-number/test.ml +1 -1
  60. data/tracks/ocaml/exercises/prime-factors/example.ml +1 -1
  61. data/tracks/ocaml/exercises/prime-factors/test.ml +1 -1
  62. data/tracks/ocaml/exercises/raindrops/example.ml +1 -1
  63. data/tracks/ocaml/exercises/raindrops/test.ml +1 -1
  64. data/tracks/ocaml/exercises/rna-transcription/example.ml +1 -1
  65. data/tracks/ocaml/exercises/rna-transcription/test.ml +1 -1
  66. data/tracks/ocaml/exercises/robot-name/example.ml +1 -1
  67. data/tracks/ocaml/exercises/robot-name/test.ml +1 -1
  68. data/tracks/ocaml/exercises/roman-numerals/test.ml +1 -1
  69. data/tracks/ocaml/exercises/run-length-encoding/example.ml +1 -1
  70. data/tracks/ocaml/exercises/run-length-encoding/test.ml +1 -1
  71. data/tracks/ocaml/exercises/say/example.ml +1 -1
  72. data/tracks/ocaml/exercises/say/test.ml +1 -1
  73. data/tracks/ocaml/exercises/space-age/example.ml +1 -1
  74. data/tracks/ocaml/exercises/space-age/test.ml +1 -1
  75. data/tracks/ocaml/exercises/triangle/example.ml +1 -1
  76. data/tracks/ocaml/exercises/triangle/test.ml +1 -1
  77. data/tracks/ocaml/exercises/word-count/example.ml +1 -1
  78. data/tracks/ocaml/exercises/word-count/test.ml +1 -1
  79. data/tracks/ocaml/exercises/word-count/word_count.mli +1 -3
  80. data/tracks/ocaml/exercises/zipper/example.ml +1 -1
  81. data/tracks/ocaml/exercises/zipper/test.ml +1 -1
  82. data/tracks/ocaml/exercises/zipper/tree.ml +1 -1
  83. data/tracks/ocaml/exercises/zipper/tree.mli +1 -1
  84. data/tracks/ocaml/exercises/zipper/zipper.mli +1 -1
  85. data/tracks/ocaml/tools/test-generator/src/canonical_data_checker.ml +1 -1
  86. data/tracks/ocaml/tools/test-generator/src/codegen.ml +1 -1
  87. data/tracks/ocaml/tools/test-generator/src/controller.ml +1 -1
  88. data/tracks/ocaml/tools/test-generator/src/debug.ml +1 -1
  89. data/tracks/ocaml/tools/test-generator/src/files.ml +1 -1
  90. data/tracks/ocaml/tools/test-generator/src/model.ml +1 -1
  91. data/tracks/ocaml/tools/test-generator/src/parser.ml +5 -5
  92. data/tracks/ocaml/tools/test-generator/src/special_cases.ml +1 -1
  93. data/tracks/ocaml/tools/test-generator/src/template.ml +1 -1
  94. data/tracks/ocaml/tools/test-generator/src/test_gen.ml +1 -1
  95. data/tracks/ocaml/tools/test-generator/src/utils.ml +2 -2
  96. data/tracks/ocaml/tools/test-generator/templates/acronym/template.ml +1 -1
  97. data/tracks/ocaml/tools/test-generator/templates/all-your-base/template.ml +1 -1
  98. data/tracks/ocaml/tools/test-generator/templates/anagram/template.ml +1 -1
  99. data/tracks/ocaml/tools/test-generator/templates/atbash-cipher/template.ml +1 -1
  100. data/tracks/ocaml/tools/test-generator/templates/beer-song/template.ml +1 -1
  101. data/tracks/ocaml/tools/test-generator/templates/binary-search/template.ml +1 -1
  102. data/tracks/ocaml/tools/test-generator/templates/bob/template.ml +1 -1
  103. data/tracks/ocaml/tools/test-generator/templates/bowling/template.ml +1 -1
  104. data/tracks/ocaml/tools/test-generator/templates/bracket-push/template.ml +1 -1
  105. data/tracks/ocaml/tools/test-generator/templates/change/template.ml +1 -1
  106. data/tracks/ocaml/tools/test-generator/templates/connect/template.ml +1 -1
  107. data/tracks/ocaml/tools/test-generator/templates/difference-of-squares/template.ml +1 -1
  108. data/tracks/ocaml/tools/test-generator/templates/dominoes/template.ml +1 -1
  109. data/tracks/ocaml/tools/test-generator/templates/etl/template.ml +1 -1
  110. data/tracks/ocaml/tools/test-generator/templates/hamming/template.ml +1 -1
  111. data/tracks/ocaml/tools/test-generator/templates/hello-world/template.ml +1 -1
  112. data/tracks/ocaml/tools/test-generator/templates/leap/template.ml +1 -1
  113. data/tracks/ocaml/tools/test-generator/templates/luhn/template.ml +1 -1
  114. data/tracks/ocaml/tools/test-generator/templates/minesweeper/template.ml +1 -1
  115. data/tracks/ocaml/tools/test-generator/templates/pangram/template.ml +1 -1
  116. data/tracks/ocaml/tools/test-generator/templates/phone-number/template.ml +1 -1
  117. data/tracks/ocaml/tools/test-generator/templates/prime-factors/template.ml +1 -1
  118. data/tracks/ocaml/tools/test-generator/templates/raindrops/template.ml +1 -1
  119. data/tracks/ocaml/tools/test-generator/templates/roman-numerals/template.ml +1 -1
  120. data/tracks/ocaml/tools/test-generator/templates/run-length-encoding/template.ml +1 -1
  121. data/tracks/ocaml/tools/test-generator/templates/say/template.ml +1 -1
  122. data/tracks/ocaml/tools/test-generator/templates/space-age/template.ml +1 -1
  123. data/tracks/ocaml/tools/test-generator/templates/triangle/template.ml +1 -1
  124. data/tracks/ocaml/tools/test-generator/templates/word-count/template.ml +1 -1
  125. data/tracks/ocaml/tools/test-generator/test/all_tests.ml +1 -1
  126. data/tracks/ocaml/tools/test-generator/test/codegen_test.ml +1 -1
  127. data/tracks/ocaml/tools/test-generator/test/model_test.ml +1 -1
  128. data/tracks/ocaml/tools/test-generator/test/parser_test.ml +1 -1
  129. data/tracks/ocaml/tools/test-generator/test/special_cases_test.ml +1 -1
  130. data/tracks/ocaml/tools/test-generator/test/template_test.ml +1 -1
  131. data/tracks/ocaml/tools/test-generator/test/utils_test.ml +1 -1
  132. data/tracks/r/.travis.yml +13 -2
  133. data/tracks/r/README.md +35 -16
  134. data/tracks/r/bin/run_lints.R +30 -0
  135. data/tracks/r/bin/run_tests.R +35 -0
  136. data/tracks/r/exercises/anagram/anagram.R +1 -1
  137. data/tracks/r/exercises/anagram/example.R +5 -5
  138. data/tracks/r/exercises/anagram/test_anagram.R +1 -15
  139. data/tracks/r/exercises/bob/bob.R +1 -1
  140. data/tracks/r/exercises/bob/example.R +2 -2
  141. data/tracks/r/exercises/bob/test_bob.R +1 -13
  142. data/tracks/r/exercises/difference-of-squares/example.R +5 -5
  143. data/tracks/r/exercises/difference-of-squares/test_difference-of-squares.R +2 -0
  144. data/tracks/r/exercises/grains/example.R +6 -6
  145. data/tracks/r/exercises/grains/grains.R +2 -2
  146. data/tracks/r/exercises/grains/test_grains.R +1 -2
  147. data/tracks/r/exercises/hamming/example.R +3 -3
  148. data/tracks/r/exercises/hamming/hamming.R +1 -1
  149. data/tracks/r/exercises/hamming/test_hamming.R +1 -1
  150. data/tracks/r/exercises/hello-world/example.R +1 -1
  151. data/tracks/r/exercises/hello-world/test_hello-world.R +1 -1
  152. data/tracks/r/exercises/isogram/example.R +4 -4
  153. data/tracks/r/exercises/isogram/isogram.R +1 -1
  154. data/tracks/r/exercises/isogram/test_isogram.R +1 -1
  155. data/tracks/r/exercises/largest-series-product/example.R +11 -11
  156. data/tracks/r/exercises/largest-series-product/largest-series-product.R +2 -2
  157. data/tracks/r/exercises/largest-series-product/test_largest-series-product.R +16 -16
  158. data/tracks/r/exercises/leap/leap.R +1 -1
  159. data/tracks/r/exercises/leap/test_leap.R +1 -1
  160. data/tracks/r/exercises/luhn/example.R +16 -10
  161. data/tracks/r/exercises/luhn/test_luhn.R +1 -1
  162. data/tracks/r/exercises/pascals-triangle/example.R +10 -10
  163. data/tracks/r/exercises/pascals-triangle/pascals-triangle.R +2 -2
  164. data/tracks/r/exercises/pascals-triangle/test_pascals-triangle.R +8 -8
  165. data/tracks/r/exercises/perfect-numbers/example.R +3 -3
  166. data/tracks/r/exercises/perfect-numbers/perfect-numbers.R +1 -1
  167. data/tracks/r/exercises/perfect-numbers/test_perfect-numbers.R +12 -12
  168. data/tracks/r/exercises/phone-number/example.R +8 -8
  169. data/tracks/r/exercises/phone-number/phone-number.R +1 -1
  170. data/tracks/r/exercises/phone-number/test_phone-number.R +11 -11
  171. data/tracks/r/exercises/prime-factors/example.R +2 -2
  172. data/tracks/r/exercises/prime-factors/prime-factors.R +1 -1
  173. data/tracks/r/exercises/prime-factors/test_prime-factors.R +1 -1
  174. data/tracks/r/exercises/raindrops/example.R +12 -11
  175. data/tracks/r/exercises/raindrops/test_raindrops.R +3 -2
  176. data/tracks/r/exercises/rna-transcription/example.R +3 -3
  177. data/tracks/r/exercises/rna-transcription/test_rna-transcription.R +1 -1
  178. data/tracks/r/exercises/rotational-cipher/example.R +7 -7
  179. data/tracks/r/exercises/rotational-cipher/test_rotational-cipher.R +3 -2
  180. data/tracks/r/exercises/scrabble-score/example.R +5 -4
  181. data/tracks/r/exercises/scrabble-score/scrabble-score.R +1 -1
  182. data/tracks/r/exercises/scrabble-score/test_scrabble-score.R +12 -12
  183. data/tracks/r/exercises/secret-handshake/example.R +6 -6
  184. data/tracks/r/exercises/secret-handshake/test_secret-handshake.R +5 -3
  185. data/tracks/r/exercises/sieve/test_sieve.R +1 -1
  186. data/tracks/r/exercises/space-age/example.R +8 -3
  187. data/tracks/r/exercises/space-age/space-age.R +1 -1
  188. data/tracks/r/exercises/space-age/test_space-age.R +1 -1
  189. data/tracks/r/exercises/sum-of-multiples/test_sum-of-multiples.R +1 -1
  190. data/tracks/r/exercises/tournament/example.R +14 -8
  191. data/tracks/r/exercises/tournament/test_tournament.R +1 -1
  192. data/tracks/r/exercises/word-count/example.R +9 -2
  193. data/tracks/r/exercises/word-count/test_word-count.R +1 -1
  194. data/tracks/r/exercises/word-count/word-count.R +1 -1
  195. data/tracks/vimscript/README.md +14 -9
  196. metadata +4 -2
@@ -1,3 +1,3 @@
1
- pascalsTriangle <- function(n) {
2
-
1
+ pascals_triangle <- function(n) {
2
+
3
3
  }
@@ -2,31 +2,31 @@ source("./pascals-triangle.R")
2
2
  library(testthat)
3
3
 
4
4
  test_that("zero rows", {
5
- expect_equal(pascalsTriangle(0), list())
5
+ expect_equal(pascals_triangle(0), list())
6
6
  })
7
7
 
8
8
  test_that("single row", {
9
- expect_equal(pascalsTriangle(1), list(1))
9
+ expect_equal(pascals_triangle(1), list(1))
10
10
  })
11
11
 
12
12
  test_that("two rows", {
13
- expect_equal(pascalsTriangle(2), list(1, c(1, 1)))
13
+ expect_equal(pascals_triangle(2), list(1, c(1, 1)))
14
14
  })
15
15
 
16
16
  test_that("three rows", {
17
- expect_equal(pascalsTriangle(3), list(1, c(1, 1), c(1, 2, 1)))
17
+ expect_equal(pascals_triangle(3), list(1, c(1, 1), c(1, 2, 1)))
18
18
  })
19
19
 
20
20
  test_that("four rows", {
21
- expect_equal(pascalsTriangle(4), list(1, c(1, 1), c(1, 2, 1), c(1, 3, 3, 1)))
21
+ expect_equal(pascals_triangle(4), list(1, c(1, 1), c(1, 2, 1), c(1, 3, 3, 1)))
22
22
  })
23
23
 
24
24
  test_that("negative rows", {
25
- expect_error(pascalsTriangle(-1))
25
+ expect_error(pascals_triangle(-1))
26
26
  })
27
27
 
28
28
  test_that("null/no rows", {
29
- expect_error(pascalsTriangle(NULL))
29
+ expect_error(pascals_triangle(NULL))
30
30
  })
31
31
 
32
- print("All tests passed!")
32
+ print("All tests passed for exercise: pascals-triangle")
@@ -1,6 +1,6 @@
1
- isPerfect <- function(n){
1
+ is_perfect <- function(n){
2
2
 
3
- findFactors <- function(n) {
3
+ find_factors <- function(n) {
4
4
  factors <- c()
5
5
  for (i in 2:floor(n^0.5 + 1)) {
6
6
 
@@ -17,6 +17,6 @@ isPerfect <- function(n){
17
17
  unique(factors)
18
18
  }
19
19
 
20
- sum(findFactors(n)) + 1 == n
20
+ sum(find_factors(n)) + 1 == n
21
21
 
22
22
  }
@@ -1,3 +1,3 @@
1
- isPerfect <- function(n){
1
+ is_perfect <- function(n){
2
2
 
3
3
  }
@@ -3,57 +3,57 @@ library(testthat)
3
3
 
4
4
  test_that("first perfect number", {
5
5
  n <- 6
6
- expect_equal(isPerfect(n), TRUE)
6
+ expect_equal(is_perfect(n), TRUE)
7
7
  })
8
8
 
9
9
  test_that("no perfect number", {
10
10
  n <- 8
11
- expect_equal(isPerfect(n), FALSE)
11
+ expect_equal(is_perfect(n), FALSE)
12
12
  })
13
13
 
14
14
  test_that("second perfect number", {
15
15
  n <- 28
16
- expect_equal(isPerfect(n), TRUE)
16
+ expect_equal(is_perfect(n), TRUE)
17
17
  })
18
18
 
19
19
  test_that("abundant", {
20
20
  n <- 20
21
- expect_equal(isPerfect(n), FALSE)
21
+ expect_equal(is_perfect(n), FALSE)
22
22
  })
23
23
 
24
24
  test_that("answer to the ultimate question of life", {
25
25
  n <- 42
26
- expect_equal(isPerfect(n), FALSE)
26
+ expect_equal(is_perfect(n), FALSE)
27
27
  })
28
28
 
29
29
  test_that("third perfect number", {
30
30
  n <- 496
31
- expect_equal(isPerfect(n), TRUE)
31
+ expect_equal(is_perfect(n), TRUE)
32
32
  })
33
33
 
34
34
  test_that("odd abundant", {
35
35
  n <- 945
36
- expect_equal(isPerfect(n), FALSE)
36
+ expect_equal(is_perfect(n), FALSE)
37
37
  })
38
38
 
39
39
  test_that("fourth perfect number", {
40
40
  n <- 8128
41
- expect_equal(isPerfect(n), TRUE)
41
+ expect_equal(is_perfect(n), TRUE)
42
42
  })
43
43
 
44
44
  test_that("fifth perfect number", {
45
45
  n <- 33550336
46
- expect_equal(isPerfect(n), TRUE)
46
+ expect_equal(is_perfect(n), TRUE)
47
47
  })
48
48
 
49
49
  test_that("sixth perfect number", {
50
50
  n <- 8589869056
51
- expect_equal(isPerfect(n), TRUE)
51
+ expect_equal(is_perfect(n), TRUE)
52
52
  })
53
53
 
54
54
  test_that("seventh perfect number", {
55
55
  n <- 137438691328
56
- expect_equal(isPerfect(n), TRUE)
56
+ expect_equal(is_perfect(n), TRUE)
57
57
  })
58
58
 
59
- print("All tests passed!")
59
+ print("All tests passed for exercise: perfect-numbers")
@@ -1,18 +1,18 @@
1
- parsePhoneNumber <- function(numberString) {
1
+ parse_phone_number <- function(number_string) {
2
2
 
3
- # If the phone number is less than 10 digits assume that it is bad number
4
- # If the phone number is 10 digits assume that it is good
5
- # If the phone number is 11 digits and the first number is 1, trim the 1 and use the last 10 digits
6
- # If the phone number is 11 digits and the first number is not 1, then it is a bad number
7
- # If the phone number is more than 11 digits assume that it is a bad number
3
+ # If the number is less than 10 digits assume that it is bad number
4
+ # If the number is 10 digits assume that it is good
5
+ # If the number is 11 digits and the first number is 1, use the last 10 digits
6
+ # If the number is 11 digits and the first number is not 1, it is a bad number
7
+ # If the number is more than 11 digits assume that it is a bad number
8
8
 
9
9
  # Check for letters
10
- if (grepl("[A-z]", numberString)) {
10
+ if (grepl("[A-z]", number_string)) {
11
11
  return (NULL)
12
12
  }
13
13
 
14
14
  # Remove non-digit characters from number string
15
- cleaned <- gsub("[^0-9]", "", numberString)
15
+ cleaned <- gsub("[^0-9]", "", number_string)
16
16
 
17
17
  if (nchar(cleaned) < 10) {
18
18
  NULL
@@ -1,3 +1,3 @@
1
- parsePhoneNumber <- function(numberString) {
1
+ parse_phone_number <- function(number_string) {
2
2
 
3
3
  }
@@ -2,43 +2,43 @@ source("./phone-number.R")
2
2
  library(testthat)
3
3
 
4
4
  test_that("cleans the number", {
5
- expect_equal(parsePhoneNumber("(123) 456-7890"), "1234567890")
5
+ expect_equal(parse_phone_number("(123) 456-7890"), "1234567890")
6
6
  })
7
7
 
8
8
  test_that("cleans numbers with dots", {
9
- expect_equal(parsePhoneNumber("123.456.7890"), "1234567890")
9
+ expect_equal(parse_phone_number("123.456.7890"), "1234567890")
10
10
  })
11
11
 
12
12
  test_that("cleans numbers with multiple spaces", {
13
- expect_equal(parsePhoneNumber("123 456 7890 "), "1234567890")
13
+ expect_equal(parse_phone_number("123 456 7890 "), "1234567890")
14
14
  })
15
15
 
16
16
  test_that("invalid when 9 digits", {
17
- expect_equal(parsePhoneNumber("123456789"), NULL)
17
+ expect_equal(parse_phone_number("123456789"), NULL)
18
18
  })
19
19
 
20
20
  test_that("invalid when 11 digits", {
21
- expect_equal(parsePhoneNumber("21234567890"), NULL)
21
+ expect_equal(parse_phone_number("21234567890"), NULL)
22
22
  })
23
23
 
24
24
  test_that("valid when 11 digits and starting with 1", {
25
- expect_equal(parsePhoneNumber("11234567890"), "1234567890")
25
+ expect_equal(parse_phone_number("11234567890"), "1234567890")
26
26
  })
27
27
 
28
28
  test_that("invalid when 12 digits", {
29
- expect_equal(parsePhoneNumber("321234567890"), NULL)
29
+ expect_equal(parse_phone_number("321234567890"), NULL)
30
30
  })
31
31
 
32
32
  test_that("invalid with letters", {
33
- expect_equal(parsePhoneNumber("123-abc-7890"), NULL)
33
+ expect_equal(parse_phone_number("123-abc-7890"), NULL)
34
34
  })
35
35
 
36
36
  test_that("invalid with punctuations", {
37
- expect_equal(parsePhoneNumber("123-@:!-7890"), NULL)
37
+ expect_equal(parse_phone_number("123-@:!-7890"), NULL)
38
38
  })
39
39
 
40
40
  test_that("invalid with right number of digits but letters mixed in", {
41
- expect_equal(parsePhoneNumber("1a2b3c4d5e6f7g8h9i0j"), NULL)
41
+ expect_equal(parse_phone_number("1a2b3c4d5e6f7g8h9i0j"), NULL)
42
42
  })
43
43
 
44
- print("All tests passed!")
44
+ print("All tests passed for exercise: phone-number")
@@ -1,10 +1,10 @@
1
1
  prime_factors <- function(number) {
2
2
  factors <- c()
3
- lowest.factor = 2
3
+ lowest.factor <- 2
4
4
  while (number > 1) {
5
5
  if (number %% lowest.factor == 0) {
6
6
  number <- number / lowest.factor
7
- factors[length(factors) + 1] = lowest.factor
7
+ factors[length(factors) + 1] <- lowest.factor
8
8
  }
9
9
  else {
10
10
  lowest.factor <- lowest.factor + 1
@@ -1,3 +1,3 @@
1
- prime_factors <- function() {
1
+ prime_factors <- function(number) {
2
2
 
3
3
  }
@@ -44,4 +44,4 @@ test_that("factors include a large prime", {
44
44
  c(11, 9539, 894119))
45
45
  })
46
46
 
47
- print("All tests passed!")
47
+ print("All tests passed for exercise: prime-factors")
@@ -1,28 +1,29 @@
1
1
  raindrops <- function(number) {
2
2
 
3
- Pling <- ''
4
- Plang <- ''
5
- Plong <- ''
3
+ pling <- ''
4
+ plang <- ''
5
+ plong <- ''
6
6
 
7
7
  # If the number has 3 as a factor, output 'Pling'.
8
8
  if (number %% 3 == 0) {
9
- Pling <- 'Pling'
9
+ pling <- 'Pling'
10
10
  }
11
11
  # If the number has 5 as a factor, output 'Plang'.
12
12
  if (number %% 5 == 0) {
13
- Plang <- 'Plang'
13
+ plang <- 'Plang'
14
14
  }
15
15
  # If the number has 7 as a factor, output 'Plong'.
16
16
  if (number %% 7 == 0) {
17
- Plong <- 'Plong'
17
+ plong <- 'Plong'
18
18
  }
19
19
 
20
- PlingPlangPlong <- paste(Pling, Plang, Plong, sep = "")
20
+ plingplangplong <- paste(pling, plang, plong, sep = "")
21
21
 
22
- # If the number does not have 3, 5, or 7 as a factor, just pass the number's digits straight through.
23
- if (PlingPlangPlong == "") {
24
- PlingPlangPlong = as.character(number)
22
+ # If the number does not have 3, 5, or 7 as a factor,
23
+ # just pass the number's digits straight through
24
+ if (plingplangplong == "") {
25
+ plingplangplong <- as.character(number)
25
26
  }
26
27
 
27
- PlingPlangPlong
28
+ plingplangplong
28
29
  }
@@ -26,7 +26,8 @@ test_that("the sound for 6 is Pling as it has a factor 3", {
26
26
  expect_equal(raindrops(number), "Pling")
27
27
  })
28
28
 
29
- test_that("2 to the power 3 does not make a raindrop sound as 3 is the exponent not the base", {
29
+ test_that("2 to the power 3 does not make a raindrop sound as 3 is the exponent
30
+ not the base", {
30
31
  number <- 8
31
32
  expect_equal(raindrops(number), "8")
32
33
  })
@@ -91,4 +92,4 @@ test_that("the sound for 3125 is Plang as it has a factor 5", {
91
92
  expect_equal(raindrops(number), "Plang")
92
93
  })
93
94
 
94
- print("All tests passed!")
95
+ print("All tests passed for exercise: raindrops")
@@ -1,14 +1,14 @@
1
1
  to_rna <- function(dna) {
2
2
 
3
- dna_to_rna <- list(G="C", C="G", T="A", A="U")
3
+ dna_to_rna <- list(G = "C", C = "G", T = "A", A = "U")
4
4
 
5
5
  func <- function(x) {
6
- if (!(x %in% c("G","C","T","A"))) {
6
+ if (!(x %in% c("G", "C", "T", "A"))) {
7
7
  stop("invalid dna strand")
8
8
  }
9
9
  dna_to_rna[[x]]
10
10
  }
11
11
 
12
- paste(lapply(strsplit(dna, "")[[1]], FUN=func), collapse = "")
12
+ paste(lapply(strsplit(dna, "")[[1]], FUN = func), collapse = "")
13
13
 
14
14
  }
@@ -41,4 +41,4 @@ test_that("dna correctly handles partially invalid input", {
41
41
  expect_error(to_rna(dna))
42
42
  })
43
43
 
44
- print("All tests passed!")
44
+ print("All tests passed for exercise: rna-transcription")
@@ -1,22 +1,22 @@
1
1
  rotate <- function(text, key) {
2
2
 
3
3
  # Split string into character vector
4
- textVector <- unlist(strsplit(text, ""))
4
+ text_vector <- unlist(strsplit(text, ""))
5
5
 
6
6
  # Record which characters are upper case
7
- upperCase <- toupper(textVector) == textVector
7
+ upper_case <- toupper(text_vector) == text_vector
8
8
 
9
9
  # Rotate letter characters
10
- rotationIndex <- (match(tolower(textVector), letters)+key-1) %% 26 + 1
11
- rotatedVector <- letters[rotationIndex]
10
+ rotation_index <- (match(tolower(text_vector), letters) + key - 1) %% 26 + 1
11
+ rotated_vector <- letters[rotation_index]
12
12
 
13
13
  # Restore non-letter characters in rotated character vector
14
- rotatedVector[is.na(rotatedVector)] <- textVector[is.na(rotatedVector)]
14
+ rotated_vector[is.na(rotated_vector)] <- text_vector[is.na(rotated_vector)]
15
15
 
16
16
  # Restore upper case characters
17
- rotatedVector[upperCase] <- toupper(rotatedVector[upperCase])
17
+ rotated_vector[upper_case] <- toupper(rotated_vector[upper_case])
18
18
 
19
19
  # Collapse character vector into string
20
- paste(rotatedVector, collapse = "")
20
+ paste(rotated_vector, collapse = "")
21
21
 
22
22
  }
@@ -58,7 +58,8 @@ test_that("rotate punctuation", {
58
58
  test_that("rotate all letters", {
59
59
  text <- "The quick brown fox jumps over the lazy dog."
60
60
  key <- 13
61
- expect_equal(rotate(text, key), "Gur dhvpx oebja sbk whzcf bire gur ynml qbt.")
61
+ expect_equal(rotate(text, key),
62
+ "Gur dhvpx oebja sbk whzcf bire gur ynml qbt.")
62
63
  })
63
64
 
64
- print("All tests passed!")
65
+ print("All tests passed for exercise: rotational-cipher")
@@ -1,4 +1,4 @@
1
- scrabbleScore <- function(input){
1
+ scrabble_score <- function(input){
2
2
 
3
3
  # Letter Value
4
4
  # A, E, I, O, U, L, N, R, S, T 1
@@ -9,11 +9,12 @@ scrabbleScore <- function(input){
9
9
  # J, X 8
10
10
  # Q, Z 10
11
11
 
12
- letterScore <- c(1,3,3,2,1,4,2,4,1,8,5,1,3,1,1,3,10,1,1,1,1,4,4,8,4,10)
13
- names(letterScore) <- LETTERS
12
+ letter_score <- c(1, 3, 3, 2, 1, 4, 2, 4, 1, 8, 5, 1, 3, 1,
13
+ 1, 3, 10, 1, 1, 1, 1, 4, 4, 8, 4, 10)
14
+ names(letter_score) <- LETTERS
14
15
 
15
16
  chars <- unlist(strsplit(input, ""))
16
17
 
17
- sum(letterScore[toupper(chars)])
18
+ sum(letter_score[toupper(chars)])
18
19
 
19
20
  }
@@ -1,3 +1,3 @@
1
- scrabbleScore <- function(input){
1
+ scrabble_score <- function(input){
2
2
 
3
3
  }
@@ -3,57 +3,57 @@ library(testthat)
3
3
 
4
4
  test_that("lowercase letter", {
5
5
  input <- "a"
6
- expect_equal(scrabbleScore(input), 1)
6
+ expect_equal(scrabble_score(input), 1)
7
7
  })
8
8
 
9
9
  test_that("uppercase letter", {
10
10
  input <- "A"
11
- expect_equal(scrabbleScore(input), 1)
11
+ expect_equal(scrabble_score(input), 1)
12
12
  })
13
13
 
14
14
  test_that("valuable letter", {
15
15
  input <- "f"
16
- expect_equal(scrabbleScore(input), 4)
16
+ expect_equal(scrabble_score(input), 4)
17
17
  })
18
18
 
19
19
  test_that("short word", {
20
20
  input <- "at"
21
- expect_equal(scrabbleScore(input), 2)
21
+ expect_equal(scrabble_score(input), 2)
22
22
  })
23
23
 
24
24
  test_that("short, valuable word", {
25
25
  input <- "zoo"
26
- expect_equal(scrabbleScore(input), 12)
26
+ expect_equal(scrabble_score(input), 12)
27
27
  })
28
28
 
29
29
  test_that("medium word", {
30
30
  input <- "street"
31
- expect_equal(scrabbleScore(input), 6)
31
+ expect_equal(scrabble_score(input), 6)
32
32
  })
33
33
 
34
34
  test_that("medium, valuable word", {
35
35
  input <- "quirky"
36
- expect_equal(scrabbleScore(input), 22)
36
+ expect_equal(scrabble_score(input), 22)
37
37
  })
38
38
 
39
39
  test_that("long, mixed-case word", {
40
40
  input <- "OxyphenButazone"
41
- expect_equal(scrabbleScore(input), 41)
41
+ expect_equal(scrabble_score(input), 41)
42
42
  })
43
43
 
44
44
  test_that("english-like word", {
45
45
  input <- "pinata"
46
- expect_equal(scrabbleScore(input), 8)
46
+ expect_equal(scrabble_score(input), 8)
47
47
  })
48
48
 
49
49
  test_that("empty input", {
50
50
  input <- ""
51
- expect_equal(scrabbleScore(input), 0)
51
+ expect_equal(scrabble_score(input), 0)
52
52
  })
53
53
 
54
54
  test_that("entire alphabet available", {
55
55
  input <- "abcdefghijklmnopqrstuvwxyz"
56
- expect_equal(scrabbleScore(input), 87)
56
+ expect_equal(scrabble_score(input), 87)
57
57
  })
58
58
 
59
- print("All tests passed!")
59
+ print("All tests passed for exercise: scrabble-score")