trackler 2.0.8.32 → 2.0.8.33

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cc6eaccb2054506665379c75e4e6eac1a1b18f8e
4
- data.tar.gz: b4c0e4d2306d08b14bb309970c0ec5f608d520a5
3
+ metadata.gz: 378ca12e2afc9bb24632918400f6eda2a274edbe
4
+ data.tar.gz: 86c7fd6d6280d19c15a3e887f2bbd380442cec0d
5
5
  SHA512:
6
- metadata.gz: 23a92f21a2611df2a1228a1f3383253469cc8d612e815cf858acd562b2550920094372b03a828ce41ba902d7025bf777b240ef166c95a30e7bcafaae6d818c22
7
- data.tar.gz: 2b5276e0fc50034f1ac28587454c3839f44e1ae54ee97c60fb38d9e281f0222ae073b779f3b6fc521a90e2c4a83e8b3086e6cd4ef8ef03d35909446d67da20ae
6
+ metadata.gz: 9e407a254474cff7f8437b2e81e94e2e961cd744e14dd4c18636b73eba4a7b067a929e4cb258b8702f3a9ffaf0037fb710bb7da052acb2d78fe5c02a15a4a7f4
7
+ data.tar.gz: 837226938c97906142bb821b5917919562f475c7b0315c683a8e27b579cf7d4939fb341f188a39db94371fcb3e29adad6af0758525434f0f0017a9fd49a6230f
@@ -0,0 +1 @@
1
+ This should get included in fish.
@@ -1,3 +1,3 @@
1
1
  module Trackler
2
- VERSION = "2.0.8.32"
2
+ VERSION = "2.0.8.33"
3
3
  end
@@ -35,6 +35,14 @@
35
35
  "string processing"
36
36
  ]
37
37
  },
38
+ {
39
+ "slug": "pig-latin",
40
+ "difficulty": 2,
41
+ "topics": [
42
+ "pattern matching",
43
+ "string processing"
44
+ ]
45
+ },
38
46
  {
39
47
  "slug": "space-age",
40
48
  "difficulty": 2,
@@ -318,6 +326,12 @@
318
326
  "topics": [
319
327
  ]
320
328
  },
329
+ {
330
+ "slug": "perfect-numbers",
331
+ "difficulty": 3,
332
+ "topics": [
333
+ ]
334
+ },
321
335
  {
322
336
  "slug": "diffie-hellman",
323
337
  "difficulty": 4,
@@ -9,69 +9,69 @@ defmodule ChangeTest do
9
9
  use ExUnit.Case
10
10
 
11
11
  # @tag :pending
12
- test "no coins make 0 change" do
13
- coins = [1, 5, 10, 21, 25]
14
- expected = []
15
- assert Change.generate(coins, 0) == {:ok, expected}
12
+ test "single coin change" do
13
+ coins = [1, 5, 10, 25, 100]
14
+ expected = [25]
15
+ assert Change.generate(coins, 25) == {:ok, expected}
16
16
  end
17
17
 
18
18
  @tag :pending
19
- test "cannot find negative change values" do
20
- coins = [1, 2, 5]
21
- assert Change.generate(coins, -5) == {:error, "cannot change"}
19
+ test "multiple coin change" do
20
+ coins = [1, 5, 10, 25, 100]
21
+ expected = [5, 10]
22
+ assert Change.generate(coins, 15) == {:ok, expected}
22
23
  end
23
24
 
24
25
  @tag :pending
25
- test "error testing for change smaller than the smallest of coins" do
26
- coins = [5, 10]
27
- assert Change.generate(coins, 3) == {:error, "cannot change"}
26
+ test "change with Lilliputian Coins" do
27
+ coins = [1, 4, 15, 20, 50]
28
+ expected = [4, 4, 15]
29
+ assert Change.generate(coins, 23) == {:ok, expected}
28
30
  end
29
31
 
30
32
  @tag :pending
31
- test "single coin change" do
32
- coins = [1, 5, 10, 25, 100]
33
- expected = [25]
34
- assert Change.generate(coins, 25) == {:ok, expected}
33
+ test "change with Lower Elbonia Coins" do
34
+ coins = [1, 5, 10, 21, 25]
35
+ expected = [21, 21, 21]
36
+ assert Change.generate(coins, 63) == {:ok, expected}
35
37
  end
36
38
 
37
39
  @tag :pending
38
- test "multiple coin change" do
39
- coins = [1, 5, 10, 25, 100]
40
- expected = [5, 10]
41
- assert Change.generate(coins, 15) == {:ok, expected}
40
+ test "large target values" do
41
+ coins = [1, 2, 5, 10, 20, 50, 100]
42
+ expected = [2, 2, 5, 20, 20, 50, 100, 100, 100, 100, 100, 100, 100, 100, 100]
43
+ assert Change.generate(coins, 999) == {:ok, expected}
42
44
  end
43
45
 
44
- @tag :pending
45
- test "possible change without unit coins available" do
46
- coins = [2, 5, 10, 20, 50]
47
- expected = [2, 2, 2, 5, 10]
48
- assert Change.generate(coins, 21) == {:ok, expected}
49
- end
50
-
51
46
  @tag :pending
52
- test "change with Lilliputian Coins" do
53
- coins = [1, 4, 15, 20, 50]
54
- expected = [4, 4, 15]
55
- assert Change.generate(coins, 23) == {:ok, expected}
47
+ test "possible change without unit coins available" do
48
+ coins = [2, 5, 10, 20, 50]
49
+ expected = [2, 2, 2, 5, 10]
50
+ assert Change.generate(coins, 21) == {:ok, expected}
56
51
  end
57
52
 
58
53
  @tag :pending
59
- test "change with Lower Elbonia Coins" do
60
- coins = [1, 5, 10, 21, 25]
61
- expected = [21, 21, 21]
62
- assert Change.generate(coins, 63) == {:ok, expected}
54
+ test "no coins make 0 change" do
55
+ coins = [1, 5, 10, 21, 25]
56
+ expected = []
57
+ assert Change.generate(coins, 0) == {:ok, expected}
63
58
  end
64
59
 
65
60
  @tag :pending
66
- test "large target values" do
67
- coins = [1, 2, 5, 10, 20, 50, 100]
68
- expected = [2, 2, 5, 20, 20, 50, 100, 100, 100, 100, 100, 100, 100, 100, 100]
69
- assert Change.generate(coins, 999) == {:ok, expected}
61
+ test "error testing for change smaller than the smallest of coins" do
62
+ coins = [5, 10]
63
+ assert Change.generate(coins, 3) == {:error, "cannot change"}
70
64
  end
71
65
 
72
66
  @tag :pending
73
67
  test "error if no combination can add up to target" do
74
- coins = [5, 10]
75
- assert Change.generate(coins, 94) == {:error, "cannot change"}
68
+ coins = [5, 10]
69
+ assert Change.generate(coins, 94) == {:error, "cannot change"}
70
+ end
71
+
72
+ @tag :pending
73
+ test "cannot find negative change values" do
74
+ coins = [1, 2, 5]
75
+ assert Change.generate(coins, -5) == {:error, "cannot change"}
76
76
  end
77
77
  end
@@ -0,0 +1,34 @@
1
+ defmodule PerfectNumbers do
2
+ @doc """
3
+ Determine the aliquot sum of the given `number`, by summing all the factors
4
+ of `number`, aside from `number` itself.
5
+
6
+ Based on this sum, classify the number as:
7
+
8
+ :perfect if the aliquot sum is equal to `number`
9
+ :abundant if the aliquot sum is greater than `number`
10
+ :deficient if the aliquot sum is less than `number`
11
+ """
12
+ @spec classify(number :: integer) :: ({ :ok, atom } | { :error, String.t() })
13
+ def classify(number) when number < 1, do: { :error, "Classification is only possible for natural numbers." }
14
+ def classify(number) do
15
+ { :ok, number |> aliquot_sum |> do_classify(number) }
16
+ end
17
+
18
+ defp do_classify(aliquot, aliquot), do: :perfect
19
+ defp do_classify(aliquot, number) when aliquot > number, do: :abundant
20
+ defp do_classify(_, _), do: :deficient
21
+
22
+ defp aliquot_sum(number) do
23
+ number
24
+ |> factors
25
+ |> Enum.reject(&(&1 == number))
26
+ |> Enum.sum
27
+ end
28
+
29
+ defp factors(number), do: factors(number, div(number, 2))
30
+ defp factors(1, _), do: [1]
31
+ defp factors(_, 1), do: [1]
32
+ defp factors(number, i) when rem(number, i) == 0, do: [i | factors(number, i-1)]
33
+ defp factors(number, i), do: factors(number, i-1)
34
+ end
@@ -0,0 +1,16 @@
1
+ defmodule PerfectNumbers do
2
+ @doc """
3
+ Determine the aliquot sum of the given `number`, by summing all the factors
4
+ of `number`, aside from `number` itself.
5
+
6
+ Based on this sum, classify the number as:
7
+
8
+ :perfect if the aliquot sum is equal to `number`
9
+ :abundant if the aliquot sum is greater than `number`
10
+ :deficient if the aliquot sum is less than `number`
11
+ """
12
+ @spec classify(number :: integer) :: ({ :ok, atom } | { :error, String.t() })
13
+ def classify(number) do
14
+ end
15
+ end
16
+
@@ -0,0 +1,84 @@
1
+ if !System.get_env("EXERCISM_TEST_EXAMPLES") do
2
+ Code.load_file("perfect_numbers.exs", __DIR__)
3
+ end
4
+
5
+ ExUnit.start
6
+ ExUnit.configure exclude: :pending, trace: true
7
+
8
+ defmodule PerfectNumbersTest do
9
+ use ExUnit.Case
10
+
11
+ describe "Perfect numbers" do
12
+ #@tag :pending
13
+ test "Smallest perfect number is classified correctly" do
14
+ assert PerfectNumbers.classify(6) == { :ok, :perfect }
15
+ end
16
+
17
+ @tag :pending
18
+ test "Medium perfect number is classified correctly" do
19
+ assert PerfectNumbers.classify(28) == { :ok, :perfect }
20
+ end
21
+
22
+ @tag :pending
23
+ test "Large perfect number is classified correctly" do
24
+ assert PerfectNumbers.classify(33550336) == { :ok, :perfect }
25
+ end
26
+ end
27
+
28
+ describe "Abundant numbers" do
29
+ @tag :pending
30
+ test "Smallest abundant number is classified correctly" do
31
+ assert PerfectNumbers.classify(12) == { :ok, :abundant }
32
+ end
33
+
34
+ @tag :pending
35
+ test "Medium abundant number is classified correctly" do
36
+ assert PerfectNumbers.classify(30) == { :ok, :abundant }
37
+ end
38
+
39
+ @tag :pending
40
+ test "Large abundant number is classified correctly" do
41
+ assert PerfectNumbers.classify(33550335) == { :ok, :abundant }
42
+ end
43
+ end
44
+
45
+ describe "Deficient numbers" do
46
+ @tag :pending
47
+ test "Smallest prime deficient number is classified correctly" do
48
+ assert PerfectNumbers.classify(2) == { :ok, :deficient }
49
+ end
50
+
51
+ @tag :pending
52
+ test "Smallest non-prime deficient number is classified correctly" do
53
+ assert PerfectNumbers.classify(4) == { :ok, :deficient }
54
+ end
55
+
56
+ @tag :pending
57
+ test "Medium deficient number is classified correctly" do
58
+ assert PerfectNumbers.classify(32) == { :ok, :deficient }
59
+ end
60
+
61
+ @tag :pending
62
+ test "Large deficient number is classified correctly" do
63
+ assert PerfectNumbers.classify(33550337) == { :ok, :deficient }
64
+ end
65
+
66
+ @tag :pending
67
+ test "Edge case (no factors other than itself) is classified correctly" do
68
+ assert PerfectNumbers.classify(1) == { :ok, :deficient }
69
+ end
70
+ end
71
+
72
+ describe "Invalid inputs" do
73
+ @tag :pending
74
+ test "Zero is rejected (not a natural number)" do
75
+ assert PerfectNumbers.classify(0) == { :error, "Classification is only possible for natural numbers." }
76
+ end
77
+
78
+ @tag :pending
79
+ test "Negative integer is rejected (not a natural number)" do
80
+ assert PerfectNumbers.classify(-1) == { :error, "Classification is only possible for natural numbers." }
81
+ end
82
+ end
83
+ end
84
+
@@ -0,0 +1,44 @@
1
+ defmodule PigLatin do
2
+ @doc """
3
+ Given a `phrase`, translate it a word at a time to Pig Latin.
4
+
5
+ Words beginning with consonants should have the consonant moved to the end of
6
+ the word, followed by "ay".
7
+
8
+ Words beginning with vowels (aeiou) should have "ay" added to the end of the
9
+ word.
10
+
11
+ Some groups of letters are treated like consonants, including "ch", "qu",
12
+ "squ", "th", "thr", and "sch".
13
+
14
+ Some groups are treated like vowels, including "yt" and "xr".
15
+ """
16
+ @spec translate(phrase :: String.t()) :: String.t()
17
+ def translate(phrase) do
18
+ phrase
19
+ |> String.split(" ")
20
+ |> Enum.map_join(" ", &to_pig_latin/1)
21
+ end
22
+
23
+ @consonant_sounds ["ch", "sch", "qu", "squ", "thr", "th"]
24
+ @vowel_sounds ["xr", "yt"]
25
+ @consonants "bcdfghjklmnpqrstvwxyz" |> String.graphemes
26
+ @vowels "aeiou" |> String.graphemes
27
+
28
+ for sound <- @consonant_sounds do
29
+ defp to_pig_latin(unquote(sound) <> rest), do: "#{rest}#{unquote(sound)}ay"
30
+ end
31
+
32
+ for sound <- @vowel_sounds do
33
+ defp to_pig_latin(unquote(sound) <> rest), do: "#{unquote(sound)}#{rest}ay"
34
+ end
35
+
36
+ for sound <- @consonants do
37
+ defp to_pig_latin(unquote(sound) <> rest), do: "#{rest}#{unquote(sound)}ay"
38
+ end
39
+
40
+ for sound <- @vowels do
41
+ defp to_pig_latin(unquote(sound) <> rest), do: "#{unquote(sound)}#{rest}ay"
42
+ end
43
+ end
44
+
@@ -0,0 +1,20 @@
1
+ defmodule PigLatin do
2
+ @doc """
3
+ Given a `phrase`, translate it a word at a time to Pig Latin.
4
+
5
+ Words beginning with consonants should have the consonant moved to the end of
6
+ the word, followed by "ay".
7
+
8
+ Words beginning with vowels (aeiou) should have "ay" added to the end of the
9
+ word.
10
+
11
+ Some groups of letters are treated like consonants, including "ch", "qu",
12
+ "squ", "th", "thr", and "sch".
13
+
14
+ Some groups are treated like vowels, including "yt" and "xr".
15
+ """
16
+ @spec translate(phrase :: String.t()) :: String.t()
17
+ def translate(phrase) do
18
+ end
19
+ end
20
+
@@ -0,0 +1,121 @@
1
+ if !System.get_env("EXERCISM_TEST_EXAMPLES") do
2
+ Code.load_file("pig_latin.exs", __DIR__)
3
+ end
4
+
5
+ ExUnit.start
6
+ ExUnit.configure exclude: :pending, trace: true
7
+
8
+ defmodule PigLatinTest do
9
+ use ExUnit.Case
10
+
11
+ describe "ay is added to words that start with vowels" do
12
+ #@tag :pending
13
+ test "word beginning with a" do
14
+ assert PigLatin.translate("apple") == "appleay"
15
+ end
16
+
17
+ @tag :pending
18
+ test "word beginning with e" do
19
+ assert PigLatin.translate("ear") == "earay"
20
+ end
21
+
22
+ @tag :pending
23
+ test "word beginning with i" do
24
+ assert PigLatin.translate("igloo") == "iglooay"
25
+ end
26
+
27
+ @tag :pending
28
+ test "word beginning with o" do
29
+ assert PigLatin.translate("object") == "objectay"
30
+ end
31
+
32
+ @tag :pending
33
+ test "word beginning with u" do
34
+ assert PigLatin.translate("under") == "underay"
35
+ end
36
+
37
+ @tag :pending
38
+ test "word beginning with a vowel and followed by a qu" do
39
+ assert PigLatin.translate("equal") == "equalay"
40
+ end
41
+ end
42
+
43
+ describe "first letter and ay are moved to the end of words that start with consonants" do
44
+ @tag :pending
45
+ test "word beginning with p" do
46
+ assert PigLatin.translate("pig") == "igpay"
47
+ end
48
+
49
+ @tag :pending
50
+ test "word beginning with k" do
51
+ assert PigLatin.translate("koala") == "oalakay"
52
+ end
53
+
54
+ @tag :pending
55
+ test "word beginning with y" do
56
+ assert PigLatin.translate("yellow") == "ellowyay"
57
+ end
58
+
59
+ @tag :pending
60
+ test "word beginning with x" do
61
+ assert PigLatin.translate("xenon") == "enonxay"
62
+ end
63
+
64
+ @tag :pending
65
+ test "word beginning with q without a following u" do
66
+ assert PigLatin.translate("qat") == "atqay"
67
+ end
68
+ end
69
+
70
+ describe "some letter clusters are treated like a single consonant" do
71
+ @tag :pending
72
+ test "word beginning with ch" do
73
+ assert PigLatin.translate("chair") == "airchay"
74
+ end
75
+
76
+ @tag :pending
77
+ test "word beginning with qu" do
78
+ assert PigLatin.translate("queen") == "eenquay"
79
+ end
80
+
81
+ @tag :pending
82
+ test "word beginning with qu and a preceding consonant" do
83
+ assert PigLatin.translate("square") == "aresquay"
84
+ end
85
+
86
+ @tag :pending
87
+ test "word beginning with th" do
88
+ assert PigLatin.translate("therapy") == "erapythay"
89
+ end
90
+
91
+ @tag :pending
92
+ test "word beginning with thr" do
93
+ assert PigLatin.translate("thrush") == "ushthray"
94
+ end
95
+
96
+ @tag :pending
97
+ test "word beginning with sch" do
98
+ assert PigLatin.translate("school") == "oolschay"
99
+ end
100
+ end
101
+
102
+ describe "some letter clusters are treated like a single vowel" do
103
+ @tag :pending
104
+ test "word beginning with yt" do
105
+ assert PigLatin.translate("yttria") == "yttriaay"
106
+ end
107
+
108
+ @tag :pending
109
+ test "word beginning with xr" do
110
+ assert PigLatin.translate("xray") == "xrayay"
111
+ end
112
+ end
113
+
114
+ describe "phrases are translated" do
115
+ @tag :pending
116
+ test "a whole phrase" do
117
+ assert PigLatin.translate("quick fast run") == "ickquay astfay unray"
118
+ end
119
+ end
120
+ end
121
+
@@ -4,7 +4,7 @@
4
4
 
5
5
  Exercism exercises in Erlang
6
6
 
7
- ## Contributing Guide
7
+ ## Contributing guide
8
8
 
9
9
  For general information about how exercism works, please see the
10
10
  [contributing guide](https://github.com/exercism/x-api/blob/master/CONTRIBUTING.md#the-exercise-data).
@@ -1,16 +1,34 @@
1
- * * * *
1
+ ## Running tests
2
2
 
3
- For installation and learning resources, refer to the
4
- [exercism help page](http://exercism.io/languages/erlang).
3
+ In order to run the tests, issue the following command from the exercise
4
+ directory:
5
5
 
6
- For running the tests provided, only libraries delivered with recent
7
- versions of erlang are used, so there is no need to install anything.
6
+ ```bash
7
+ $ rebar3 eunit
8
+ ```
9
+
10
+ ### Test versioning
11
+
12
+ Each problem defines a macro `TEST_VERSION` in the test file and
13
+ verifies that the solution defines and exports a function `test_version`
14
+ returning that same value.
15
+
16
+ To make this test pass, add the following to your solution:
8
17
 
9
- In order to run the tests, you can issue the following commands from
10
- the exercise directory. Please substitute `$EXERCISE` with the
11
- exercises name.
18
+ ```erlang
19
+ -export([test_version/0]).
12
20
 
13
- ```sh
14
- erl -make
15
- erl -noshell -eval "eunit:test($EXERCISE, [verbose])" -s init stop
21
+ test_version() ->
22
+ 1.
16
23
  ```
24
+
25
+ The benefit of this is that reviewers can see against which test version
26
+ an iteration was written if, for example, a previously posted solution
27
+ does not pass current tests.
28
+
29
+ ## Questions?
30
+
31
+ For detailed information about the Erlang track, please refer to the
32
+ [help page](http://exercism.io/languages/erlang) on the Exercism site.
33
+ This covers the basic information on setting up the development
34
+ environment expected by the exercises.
@@ -9,16 +9,12 @@ Update your Homebrew to latest:
9
9
  $ brew update
10
10
  ```
11
11
 
12
- Install Erlang:
12
+ Install Erlang and Rebar3:
13
13
 
14
14
  ```bash
15
- $ brew install erlang
15
+ $ brew install erlang rebar@3
16
16
  ```
17
17
 
18
- Also fetch the latest `rebar3` from rebar3.org and put it somewhere in
19
- your `$PATH` and make it executable. (PRs that describe this better or
20
- via `brew` are welcome).
21
-
22
18
  ### On Linux
23
19
 
24
20
  * Fedora 17+ and Fedora Rawhide: `sudo yum -y install erlang`
@@ -0,0 +1 @@
1
+ resolver: lts-8.2
@@ -2,6 +2,7 @@ import org.junit.Test;
2
2
  import org.junit.Ignore;
3
3
 
4
4
  import java.util.Arrays;
5
+ import java.util.Collections;
5
6
  import java.util.List;
6
7
 
7
8
  import static org.junit.Assert.assertEquals;
@@ -12,7 +13,7 @@ public class SieveTest {
12
13
  @Test
13
14
  public void findFirstPrime() {
14
15
  Sieve sieve = new Sieve(2);
15
- List<Integer> expectedOutput = Arrays.asList(new Integer[]{2});
16
+ List<Integer> expectedOutput = Collections.singletonList(2);
16
17
 
17
18
  assertEquals(expectedOutput, sieve.getPrimes());
18
19
  }
@@ -0,0 +1,10 @@
1
+ enum class Allergen(val score: Int) {
2
+ EGGS(1),
3
+ PEANUTS(2),
4
+ SHELLFISH(4),
5
+ STRAWBERRIES(8),
6
+ TOMATOES(16),
7
+ CHOCOLATE(32),
8
+ POLLEN(64),
9
+ CATS(128)
10
+ }
@@ -1,10 +1,5 @@
1
- If Python isn't already available on your system follow the instructions at [the Hitchhiker's Guide to Python](http://docs.python-guide.org/en/latest/#getting-started) to install Python on your computer.
1
+ ## Installing Python
2
2
 
3
- Exercism currently supports Python3.4, Python3.3 and Python2.7.
3
+ If Python isn't already available on your system follow the instructions at [the Hitchhiker's Guide to Python](http://docs.python-guide.org/en/latest/starting/installation/) to install Python on your computer.
4
4
 
5
-
6
- ## Packages
7
-
8
- The [Python Package Index](https://pypi.python.org/pypi) contains thousands of packages.
9
- Pretty much each of them is installable with `pip install packagename`.
10
- If you don't have __pip__ already, [get it now](https://pip.pypa.io/en/latest/installing.html)!
5
+ Exercism currently supports Python2.7 and Python 3.3+.
@@ -1,31 +1,34 @@
1
- from datetime import datetime
2
1
  import unittest
3
2
 
3
+ from datetime import datetime
4
+
4
5
  from gigasecond import add_gigasecond
5
6
 
6
7
 
8
+ # test cases adapted from `x-common//canonical-data.json` @ version: 1.0.0
9
+
7
10
  class GigasecondTest(unittest.TestCase):
8
- def test_1(self):
11
+ def test_date_only_specification_of_time(self):
9
12
  self.assertEqual(
10
13
  add_gigasecond(datetime(2011, 4, 25)),
11
14
  datetime(2043, 1, 1, 1, 46, 40))
12
15
 
13
- def test_2(self):
16
+ def test_another_date_only_specification_of_time(self):
14
17
  self.assertEqual(
15
18
  add_gigasecond(datetime(1977, 6, 13)),
16
19
  datetime(2009, 2, 19, 1, 46, 40))
17
20
 
18
- def test_3(self):
21
+ def test_one_more_date_only_specification_of_time(self):
19
22
  self.assertEqual(
20
23
  add_gigasecond(datetime(1959, 7, 19)),
21
24
  datetime(1991, 3, 27, 1, 46, 40))
22
25
 
23
- def test_4(self):
26
+ def test_full_time_specified(self):
24
27
  self.assertEqual(
25
28
  add_gigasecond(datetime(2015, 1, 24, 22, 0, 0)),
26
29
  datetime(2046, 10, 2, 23, 46, 40))
27
30
 
28
- def test_5(self):
31
+ def test_full_time_with_day_roll_over(self):
29
32
  self.assertEqual(
30
33
  add_gigasecond(datetime(2015, 1, 24, 23, 59, 59)),
31
34
  datetime(2046, 10, 3, 1, 46, 39))
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.32
4
+ version: 2.0.8.33
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-03-26 00:00:00.000000000 Z
11
+ date: 2017-03-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip
@@ -2535,9 +2535,15 @@ files:
2535
2535
  - tracks/elixir/exercises/pascals-triangle/example.exs
2536
2536
  - tracks/elixir/exercises/pascals-triangle/pascals_triangle.exs
2537
2537
  - tracks/elixir/exercises/pascals-triangle/pascals_triangle_test.exs
2538
+ - tracks/elixir/exercises/perfect-numbers/example.exs
2539
+ - tracks/elixir/exercises/perfect-numbers/perfect_numbers.exs
2540
+ - tracks/elixir/exercises/perfect-numbers/perfect_numbers_test.exs
2538
2541
  - tracks/elixir/exercises/phone-number/example.exs
2539
2542
  - tracks/elixir/exercises/phone-number/phone_number.exs
2540
2543
  - tracks/elixir/exercises/phone-number/phone_number_test.exs
2544
+ - tracks/elixir/exercises/pig-latin/example.exs
2545
+ - tracks/elixir/exercises/pig-latin/pig_latin.exs
2546
+ - tracks/elixir/exercises/pig-latin/pig_latin_test.exs
2541
2547
  - tracks/elixir/exercises/poker/example.exs
2542
2548
  - tracks/elixir/exercises/poker/poker.exs
2543
2549
  - tracks/elixir/exercises/poker/poker_test.exs
@@ -8703,7 +8709,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
8703
8709
  version: '0'
8704
8710
  requirements: []
8705
8711
  rubyforge_project:
8706
- rubygems_version: 2.6.6
8712
+ rubygems_version: 2.4.5.1
8707
8713
  signing_key:
8708
8714
  specification_version: 4
8709
8715
  summary: The Exercism exercises data
@@ -1 +0,0 @@
1
- fixtures/tracks/animal/exercises/fish/../../.meta/include-in-fish.txt
@@ -1 +0,0 @@
1
- tracks/haskell/exercises/pov/../../common/stack.yaml
@@ -1 +0,0 @@
1
- tracks/kotlin/exercises/allergies/src/example/kotlin/../../main/kotlin/Allergen.kt