trackler 2.0.6.34 → 2.0.6.35

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 (75) hide show
  1. checksums.yaml +4 -4
  2. data/common/exercises/change/canonical-data.json +6 -0
  3. data/common/exercises/luhn/canonical-data.json +35 -0
  4. data/common/exercises/rotational-cipher/cannonical-data.json +70 -0
  5. data/common/exercises/rotational-cipher/description.md +30 -0
  6. data/common/exercises/rotational-cipher/metadata.yml +4 -0
  7. data/common/exercises/run-length-encoding/description.md +7 -1
  8. data/lib/trackler/version.rb +1 -1
  9. data/tracks/elixir/exercises/run-length-encoding/example.exs +15 -4
  10. data/tracks/elixir/exercises/run-length-encoding/rle.exs +2 -2
  11. data/tracks/elixir/exercises/run-length-encoding/rle_test.exs +28 -11
  12. data/tracks/go/exercises/bob/bob_test.go +4 -1
  13. data/tracks/go/exercises/bracket-push/bracket_push_test.go +5 -2
  14. data/tracks/go/exercises/circular-buffer/circular_buffer_test.go +6 -6
  15. data/tracks/go/exercises/clock/clock_test.go +4 -1
  16. data/tracks/go/exercises/connect/connect_test.go +4 -1
  17. data/tracks/go/exercises/crypto-square/crypto_square_test.go +5 -2
  18. data/tracks/go/exercises/luhn/luhn_test.go +1 -1
  19. data/tracks/javascript/exercises/leap/leap.js +1 -1
  20. data/tracks/julia/.travis.yml +0 -2
  21. data/tracks/julia/config.json +41 -0
  22. data/tracks/julia/exercises/custom-set/HINTS.md +1 -0
  23. data/tracks/julia/exercises/custom-set/custom-set.jl +0 -0
  24. data/tracks/julia/exercises/custom-set/example.jl +51 -0
  25. data/tracks/julia/exercises/custom-set/runtests.jl +200 -0
  26. data/tracks/julia/exercises/isogram/example.jl +11 -0
  27. data/tracks/julia/exercises/isogram/isogram.jl +3 -0
  28. data/tracks/julia/exercises/isogram/runtests.jl +35 -0
  29. data/tracks/julia/exercises/luhn/example.jl +16 -0
  30. data/tracks/julia/exercises/luhn/luhn.jl +0 -0
  31. data/tracks/julia/exercises/luhn/runtests.jl +31 -0
  32. data/tracks/julia/exercises/nucleotide-count/example.jl +8 -0
  33. data/tracks/julia/exercises/nucleotide-count/nucleotide-count.jl +3 -0
  34. data/tracks/julia/exercises/nucleotide-count/runtests.jl +19 -0
  35. data/tracks/kotlin/.travis.yml +9 -1
  36. data/tracks/kotlin/README.md +117 -11
  37. data/tracks/kotlin/bin/journey-test.sh +279 -0
  38. data/tracks/kotlin/docs/INSTALLATION.md +193 -97
  39. data/tracks/kotlin/docs/TESTS.md +72 -137
  40. data/tracks/kotlin/exercises/hello-world/GETTING_STARTED.md +50 -0
  41. data/tracks/kotlin/exercises/hello-world/TUTORIAL.md +693 -0
  42. data/tracks/kotlin/exercises/hello-world/src/example/kotlin/HelloWorld.kt +2 -30
  43. data/tracks/kotlin/exercises/hello-world/src/main/kotlin/HelloWorld.kt +2 -30
  44. data/tracks/kotlin/exercises/hello-world/src/test/kotlin/HelloWorldTest.kt +11 -19
  45. data/tracks/objective-c/circle.yml +1 -1
  46. data/tracks/perl6/exercises/atbash-cipher/{cipher.t → atbash-cipher.t} +0 -0
  47. data/tracks/perl6/exercises/linked-list/linked-list.t +0 -0
  48. data/tracks/perl6/exercises/phone-number/{phone.t → phone-number.t} +0 -0
  49. data/tracks/perl6/exercises/rna-transcription/{rna_transcription.t → rna-transcription.t} +0 -0
  50. data/tracks/perl6/exercises/robot-name/{robot.t → robot-name.t} +0 -0
  51. data/tracks/perl6/exercises/scrabble-score/{scrabble_score.t → scrabble-score.t} +0 -0
  52. data/tracks/perl6/exercises/word-count/{word_count.t → word-count.t} +0 -0
  53. data/tracks/pony/config.json +9 -0
  54. data/tracks/pony/exercises/pascals-triangle/example.pony +18 -0
  55. data/tracks/pony/exercises/pascals-triangle/test.pony +31 -0
  56. data/tracks/r/config.json +20 -0
  57. data/tracks/r/exercises/grains/example.R +16 -0
  58. data/tracks/r/exercises/grains/grains.R +7 -0
  59. data/tracks/r/exercises/grains/test_grains.R +49 -0
  60. data/tracks/r/exercises/phone-number/example.R +30 -0
  61. data/tracks/r/exercises/phone-number/phone-number.R +3 -0
  62. data/tracks/r/exercises/phone-number/test_phone-number.R +44 -0
  63. data/tracks/r/exercises/secret-handshake/example.R +26 -0
  64. data/tracks/r/exercises/secret-handshake/secret-handshake.R +3 -0
  65. data/tracks/r/exercises/secret-handshake/test_secret-handshake.R +52 -0
  66. data/tracks/r/exercises/sieve/example.R +16 -0
  67. data/tracks/r/exercises/sieve/sieve.R +3 -0
  68. data/tracks/r/exercises/sieve/test_sieve.R +37 -0
  69. data/tracks/rust/config.json +11 -0
  70. data/tracks/rust/exercises/rotational-cipher/Cargo.lock +4 -0
  71. data/tracks/rust/exercises/rotational-cipher/Cargo.toml +4 -0
  72. data/tracks/rust/exercises/rotational-cipher/example.rs +16 -0
  73. data/tracks/rust/exercises/rotational-cipher/tests/rotational-cipher.rs +61 -0
  74. data/tracks/swift/circle.yml +6 -0
  75. metadata +46 -8
@@ -0,0 +1,16 @@
1
+ sieve <- function(limit) {
2
+ if (limit < 2) {
3
+ return(c())
4
+ }
5
+ nums <- rep(TRUE, limit)
6
+ nums[1] <- FALSE
7
+ for (i in 2:limit) {
8
+ if (nums[i]) {
9
+ div <- floor(limit/i)
10
+ if (div > 1){
11
+ nums[i*2:div] <- FALSE
12
+ }
13
+ }
14
+ }
15
+ which(nums)
16
+ }
@@ -0,0 +1,3 @@
1
+ sieve <- function(limit) {
2
+
3
+ }
@@ -0,0 +1,37 @@
1
+ source('./sieve.R')
2
+ suppressPackageStartupMessages({ require(testthat) })
3
+
4
+ test_that("no primes under two", {
5
+ expect_equal(sieve(1), c())
6
+ })
7
+
8
+ test_that("find first prime", {
9
+ expect_equal(sieve(2), 2)
10
+ })
11
+
12
+ test_that("find primes up to 10", {
13
+ expect_equal(sieve(10), c(2,3,5,7))
14
+ })
15
+
16
+ test_that("limit is prime", {
17
+ expect_equal(sieve(13), c(2,3,5,7,11,13))
18
+ })
19
+
20
+ test_that("find primes up to 1000", {
21
+ expect_equal(sieve(1000),
22
+ c(2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59,
23
+ 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127,
24
+ 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193,
25
+ 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269,
26
+ 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349,
27
+ 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431,
28
+ 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503,
29
+ 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599,
30
+ 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673,
31
+ 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761,
32
+ 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857,
33
+ 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947,
34
+ 953, 967, 971, 977, 983, 991, 997))
35
+ })
36
+
37
+ print("All tests passed!")
@@ -162,6 +162,17 @@
162
162
  "ascii"
163
163
  ]
164
164
  },
165
+ {
166
+ "slug": "rotational-cipher",
167
+ "difficulty": 4,
168
+ "topics": [
169
+ "str vs string",
170
+ "primitive types",
171
+ "iterators",
172
+ "chars",
173
+ "ascii"
174
+ ]
175
+ },
165
176
  {
166
177
  "slug": "etl",
167
178
  "difficulty": 4,
@@ -0,0 +1,4 @@
1
+ [root]
2
+ name = "rotational-cipher"
3
+ version = "0.0.0"
4
+
@@ -0,0 +1,4 @@
1
+ [package]
2
+ name = "rotational-cipher"
3
+ version = "0.0.0"
4
+ authors = ["Chad Baxter <cbaxter@mail.umw.edu>"]
@@ -0,0 +1,16 @@
1
+ pub fn rotate(text: &str, shift_key: u8) -> String {
2
+
3
+ text.chars().map(|c| {
4
+ let case = if c.is_uppercase() {
5
+ 'A'
6
+ } else {
7
+ 'a'
8
+ } as u8;
9
+ if c.is_alphabetic() {
10
+ (((c as u8 - case + shift_key) % 26) + case) as char
11
+ } else {
12
+ c
13
+ }
14
+ }).collect::<String>()
15
+
16
+ }
@@ -0,0 +1,61 @@
1
+ extern crate rotational_cipher as cipher;
2
+
3
+ #[test]
4
+ fn rotate_a_1() {
5
+ assert_eq!("b", cipher::rotate("a", 1));
6
+ }
7
+
8
+ #[test]
9
+ #[ignore]
10
+ fn rotate_a_26() {
11
+ assert_eq!("a", cipher::rotate("a", 26));
12
+ }
13
+
14
+ #[test]
15
+ #[ignore]
16
+ fn rotate_a_0() {
17
+ assert_eq!("a", cipher::rotate("a", 0));
18
+ }
19
+
20
+ #[test]
21
+ #[ignore]
22
+ fn rotate_m_13() {
23
+ assert_eq!("z", cipher::rotate("m", 13));
24
+ }
25
+
26
+ #[test]
27
+ #[ignore]
28
+ fn rotate_n_13_with_wrap() {
29
+ assert_eq!("a", cipher::rotate("n", 13));
30
+ }
31
+
32
+ #[test]
33
+ #[ignore]
34
+ fn rotate_caps() {
35
+ assert_eq!("TRL", cipher::rotate("OMG", 5));
36
+ }
37
+
38
+ #[test]
39
+ #[ignore]
40
+ fn rotate_spaces() {
41
+ assert_eq!("T R L", cipher::rotate("O M G", 5));
42
+ }
43
+
44
+ #[test]
45
+ #[ignore]
46
+ fn rotate_numbers() {
47
+ assert_eq!("Xiwxmrk 1 2 3 xiwxmrk", cipher::rotate("Testing 1 2 3 testing", 4));
48
+ }
49
+
50
+ #[test]
51
+ #[ignore]
52
+ fn rotate_punctuation() {
53
+ assert_eq!("Gzo\'n zvo, Bmviyhv!", cipher::rotate("Let\'s eat, Grandma!", 21));
54
+ }
55
+
56
+ #[test]
57
+ #[ignore]
58
+ fn rotate_all_the_letters() {
59
+ assert_eq!("Gur dhvpx oebja sbk whzcf bire gur ynml qbt.",
60
+ cipher::rotate("The quick brown fox jumps over the lazy dog.", 13));
61
+ }
@@ -0,0 +1,6 @@
1
+ machine:
2
+ xcode:
3
+ version: "8.2"
4
+ test:
5
+ override:
6
+ - ./xswift-test-spm
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.0.6.34
4
+ version: 2.0.6.35
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-02-07 00:00:00.000000000 Z
11
+ date: 2017-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip
@@ -340,6 +340,9 @@ files:
340
340
  - common/exercises/roman-numerals/canonical-data.json
341
341
  - common/exercises/roman-numerals/description.md
342
342
  - common/exercises/roman-numerals/metadata.yml
343
+ - common/exercises/rotational-cipher/cannonical-data.json
344
+ - common/exercises/rotational-cipher/description.md
345
+ - common/exercises/rotational-cipher/metadata.yml
343
346
  - common/exercises/run-length-encoding/canonical-data.json
344
347
  - common/exercises/run-length-encoding/description.md
345
348
  - common/exercises/run-length-encoding/metadata.yml
@@ -4274,6 +4277,10 @@ files:
4274
4277
  - tracks/julia/exercises/bob/bob.jl
4275
4278
  - tracks/julia/exercises/bob/example.jl
4276
4279
  - tracks/julia/exercises/bob/runtests.jl
4280
+ - tracks/julia/exercises/custom-set/HINTS.md
4281
+ - tracks/julia/exercises/custom-set/custom-set.jl
4282
+ - tracks/julia/exercises/custom-set/example.jl
4283
+ - tracks/julia/exercises/custom-set/runtests.jl
4277
4284
  - tracks/julia/exercises/difference-of-squares/difference-of-squares.jl
4278
4285
  - tracks/julia/exercises/difference-of-squares/example.jl
4279
4286
  - tracks/julia/exercises/difference-of-squares/runtests.jl
@@ -4286,9 +4293,18 @@ files:
4286
4293
  - tracks/julia/exercises/hello-world/example.jl
4287
4294
  - tracks/julia/exercises/hello-world/hello-world.jl
4288
4295
  - tracks/julia/exercises/hello-world/runtests.jl
4296
+ - tracks/julia/exercises/isogram/example.jl
4297
+ - tracks/julia/exercises/isogram/isogram.jl
4298
+ - tracks/julia/exercises/isogram/runtests.jl
4289
4299
  - tracks/julia/exercises/leap/example.jl
4290
4300
  - tracks/julia/exercises/leap/leap.jl
4291
4301
  - tracks/julia/exercises/leap/runtests.jl
4302
+ - tracks/julia/exercises/luhn/example.jl
4303
+ - tracks/julia/exercises/luhn/luhn.jl
4304
+ - tracks/julia/exercises/luhn/runtests.jl
4305
+ - tracks/julia/exercises/nucleotide-count/example.jl
4306
+ - tracks/julia/exercises/nucleotide-count/nucleotide-count.jl
4307
+ - tracks/julia/exercises/nucleotide-count/runtests.jl
4292
4308
  - tracks/julia/exercises/raindrops/example.jl
4293
4309
  - tracks/julia/exercises/raindrops/raindrops.jl
4294
4310
  - tracks/julia/exercises/raindrops/runtests.jl
@@ -4325,6 +4341,7 @@ files:
4325
4341
  - tracks/kotlin/README.md
4326
4342
  - tracks/kotlin/SETUP.md
4327
4343
  - tracks/kotlin/bin/fetch-configlet
4344
+ - tracks/kotlin/bin/journey-test.sh
4328
4345
  - tracks/kotlin/bin/unit-tests.sh
4329
4346
  - tracks/kotlin/config.json
4330
4347
  - tracks/kotlin/docs/ABOUT.md
@@ -4409,6 +4426,8 @@ files:
4409
4426
  - tracks/kotlin/exercises/hamming/src/example/kotlin/Hamming.kt
4410
4427
  - tracks/kotlin/exercises/hamming/src/main/kotlin/.keep
4411
4428
  - tracks/kotlin/exercises/hamming/src/test/kotlin/HammingTest.kt
4429
+ - tracks/kotlin/exercises/hello-world/GETTING_STARTED.md
4430
+ - tracks/kotlin/exercises/hello-world/TUTORIAL.md
4412
4431
  - tracks/kotlin/exercises/hello-world/build.gradle
4413
4432
  - tracks/kotlin/exercises/hello-world/src/example/kotlin/HelloWorld.kt
4414
4433
  - tracks/kotlin/exercises/hello-world/src/main/kotlin/HelloWorld.kt
@@ -5648,8 +5667,8 @@ files:
5648
5667
  - tracks/perl6/exercises/anagram/Example.pm
5649
5668
  - tracks/perl6/exercises/anagram/anagram.t
5650
5669
  - tracks/perl6/exercises/atbash-cipher/Example.pm
5670
+ - tracks/perl6/exercises/atbash-cipher/atbash-cipher.t
5651
5671
  - tracks/perl6/exercises/atbash-cipher/cases.json
5652
- - tracks/perl6/exercises/atbash-cipher/cipher.t
5653
5672
  - tracks/perl6/exercises/binary/Example.pm
5654
5673
  - tracks/perl6/exercises/binary/binary.t
5655
5674
  - tracks/perl6/exercises/bob/Example.pm
@@ -5667,22 +5686,22 @@ files:
5667
5686
  - tracks/perl6/exercises/linked-list/linked-list.t
5668
5687
  - tracks/perl6/exercises/phone-number/Example.pm
5669
5688
  - tracks/perl6/exercises/phone-number/cases.json
5670
- - tracks/perl6/exercises/phone-number/phone.t
5689
+ - tracks/perl6/exercises/phone-number/phone-number.t
5671
5690
  - tracks/perl6/exercises/raindrops/Example.pm
5672
5691
  - tracks/perl6/exercises/raindrops/raindrops.t
5673
5692
  - tracks/perl6/exercises/rna-transcription/Example.pm
5674
- - tracks/perl6/exercises/rna-transcription/rna_transcription.t
5693
+ - tracks/perl6/exercises/rna-transcription/rna-transcription.t
5675
5694
  - tracks/perl6/exercises/robot-name/Example.pm
5676
- - tracks/perl6/exercises/robot-name/robot.t
5695
+ - tracks/perl6/exercises/robot-name/robot-name.t
5677
5696
  - tracks/perl6/exercises/scrabble-score/Example.pm
5678
- - tracks/perl6/exercises/scrabble-score/scrabble_score.t
5697
+ - tracks/perl6/exercises/scrabble-score/scrabble-score.t
5679
5698
  - tracks/perl6/exercises/space-age/Example.pm
5680
5699
  - tracks/perl6/exercises/space-age/cases.json
5681
5700
  - tracks/perl6/exercises/space-age/space-age.t
5682
5701
  - tracks/perl6/exercises/trinary/Example.pm
5683
5702
  - tracks/perl6/exercises/trinary/trinary.t
5684
5703
  - tracks/perl6/exercises/word-count/Example.pm
5685
- - tracks/perl6/exercises/word-count/word_count.t
5704
+ - tracks/perl6/exercises/word-count/word-count.t
5686
5705
  - tracks/perl6/exercises/wordy/Example.pm
5687
5706
  - tracks/perl6/exercises/wordy/cases.json
5688
5707
  - tracks/perl6/exercises/wordy/wordy.t
@@ -5861,6 +5880,8 @@ files:
5861
5880
  - tracks/pony/exercises/hello-world/test.pony
5862
5881
  - tracks/pony/exercises/leap/example.pony
5863
5882
  - tracks/pony/exercises/leap/test.pony
5883
+ - tracks/pony/exercises/pascals-triangle/example.pony
5884
+ - tracks/pony/exercises/pascals-triangle/test.pony
5864
5885
  - tracks/pony/exercises/rna-transcription/example.pony
5865
5886
  - tracks/pony/exercises/rna-transcription/test.pony
5866
5887
  - tracks/pony/exercises/roman-numerals/example.pony
@@ -6174,6 +6195,9 @@ files:
6174
6195
  - tracks/r/exercises/difference-of-squares/difference-of-squares.R
6175
6196
  - tracks/r/exercises/difference-of-squares/example.R
6176
6197
  - tracks/r/exercises/difference-of-squares/test_difference-of-squares.R
6198
+ - tracks/r/exercises/grains/example.R
6199
+ - tracks/r/exercises/grains/grains.R
6200
+ - tracks/r/exercises/grains/test_grains.R
6177
6201
  - tracks/r/exercises/hamming/example.R
6178
6202
  - tracks/r/exercises/hamming/hamming.R
6179
6203
  - tracks/r/exercises/hamming/test_hamming.R
@@ -6186,9 +6210,18 @@ files:
6186
6210
  - tracks/r/exercises/luhn/example.R
6187
6211
  - tracks/r/exercises/luhn/luhn.R
6188
6212
  - tracks/r/exercises/luhn/test_luhn.R
6213
+ - tracks/r/exercises/phone-number/example.R
6214
+ - tracks/r/exercises/phone-number/phone-number.R
6215
+ - tracks/r/exercises/phone-number/test_phone-number.R
6189
6216
  - tracks/r/exercises/raindrops/example.R
6190
6217
  - tracks/r/exercises/raindrops/raindrops.R
6191
6218
  - tracks/r/exercises/raindrops/test_raindrops.R
6219
+ - tracks/r/exercises/secret-handshake/example.R
6220
+ - tracks/r/exercises/secret-handshake/secret-handshake.R
6221
+ - tracks/r/exercises/secret-handshake/test_secret-handshake.R
6222
+ - tracks/r/exercises/sieve/example.R
6223
+ - tracks/r/exercises/sieve/sieve.R
6224
+ - tracks/r/exercises/sieve/test_sieve.R
6192
6225
  - tracks/r/exercises/space-age/example.R
6193
6226
  - tracks/r/exercises/space-age/space-age.R
6194
6227
  - tracks/r/exercises/space-age/test_space-age.R
@@ -6838,6 +6871,10 @@ files:
6838
6871
  - tracks/rust/exercises/roman-numerals/Cargo.toml
6839
6872
  - tracks/rust/exercises/roman-numerals/example.rs
6840
6873
  - tracks/rust/exercises/roman-numerals/tests/roman-numerals.rs
6874
+ - tracks/rust/exercises/rotational-cipher/Cargo.lock
6875
+ - tracks/rust/exercises/rotational-cipher/Cargo.toml
6876
+ - tracks/rust/exercises/rotational-cipher/example.rs
6877
+ - tracks/rust/exercises/rotational-cipher/tests/rotational-cipher.rs
6841
6878
  - tracks/rust/exercises/scrabble-score/.gitignore
6842
6879
  - tracks/rust/exercises/scrabble-score/Cargo.lock
6843
6880
  - tracks/rust/exercises/scrabble-score/Cargo.toml
@@ -7330,6 +7367,7 @@ files:
7330
7367
  - tracks/swift/README.md
7331
7368
  - tracks/swift/SETUP.md
7332
7369
  - tracks/swift/bin/fetch-configlet
7370
+ - tracks/swift/circle.yml
7333
7371
  - tracks/swift/config.json
7334
7372
  - tracks/swift/docs/ABOUT.md
7335
7373
  - tracks/swift/docs/INSTALLATION.md