trackler 2.1.0.21 → 2.1.0.22

Sign up to get free protection for your applications and to get access to all the features.
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")