trackler 2.0.8.38 → 2.0.8.39

Sign up to get free protection for your applications and to get access to all the features.
@@ -11,33 +11,62 @@ import unittest
11
11
  from largest_series_product import largest_product
12
12
 
13
13
 
14
+ # test cases adapted from `x-common//canonical-data.json` @ version: 1.0.0
15
+
14
16
  class SeriesTest(unittest.TestCase):
15
- def test_largest_product_of_2(self):
17
+ def test_finds_the_largest_product_if_span_equals_length(self):
18
+ self.assertEqual(largest_product("29", 2), 18)
19
+
20
+ def test_can_find_the_largest_product_of_2_with_numbers_in_order(self):
16
21
  self.assertEqual(largest_product("0123456789", 2), 72)
17
22
 
18
- def test_largest_product_of_2_unordered(self):
23
+ def test_can_find_the_largest_product_of_2(self):
19
24
  self.assertEqual(largest_product("576802143", 2), 48)
20
25
 
21
- def test__largest_product_span_equals_length(self):
22
- self.assertEqual(largest_product("29", 2), 18)
23
-
24
- def test_largest_product_of_3(self):
26
+ def test_can_find_the_largest_product_of_3_with_numbers_in_order(self):
25
27
  self.assertEqual(largest_product("0123456789", 3), 504)
26
28
 
27
- def test_largest_product_of_3_unordered(self):
29
+ def test_can_find_the_largest_product_of_3(self):
28
30
  self.assertEqual(largest_product("1027839564", 3), 270)
29
31
 
30
- def test_largest_product_of_5(self):
32
+ def test_can_find_the_largest_product_of_5_with_numbers_in_order(self):
31
33
  self.assertEqual(largest_product("0123456789", 5), 15120)
32
34
 
33
- def test_big_number(self):
34
- series = "73167176531330624919225119674426574742355349194934"
35
- self.assertEqual(largest_product(series, 6), 23520)
35
+ def test_can_get_the_largest_product_of_a_big_number(self):
36
+ self.assertEqual(
37
+ largest_product(
38
+ "73167176531330624919225119674426574742355349194934", 6),
39
+ 23520)
40
+
41
+ def test_reports_zero_if_the_only_digits_are_zero(self):
42
+ self.assertEqual(largest_product("0000", 2), 0)
43
+
44
+ def test_reports_zero_if_all_spans_include_zero(self):
45
+ self.assertEqual(largest_product("99099", 3), 0)
46
+
47
+ def test_rejects_span_longer_than_string_length(self):
48
+ with self.assertRaises(ValueError):
49
+ largest_product("123", 4)
50
+
51
+ def test_reports_1_for_empty_string_and_empty_product_0_span(self):
52
+ self.assertEqual(largest_product("", 0), 1)
53
+
54
+ def test_reports_1_for_nonempty_string_and_empty_product_0_span(self):
55
+ self.assertEqual(largest_product("123", 0), 1)
56
+
57
+ def test_rejects_empty_string_and_nonzero_span(self):
58
+ with self.assertRaises(ValueError):
59
+ largest_product("", 1)
60
+
61
+ def test_rejects_invalid_character_in_digits(self):
62
+ with self.assertRaises(ValueError):
63
+ largest_product("1234a5", 2)
36
64
 
37
- def test_another_big_number(self):
38
- series = "52677741234314237566414902593461595376319419139427"
39
- self.assertEqual(largest_product(series, 6), 28350)
65
+ def test_rejects_negative_span(self):
66
+ with self.assertRaises(ValueError):
67
+ largest_product("12345", -1)
40
68
 
69
+ @unittest.skip("extra-credit")
41
70
  def test_project_euler_big_number(self):
42
71
  series = (
43
72
  "73167176531330624919225119674426574742355349194934969835203127745"
@@ -58,34 +87,6 @@ class SeriesTest(unittest.TestCase):
58
87
  "3600823257530420752963450")
59
88
  self.assertEqual(largest_product(series, 13), 23514624000)
60
89
 
61
- def test_all_digits_zero(self):
62
- self.assertEqual(largest_product("0000", 2), 0)
63
-
64
- def test_all_spans_contain_zero(self):
65
- self.assertEqual(largest_product("99099", 3), 0)
66
-
67
- def test_identity_with_empty_string(self):
68
- self.assertEqual(largest_product("", 0), 1)
69
-
70
- def test_identity_with_nonempty_string(self):
71
- self.assertEqual(largest_product("123", 0), 1)
72
-
73
- def test_span_long_than_number(self):
74
- with self.assertRaises(ValueError):
75
- largest_product("123", 4)
76
-
77
- def test_nonzero_span_and_empty_string(self):
78
- with self.assertRaises(ValueError):
79
- largest_product("", 1)
80
-
81
- def test_digits_with_invalid_character(self):
82
- with self.assertRaises(ValueError):
83
- largest_product("1234a5", 2)
84
-
85
- def test_negative_span(self):
86
- with self.assertRaises(ValueError):
87
- largest_product("12345", -1)
88
-
89
90
 
90
91
  if __name__ == '__main__':
91
92
  unittest.main()
@@ -3,6 +3,9 @@ from math import sqrt
3
3
 
4
4
 
5
5
  def nth_prime(n):
6
+ if n < 1:
7
+ raise ValueError('The parameter `n` has to be a positive number.')
8
+
6
9
  known = []
7
10
  candidates = prime_candidates()
8
11
 
@@ -3,21 +3,31 @@ import unittest
3
3
  from nth_prime import nth_prime
4
4
 
5
5
 
6
+ # test cases adapted from `x-common//canonical-data.json` @ version: 1.0.0
7
+
6
8
  class NthPrimeTests(unittest.TestCase):
7
9
  def test_first_prime(self):
8
- self.assertEqual(2, nth_prime(1))
10
+ self.assertEqual(nth_prime(1), 2)
11
+
12
+ def test_second_prime(self):
13
+ self.assertEqual(nth_prime(2), 3)
9
14
 
10
15
  def test_sixth_prime(self):
11
- self.assertEqual(13, nth_prime(6))
16
+ self.assertEqual(nth_prime(6), 13)
17
+
18
+ def test_big_prime(self):
19
+ self.assertEqual(nth_prime(10001), 104743)
12
20
 
21
+ def test_there_is_no_zeroth_prime(self):
22
+ with self.assertRaises(ValueError):
23
+ nth_prime(0)
24
+
25
+ # additional track specific test
13
26
  def test_first_twenty_primes(self):
14
27
  self.assertEqual([2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31,
15
28
  37, 41, 43, 47, 53, 59, 61, 67, 71],
16
29
  [nth_prime(n) for n in range(1, 21)])
17
30
 
18
- def test_prime_no_10000(self):
19
- self.assertEqual(104729, nth_prime(10000))
20
-
21
31
 
22
32
  if __name__ == '__main__':
23
33
  unittest.main()
@@ -0,0 +1,14 @@
1
+ from string import ascii_lowercase as alpha_lower
2
+ from string import ascii_uppercase as alpha_upper
3
+ ALPHA_LEN = len(alpha_lower)
4
+
5
+
6
+ def rotate(message, key):
7
+ coded_message = ""
8
+ for char in message:
9
+ if char in alpha_lower:
10
+ char = alpha_lower[(alpha_lower.index(char) + key) % ALPHA_LEN]
11
+ elif char in alpha_upper:
12
+ char = alpha_upper[(alpha_upper.index(char) + key) % ALPHA_LEN]
13
+ coded_message += char
14
+ return coded_message
@@ -0,0 +1,53 @@
1
+ import unittest
2
+
3
+ import rotational_cipher
4
+
5
+
6
+ class RotationalCipher(unittest.TestCase):
7
+ def test_rotate_a_by_1(self):
8
+ self.assertEqual(rotational_cipher.rotate('a', 1), 'b')
9
+
10
+ def test_rotate_a_by_26(self):
11
+ self.assertEqual(rotational_cipher.rotate('a', 26), 'a')
12
+
13
+ def test_rotate_a_by_0(self):
14
+ self.assertEqual(rotational_cipher.rotate('a', 0), 'a')
15
+
16
+ def test_rotate_m_by_13(self):
17
+ self.assertEqual(rotational_cipher.rotate('m', 13), 'z')
18
+
19
+ def test_rotate_n_by_13_with_wrap_around_alphabet(self):
20
+ self.assertEqual(rotational_cipher.rotate('n', 13), 'a')
21
+
22
+ def test_rotate_capital_letters(self):
23
+ self.assertEqual(rotational_cipher.rotate('OMG', 5), 'TRL')
24
+
25
+ def test_rotate_spaces(self):
26
+ self.assertEqual(rotational_cipher.rotate('O M G', 5),
27
+ 'T R L')
28
+
29
+ def test_rotate_numbers(self):
30
+ self.assertEqual(
31
+ rotational_cipher.rotate(
32
+ 'Testing 1 2 3 testing',
33
+ 4),
34
+ 'Xiwxmrk 1 2 3 xiwxmrk')
35
+
36
+ def test_rotate_punctuation(self):
37
+ self.assertEqual(
38
+ rotational_cipher.rotate(
39
+ "Let's eat, Grandma!",
40
+ 21),
41
+ "Gzo'n zvo, Bmviyhv!")
42
+
43
+ def test_rotate_all_letters(self):
44
+ self.assertEqual(
45
+ rotational_cipher.rotate(
46
+ "The quick brown fox jumps"
47
+ " over the lazy dog.",
48
+ 13),
49
+ "Gur dhvpx oebja sbk whzcf bire gur ynml qbt.")
50
+
51
+
52
+ if __name__ == '__main__':
53
+ unittest.main()
@@ -19,7 +19,7 @@ class Point(object):
19
19
  return self.x == other.x and self.y == other.y
20
20
 
21
21
  def __ne__(self, other):
22
- return not(self == other)
22
+ return not (self == other)
23
23
 
24
24
 
25
25
  DIRECTIONS = (Point(1, 0), Point(1, -1), Point(1, 1), Point(-1, -1),
@@ -40,15 +40,16 @@ class WordSearch(object):
40
40
  return self.rows[coordinate.y][coordinate.x]
41
41
 
42
42
  def find(self, word, position, direction):
43
- current = copy.copy(position)
44
- for letter in word:
45
- if self.find_char(current) != letter:
46
- return
47
- current += direction
48
- return position, current - direction
43
+ current = copy.copy(position)
44
+ for letter in word:
45
+ if self.find_char(current) != letter:
46
+ return
47
+ current += direction
48
+ return position, current - direction
49
49
 
50
50
  def search(self, word):
51
- positions = (Point(x, y) for x in range(self.width) for y in range(self.height))
51
+ positions = (Point(x, y)
52
+ for x in range(self.width) for y in range(self.height))
52
53
  for pos in positions:
53
54
  for d in DIRECTIONS:
54
55
  result = self.find(word, pos, d)
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.8.38
4
+ version: 2.0.8.39
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-04-01 00:00:00.000000000 Z
11
+ date: 2017-04-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip
@@ -1645,6 +1645,7 @@ files:
1645
1645
  - tracks/csharp/exercises/nth-prime/NthPrime.csproj
1646
1646
  - tracks/csharp/exercises/nth-prime/NthPrimeTest.cs
1647
1647
  - tracks/csharp/exercises/nucleotide-count/Example.cs
1648
+ - tracks/csharp/exercises/nucleotide-count/HINTS.md
1648
1649
  - tracks/csharp/exercises/nucleotide-count/NucleotideCount.cs
1649
1650
  - tracks/csharp/exercises/nucleotide-count/NucleotideCount.csproj
1650
1651
  - tracks/csharp/exercises/nucleotide-count/NucleotideCountTest.cs
@@ -3365,6 +3366,10 @@ files:
3365
3366
  - tracks/go/exercises/bob/cases_test.go
3366
3367
  - tracks/go/exercises/bob/example.go
3367
3368
  - tracks/go/exercises/bob/example_gen.go
3369
+ - tracks/go/exercises/bowling/bowling_test.go
3370
+ - tracks/go/exercises/bowling/cases_test.go
3371
+ - tracks/go/exercises/bowling/example.go
3372
+ - tracks/go/exercises/bowling/example_gen.go
3368
3373
  - tracks/go/exercises/bracket-push/bracket_push_test.go
3369
3374
  - tracks/go/exercises/bracket-push/example.go
3370
3375
  - tracks/go/exercises/change/cases_test.go
@@ -6185,6 +6190,8 @@ files:
6185
6190
  - tracks/perl6/LICENSE
6186
6191
  - tracks/perl6/README.md
6187
6192
  - tracks/perl6/SETUP.md
6193
+ - tracks/perl6/bin/README.md
6194
+ - tracks/perl6/bin/exercise-gen.pl6
6188
6195
  - tracks/perl6/bin/fetch-configlet
6189
6196
  - tracks/perl6/config.json
6190
6197
  - tracks/perl6/docs/ABOUT.md
@@ -6220,6 +6227,7 @@ files:
6220
6227
  - tracks/perl6/exercises/grains/grains.t
6221
6228
  - tracks/perl6/exercises/hello-world/Example.pm
6222
6229
  - tracks/perl6/exercises/hello-world/HelloWorld.pm6
6230
+ - tracks/perl6/exercises/hello-world/example.yaml
6223
6231
  - tracks/perl6/exercises/hello-world/hello-world.t
6224
6232
  - tracks/perl6/exercises/leap/Example.pm
6225
6233
  - tracks/perl6/exercises/leap/Leap.pm6
@@ -6254,6 +6262,7 @@ files:
6254
6262
  - tracks/perl6/exercises/wordy/Wordy.pm6
6255
6263
  - tracks/perl6/exercises/wordy/wordy.t
6256
6264
  - tracks/perl6/img/icon.png
6265
+ - tracks/perl6/templates/test.mustache
6257
6266
  - tracks/php/.editorconfig
6258
6267
  - tracks/php/.git
6259
6268
  - tracks/php/.gitignore
@@ -6770,6 +6779,9 @@ files:
6770
6779
  - tracks/python/exercises/roman-numerals/example.py
6771
6780
  - tracks/python/exercises/roman-numerals/roman_numerals.py
6772
6781
  - tracks/python/exercises/roman-numerals/roman_numerals_test.py
6782
+ - tracks/python/exercises/rotational-cipher/example.py
6783
+ - tracks/python/exercises/rotational-cipher/rotational_cipher.py
6784
+ - tracks/python/exercises/rotational-cipher/rotational_cipher_test.py
6773
6785
  - tracks/python/exercises/run-length-encoding/example.py
6774
6786
  - tracks/python/exercises/run-length-encoding/run_length_encoding.py
6775
6787
  - tracks/python/exercises/run-length-encoding/run_length_encoding_test.py
@@ -7354,6 +7366,7 @@ files:
7354
7366
  - tracks/rust/exercises/acronym/Cargo.lock
7355
7367
  - tracks/rust/exercises/acronym/Cargo.toml
7356
7368
  - tracks/rust/exercises/acronym/example.rs
7369
+ - tracks/rust/exercises/acronym/src/lib.rs
7357
7370
  - tracks/rust/exercises/acronym/tests/acronym.rs
7358
7371
  - tracks/rust/exercises/all-your-base/Cargo.lock
7359
7372
  - tracks/rust/exercises/all-your-base/Cargo.toml
@@ -7364,6 +7377,7 @@ files:
7364
7377
  - tracks/rust/exercises/allergies/Cargo.lock
7365
7378
  - tracks/rust/exercises/allergies/Cargo.toml
7366
7379
  - tracks/rust/exercises/allergies/example.rs
7380
+ - tracks/rust/exercises/allergies/src/lib.rs
7367
7381
  - tracks/rust/exercises/allergies/tests/allergies.rs
7368
7382
  - tracks/rust/exercises/alphametics/Cargo-example.toml
7369
7383
  - tracks/rust/exercises/alphametics/Cargo.lock
@@ -7375,55 +7389,66 @@ files:
7375
7389
  - tracks/rust/exercises/anagram/Cargo.lock
7376
7390
  - tracks/rust/exercises/anagram/Cargo.toml
7377
7391
  - tracks/rust/exercises/anagram/example.rs
7392
+ - tracks/rust/exercises/anagram/src/lib.rs
7378
7393
  - tracks/rust/exercises/anagram/tests/anagram.rs
7379
7394
  - tracks/rust/exercises/atbash-cipher/Cargo.lock
7380
7395
  - tracks/rust/exercises/atbash-cipher/Cargo.toml
7381
7396
  - tracks/rust/exercises/atbash-cipher/example.rs
7397
+ - tracks/rust/exercises/atbash-cipher/src/lib.rs
7382
7398
  - tracks/rust/exercises/atbash-cipher/tests/atbash-cipher.rs
7383
7399
  - tracks/rust/exercises/beer-song/.gitignore
7384
7400
  - tracks/rust/exercises/beer-song/Cargo.lock
7385
7401
  - tracks/rust/exercises/beer-song/Cargo.toml
7386
7402
  - tracks/rust/exercises/beer-song/example.rs
7403
+ - tracks/rust/exercises/beer-song/src/lib.rs
7387
7404
  - tracks/rust/exercises/beer-song/tests/beer-song.rs
7388
7405
  - tracks/rust/exercises/bob/.gitignore
7389
7406
  - tracks/rust/exercises/bob/Cargo.lock
7390
7407
  - tracks/rust/exercises/bob/Cargo.toml
7391
7408
  - tracks/rust/exercises/bob/example.rs
7409
+ - tracks/rust/exercises/bob/src/lib.rs
7392
7410
  - tracks/rust/exercises/bob/tests/bob.rs
7393
7411
  - tracks/rust/exercises/bowling/.gitignore
7394
7412
  - tracks/rust/exercises/bowling/Cargo.toml
7395
7413
  - tracks/rust/exercises/bowling/example.rs
7414
+ - tracks/rust/exercises/bowling/src/lib.rs
7396
7415
  - tracks/rust/exercises/bowling/tests/bowling.rs
7397
7416
  - tracks/rust/exercises/bracket-push/.gitignore
7398
7417
  - tracks/rust/exercises/bracket-push/Cargo.lock
7399
7418
  - tracks/rust/exercises/bracket-push/Cargo.toml
7400
7419
  - tracks/rust/exercises/bracket-push/HINTS.md
7401
7420
  - tracks/rust/exercises/bracket-push/example.rs
7421
+ - tracks/rust/exercises/bracket-push/src/lib.rs
7402
7422
  - tracks/rust/exercises/bracket-push/tests/bracket-push.rs
7403
7423
  - tracks/rust/exercises/circular-buffer/.gitignore
7404
7424
  - tracks/rust/exercises/circular-buffer/Cargo.lock
7405
7425
  - tracks/rust/exercises/circular-buffer/Cargo.toml
7406
7426
  - tracks/rust/exercises/circular-buffer/example.rs
7427
+ - tracks/rust/exercises/circular-buffer/src/lib.rs
7407
7428
  - tracks/rust/exercises/circular-buffer/tests/circular-buffer.rs
7408
7429
  - tracks/rust/exercises/custom-set/.gitignore
7409
7430
  - tracks/rust/exercises/custom-set/Cargo.lock
7410
7431
  - tracks/rust/exercises/custom-set/Cargo.toml
7411
7432
  - tracks/rust/exercises/custom-set/example.rs
7433
+ - tracks/rust/exercises/custom-set/src/lib.rs
7412
7434
  - tracks/rust/exercises/custom-set/tests/custom-set.rs
7413
7435
  - tracks/rust/exercises/difference-of-squares/.gitignore
7414
7436
  - tracks/rust/exercises/difference-of-squares/Cargo.lock
7415
7437
  - tracks/rust/exercises/difference-of-squares/Cargo.toml
7416
7438
  - tracks/rust/exercises/difference-of-squares/example.rs
7439
+ - tracks/rust/exercises/difference-of-squares/src/lib.rs
7417
7440
  - tracks/rust/exercises/difference-of-squares/tests/difference-of-square.rs
7418
7441
  - tracks/rust/exercises/dominoes/.gitignore
7419
7442
  - tracks/rust/exercises/dominoes/Cargo.lock
7420
7443
  - tracks/rust/exercises/dominoes/Cargo.toml
7421
7444
  - tracks/rust/exercises/dominoes/example.rs
7445
+ - tracks/rust/exercises/dominoes/src/lib.rs
7422
7446
  - tracks/rust/exercises/dominoes/tests/dominoes.rs
7423
7447
  - tracks/rust/exercises/etl/.gitignore
7424
7448
  - tracks/rust/exercises/etl/Cargo.lock
7425
7449
  - tracks/rust/exercises/etl/Cargo.toml
7426
7450
  - tracks/rust/exercises/etl/example.rs
7451
+ - tracks/rust/exercises/etl/src/lib.rs
7427
7452
  - tracks/rust/exercises/etl/tests/etl.rs
7428
7453
  - tracks/rust/exercises/forth/.gitignore
7429
7454
  - tracks/rust/exercises/forth/Cargo.lock
@@ -7435,6 +7460,7 @@ files:
7435
7460
  - tracks/rust/exercises/gigasecond/Cargo.lock
7436
7461
  - tracks/rust/exercises/gigasecond/Cargo.toml
7437
7462
  - tracks/rust/exercises/gigasecond/example.rs
7463
+ - tracks/rust/exercises/gigasecond/src/lib.rs
7438
7464
  - tracks/rust/exercises/gigasecond/tests/gigasecond.rs
7439
7465
  - tracks/rust/exercises/grade-school/.gitignore
7440
7466
  - tracks/rust/exercises/grade-school/Cargo.lock
@@ -7451,6 +7477,7 @@ files:
7451
7477
  - tracks/rust/exercises/hamming/Cargo.lock
7452
7478
  - tracks/rust/exercises/hamming/Cargo.toml
7453
7479
  - tracks/rust/exercises/hamming/example.rs
7480
+ - tracks/rust/exercises/hamming/src/lib.rs
7454
7481
  - tracks/rust/exercises/hamming/tests/hamming.rs
7455
7482
  - tracks/rust/exercises/hello-world/.gitignore
7456
7483
  - tracks/rust/exercises/hello-world/Cargo.lock
@@ -7463,47 +7490,56 @@ files:
7463
7490
  - tracks/rust/exercises/hexadecimal/Cargo.lock
7464
7491
  - tracks/rust/exercises/hexadecimal/Cargo.toml
7465
7492
  - tracks/rust/exercises/hexadecimal/example.rs
7493
+ - tracks/rust/exercises/hexadecimal/src/lib.rs
7466
7494
  - tracks/rust/exercises/hexadecimal/tests/hexadecimal.rs
7467
7495
  - tracks/rust/exercises/largest-series-product/.gitignore
7468
7496
  - tracks/rust/exercises/largest-series-product/Cargo.toml
7469
7497
  - tracks/rust/exercises/largest-series-product/HINTS.md
7470
7498
  - tracks/rust/exercises/largest-series-product/example.rs
7499
+ - tracks/rust/exercises/largest-series-product/src/lib.rs
7471
7500
  - tracks/rust/exercises/largest-series-product/tests/largest-series-product.rs
7472
7501
  - tracks/rust/exercises/leap/.gitignore
7473
7502
  - tracks/rust/exercises/leap/Cargo.lock
7474
7503
  - tracks/rust/exercises/leap/Cargo.toml
7475
7504
  - tracks/rust/exercises/leap/example.rs
7505
+ - tracks/rust/exercises/leap/src/lib.rs
7476
7506
  - tracks/rust/exercises/leap/tests/leap.rs
7477
7507
  - tracks/rust/exercises/luhn-from/.gitignore
7478
7508
  - tracks/rust/exercises/luhn-from/Cargo.toml
7479
7509
  - tracks/rust/exercises/luhn-from/description.md
7480
7510
  - tracks/rust/exercises/luhn-from/example.rs
7481
7511
  - tracks/rust/exercises/luhn-from/metadata.yml
7512
+ - tracks/rust/exercises/luhn-from/src/lib.rs
7482
7513
  - tracks/rust/exercises/luhn-from/tests/luhn-from.rs
7483
7514
  - tracks/rust/exercises/luhn-trait/.gitignore
7484
7515
  - tracks/rust/exercises/luhn-trait/Cargo.toml
7485
7516
  - tracks/rust/exercises/luhn-trait/description.md
7486
7517
  - tracks/rust/exercises/luhn-trait/example.rs
7487
7518
  - tracks/rust/exercises/luhn-trait/metadata.yml
7519
+ - tracks/rust/exercises/luhn-trait/src/lib.rs
7488
7520
  - tracks/rust/exercises/luhn-trait/tests/luhn-trait.rs
7489
7521
  - tracks/rust/exercises/luhn/.gitignore
7490
7522
  - tracks/rust/exercises/luhn/Cargo.toml
7491
7523
  - tracks/rust/exercises/luhn/example.rs
7524
+ - tracks/rust/exercises/luhn/src/lib.rs
7492
7525
  - tracks/rust/exercises/luhn/tests/luhn.rs
7493
7526
  - tracks/rust/exercises/minesweeper/.gitignore
7494
7527
  - tracks/rust/exercises/minesweeper/Cargo.lock
7495
7528
  - tracks/rust/exercises/minesweeper/Cargo.toml
7496
7529
  - tracks/rust/exercises/minesweeper/example.rs
7530
+ - tracks/rust/exercises/minesweeper/src/lib.rs
7497
7531
  - tracks/rust/exercises/minesweeper/tests/minesweeper.rs
7498
7532
  - tracks/rust/exercises/nucleotide-codons/.gitignore
7499
7533
  - tracks/rust/exercises/nucleotide-codons/Cargo.lock
7500
7534
  - tracks/rust/exercises/nucleotide-codons/Cargo.toml
7501
7535
  - tracks/rust/exercises/nucleotide-codons/example.rs
7536
+ - tracks/rust/exercises/nucleotide-codons/src/lib.rs
7502
7537
  - tracks/rust/exercises/nucleotide-codons/tests/codons.rs
7503
7538
  - tracks/rust/exercises/nucleotide-count/.gitignore
7504
7539
  - tracks/rust/exercises/nucleotide-count/Cargo.lock
7505
7540
  - tracks/rust/exercises/nucleotide-count/Cargo.toml
7506
7541
  - tracks/rust/exercises/nucleotide-count/example.rs
7542
+ - tracks/rust/exercises/nucleotide-count/src/lib.rs
7507
7543
  - tracks/rust/exercises/nucleotide-count/tests/nucleotide-count.rs
7508
7544
  - tracks/rust/exercises/ocr-numbers/.gitignore
7509
7545
  - tracks/rust/exercises/ocr-numbers/Cargo.lock
@@ -7515,6 +7551,7 @@ files:
7515
7551
  - tracks/rust/exercises/pangram/Cargo.lock
7516
7552
  - tracks/rust/exercises/pangram/Cargo.toml
7517
7553
  - tracks/rust/exercises/pangram/example.rs
7554
+ - tracks/rust/exercises/pangram/src/lib.rs
7518
7555
  - tracks/rust/exercises/pangram/tests/pangram.rs
7519
7556
  - tracks/rust/exercises/parallel-letter-frequency/.gitignore
7520
7557
  - tracks/rust/exercises/parallel-letter-frequency/Cargo.lock
@@ -7522,6 +7559,7 @@ files:
7522
7559
  - tracks/rust/exercises/parallel-letter-frequency/HINTS.md
7523
7560
  - tracks/rust/exercises/parallel-letter-frequency/benches/benchmark.rs
7524
7561
  - tracks/rust/exercises/parallel-letter-frequency/example.rs
7562
+ - tracks/rust/exercises/parallel-letter-frequency/src/lib.rs
7525
7563
  - tracks/rust/exercises/parallel-letter-frequency/tests/parallel-letter-frequency.rs
7526
7564
  - tracks/rust/exercises/pascals-triangle/.gitignore
7527
7565
  - tracks/rust/exercises/pascals-triangle/Cargo.toml
@@ -7532,20 +7570,24 @@ files:
7532
7570
  - tracks/rust/exercises/phone-number/Cargo.lock
7533
7571
  - tracks/rust/exercises/phone-number/Cargo.toml
7534
7572
  - tracks/rust/exercises/phone-number/example.rs
7573
+ - tracks/rust/exercises/phone-number/src/lib.rs
7535
7574
  - tracks/rust/exercises/phone-number/tests/phone-number.rs
7536
7575
  - tracks/rust/exercises/protein-translation/Cargo.lock
7537
7576
  - tracks/rust/exercises/protein-translation/Cargo.toml
7538
7577
  - tracks/rust/exercises/protein-translation/example.rs
7578
+ - tracks/rust/exercises/protein-translation/src/lib.rs
7539
7579
  - tracks/rust/exercises/protein-translation/tests/proteins.rs
7540
7580
  - tracks/rust/exercises/queen-attack/.gitignore
7541
7581
  - tracks/rust/exercises/queen-attack/Cargo.lock
7542
7582
  - tracks/rust/exercises/queen-attack/Cargo.toml
7543
7583
  - tracks/rust/exercises/queen-attack/example.rs
7584
+ - tracks/rust/exercises/queen-attack/src/lib.rs
7544
7585
  - tracks/rust/exercises/queen-attack/tests/queen-attack.rs
7545
7586
  - tracks/rust/exercises/raindrops/.gitignore
7546
7587
  - tracks/rust/exercises/raindrops/Cargo.lock
7547
7588
  - tracks/rust/exercises/raindrops/Cargo.toml
7548
7589
  - tracks/rust/exercises/raindrops/example.rs
7590
+ - tracks/rust/exercises/raindrops/src/lib.rs
7549
7591
  - tracks/rust/exercises/raindrops/tests/raindrops.rs
7550
7592
  - tracks/rust/exercises/react/Cargo.lock
7551
7593
  - tracks/rust/exercises/react/Cargo.toml
@@ -7556,16 +7598,19 @@ files:
7556
7598
  - tracks/rust/exercises/rectangles/Cargo.lock
7557
7599
  - tracks/rust/exercises/rectangles/Cargo.toml
7558
7600
  - tracks/rust/exercises/rectangles/example.rs
7601
+ - tracks/rust/exercises/rectangles/src/lib.rs
7559
7602
  - tracks/rust/exercises/rectangles/tests/rectangles.rs
7560
7603
  - tracks/rust/exercises/rna-transcription/.gitignore
7561
7604
  - tracks/rust/exercises/rna-transcription/Cargo.lock
7562
7605
  - tracks/rust/exercises/rna-transcription/Cargo.toml
7563
7606
  - tracks/rust/exercises/rna-transcription/example.rs
7607
+ - tracks/rust/exercises/rna-transcription/src/lib.rs
7564
7608
  - tracks/rust/exercises/rna-transcription/tests/rna-transcription.rs
7565
7609
  - tracks/rust/exercises/robot-name/.gitignore
7566
7610
  - tracks/rust/exercises/robot-name/Cargo.lock
7567
7611
  - tracks/rust/exercises/robot-name/Cargo.toml
7568
7612
  - tracks/rust/exercises/robot-name/example.rs
7613
+ - tracks/rust/exercises/robot-name/src/lib.rs
7569
7614
  - tracks/rust/exercises/robot-name/tests/robot-name.rs
7570
7615
  - tracks/rust/exercises/robot-simulator/.gitignore
7571
7616
  - tracks/rust/exercises/robot-simulator/Cargo.lock
@@ -7577,20 +7622,24 @@ files:
7577
7622
  - tracks/rust/exercises/roman-numerals/Cargo.lock
7578
7623
  - tracks/rust/exercises/roman-numerals/Cargo.toml
7579
7624
  - tracks/rust/exercises/roman-numerals/example.rs
7625
+ - tracks/rust/exercises/roman-numerals/src/lib.rs
7580
7626
  - tracks/rust/exercises/roman-numerals/tests/roman-numerals.rs
7581
7627
  - tracks/rust/exercises/rotational-cipher/Cargo.lock
7582
7628
  - tracks/rust/exercises/rotational-cipher/Cargo.toml
7583
7629
  - tracks/rust/exercises/rotational-cipher/example.rs
7630
+ - tracks/rust/exercises/rotational-cipher/src/lib.rs
7584
7631
  - tracks/rust/exercises/rotational-cipher/tests/rotational-cipher.rs
7585
7632
  - tracks/rust/exercises/scrabble-score/.gitignore
7586
7633
  - tracks/rust/exercises/scrabble-score/Cargo.lock
7587
7634
  - tracks/rust/exercises/scrabble-score/Cargo.toml
7588
7635
  - tracks/rust/exercises/scrabble-score/example.rs
7636
+ - tracks/rust/exercises/scrabble-score/src/lib.rs
7589
7637
  - tracks/rust/exercises/scrabble-score/tests/scrabble-score.rs
7590
7638
  - tracks/rust/exercises/sieve/.gitignore
7591
7639
  - tracks/rust/exercises/sieve/Cargo.lock
7592
7640
  - tracks/rust/exercises/sieve/Cargo.toml
7593
7641
  - tracks/rust/exercises/sieve/example.rs
7642
+ - tracks/rust/exercises/sieve/src/lib.rs
7594
7643
  - tracks/rust/exercises/sieve/tests/sieve.rs
7595
7644
  - tracks/rust/exercises/space-age/.gitignore
7596
7645
  - tracks/rust/exercises/space-age/Cargo.lock
@@ -7603,21 +7652,25 @@ files:
7603
7652
  - tracks/rust/exercises/sublist/Cargo.lock
7604
7653
  - tracks/rust/exercises/sublist/Cargo.toml
7605
7654
  - tracks/rust/exercises/sublist/example.rs
7655
+ - tracks/rust/exercises/sublist/src/lib.rs
7606
7656
  - tracks/rust/exercises/sublist/tests/sublist.rs
7607
7657
  - tracks/rust/exercises/sum-of-multiples/.gitignore
7608
7658
  - tracks/rust/exercises/sum-of-multiples/Cargo.toml
7609
7659
  - tracks/rust/exercises/sum-of-multiples/example.rs
7660
+ - tracks/rust/exercises/sum-of-multiples/src/lib.rs
7610
7661
  - tracks/rust/exercises/sum-of-multiples/tests/sum-of-multiples.rs
7611
7662
  - tracks/rust/exercises/tournament/.gitignore
7612
7663
  - tracks/rust/exercises/tournament/Cargo.lock
7613
7664
  - tracks/rust/exercises/tournament/Cargo.toml
7614
7665
  - tracks/rust/exercises/tournament/example.rs
7666
+ - tracks/rust/exercises/tournament/src/lib.rs
7615
7667
  - tracks/rust/exercises/tournament/tests/tournament.rs
7616
7668
  - tracks/rust/exercises/triangle/.gitignore
7617
7669
  - tracks/rust/exercises/triangle/Cargo.toml
7618
7670
  - tracks/rust/exercises/triangle/HINTS.md
7619
7671
  - tracks/rust/exercises/triangle/example.rs
7620
7672
  - tracks/rust/exercises/triangle/float_example.rs
7673
+ - tracks/rust/exercises/triangle/src/lib.rs
7621
7674
  - tracks/rust/exercises/triangle/tests/triangle.rs
7622
7675
  - tracks/rust/exercises/variable-length-quantity/.gitignore
7623
7676
  - tracks/rust/exercises/variable-length-quantity/Cargo.lock
@@ -7629,11 +7682,13 @@ files:
7629
7682
  - tracks/rust/exercises/word-count/Cargo.lock
7630
7683
  - tracks/rust/exercises/word-count/Cargo.toml
7631
7684
  - tracks/rust/exercises/word-count/example.rs
7685
+ - tracks/rust/exercises/word-count/src/lib.rs
7632
7686
  - tracks/rust/exercises/word-count/tests/word-count.rs
7633
7687
  - tracks/rust/exercises/wordy/.gitignore
7634
7688
  - tracks/rust/exercises/wordy/Cargo.lock
7635
7689
  - tracks/rust/exercises/wordy/Cargo.toml
7636
7690
  - tracks/rust/exercises/wordy/example.rs
7691
+ - tracks/rust/exercises/wordy/src/lib.rs
7637
7692
  - tracks/rust/exercises/wordy/tests/wordy.rs
7638
7693
  - tracks/rust/img/icon.png
7639
7694
  - tracks/rust/problem_ordering.md