trackler 2.0.8.18 → 2.0.8.19
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/common/.gitignore +1 -0
- data/common/.travis.yml +5 -8
- data/common/README.md +18 -5
- data/common/exercises/grep/canonical-data.json +290 -269
- data/common/exercises/phone-number/canonical-data.json +2 -2
- data/common/exercises/pov/canonical-data.json +2 -5
- data/common/exercises/roman-numerals/canonical-data.json +112 -74
- data/common/exercises/tournament/canonical-data.json +86 -85
- data/common/exercises/two-bucket/canonical-data.json +55 -47
- data/common/package.json +16 -0
- data/common/yarn.lock +195 -0
- data/lib/trackler/version.rb +1 -1
- data/tracks/c/docs/LEARNING.md +1 -1
- data/tracks/c/exercises/space-age/src/example.c +15 -47
- data/tracks/c/exercises/space-age/src/example.h +12 -8
- data/tracks/c/exercises/space-age/test/test_space_age.c +8 -8
- data/tracks/ceylon/docs/TESTS.md +5 -2
- data/tracks/ceylon/exercises/TRACK_HINTS.md +5 -2
- data/tracks/csharp/.gitignore +0 -4
- data/tracks/csharp/.travis.yml +9 -20
- data/tracks/csharp/appveyor.yml +2 -4
- data/tracks/csharp/build.cake +95 -0
- data/tracks/csharp/build.ps1 +189 -0
- data/tracks/csharp/build.sh +99 -31
- data/tracks/csharp/circle.yml +3 -12
- data/tracks/delphi/config.json +8 -0
- data/tracks/delphi/exercises/minesweeper/MineSweeper.dpr +60 -0
- data/tracks/delphi/exercises/minesweeper/uMineSweeperExample.pas +70 -0
- data/tracks/delphi/exercises/minesweeper/uMineSweeperTest.pas +270 -0
- data/tracks/dlang/config.json +86 -31
- data/tracks/elixir/config.json +7 -0
- data/tracks/elixir/exercises/rotational-cipher/example.exs +35 -0
- data/tracks/elixir/exercises/rotational-cipher/rotational_cipher.exs +13 -0
- data/tracks/elixir/exercises/rotational-cipher/rotational_cipher_test.exs +80 -0
- data/tracks/go/exercises/raindrops/raindrops_test.go +4 -1
- data/tracks/go/exercises/react/react_test.go +6 -8
- data/tracks/go/exercises/rna-transcription/rna_transcription_test.go +4 -1
- data/tracks/go/exercises/robot-simulator/robot_simulator_test.go +5 -2
- data/tracks/haskell/exercises/allergies/src/Allergies.hs +2 -2
- data/tracks/haskell/exercises/atbash-cipher/src/Atbash.hs +2 -2
- data/tracks/haskell/exercises/bank-account/src/BankAccount.hs +3 -3
- data/tracks/haskell/exercises/binary-search-tree/src/BST.hs +7 -7
- data/tracks/haskell/exercises/bowling/src/Bowling.hs +1 -1
- data/tracks/haskell/exercises/clock/src/Clock.hs +4 -4
- data/tracks/haskell/exercises/connect/src/Connect.hs +1 -1
- data/tracks/haskell/exercises/crypto-square/src/CryptoSquare.hs +1 -1
- data/tracks/haskell/exercises/custom-set/src/CustomSet.hs +12 -12
- data/tracks/haskell/exercises/difference-of-squares/src/Squares.hs +3 -3
- data/tracks/haskell/exercises/etl/src/ETL.hs +1 -1
- data/tracks/haskell/exercises/forth/src/Forth.hs +2 -2
- data/tracks/haskell/exercises/go-counting/src/Counting.hs +2 -2
- data/tracks/haskell/exercises/kindergarten-garden/src/Garden.hs +3 -3
- data/tracks/haskell/exercises/largest-series-product/src/Series.hs +1 -1
- data/tracks/haskell/exercises/lens-person/src/Person.hs +4 -4
- data/tracks/julia/.travis.yml +3 -2
- data/tracks/ocaml/exercises/all-your-base/test.ml +2 -2
- data/tracks/ocaml/exercises/beer-song/test.ml +25 -24
- data/tracks/ocaml/exercises/phone-number/test.ml +22 -22
- data/tracks/ocaml/exercises/run-length-encoding/test.ml +5 -5
- data/tracks/ocaml/exercises/word-count/test.ml +1 -1
- data/tracks/ocaml/tools/test-generator/templates/beer-song/template.ml +20 -1
- data/tracks/purescript/config.json +7 -0
- data/tracks/purescript/exercises/word-count/bower.json +17 -0
- data/tracks/purescript/exercises/word-count/examples/src/WordCount.purs +31 -0
- data/tracks/purescript/exercises/word-count/src/WordCount.purs +3 -0
- data/tracks/purescript/exercises/word-count/test/Main.purs +89 -0
- data/tracks/python/exercises/accumulate/accumulate.py +2 -0
- data/tracks/python/exercises/acronym/acronym.py +2 -0
- data/tracks/python/exercises/allergies/allergies.py +3 -0
- data/tracks/python/exercises/allergies/example.py +1 -1
- data/tracks/python/exercises/anagram/anagram.py +2 -0
- data/tracks/python/exercises/atbash-cipher/atbash_cipher.py +6 -0
- data/tracks/python/exercises/beer-song/beer_song.py +6 -0
- data/tracks/python/exercises/binary-search/binary_search.py +2 -0
- data/tracks/python/exercises/binary/binary.py +2 -0
- data/tracks/python/exercises/bob/bob.py +2 -8
- data/tracks/python/exercises/bracket-push/bracket_push.py +2 -0
- data/tracks/python/exercises/circular-buffer/circular_buffer.py +11 -0
- data/tracks/python/exercises/clock/clock.py +3 -0
- data/tracks/python/exercises/clock/example.py +1 -1
- data/tracks/python/exercises/crypto-square/crypto_square.py +2 -0
- data/tracks/python/exercises/diamond/diamond.py +2 -0
- data/tracks/python/exercises/difference-of-squares/difference_of_squares.py +10 -0
- data/tracks/python/exercises/etl/etl.py +2 -0
- data/tracks/python/exercises/flatten-array/flatten_array.py +2 -0
- data/tracks/python/exercises/gigasecond/gigasecond.py +2 -0
- data/tracks/python/exercises/grade-school/grade_school.py +3 -0
- data/tracks/python/exercises/grains/grains.py +6 -0
- data/tracks/python/exercises/hamming/hamming.py +2 -0
- data/tracks/python/exercises/hello-world/hello_world.py +2 -7
- data/tracks/python/exercises/hexadecimal/hexadecimal.py +2 -0
- data/tracks/python/exercises/house/house.py +6 -0
- data/tracks/python/exercises/kindergarten-garden/kindergarten_garden.py +3 -0
- data/tracks/python/exercises/largest-series-product/largest_series_product.py +2 -0
- data/tracks/python/exercises/leap/leap.py +2 -0
- data/tracks/python/exercises/linked-list/linked_list.py +2 -8
- data/tracks/python/exercises/list-ops/list_ops.py +18 -22
- data/tracks/python/exercises/luhn/luhn.py +3 -0
- data/tracks/python/exercises/matrix/matrix.py +3 -0
- data/tracks/python/exercises/meetup/meetup.py +2 -0
- data/tracks/python/exercises/minesweeper/minesweeper.py +2 -0
- data/tracks/python/exercises/nth-prime/nth_prime.py +2 -0
- data/tracks/python/exercises/nucleotide-count/nucleotide_count.py +6 -0
- data/tracks/python/exercises/ocr-numbers/ocr_numbers.py +6 -0
- data/tracks/python/exercises/ocr-numbers/{ocr_test.py → ocr_numbers_test.py} +0 -0
- data/tracks/python/exercises/octal/octal.py +2 -0
- data/tracks/python/exercises/palindrome-products/palindrome_products.py +6 -0
- data/tracks/python/exercises/pangram/pangram.py +2 -0
- data/tracks/python/exercises/pascals-triangle/pascals_triangle.py +10 -0
- data/tracks/python/exercises/perfect-numbers/perfect_numbers.py +6 -0
- data/tracks/python/exercises/phone-number/phone_number.py +3 -0
- data/tracks/python/exercises/pig-latin/pig_latin.py +2 -0
- data/tracks/python/exercises/point-mutations/point_mutations.py +2 -0
- data/tracks/python/exercises/poker/poker.py +2 -0
- data/tracks/python/exercises/prime-factors/prime_factors.py +2 -0
- data/tracks/python/exercises/proverb/proverb.py +2 -0
- data/tracks/python/exercises/pythagorean-triplet/pythagorean_triplet.py +10 -0
- data/tracks/python/exercises/queen-attack/queen_attack.py +6 -0
- data/tracks/python/exercises/rail-fence-cipher/rail_fence_cipher.py +10 -0
- data/tracks/python/exercises/raindrops/raindrops.py +2 -0
- data/tracks/python/exercises/rectangles/example.py +1 -1
- data/tracks/python/exercises/rectangles/rectangles.py +2 -0
- data/tracks/python/exercises/rectangles/{rectangles_count_test.py → rectangles_test.py} +0 -0
- data/tracks/python/exercises/rna-transcription/rna_transcription.py +2 -0
- data/tracks/python/exercises/robot-name/robot_name.py +3 -0
- data/tracks/python/exercises/robot-simulator/robot_simulator.py +3 -0
- data/tracks/python/exercises/roman-numerals/roman_numerals.py +2 -0
- data/tracks/python/exercises/run-length-encoding/run_length_encoding.py +6 -0
- data/tracks/python/exercises/run-length-encoding/{run_length_test.py → run_length_encoding_test.py} +1 -1
- data/tracks/python/exercises/saddle-points/saddle_points.py +2 -0
- data/tracks/python/exercises/say/example.py +1 -1
- data/tracks/python/exercises/say/say.py +2 -0
- data/tracks/python/exercises/say/say_test.py +3 -0
- data/tracks/python/exercises/scrabble-score/scrabble_score.py +2 -0
- data/tracks/python/exercises/secret-handshake/secret_handshake.py +6 -0
- data/tracks/python/exercises/secret-handshake/{handshake_test.py → secret_handshake_test.py} +0 -0
- data/tracks/python/exercises/series/series.py +2 -0
- data/tracks/python/exercises/sieve/sieve.py +2 -0
- data/tracks/python/exercises/simple-cipher/example.py +1 -1
- data/tracks/python/exercises/simple-cipher/simple_cipher.py +8 -0
- data/tracks/python/exercises/space-age/space_age.py +3 -0
- data/tracks/python/exercises/strain/strain.py +6 -0
- data/tracks/python/exercises/sublist/sublist.py +2 -0
- data/tracks/python/exercises/sum-of-multiples/sum_of_multiples.py +2 -0
- data/tracks/python/exercises/triangle/triangle.py +7 -0
- data/tracks/python/exercises/trinary/trinary.py +2 -0
- data/tracks/python/exercises/twelve-days/twelve_days.py +10 -0
- data/tracks/python/exercises/word-count/word_count.py +2 -0
- data/tracks/python/exercises/wordy/wordy.py +2 -0
- data/tracks/python/exercises/zebra-puzzle/zebra_puzzle.py +2 -0
- data/tracks/ruby/exercises/beer-song/.meta/.version +1 -0
- data/tracks/ruby/exercises/beer-song/beer_song_test.rb +62 -36
- data/tracks/ruby/exercises/beer-song/example.rb +1 -5
- data/tracks/ruby/exercises/beer-song/example.tt +22 -0
- data/tracks/ruby/lib/beer_song_cases.rb +43 -0
- data/tracks/swift/exercises/matrix/Tests/MatrixTests/MatrixTests.swift +1 -1
- metadata +94 -13
- data/common/bin/jsonlint +0 -27
- data/tracks/csharp/.paket/paket.bootstrapper.exe +0 -0
- data/tracks/csharp/Zipper.cs +0 -137
- data/tracks/csharp/build.cmd +0 -14
- data/tracks/csharp/build.fsx +0 -78
- data/tracks/csharp/paket.dependencies +0 -2
- data/tracks/csharp/paket.lock +0 -3
data/tracks/python/exercises/secret-handshake/{handshake_test.py → secret_handshake_test.py}
RENAMED
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
3
|
@@ -1,69 +1,86 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
+
# encoding: utf-8
|
2
3
|
gem 'minitest', '>= 5.0.0'
|
3
4
|
require 'minitest/autorun'
|
4
5
|
require_relative 'beer_song'
|
5
6
|
|
7
|
+
# Common test data version: 9f3d48a
|
6
8
|
class BeerSongTest < Minitest::Test
|
7
|
-
def
|
8
|
-
|
9
|
-
|
9
|
+
def test_first_generic_verse
|
10
|
+
# skip
|
11
|
+
expected = <<-TEXT
|
12
|
+
99 bottles of beer on the wall, 99 bottles of beer.
|
13
|
+
Take one down and pass it around, 98 bottles of beer on the wall.
|
14
|
+
TEXT
|
10
15
|
assert_equal expected, BeerSong.new.verse(99)
|
11
16
|
end
|
12
17
|
|
13
|
-
def
|
18
|
+
def test_last_generic_verse
|
14
19
|
skip
|
15
|
-
expected =
|
16
|
-
|
20
|
+
expected = <<-TEXT
|
21
|
+
3 bottles of beer on the wall, 3 bottles of beer.
|
22
|
+
Take one down and pass it around, 2 bottles of beer on the wall.
|
23
|
+
TEXT
|
17
24
|
assert_equal expected, BeerSong.new.verse(3)
|
18
25
|
end
|
19
26
|
|
20
27
|
def test_verse_2
|
21
28
|
skip
|
22
|
-
expected =
|
23
|
-
|
29
|
+
expected = <<-TEXT
|
30
|
+
2 bottles of beer on the wall, 2 bottles of beer.
|
31
|
+
Take one down and pass it around, 1 bottle of beer on the wall.
|
32
|
+
TEXT
|
24
33
|
assert_equal expected, BeerSong.new.verse(2)
|
25
34
|
end
|
26
35
|
|
27
36
|
def test_verse_1
|
28
37
|
skip
|
29
|
-
expected =
|
30
|
-
|
38
|
+
expected = <<-TEXT
|
39
|
+
1 bottle of beer on the wall, 1 bottle of beer.
|
40
|
+
Take it down and pass it around, no more bottles of beer on the wall.
|
41
|
+
TEXT
|
31
42
|
assert_equal expected, BeerSong.new.verse(1)
|
32
43
|
end
|
33
44
|
|
34
45
|
def test_verse_0
|
35
46
|
skip
|
36
|
-
expected =
|
37
|
-
|
47
|
+
expected = <<-TEXT
|
48
|
+
No more bottles of beer on the wall, no more bottles of beer.
|
49
|
+
Go to the store and buy some more, 99 bottles of beer on the wall.
|
50
|
+
TEXT
|
38
51
|
assert_equal expected, BeerSong.new.verse(0)
|
39
52
|
end
|
40
53
|
|
41
|
-
def
|
54
|
+
def test_first_two_verses
|
42
55
|
skip
|
43
|
-
expected =
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
56
|
+
expected = <<-TEXT
|
57
|
+
99 bottles of beer on the wall, 99 bottles of beer.
|
58
|
+
Take one down and pass it around, 98 bottles of beer on the wall.
|
59
|
+
|
60
|
+
98 bottles of beer on the wall, 98 bottles of beer.
|
61
|
+
Take one down and pass it around, 97 bottles of beer on the wall.
|
62
|
+
TEXT
|
48
63
|
assert_equal expected, BeerSong.new.verses(99, 98)
|
49
64
|
end
|
50
65
|
|
51
|
-
def
|
66
|
+
def test_last_three_verses
|
52
67
|
skip
|
53
|
-
expected =
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
68
|
+
expected = <<-TEXT
|
69
|
+
2 bottles of beer on the wall, 2 bottles of beer.
|
70
|
+
Take one down and pass it around, 1 bottle of beer on the wall.
|
71
|
+
|
72
|
+
1 bottle of beer on the wall, 1 bottle of beer.
|
73
|
+
Take it down and pass it around, no more bottles of beer on the wall.
|
74
|
+
|
75
|
+
No more bottles of beer on the wall, no more bottles of beer.
|
76
|
+
Go to the store and buy some more, 99 bottles of beer on the wall.
|
77
|
+
TEXT
|
61
78
|
assert_equal expected, BeerSong.new.verses(2, 0)
|
62
79
|
end
|
63
80
|
|
64
|
-
def
|
81
|
+
def test_all_verses
|
65
82
|
skip
|
66
|
-
expected = <<-
|
83
|
+
expected = <<-TEXT
|
67
84
|
99 bottles of beer on the wall, 99 bottles of beer.
|
68
85
|
Take one down and pass it around, 98 bottles of beer on the wall.
|
69
86
|
|
@@ -363,18 +380,27 @@ Take it down and pass it around, no more bottles of beer on the wall.
|
|
363
380
|
|
364
381
|
No more bottles of beer on the wall, no more bottles of beer.
|
365
382
|
Go to the store and buy some more, 99 bottles of beer on the wall.
|
366
|
-
|
367
|
-
assert_equal expected, BeerSong.new.
|
383
|
+
TEXT
|
384
|
+
assert_equal expected, BeerSong.new.verses(99, 0)
|
368
385
|
end
|
369
|
-
|
370
|
-
#
|
371
|
-
# as we find better ways to ask questions.
|
386
|
+
# Problems in exercism evolve over time, as we find better ways to ask
|
387
|
+
# questions.
|
372
388
|
# The version number refers to the version of the problem you solved,
|
373
389
|
# not your solution.
|
374
390
|
#
|
375
|
-
# Define a constant named VERSION inside of BookKeeping
|
391
|
+
# Define a constant named VERSION inside of the top level BookKeeping
|
392
|
+
# module, which may be placed near the end of your file.
|
393
|
+
#
|
394
|
+
# In your file, it will look like this:
|
395
|
+
#
|
396
|
+
# module BookKeeping
|
397
|
+
# VERSION = 1 # Where the version number matches the one in the test.
|
398
|
+
# end
|
399
|
+
#
|
400
|
+
# If you are curious, read more about constants on RubyDoc:
|
401
|
+
# http://ruby-doc.org/docs/ruby-doc-bundle/UsersGuide/rg/constants.html
|
376
402
|
def test_bookkeeping
|
377
403
|
skip
|
378
|
-
assert_equal
|
404
|
+
assert_equal 3, BookKeeping::VERSION
|
379
405
|
end
|
380
406
|
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# encoding: utf-8
|
3
|
+
gem 'minitest', '>= 5.0.0'
|
4
|
+
require 'minitest/autorun'
|
5
|
+
require_relative 'beer_song'
|
6
|
+
|
7
|
+
# Common test data version: <%= abbreviated_commit_hash %>
|
8
|
+
class BeerSongTest < Minitest::Test<% test_cases.each do |test_case| %>
|
9
|
+
def <%= test_case.test_name %>
|
10
|
+
<%= test_case.skipped %>
|
11
|
+
expected = <<-TEXT
|
12
|
+
<%= test_case.expected %>
|
13
|
+
TEXT
|
14
|
+
assert_equal expected, <%= test_case.workload %>
|
15
|
+
end
|
16
|
+
<% end %>
|
17
|
+
<%= IO.read(XRUBY_LIB + '/bookkeeping.md') %>
|
18
|
+
def test_bookkeeping
|
19
|
+
skip
|
20
|
+
assert_equal <%= version %>, BookKeeping::VERSION
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'exercise_cases'
|
2
|
+
|
3
|
+
class BeerSongCase < OpenStruct
|
4
|
+
def test_name
|
5
|
+
'test_%s' % description.tr(' ', '_')
|
6
|
+
end
|
7
|
+
|
8
|
+
def workload
|
9
|
+
"BeerSong.new.%s(%s)" % [property, workload_arguments]
|
10
|
+
end
|
11
|
+
|
12
|
+
def expected
|
13
|
+
self["expected"].gsub('\n', '"\n" \\')
|
14
|
+
end
|
15
|
+
|
16
|
+
def skipped
|
17
|
+
index.zero? ? '# skip' : 'skip'
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def workload_arguments
|
23
|
+
if property == 'verse'
|
24
|
+
number
|
25
|
+
else
|
26
|
+
"%s, %s" % [self["beginning"], self["end"]]
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
BeerSongCases = proc do |data|
|
32
|
+
i = 0
|
33
|
+
cases = []
|
34
|
+
JSON.parse(data)["cases"].each do |section|
|
35
|
+
section["cases"].each do |tests|
|
36
|
+
tests["cases"].each do |test|
|
37
|
+
cases << BeerSongCase.new(test.merge('index' => i))
|
38
|
+
i += 1
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
cases
|
43
|
+
end
|
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.
|
4
|
+
version: 2.0.8.19
|
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-
|
11
|
+
date: 2017-03-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubyzip
|
@@ -106,13 +106,13 @@ files:
|
|
106
106
|
- bin/verify-configs
|
107
107
|
- bin/verify-metadata
|
108
108
|
- common/.git
|
109
|
+
- common/.gitignore
|
109
110
|
- common/.travis.yml
|
110
111
|
- common/CONTRIBUTING.md
|
111
112
|
- common/LICENSE
|
112
113
|
- common/README.md
|
113
114
|
- common/TOPICS.txt
|
114
115
|
- common/bin/check_required_files_present
|
115
|
-
- common/bin/jsonlint
|
116
116
|
- common/canonical-schema.json
|
117
117
|
- common/exercises/accumulate/description.md
|
118
118
|
- common/exercises/accumulate/metadata.yml
|
@@ -423,6 +423,8 @@ files:
|
|
423
423
|
- common/exercises/zebra-puzzle/metadata.yml
|
424
424
|
- common/exercises/zipper/description.md
|
425
425
|
- common/exercises/zipper/metadata.yml
|
426
|
+
- common/package.json
|
427
|
+
- common/yarn.lock
|
426
428
|
- fixtures/common/exercises/apple/canonical-data.json
|
427
429
|
- fixtures/common/exercises/apple/description.md
|
428
430
|
- fixtures/common/exercises/apple/metadata.yml
|
@@ -1345,16 +1347,14 @@ files:
|
|
1345
1347
|
- tracks/crystal/src/generator/spec/exercise_test_case_spec.cr
|
1346
1348
|
- tracks/csharp/.git
|
1347
1349
|
- tracks/csharp/.gitignore
|
1348
|
-
- tracks/csharp/.paket/paket.bootstrapper.exe
|
1349
1350
|
- tracks/csharp/.travis.yml
|
1350
1351
|
- tracks/csharp/LICENSE
|
1351
1352
|
- tracks/csharp/README.md
|
1352
1353
|
- tracks/csharp/SETUP.md
|
1353
|
-
- tracks/csharp/Zipper.cs
|
1354
1354
|
- tracks/csharp/appveyor.yml
|
1355
1355
|
- tracks/csharp/bin/fetch-configlet
|
1356
|
-
- tracks/csharp/build.
|
1357
|
-
- tracks/csharp/build.
|
1356
|
+
- tracks/csharp/build.cake
|
1357
|
+
- tracks/csharp/build.ps1
|
1358
1358
|
- tracks/csharp/build.sh
|
1359
1359
|
- tracks/csharp/circle.yml
|
1360
1360
|
- tracks/csharp/config.json
|
@@ -1788,8 +1788,6 @@ files:
|
|
1788
1788
|
- tracks/csharp/exercises/zipper/Zipper.csproj
|
1789
1789
|
- tracks/csharp/exercises/zipper/ZipperTest.cs
|
1790
1790
|
- tracks/csharp/img/icon.png
|
1791
|
-
- tracks/csharp/paket.dependencies
|
1792
|
-
- tracks/csharp/paket.lock
|
1793
1791
|
- tracks/delphi/.git
|
1794
1792
|
- tracks/delphi/.gitignore
|
1795
1793
|
- tracks/delphi/.travis.yml
|
@@ -1861,6 +1859,9 @@ files:
|
|
1861
1859
|
- tracks/delphi/exercises/leap/Leap.dpr
|
1862
1860
|
- tracks/delphi/exercises/leap/uLeapExample.pas
|
1863
1861
|
- tracks/delphi/exercises/leap/uLeapTests.pas
|
1862
|
+
- tracks/delphi/exercises/minesweeper/MineSweeper.dpr
|
1863
|
+
- tracks/delphi/exercises/minesweeper/uMineSweeperExample.pas
|
1864
|
+
- tracks/delphi/exercises/minesweeper/uMineSweeperTest.pas
|
1864
1865
|
- tracks/delphi/exercises/nucleotide-count/NucleotideCount.dpr
|
1865
1866
|
- tracks/delphi/exercises/nucleotide-count/uNucleotideCountExample.pas
|
1866
1867
|
- tracks/delphi/exercises/nucleotide-count/uNucleotideCountTest.pas
|
@@ -2464,6 +2465,9 @@ files:
|
|
2464
2465
|
- tracks/elixir/exercises/roman-numerals/example.exs
|
2465
2466
|
- tracks/elixir/exercises/roman-numerals/roman.exs
|
2466
2467
|
- tracks/elixir/exercises/roman-numerals/roman_numerals_test.exs
|
2468
|
+
- tracks/elixir/exercises/rotational-cipher/example.exs
|
2469
|
+
- tracks/elixir/exercises/rotational-cipher/rotational_cipher.exs
|
2470
|
+
- tracks/elixir/exercises/rotational-cipher/rotational_cipher_test.exs
|
2467
2471
|
- tracks/elixir/exercises/run-length-encoding/example.exs
|
2468
2472
|
- tracks/elixir/exercises/run-length-encoding/rle.exs
|
2469
2473
|
- tracks/elixir/exercises/run-length-encoding/rle_test.exs
|
@@ -6341,6 +6345,10 @@ files:
|
|
6341
6345
|
- tracks/purescript/exercises/triangle/examples/src/Triangle.purs
|
6342
6346
|
- tracks/purescript/exercises/triangle/src/Triangle.purs
|
6343
6347
|
- tracks/purescript/exercises/triangle/test/Main.purs
|
6348
|
+
- tracks/purescript/exercises/word-count/bower.json
|
6349
|
+
- tracks/purescript/exercises/word-count/examples/src/WordCount.purs
|
6350
|
+
- tracks/purescript/exercises/word-count/src/WordCount.purs
|
6351
|
+
- tracks/purescript/exercises/word-count/test/Main.purs
|
6344
6352
|
- tracks/purescript/img/icon.png
|
6345
6353
|
- tracks/python/.git
|
6346
6354
|
- tracks/python/.gitignore
|
@@ -6360,65 +6368,90 @@ files:
|
|
6360
6368
|
- tracks/python/docs/img/AddFiles.png
|
6361
6369
|
- tracks/python/docs/img/SolutionExplorer.png
|
6362
6370
|
- tracks/python/docs/img/TestExplorer.png
|
6371
|
+
- tracks/python/exercises/accumulate/accumulate.py
|
6363
6372
|
- tracks/python/exercises/accumulate/accumulate_test.py
|
6364
6373
|
- tracks/python/exercises/accumulate/example.py
|
6374
|
+
- tracks/python/exercises/acronym/acronym.py
|
6365
6375
|
- tracks/python/exercises/acronym/acronym_test.py
|
6366
6376
|
- tracks/python/exercises/acronym/example.py
|
6367
6377
|
- tracks/python/exercises/all-your-base/all_your_base_test.py
|
6368
6378
|
- tracks/python/exercises/all-your-base/example.py
|
6379
|
+
- tracks/python/exercises/allergies/allergies.py
|
6369
6380
|
- tracks/python/exercises/allergies/allergies_test.py
|
6370
6381
|
- tracks/python/exercises/allergies/example.py
|
6382
|
+
- tracks/python/exercises/anagram/anagram.py
|
6371
6383
|
- tracks/python/exercises/anagram/anagram_test.py
|
6372
6384
|
- tracks/python/exercises/anagram/example.py
|
6385
|
+
- tracks/python/exercises/atbash-cipher/atbash_cipher.py
|
6373
6386
|
- tracks/python/exercises/atbash-cipher/atbash_cipher_test.py
|
6374
6387
|
- tracks/python/exercises/atbash-cipher/example.py
|
6388
|
+
- tracks/python/exercises/beer-song/beer_song.py
|
6375
6389
|
- tracks/python/exercises/beer-song/beer_song_test.py
|
6376
6390
|
- tracks/python/exercises/beer-song/example.py
|
6391
|
+
- tracks/python/exercises/binary-search/binary_search.py
|
6377
6392
|
- tracks/python/exercises/binary-search/binary_search_test.py
|
6378
6393
|
- tracks/python/exercises/binary-search/example.py
|
6394
|
+
- tracks/python/exercises/binary/binary.py
|
6379
6395
|
- tracks/python/exercises/binary/binary_test.py
|
6380
6396
|
- tracks/python/exercises/binary/example.py
|
6381
6397
|
- tracks/python/exercises/bob/bob.py
|
6382
6398
|
- tracks/python/exercises/bob/bob_test.py
|
6383
6399
|
- tracks/python/exercises/bob/example.py
|
6400
|
+
- tracks/python/exercises/bracket-push/bracket_push.py
|
6384
6401
|
- tracks/python/exercises/bracket-push/bracket_push_test.py
|
6385
6402
|
- tracks/python/exercises/bracket-push/example.py
|
6403
|
+
- tracks/python/exercises/circular-buffer/circular_buffer.py
|
6386
6404
|
- tracks/python/exercises/circular-buffer/circular_buffer_test.py
|
6387
6405
|
- tracks/python/exercises/circular-buffer/example.py
|
6406
|
+
- tracks/python/exercises/clock/clock.py
|
6388
6407
|
- tracks/python/exercises/clock/clock_test.py
|
6389
6408
|
- tracks/python/exercises/clock/example.py
|
6409
|
+
- tracks/python/exercises/crypto-square/crypto_square.py
|
6390
6410
|
- tracks/python/exercises/crypto-square/crypto_square_test.py
|
6391
6411
|
- tracks/python/exercises/crypto-square/example.py
|
6412
|
+
- tracks/python/exercises/diamond/diamond.py
|
6392
6413
|
- tracks/python/exercises/diamond/diamond_test.py
|
6393
6414
|
- tracks/python/exercises/diamond/example.py
|
6415
|
+
- tracks/python/exercises/difference-of-squares/difference_of_squares.py
|
6394
6416
|
- tracks/python/exercises/difference-of-squares/difference_of_squares_test.py
|
6395
6417
|
- tracks/python/exercises/difference-of-squares/example.py
|
6418
|
+
- tracks/python/exercises/etl/etl.py
|
6396
6419
|
- tracks/python/exercises/etl/etl_test.py
|
6397
6420
|
- tracks/python/exercises/etl/example.py
|
6398
6421
|
- tracks/python/exercises/flatten-array/example.py
|
6422
|
+
- tracks/python/exercises/flatten-array/flatten_array.py
|
6399
6423
|
- tracks/python/exercises/flatten-array/flatten_array_test.py
|
6400
6424
|
- tracks/python/exercises/gigasecond/example.py
|
6425
|
+
- tracks/python/exercises/gigasecond/gigasecond.py
|
6401
6426
|
- tracks/python/exercises/gigasecond/gigasecond_test.py
|
6402
6427
|
- tracks/python/exercises/grade-school/example.py
|
6428
|
+
- tracks/python/exercises/grade-school/grade_school.py
|
6403
6429
|
- tracks/python/exercises/grade-school/grade_school_test.py
|
6404
6430
|
- tracks/python/exercises/grains/example.py
|
6431
|
+
- tracks/python/exercises/grains/grains.py
|
6405
6432
|
- tracks/python/exercises/grains/grains_test.py
|
6406
6433
|
- tracks/python/exercises/grep/example.py
|
6407
6434
|
- tracks/python/exercises/grep/grep_test.py
|
6408
6435
|
- tracks/python/exercises/hamming/example.py
|
6436
|
+
- tracks/python/exercises/hamming/hamming.py
|
6409
6437
|
- tracks/python/exercises/hamming/hamming_test.py
|
6410
6438
|
- tracks/python/exercises/hello-world/example.py
|
6411
6439
|
- tracks/python/exercises/hello-world/hello_world.py
|
6412
6440
|
- tracks/python/exercises/hello-world/hello_world_test.py
|
6413
6441
|
- tracks/python/exercises/hexadecimal/example.py
|
6442
|
+
- tracks/python/exercises/hexadecimal/hexadecimal.py
|
6414
6443
|
- tracks/python/exercises/hexadecimal/hexadecimal_test.py
|
6415
6444
|
- tracks/python/exercises/house/example.py
|
6445
|
+
- tracks/python/exercises/house/house.py
|
6416
6446
|
- tracks/python/exercises/house/house_test.py
|
6417
6447
|
- tracks/python/exercises/kindergarten-garden/example.py
|
6448
|
+
- tracks/python/exercises/kindergarten-garden/kindergarten_garden.py
|
6418
6449
|
- tracks/python/exercises/kindergarten-garden/kindergarten_garden_test.py
|
6419
6450
|
- tracks/python/exercises/largest-series-product/example.py
|
6451
|
+
- tracks/python/exercises/largest-series-product/largest_series_product.py
|
6420
6452
|
- tracks/python/exercises/largest-series-product/largest_series_product_test.py
|
6421
6453
|
- tracks/python/exercises/leap/example.py
|
6454
|
+
- tracks/python/exercises/leap/leap.py
|
6422
6455
|
- tracks/python/exercises/leap/leap_test.py
|
6423
6456
|
- tracks/python/exercises/linked-list/example.py
|
6424
6457
|
- tracks/python/exercises/linked-list/linked_list.py
|
@@ -6427,97 +6460,142 @@ files:
|
|
6427
6460
|
- tracks/python/exercises/list-ops/list_ops.py
|
6428
6461
|
- tracks/python/exercises/list-ops/list_ops_test.py
|
6429
6462
|
- tracks/python/exercises/luhn/example.py
|
6463
|
+
- tracks/python/exercises/luhn/luhn.py
|
6430
6464
|
- tracks/python/exercises/luhn/luhn_test.py
|
6431
6465
|
- tracks/python/exercises/matrix/example.py
|
6466
|
+
- tracks/python/exercises/matrix/matrix.py
|
6432
6467
|
- tracks/python/exercises/matrix/matrix_test.py
|
6433
6468
|
- tracks/python/exercises/meetup/example.py
|
6469
|
+
- tracks/python/exercises/meetup/meetup.py
|
6434
6470
|
- tracks/python/exercises/meetup/meetup_test.py
|
6435
6471
|
- tracks/python/exercises/minesweeper/example.py
|
6472
|
+
- tracks/python/exercises/minesweeper/minesweeper.py
|
6436
6473
|
- tracks/python/exercises/minesweeper/minesweeper_test.py
|
6437
6474
|
- tracks/python/exercises/nth-prime/example.py
|
6475
|
+
- tracks/python/exercises/nth-prime/nth_prime.py
|
6438
6476
|
- tracks/python/exercises/nth-prime/nth_prime_test.py
|
6439
6477
|
- tracks/python/exercises/nucleotide-count/example.py
|
6478
|
+
- tracks/python/exercises/nucleotide-count/nucleotide_count.py
|
6440
6479
|
- tracks/python/exercises/nucleotide-count/nucleotide_count_test.py
|
6441
6480
|
- tracks/python/exercises/ocr-numbers/example.py
|
6442
|
-
- tracks/python/exercises/ocr-numbers/
|
6481
|
+
- tracks/python/exercises/ocr-numbers/ocr_numbers.py
|
6482
|
+
- tracks/python/exercises/ocr-numbers/ocr_numbers_test.py
|
6443
6483
|
- tracks/python/exercises/octal/example.py
|
6484
|
+
- tracks/python/exercises/octal/octal.py
|
6444
6485
|
- tracks/python/exercises/octal/octal_test.py
|
6445
6486
|
- tracks/python/exercises/palindrome-products/example.py
|
6487
|
+
- tracks/python/exercises/palindrome-products/palindrome_products.py
|
6446
6488
|
- tracks/python/exercises/palindrome-products/palindrome_products_test.py
|
6447
6489
|
- tracks/python/exercises/pangram/example.py
|
6490
|
+
- tracks/python/exercises/pangram/pangram.py
|
6448
6491
|
- tracks/python/exercises/pangram/pangram_test.py
|
6449
6492
|
- tracks/python/exercises/pascals-triangle/example.py
|
6493
|
+
- tracks/python/exercises/pascals-triangle/pascals_triangle.py
|
6450
6494
|
- tracks/python/exercises/pascals-triangle/pascals_triangle_test.py
|
6451
6495
|
- tracks/python/exercises/perfect-numbers/example.py
|
6496
|
+
- tracks/python/exercises/perfect-numbers/perfect_numbers.py
|
6452
6497
|
- tracks/python/exercises/perfect-numbers/perfect_numbers_test.py
|
6453
6498
|
- tracks/python/exercises/phone-number/example.py
|
6499
|
+
- tracks/python/exercises/phone-number/phone_number.py
|
6454
6500
|
- tracks/python/exercises/phone-number/phone_number_test.py
|
6455
6501
|
- tracks/python/exercises/pig-latin/example.py
|
6502
|
+
- tracks/python/exercises/pig-latin/pig_latin.py
|
6456
6503
|
- tracks/python/exercises/pig-latin/pig_latin_test.py
|
6457
6504
|
- tracks/python/exercises/point-mutations/example.py
|
6505
|
+
- tracks/python/exercises/point-mutations/point_mutations.py
|
6458
6506
|
- tracks/python/exercises/point-mutations/point_mutations_test.py
|
6459
6507
|
- tracks/python/exercises/poker/example.py
|
6508
|
+
- tracks/python/exercises/poker/poker.py
|
6460
6509
|
- tracks/python/exercises/poker/poker_test.py
|
6461
6510
|
- tracks/python/exercises/prime-factors/example.py
|
6511
|
+
- tracks/python/exercises/prime-factors/prime_factors.py
|
6462
6512
|
- tracks/python/exercises/prime-factors/prime_factors_test.py
|
6463
6513
|
- tracks/python/exercises/proverb/example.py
|
6514
|
+
- tracks/python/exercises/proverb/proverb.py
|
6464
6515
|
- tracks/python/exercises/proverb/proverb_test.py
|
6465
6516
|
- tracks/python/exercises/pythagorean-triplet/example.py
|
6517
|
+
- tracks/python/exercises/pythagorean-triplet/pythagorean_triplet.py
|
6466
6518
|
- tracks/python/exercises/pythagorean-triplet/pythagorean_triplet_test.py
|
6467
6519
|
- tracks/python/exercises/queen-attack/example.py
|
6520
|
+
- tracks/python/exercises/queen-attack/queen_attack.py
|
6468
6521
|
- tracks/python/exercises/queen-attack/queen_attack_test.py
|
6469
6522
|
- tracks/python/exercises/rail-fence-cipher/example.py
|
6523
|
+
- tracks/python/exercises/rail-fence-cipher/rail_fence_cipher.py
|
6470
6524
|
- tracks/python/exercises/rail-fence-cipher/rail_fence_cipher_test.py
|
6471
6525
|
- tracks/python/exercises/raindrops/example.py
|
6526
|
+
- tracks/python/exercises/raindrops/raindrops.py
|
6472
6527
|
- tracks/python/exercises/raindrops/raindrops_test.py
|
6473
6528
|
- tracks/python/exercises/rectangles/example.py
|
6474
|
-
- tracks/python/exercises/rectangles/
|
6529
|
+
- tracks/python/exercises/rectangles/rectangles.py
|
6530
|
+
- tracks/python/exercises/rectangles/rectangles_test.py
|
6475
6531
|
- tracks/python/exercises/rna-transcription/example.py
|
6532
|
+
- tracks/python/exercises/rna-transcription/rna_transcription.py
|
6476
6533
|
- tracks/python/exercises/rna-transcription/rna_transcription_test.py
|
6477
6534
|
- tracks/python/exercises/robot-name/example.py
|
6535
|
+
- tracks/python/exercises/robot-name/robot_name.py
|
6478
6536
|
- tracks/python/exercises/robot-name/robot_name_test.py
|
6479
6537
|
- tracks/python/exercises/robot-simulator/example.py
|
6538
|
+
- tracks/python/exercises/robot-simulator/robot_simulator.py
|
6480
6539
|
- tracks/python/exercises/robot-simulator/robot_simulator_test.py
|
6481
6540
|
- tracks/python/exercises/roman-numerals/example.py
|
6541
|
+
- tracks/python/exercises/roman-numerals/roman_numerals.py
|
6482
6542
|
- tracks/python/exercises/roman-numerals/roman_numerals_test.py
|
6483
6543
|
- tracks/python/exercises/run-length-encoding/example.py
|
6484
|
-
- tracks/python/exercises/run-length-encoding/
|
6544
|
+
- tracks/python/exercises/run-length-encoding/run_length_encoding.py
|
6545
|
+
- tracks/python/exercises/run-length-encoding/run_length_encoding_test.py
|
6485
6546
|
- tracks/python/exercises/saddle-points/example.py
|
6547
|
+
- tracks/python/exercises/saddle-points/saddle_points.py
|
6486
6548
|
- tracks/python/exercises/saddle-points/saddle_points_test.py
|
6487
6549
|
- tracks/python/exercises/say/example.py
|
6550
|
+
- tracks/python/exercises/say/say.py
|
6488
6551
|
- tracks/python/exercises/say/say_test.py
|
6489
6552
|
- tracks/python/exercises/scrabble-score/example.py
|
6553
|
+
- tracks/python/exercises/scrabble-score/scrabble_score.py
|
6490
6554
|
- tracks/python/exercises/scrabble-score/scrabble_score_test.py
|
6491
6555
|
- tracks/python/exercises/secret-handshake/example.py
|
6492
|
-
- tracks/python/exercises/secret-handshake/
|
6556
|
+
- tracks/python/exercises/secret-handshake/secret_handshake.py
|
6557
|
+
- tracks/python/exercises/secret-handshake/secret_handshake_test.py
|
6493
6558
|
- tracks/python/exercises/series/example.py
|
6559
|
+
- tracks/python/exercises/series/series.py
|
6494
6560
|
- tracks/python/exercises/series/series_test.py
|
6495
6561
|
- tracks/python/exercises/sieve/example.py
|
6562
|
+
- tracks/python/exercises/sieve/sieve.py
|
6496
6563
|
- tracks/python/exercises/sieve/sieve_test.py
|
6497
6564
|
- tracks/python/exercises/simple-cipher/example.py
|
6565
|
+
- tracks/python/exercises/simple-cipher/simple_cipher.py
|
6498
6566
|
- tracks/python/exercises/simple-cipher/simple_cipher_test.py
|
6499
6567
|
- tracks/python/exercises/space-age/example.py
|
6568
|
+
- tracks/python/exercises/space-age/space_age.py
|
6500
6569
|
- tracks/python/exercises/space-age/space_age_test.py
|
6501
6570
|
- tracks/python/exercises/strain/example.py
|
6571
|
+
- tracks/python/exercises/strain/strain.py
|
6502
6572
|
- tracks/python/exercises/strain/strain_test.py
|
6503
6573
|
- tracks/python/exercises/sublist/example.py
|
6574
|
+
- tracks/python/exercises/sublist/sublist.py
|
6504
6575
|
- tracks/python/exercises/sublist/sublist_test.py
|
6505
6576
|
- tracks/python/exercises/sum-of-multiples/example.py
|
6577
|
+
- tracks/python/exercises/sum-of-multiples/sum_of_multiples.py
|
6506
6578
|
- tracks/python/exercises/sum-of-multiples/sum_of_multiples_test.py
|
6507
6579
|
- tracks/python/exercises/triangle/example.py
|
6580
|
+
- tracks/python/exercises/triangle/triangle.py
|
6508
6581
|
- tracks/python/exercises/triangle/triangle_test.py
|
6509
6582
|
- tracks/python/exercises/trinary/example.py
|
6583
|
+
- tracks/python/exercises/trinary/trinary.py
|
6510
6584
|
- tracks/python/exercises/trinary/trinary_test.py
|
6511
6585
|
- tracks/python/exercises/twelve-days/example.py
|
6586
|
+
- tracks/python/exercises/twelve-days/twelve_days.py
|
6512
6587
|
- tracks/python/exercises/twelve-days/twelve_days_test.py
|
6513
6588
|
- tracks/python/exercises/word-count/example.py
|
6589
|
+
- tracks/python/exercises/word-count/word_count.py
|
6514
6590
|
- tracks/python/exercises/word-count/word_count_test.py
|
6515
6591
|
- tracks/python/exercises/word-search/example.py
|
6516
6592
|
- tracks/python/exercises/word-search/word_search.py
|
6517
6593
|
- tracks/python/exercises/word-search/word_search_test.py
|
6518
6594
|
- tracks/python/exercises/wordy/example.py
|
6595
|
+
- tracks/python/exercises/wordy/wordy.py
|
6519
6596
|
- tracks/python/exercises/wordy/wordy_test.py
|
6520
6597
|
- tracks/python/exercises/zebra-puzzle/example.py
|
6598
|
+
- tracks/python/exercises/zebra-puzzle/zebra_puzzle.py
|
6521
6599
|
- tracks/python/exercises/zebra-puzzle/zebra_puzzle_test.py
|
6522
6600
|
- tracks/python/img/icon.png
|
6523
6601
|
- tracks/python/requirements-travis.txt
|
@@ -6707,8 +6785,10 @@ files:
|
|
6707
6785
|
- tracks/ruby/exercises/anagram/example.tt
|
6708
6786
|
- tracks/ruby/exercises/atbash-cipher/atbash_cipher_test.rb
|
6709
6787
|
- tracks/ruby/exercises/atbash-cipher/example.rb
|
6788
|
+
- tracks/ruby/exercises/beer-song/.meta/.version
|
6710
6789
|
- tracks/ruby/exercises/beer-song/beer_song_test.rb
|
6711
6790
|
- tracks/ruby/exercises/beer-song/example.rb
|
6791
|
+
- tracks/ruby/exercises/beer-song/example.tt
|
6712
6792
|
- tracks/ruby/exercises/binary-search-tree/binary_search_tree_test.rb
|
6713
6793
|
- tracks/ruby/exercises/binary-search-tree/example.rb
|
6714
6794
|
- tracks/ruby/exercises/binary-search/binary_search_test.rb
|
@@ -6934,6 +7014,7 @@ files:
|
|
6934
7014
|
- tracks/ruby/lib/all_your_base_cases.rb
|
6935
7015
|
- tracks/ruby/lib/alphametics_cases.rb
|
6936
7016
|
- tracks/ruby/lib/anagram_cases.rb
|
7017
|
+
- tracks/ruby/lib/beer_song_cases.rb
|
6937
7018
|
- tracks/ruby/lib/binary_cases.rb
|
6938
7019
|
- tracks/ruby/lib/bookkeeping.md
|
6939
7020
|
- tracks/ruby/lib/bowling_cases.rb
|