trackler 2.1.0.16 → 2.1.0.17
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.
- checksums.yaml +4 -4
- data/fixtures/tracks/snowflake/exercises/snowflake-only/{description.md → .meta/description.md} +0 -0
- data/fixtures/tracks/snowflake/exercises/snowflake-only/{metadata.yml → .meta/metadata.yml} +0 -0
- data/lib/trackler/guaranteed_file.rb +2 -2
- data/lib/trackler/version.rb +1 -1
- data/tracks/coq/exercises/tautology/{description.md → .meta/description.md} +0 -0
- data/tracks/coq/exercises/tautology/{metadata.yml → .meta/metadata.yml} +0 -0
- data/tracks/java/exercises/robot-simulator/src/test/java/RobotTest.java +1 -1
- data/tracks/perl6/config.json +1 -1
- data/tracks/ruby/exercises/phone-number/.meta/.version +1 -1
- data/tracks/ruby/exercises/phone-number/.meta/solutions/phone_number.rb +1 -1
- data/tracks/ruby/exercises/phone-number/phone_number_test.rb +2 -7
- data/tracks/ruby/exercises/space-age/.meta/.version +1 -0
- data/tracks/ruby/exercises/space-age/.meta/generator/space_age_case.rb +11 -0
- data/tracks/ruby/exercises/space-age/.meta/generator/test_template.erb +25 -0
- data/tracks/ruby/exercises/space-age/.meta/solutions/space_age.rb +4 -0
- data/tracks/ruby/exercises/space-age/space_age_test.rb +30 -16
- data/tracks/ruby/lib/generator/underscore.rb +6 -0
- data/tracks/rust/config.json +0 -1
- data/tracks/typescript/exercises/anagram/anagram.test.ts +10 -10
- data/tracks/typescript/exercises/beer-song/beer-song.test.ts +5 -5
- data/tracks/typescript/exercises/bob/bob.test.ts +16 -16
- data/tracks/typescript/exercises/etl/etl.test.ts +3 -3
- data/tracks/typescript/exercises/food-chain/food-chain.test.ts +9 -9
- data/tracks/typescript/exercises/gigasecond/gigasecond.test.ts +3 -3
- data/tracks/typescript/exercises/grade-school/grade-school.test.ts +8 -8
- data/tracks/typescript/exercises/hamming/hamming.test.ts +7 -7
- data/tracks/typescript/exercises/hello-world/hello-world.test.ts +2 -2
- data/tracks/typescript/exercises/leap/leap.test.ts +7 -7
- data/tracks/typescript/exercises/pangram/pangram.test.ts +8 -8
- data/tracks/typescript/exercises/phone-number/phone-number.test.ts +9 -9
- data/tracks/typescript/exercises/rna-transcription/rna-transcription.test.ts +7 -7
- data/tracks/typescript/exercises/robot-name/robot-name.test.ts +7 -7
- data/tracks/typescript/exercises/say/say.test.ts +15 -15
- data/tracks/typescript/exercises/space-age/space-age.test.ts +8 -8
- data/tracks/typescript/exercises/word-count/word-count.test.ts +11 -11
- data/tracks/typescript/exercises/wordy/wordy.test.ts +15 -15
- metadata +8 -11
- data/tracks/coq/exercises/hello-world/metadata.yml +0 -3
- data/tracks/coq/exercises/rna-transcription/metadata.yml +0 -3
- data/tracks/rust/exercises/luhn-from/description.md +0 -9
- data/tracks/rust/exercises/luhn-from/metadata.yml +0 -3
- data/tracks/rust/exercises/luhn-trait/description.md +0 -17
- data/tracks/rust/exercises/luhn-trait/metadata.yml +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 04fb381a30ed2a42604ad108aa8dd1e5a0df7c86
|
4
|
+
data.tar.gz: 3993f6c27d0dbd3d918660247df9f71cd42cd385
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 588207f9777f4b7ee6d1dcdaaff4e4dc59d7cee2511961c9c573b22a5a3dda5abb7fc5f21a11809a84c99f655589774eae713e4188d3c69766dec92cc7e8f9ca
|
7
|
+
data.tar.gz: 4187a9e3c3896766ec9887c511bed8f8c9e78cee91c819a5133095253e1297941b76d15d4cddc6f70cc89600945d360e214d35dab80105c6afcdfdd0d2135f24
|
data/fixtures/tracks/snowflake/exercises/snowflake-only/{description.md → .meta/description.md}
RENAMED
File without changes
|
File without changes
|
@@ -28,11 +28,11 @@ module Trackler
|
|
28
28
|
|
29
29
|
class TrackFile < GuaranteedFile
|
30
30
|
def self.location(problem:, track:, filename:)
|
31
|
-
File.join(problem.root, 'tracks', track.id, 'exercises', problem.slug, filename)
|
31
|
+
File.join(problem.root, 'tracks', track.id, 'exercises', problem.slug, '.meta', filename)
|
32
32
|
end
|
33
33
|
|
34
34
|
def url
|
35
|
-
"#{track.repository}/blob/master/exercises/%s/#{filename}" % problem.slug
|
35
|
+
"#{track.repository}/blob/master/exercises/%s/.meta/#{filename}" % problem.slug
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
data/lib/trackler/version.rb
CHANGED
File without changes
|
File without changes
|
data/tracks/perl6/config.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
2
|
@@ -2,7 +2,7 @@
|
|
2
2
|
require 'minitest/autorun'
|
3
3
|
require_relative 'phone_number'
|
4
4
|
|
5
|
-
# Common test data version: 1.
|
5
|
+
# Common test data version: 1.2.0 39cba0d
|
6
6
|
class PhoneNumberTest < Minitest::Test
|
7
7
|
def test_cleans_the_number
|
8
8
|
# skip
|
@@ -54,11 +54,6 @@ class PhoneNumberTest < Minitest::Test
|
|
54
54
|
assert_nil PhoneNumber.clean("123-@:!-7890")
|
55
55
|
end
|
56
56
|
|
57
|
-
def test_invalid_with_right_number_of_digits_but_letters_mixed_in
|
58
|
-
skip
|
59
|
-
assert_nil PhoneNumber.clean("1a2b3c4d5e6f7g8h9i0j")
|
60
|
-
end
|
61
|
-
|
62
57
|
def test_invalid_if_area_code_does_not_start_with_2_9
|
63
58
|
skip
|
64
59
|
assert_nil PhoneNumber.clean("(123) 456-7890")
|
@@ -88,6 +83,6 @@ class PhoneNumberTest < Minitest::Test
|
|
88
83
|
|
89
84
|
def test_bookkeeping
|
90
85
|
skip
|
91
|
-
assert_equal
|
86
|
+
assert_equal 2, BookKeeping::VERSION
|
92
87
|
end
|
93
88
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
1
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'generator/exercise_case'
|
2
|
+
|
3
|
+
class SpaceAgeCase < Generator::ExerciseCase
|
4
|
+
using Generator::Underscore
|
5
|
+
|
6
|
+
def workload
|
7
|
+
indent_lines(["age = SpaceAge.new(#{seconds.underscore})",
|
8
|
+
"assert_in_delta #{expected}, age.on_#{planet.downcase}, DELTA"
|
9
|
+
], 4)
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'minitest/autorun'
|
3
|
+
require_relative '<%= exercise_name %>'
|
4
|
+
|
5
|
+
# Common test data version: <%= canonical_data_version %> <%= abbreviated_commit_hash %>
|
6
|
+
class <%= exercise_name_camel %>Test < Minitest::Test
|
7
|
+
# assert_in_delta will pass if the difference
|
8
|
+
# between the values being compared is less
|
9
|
+
# than the allowed delta
|
10
|
+
DELTA = 0.01
|
11
|
+
|
12
|
+
<% test_cases.each_with_index do |test_case, idx| %>
|
13
|
+
def <%= test_case.name %>
|
14
|
+
<%= test_case.skipped(idx) %>
|
15
|
+
<%= test_case.workload %>
|
16
|
+
end
|
17
|
+
|
18
|
+
<% end %>
|
19
|
+
<%= IO.read(XRUBY_LIB + '/bookkeeping.md') %>
|
20
|
+
|
21
|
+
def test_bookkeeping
|
22
|
+
skip
|
23
|
+
assert_equal <%= version %>, BookKeeping::VERSION
|
24
|
+
end
|
25
|
+
end
|
@@ -2,66 +2,80 @@
|
|
2
2
|
require 'minitest/autorun'
|
3
3
|
require_relative 'space_age'
|
4
4
|
|
5
|
+
# Common test data version: 1.0.0 7c63e40
|
5
6
|
class SpaceAgeTest < Minitest::Test
|
7
|
+
# assert_in_delta will pass if the difference
|
8
|
+
# between the values being compared is less
|
9
|
+
# than the allowed delta
|
6
10
|
DELTA = 0.01
|
7
11
|
|
8
|
-
def
|
9
|
-
|
10
|
-
assert_in_delta 1_000_000, age.seconds, DELTA
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_age_in_earth_years
|
14
|
-
skip
|
12
|
+
def test_age_on_earth
|
13
|
+
# skip
|
15
14
|
age = SpaceAge.new(1_000_000_000)
|
16
15
|
assert_in_delta 31.69, age.on_earth, DELTA
|
17
16
|
end
|
18
17
|
|
19
|
-
def
|
18
|
+
def test_age_on_mercury
|
20
19
|
skip
|
21
20
|
age = SpaceAge.new(2_134_835_688)
|
22
|
-
assert_in_delta 67.65, age.on_earth, DELTA
|
23
21
|
assert_in_delta 280.88, age.on_mercury, DELTA
|
24
22
|
end
|
25
23
|
|
26
|
-
def
|
24
|
+
def test_age_on_venus
|
27
25
|
skip
|
28
26
|
age = SpaceAge.new(189_839_836)
|
29
|
-
assert_in_delta 6.02, age.on_earth, DELTA
|
30
27
|
assert_in_delta 9.78, age.on_venus, DELTA
|
31
28
|
end
|
32
29
|
|
33
30
|
def test_age_on_mars
|
34
31
|
skip
|
35
32
|
age = SpaceAge.new(2_329_871_239)
|
36
|
-
assert_in_delta 73.83, age.on_earth, DELTA
|
37
33
|
assert_in_delta 39.25, age.on_mars, DELTA
|
38
34
|
end
|
39
35
|
|
40
36
|
def test_age_on_jupiter
|
41
37
|
skip
|
42
38
|
age = SpaceAge.new(901_876_382)
|
43
|
-
assert_in_delta 28.58, age.on_earth, DELTA
|
44
39
|
assert_in_delta 2.41, age.on_jupiter, DELTA
|
45
40
|
end
|
46
41
|
|
47
42
|
def test_age_on_saturn
|
48
43
|
skip
|
49
44
|
age = SpaceAge.new(3_000_000_000)
|
50
|
-
assert_in_delta 95.06, age.on_earth, DELTA
|
51
45
|
assert_in_delta 3.23, age.on_saturn, DELTA
|
52
46
|
end
|
53
47
|
|
54
48
|
def test_age_on_uranus
|
55
49
|
skip
|
56
50
|
age = SpaceAge.new(3_210_123_456)
|
57
|
-
assert_in_delta 101.72, age.on_earth, DELTA
|
58
51
|
assert_in_delta 1.21, age.on_uranus, DELTA
|
59
52
|
end
|
60
53
|
|
61
54
|
def test_age_on_neptune
|
62
55
|
skip
|
63
56
|
age = SpaceAge.new(8_210_123_456)
|
64
|
-
assert_in_delta 260.16, age.on_earth, DELTA
|
65
57
|
assert_in_delta 1.58, age.on_neptune, DELTA
|
66
58
|
end
|
59
|
+
|
60
|
+
# Problems in exercism evolve over time, as we find better ways to ask
|
61
|
+
# questions.
|
62
|
+
# The version number refers to the version of the problem you solved,
|
63
|
+
# not your solution.
|
64
|
+
#
|
65
|
+
# Define a constant named VERSION inside of the top level BookKeeping
|
66
|
+
# module, which may be placed near the end of your file.
|
67
|
+
#
|
68
|
+
# In your file, it will look like this:
|
69
|
+
#
|
70
|
+
# module BookKeeping
|
71
|
+
# VERSION = 1 # Where the version number matches the one in the test.
|
72
|
+
# end
|
73
|
+
#
|
74
|
+
# If you are curious, read more about constants on RubyDoc:
|
75
|
+
# http://ruby-doc.org/docs/ruby-doc-bundle/UsersGuide/rg/constants.html
|
76
|
+
|
77
|
+
def test_bookkeeping
|
78
|
+
skip
|
79
|
+
assert_equal 1, BookKeeping::VERSION
|
80
|
+
end
|
67
81
|
end
|
data/tracks/rust/config.json
CHANGED
@@ -9,70 +9,70 @@ describe('Anagram', () => {
|
|
9
9
|
expect(matches).toEqual([])
|
10
10
|
})
|
11
11
|
|
12
|
-
|
12
|
+
xit("detects simple anagram", () => {
|
13
13
|
const subject = new Anagram("ant")
|
14
14
|
const matches = subject.matches(...['tan', 'stand', 'at'])
|
15
15
|
|
16
16
|
expect(matches).toEqual(['tan'])
|
17
17
|
})
|
18
18
|
|
19
|
-
|
19
|
+
xit("does not detect false positives", () => {
|
20
20
|
const subject = new Anagram("galea")
|
21
21
|
const matches = subject.matches(...["eagle"])
|
22
22
|
|
23
23
|
expect(matches).toEqual([])
|
24
24
|
})
|
25
25
|
|
26
|
-
|
26
|
+
xit("detects multiple anagrams", () => {
|
27
27
|
const subject = new Anagram("master")
|
28
28
|
const matches = subject.matches(...['stream', 'pigeon', 'maters'])
|
29
29
|
|
30
30
|
expect(matches).toEqual(['stream', 'maters'])
|
31
31
|
})
|
32
32
|
|
33
|
-
|
33
|
+
xit("does not detect anagram subsets", () => {
|
34
34
|
const subject = new Anagram("good")
|
35
35
|
const matches = subject.matches(...['dog', 'goody'])
|
36
36
|
|
37
37
|
expect(matches).toEqual([])
|
38
38
|
})
|
39
39
|
|
40
|
-
|
40
|
+
xit("detects anagram", () => {
|
41
41
|
const subject = new Anagram("listen")
|
42
42
|
const matches = subject.matches(...['enlists', 'google', 'inlets', 'banana'])
|
43
43
|
|
44
44
|
expect(matches).toEqual(['inlets'])
|
45
45
|
})
|
46
46
|
|
47
|
-
|
47
|
+
xit("detects multiple anagrams", () => {
|
48
48
|
const subject = new Anagram("allergy")
|
49
49
|
const matches = subject.matches(...['gallery', 'ballerina', 'regally', 'clergy', 'largely', 'leading'])
|
50
50
|
|
51
51
|
expect(matches).toEqual(['gallery', 'regally', 'largely'])
|
52
52
|
})
|
53
53
|
|
54
|
-
|
54
|
+
xit("detects anagrams case-insensitively", () => {
|
55
55
|
const subject = new Anagram("Orchestra")
|
56
56
|
const matches = subject.matches(...['cashregister', 'Carthorse', 'radishes'])
|
57
57
|
|
58
58
|
expect(matches).toEqual(['Carthorse'])
|
59
59
|
})
|
60
60
|
|
61
|
-
|
61
|
+
xit("does not detect a word as its own anagram", () => {
|
62
62
|
const subject = new Anagram("banana")
|
63
63
|
const matches = subject.matches(...['Banana'])
|
64
64
|
|
65
65
|
expect(matches).toEqual([])
|
66
66
|
})
|
67
67
|
|
68
|
-
|
68
|
+
xit("matches() accepts string arguments", () => {
|
69
69
|
const subject = new Anagram("ant")
|
70
70
|
const matches = subject.matches("stand", "tan", "at")
|
71
71
|
|
72
72
|
expect(matches).toEqual(["tan"])
|
73
73
|
})
|
74
74
|
|
75
|
-
|
75
|
+
xit("matches() accepts single string argument", () => {
|
76
76
|
const subject = new Anagram("ant")
|
77
77
|
const matches = subject.matches("tan")
|
78
78
|
|
@@ -10,21 +10,21 @@ Take one down and pass it around, 7 bottles of beer on the wall.
|
|
10
10
|
expect(Beer.verse(8)).toEqual(expected)
|
11
11
|
})
|
12
12
|
|
13
|
-
|
13
|
+
xit('handles 1 bottle', () => {
|
14
14
|
const expected = `1 bottle of beer on the wall, 1 bottle of beer.
|
15
15
|
Take it down and pass it around, no more bottles of beer on the wall.
|
16
16
|
`
|
17
17
|
expect(Beer.verse(1)).toEqual(expected)
|
18
18
|
})
|
19
19
|
|
20
|
-
|
20
|
+
xit('handles 0 bottles', () => {
|
21
21
|
const expected = `No more bottles of beer on the wall, no more bottles of beer.
|
22
22
|
Go to the store and buy some more, 99 bottles of beer on the wall.
|
23
23
|
`
|
24
24
|
expect(Beer.verse(0)).toEqual(expected)
|
25
25
|
})
|
26
26
|
|
27
|
-
|
27
|
+
xit('sings several verses', () => {
|
28
28
|
const expected = `8 bottles of beer on the wall, 8 bottles of beer.
|
29
29
|
Take one down and pass it around, 7 bottles of beer on the wall.
|
30
30
|
|
@@ -37,7 +37,7 @@ Take one down and pass it around, 5 bottles of beer on the wall.
|
|
37
37
|
expect(Beer.sing(8, 6)).toEqual(expected)
|
38
38
|
})
|
39
39
|
|
40
|
-
|
40
|
+
xit('sings the rest of the verses', () => {
|
41
41
|
const expected = `3 bottles of beer on the wall, 3 bottles of beer.
|
42
42
|
Take one down and pass it around, 2 bottles of beer on the wall.
|
43
43
|
|
@@ -53,7 +53,7 @@ Go to the store and buy some more, 99 bottles of beer on the wall.
|
|
53
53
|
expect(Beer.sing(3)).toEqual(expected)
|
54
54
|
})
|
55
55
|
|
56
|
-
|
56
|
+
xit('sings all the verses', () => {
|
57
57
|
const song = Beer.sing()
|
58
58
|
expect(song).toEqual(`99 bottles of beer on the wall, 99 bottles of beer.
|
59
59
|
Take one down and pass it around, 98 bottles of beer on the wall.
|
@@ -9,82 +9,82 @@ describe('Bob', () => {
|
|
9
9
|
expect(result).toEqual('Whatever.')
|
10
10
|
})
|
11
11
|
|
12
|
-
|
12
|
+
xit('shouting', () => {
|
13
13
|
const result = bob.hey('WATCH OUT!')
|
14
14
|
expect(result).toEqual('Whoa, chill out!')
|
15
15
|
})
|
16
16
|
|
17
|
-
|
17
|
+
xit('asking a question', () => {
|
18
18
|
const result = bob.hey('Does this cryogenic chamber make me look fat?')
|
19
19
|
expect(result).toEqual('Sure.')
|
20
20
|
})
|
21
21
|
|
22
|
-
|
22
|
+
xit('talking forcefully', () => {
|
23
23
|
const result = bob.hey("Let's go make out behind the gym!")
|
24
24
|
expect(result).toEqual('Whatever.')
|
25
25
|
})
|
26
26
|
|
27
|
-
|
27
|
+
xit('using acronyms in regular speech', () => {
|
28
28
|
const result = bob.hey("It's OK if you don't want to go to the DMV.")
|
29
29
|
expect(result).toEqual('Whatever.')
|
30
30
|
})
|
31
31
|
|
32
|
-
|
32
|
+
xit('forceful questions', () => {
|
33
33
|
const result = bob.hey('WHAT THE HELL WERE YOU THINKING?')
|
34
34
|
expect(result).toEqual('Whoa, chill out!')
|
35
35
|
})
|
36
36
|
|
37
|
-
|
37
|
+
xit('shouting numbers', () => {
|
38
38
|
const result = bob.hey('1, 2, 3 GO!')
|
39
39
|
expect(result).toEqual('Whoa, chill out!')
|
40
40
|
})
|
41
41
|
|
42
|
-
|
42
|
+
xit('only numbers', () => {
|
43
43
|
const result = bob.hey('1, 2, 3')
|
44
44
|
expect(result).toEqual('Whatever.')
|
45
45
|
})
|
46
46
|
|
47
|
-
|
47
|
+
xit('question with only numbers', () => {
|
48
48
|
const result = bob.hey('4?')
|
49
49
|
expect(result).toEqual('Sure.')
|
50
50
|
})
|
51
51
|
|
52
|
-
|
52
|
+
xit('shouting with special characters', () => {
|
53
53
|
const result = bob.hey('ZOMG THE %^*@#$(*^ ZOMBIES ARE COMING!!11!!1!')
|
54
54
|
expect(result).toEqual('Whoa, chill out!')
|
55
55
|
})
|
56
56
|
|
57
|
-
|
57
|
+
xit('shouting with umlauts', () => {
|
58
58
|
const result = bob.hey('\xdcML\xc4\xdcTS!')
|
59
59
|
expect(result).toEqual('Whoa, chill out!')
|
60
60
|
})
|
61
61
|
|
62
|
-
|
62
|
+
xit('calmly speaking about umlauts', () => {
|
63
63
|
const result = bob.hey('\xfcML\xe4\xdcTS')
|
64
64
|
expect(result).toEqual('Whatever.')
|
65
65
|
})
|
66
66
|
|
67
|
-
|
67
|
+
xit('shouting with no exclamation mark', () => {
|
68
68
|
const result = bob.hey('I HATE YOU')
|
69
69
|
expect(result).toEqual('Whoa, chill out!')
|
70
70
|
})
|
71
71
|
|
72
|
-
|
72
|
+
xit('statement containing question mark', () => {
|
73
73
|
const result = bob.hey('Ending with a ? means a question.')
|
74
74
|
expect(result).toEqual('Whatever.')
|
75
75
|
})
|
76
76
|
|
77
|
-
|
77
|
+
xit('prattling on', () => {
|
78
78
|
const result = bob.hey('Wait! Hang on. Are you going to be OK?')
|
79
79
|
expect(result).toEqual('Sure.')
|
80
80
|
})
|
81
81
|
|
82
|
-
|
82
|
+
xit('silence', () => {
|
83
83
|
const result = bob.hey('')
|
84
84
|
expect(result).toEqual('Fine. Be that way!')
|
85
85
|
})
|
86
86
|
|
87
|
-
|
87
|
+
xit('prolonged silence', () => {
|
88
88
|
const result = bob.hey(' ')
|
89
89
|
expect(result).toEqual('Fine. Be that way!')
|
90
90
|
})
|
@@ -9,21 +9,21 @@ describe('Transform', () => {
|
|
9
9
|
expect(transform(old)).toEqual(expected)
|
10
10
|
})
|
11
11
|
|
12
|
-
|
12
|
+
xit('transforms more values', () => {
|
13
13
|
const old = { 1: [ 'A', 'E', 'I', 'O', 'U' ] }
|
14
14
|
const expected = { a: 1, e: 1, i: 1, o: 1, u: 1 }
|
15
15
|
|
16
16
|
expect(transform(old)).toEqual(expected)
|
17
17
|
})
|
18
18
|
|
19
|
-
|
19
|
+
xit('transforms more keys', () => {
|
20
20
|
const old = { 1: [ 'A', 'E' ], 2: [ 'D', 'G' ] }
|
21
21
|
const expected = { a: 1, e: 1, d: 2, g: 2 }
|
22
22
|
|
23
23
|
expect(transform(old)).toEqual(expected)
|
24
24
|
})
|
25
25
|
|
26
|
-
|
26
|
+
xit('transforms a full dataset', () => {
|
27
27
|
const old = {
|
28
28
|
1: [ 'A', 'E', 'I', 'O', 'U', 'L', 'N', 'R', 'S', 'T' ],
|
29
29
|
2: [ 'D', 'G' ],
|
@@ -9,7 +9,7 @@ I don't know why she swallowed the fly. Perhaps she'll die.
|
|
9
9
|
expect(FoodChain.verse(1)).toEqual(expected)
|
10
10
|
})
|
11
11
|
|
12
|
-
|
12
|
+
xit('spider', () => {
|
13
13
|
const expected = `I know an old lady who swallowed a spider.
|
14
14
|
It wriggled and jiggled and tickled inside her.
|
15
15
|
She swallowed the spider to catch the fly.
|
@@ -19,7 +19,7 @@ I don't know why she swallowed the fly. Perhaps she'll die.
|
|
19
19
|
expect(FoodChain.verse(2)).toEqual(expected)
|
20
20
|
})
|
21
21
|
|
22
|
-
|
22
|
+
xit('bird', () => {
|
23
23
|
const expected = `I know an old lady who swallowed a bird.
|
24
24
|
How absurd to swallow a bird!
|
25
25
|
She swallowed the bird to catch the spider that wriggled and jiggled and tickled inside her.
|
@@ -30,7 +30,7 @@ I don't know why she swallowed the fly. Perhaps she'll die.
|
|
30
30
|
expect(FoodChain.verse(3)).toEqual(expected)
|
31
31
|
})
|
32
32
|
|
33
|
-
|
33
|
+
xit('cat', () => {
|
34
34
|
const expected = `I know an old lady who swallowed a cat.
|
35
35
|
Imagine that, to swallow a cat!
|
36
36
|
She swallowed the cat to catch the bird.
|
@@ -42,7 +42,7 @@ I don't know why she swallowed the fly. Perhaps she'll die.
|
|
42
42
|
expect(FoodChain.verse(4)).toEqual(expected)
|
43
43
|
})
|
44
44
|
|
45
|
-
|
45
|
+
xit('dog', () => {
|
46
46
|
const expected = `I know an old lady who swallowed a dog.
|
47
47
|
What a hog, to swallow a dog!
|
48
48
|
She swallowed the dog to catch the cat.
|
@@ -55,7 +55,7 @@ I don't know why she swallowed the fly. Perhaps she'll die.
|
|
55
55
|
expect(FoodChain.verse(5)).toEqual(expected)
|
56
56
|
})
|
57
57
|
|
58
|
-
|
58
|
+
xit('goat', () => {
|
59
59
|
const expected = `I know an old lady who swallowed a goat.
|
60
60
|
Just opened her throat and swallowed a goat!
|
61
61
|
She swallowed the goat to catch the dog.
|
@@ -69,7 +69,7 @@ I don't know why she swallowed the fly. Perhaps she'll die.
|
|
69
69
|
expect(FoodChain.verse(6)).toEqual(expected)
|
70
70
|
})
|
71
71
|
|
72
|
-
|
72
|
+
xit('cow', () => {
|
73
73
|
const expected = `I know an old lady who swallowed a cow.
|
74
74
|
I don't know how she swallowed a cow!
|
75
75
|
She swallowed the cow to catch the goat.
|
@@ -84,7 +84,7 @@ I don't know why she swallowed the fly. Perhaps she'll die.
|
|
84
84
|
expect(FoodChain.verse(7)).toEqual(expected)
|
85
85
|
})
|
86
86
|
|
87
|
-
|
87
|
+
xit('horse', () => {
|
88
88
|
const expected = `I know an old lady who swallowed a horse.
|
89
89
|
She's dead, of course!
|
90
90
|
`
|
@@ -92,7 +92,7 @@ She's dead, of course!
|
|
92
92
|
expect(FoodChain.verse(8)).toEqual(expected)
|
93
93
|
})
|
94
94
|
|
95
|
-
|
95
|
+
xit('multiple verses', () => {
|
96
96
|
const expected = `I know an old lady who swallowed a fly.
|
97
97
|
I don't know why she swallowed the fly. Perhaps she'll die.
|
98
98
|
|
@@ -105,7 +105,7 @@ I don't know why she swallowed the fly. Perhaps she'll die.
|
|
105
105
|
expect(FoodChain.verses(1, 2)).toEqual(expected)
|
106
106
|
})
|
107
107
|
|
108
|
-
|
108
|
+
xit('the whole song', () => {
|
109
109
|
const expected = `I know an old lady who swallowed a fly.
|
110
110
|
I don't know why she swallowed the fly. Perhaps she'll die.
|
111
111
|
|
@@ -8,19 +8,19 @@ describe('Gigasecond', () => {
|
|
8
8
|
expect(gs.date()).toEqual(expectedDate)
|
9
9
|
})
|
10
10
|
|
11
|
-
|
11
|
+
xit('tells the anniversary is next day when you are born at night', () => {
|
12
12
|
const gs = new Gigasecond(new Date(Date.UTC(2015, 8, 14, 23, 59, 59)))
|
13
13
|
const expectedDate = new Date(Date.UTC(2047, 4, 24, 1, 46, 39))
|
14
14
|
expect(gs.date()).toEqual(expectedDate)
|
15
15
|
})
|
16
16
|
|
17
|
-
|
17
|
+
xit('even works before 1970 (beginning of Unix epoch )', () => {
|
18
18
|
const gs = new Gigasecond(new Date(Date.UTC(1959, 6, 19, 5, 13, 45)))
|
19
19
|
const expectedDate = new Date(Date.UTC(1991, 2, 27, 7, 0, 25))
|
20
20
|
expect(gs.date()).toEqual(expectedDate)
|
21
21
|
})
|
22
22
|
|
23
|
-
|
23
|
+
xit('make sure calling "date" doesn\'t mutate value', () => {
|
24
24
|
const gs = new Gigasecond(new Date(Date.UTC(1959, 6, 19, 5, 13, 45)))
|
25
25
|
const expectedDate = new Date(Date.UTC(1991, 2, 27, 7, 0, 25))
|
26
26
|
gs.date()
|