trackler 2.0.6.34 → 2.0.6.35

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