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/common/package.json
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
{
|
2
|
+
"name": "x-common",
|
3
|
+
"version": "1.0.0",
|
4
|
+
"description": "Shared metadata for exercism exercises.",
|
5
|
+
"main": "index.js",
|
6
|
+
"repository": "git@github.com:exercism/x-common.git",
|
7
|
+
"author": "Tejas Bubane <tejasbubane@gmail.com>",
|
8
|
+
"license": "MIT",
|
9
|
+
"dependencies": {
|
10
|
+
"ajv-cli": "^1.1.1"
|
11
|
+
},
|
12
|
+
"scripts": {
|
13
|
+
"test": "ajv -s canonical-schema.json -d \"exercises/*/canonical-data.json\"",
|
14
|
+
"test-one": "ajv -s canonical-schema.json -d"
|
15
|
+
}
|
16
|
+
}
|
data/common/yarn.lock
ADDED
@@ -0,0 +1,195 @@
|
|
1
|
+
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
2
|
+
# yarn lockfile v1
|
3
|
+
|
4
|
+
|
5
|
+
abbrev@1:
|
6
|
+
version "1.1.0"
|
7
|
+
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f"
|
8
|
+
|
9
|
+
ajv-cli@^1.1.1:
|
10
|
+
version "1.1.1"
|
11
|
+
resolved "https://registry.yarnpkg.com/ajv-cli/-/ajv-cli-1.1.1.tgz#08ba8006413e888973cfac650c3a95acc2e7c6be"
|
12
|
+
dependencies:
|
13
|
+
ajv "^4.7.4"
|
14
|
+
ajv-pack "^0.2.3"
|
15
|
+
fast-json-patch "^0.5.6"
|
16
|
+
glob "^7.0.3"
|
17
|
+
minimist "^1.2.0"
|
18
|
+
|
19
|
+
ajv-pack@^0.2.3:
|
20
|
+
version "0.2.7"
|
21
|
+
resolved "https://registry.yarnpkg.com/ajv-pack/-/ajv-pack-0.2.7.tgz#bdd340f1c6799108d7aac12975a000c6e2a362c8"
|
22
|
+
dependencies:
|
23
|
+
js-beautify "^1.6.4"
|
24
|
+
require-from-string "^1.2.0"
|
25
|
+
|
26
|
+
ajv@^4.7.4:
|
27
|
+
version "4.11.4"
|
28
|
+
resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.4.tgz#ebf3a55d4b132ea60ff5847ae85d2ef069960b45"
|
29
|
+
dependencies:
|
30
|
+
co "^4.6.0"
|
31
|
+
json-stable-stringify "^1.0.1"
|
32
|
+
|
33
|
+
balanced-match@^0.4.1:
|
34
|
+
version "0.4.2"
|
35
|
+
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838"
|
36
|
+
|
37
|
+
bluebird@^3.0.5:
|
38
|
+
version "3.5.0"
|
39
|
+
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c"
|
40
|
+
|
41
|
+
brace-expansion@^1.0.0:
|
42
|
+
version "1.1.6"
|
43
|
+
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9"
|
44
|
+
dependencies:
|
45
|
+
balanced-match "^0.4.1"
|
46
|
+
concat-map "0.0.1"
|
47
|
+
|
48
|
+
co@^4.6.0:
|
49
|
+
version "4.6.0"
|
50
|
+
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
|
51
|
+
|
52
|
+
commander@^2.9.0:
|
53
|
+
version "2.9.0"
|
54
|
+
resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
|
55
|
+
dependencies:
|
56
|
+
graceful-readlink ">= 1.0.0"
|
57
|
+
|
58
|
+
concat-map@0.0.1:
|
59
|
+
version "0.0.1"
|
60
|
+
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
|
61
|
+
|
62
|
+
config-chain@~1.1.5:
|
63
|
+
version "1.1.11"
|
64
|
+
resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.11.tgz#aba09747dfbe4c3e70e766a6e41586e1859fc6f2"
|
65
|
+
dependencies:
|
66
|
+
ini "^1.3.4"
|
67
|
+
proto-list "~1.2.1"
|
68
|
+
|
69
|
+
editorconfig@^0.13.2:
|
70
|
+
version "0.13.2"
|
71
|
+
resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.13.2.tgz#8e57926d9ee69ab6cb999f027c2171467acceb35"
|
72
|
+
dependencies:
|
73
|
+
bluebird "^3.0.5"
|
74
|
+
commander "^2.9.0"
|
75
|
+
lru-cache "^3.2.0"
|
76
|
+
sigmund "^1.0.1"
|
77
|
+
|
78
|
+
fast-json-patch@^0.5.6:
|
79
|
+
version "0.5.7"
|
80
|
+
resolved "https://registry.yarnpkg.com/fast-json-patch/-/fast-json-patch-0.5.7.tgz#b5a8f49d259624596ef98b872f3fda895b4d8665"
|
81
|
+
|
82
|
+
fs.realpath@^1.0.0:
|
83
|
+
version "1.0.0"
|
84
|
+
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
|
85
|
+
|
86
|
+
glob@^7.0.3:
|
87
|
+
version "7.1.1"
|
88
|
+
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8"
|
89
|
+
dependencies:
|
90
|
+
fs.realpath "^1.0.0"
|
91
|
+
inflight "^1.0.4"
|
92
|
+
inherits "2"
|
93
|
+
minimatch "^3.0.2"
|
94
|
+
once "^1.3.0"
|
95
|
+
path-is-absolute "^1.0.0"
|
96
|
+
|
97
|
+
"graceful-readlink@>= 1.0.0":
|
98
|
+
version "1.0.1"
|
99
|
+
resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
|
100
|
+
|
101
|
+
inflight@^1.0.4:
|
102
|
+
version "1.0.6"
|
103
|
+
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
|
104
|
+
dependencies:
|
105
|
+
once "^1.3.0"
|
106
|
+
wrappy "1"
|
107
|
+
|
108
|
+
inherits@2:
|
109
|
+
version "2.0.3"
|
110
|
+
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
|
111
|
+
|
112
|
+
ini@^1.3.4:
|
113
|
+
version "1.3.4"
|
114
|
+
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e"
|
115
|
+
|
116
|
+
js-beautify@^1.6.4:
|
117
|
+
version "1.6.11"
|
118
|
+
resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.6.11.tgz#538a22867e669250935bcdc7b90a8cd6386ddab6"
|
119
|
+
dependencies:
|
120
|
+
config-chain "~1.1.5"
|
121
|
+
editorconfig "^0.13.2"
|
122
|
+
mkdirp "~0.5.0"
|
123
|
+
nopt "~3.0.1"
|
124
|
+
|
125
|
+
json-stable-stringify@^1.0.1:
|
126
|
+
version "1.0.1"
|
127
|
+
resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
|
128
|
+
dependencies:
|
129
|
+
jsonify "~0.0.0"
|
130
|
+
|
131
|
+
jsonify@~0.0.0:
|
132
|
+
version "0.0.0"
|
133
|
+
resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
|
134
|
+
|
135
|
+
lru-cache@^3.2.0:
|
136
|
+
version "3.2.0"
|
137
|
+
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-3.2.0.tgz#71789b3b7f5399bec8565dda38aa30d2a097efee"
|
138
|
+
dependencies:
|
139
|
+
pseudomap "^1.0.1"
|
140
|
+
|
141
|
+
minimatch@^3.0.2:
|
142
|
+
version "3.0.3"
|
143
|
+
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774"
|
144
|
+
dependencies:
|
145
|
+
brace-expansion "^1.0.0"
|
146
|
+
|
147
|
+
minimist@0.0.8:
|
148
|
+
version "0.0.8"
|
149
|
+
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
|
150
|
+
|
151
|
+
minimist@^1.2.0:
|
152
|
+
version "1.2.0"
|
153
|
+
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
|
154
|
+
|
155
|
+
mkdirp@~0.5.0:
|
156
|
+
version "0.5.1"
|
157
|
+
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
|
158
|
+
dependencies:
|
159
|
+
minimist "0.0.8"
|
160
|
+
|
161
|
+
nopt@~3.0.1:
|
162
|
+
version "3.0.6"
|
163
|
+
resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
|
164
|
+
dependencies:
|
165
|
+
abbrev "1"
|
166
|
+
|
167
|
+
once@^1.3.0:
|
168
|
+
version "1.4.0"
|
169
|
+
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
|
170
|
+
dependencies:
|
171
|
+
wrappy "1"
|
172
|
+
|
173
|
+
path-is-absolute@^1.0.0:
|
174
|
+
version "1.0.1"
|
175
|
+
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
|
176
|
+
|
177
|
+
proto-list@~1.2.1:
|
178
|
+
version "1.2.4"
|
179
|
+
resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849"
|
180
|
+
|
181
|
+
pseudomap@^1.0.1:
|
182
|
+
version "1.0.2"
|
183
|
+
resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
|
184
|
+
|
185
|
+
require-from-string@^1.2.0:
|
186
|
+
version "1.2.1"
|
187
|
+
resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418"
|
188
|
+
|
189
|
+
sigmund@^1.0.1:
|
190
|
+
version "1.0.1"
|
191
|
+
resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590"
|
192
|
+
|
193
|
+
wrappy@1:
|
194
|
+
version "1.0.2"
|
195
|
+
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
|
data/lib/trackler/version.rb
CHANGED
data/tracks/c/docs/LEARNING.md
CHANGED
@@ -28,7 +28,7 @@ written for you. You progress through the exercise one test at a time,
|
|
28
28
|
writing an implementation incrementally to satisfy the tests.
|
29
29
|
|
30
30
|
If you are new to test-driven development, it is strongly recommended
|
31
|
-
that you first work through a [quick overview of some test frameworks for C](http://www.drdobbs.com/testing/unit-testing-in-c-tools-and-conventions/240156344
|
31
|
+
that you first work through a [quick overview of some test frameworks for C](http://www.drdobbs.com/testing/unit-testing-in-c-tools-and-conventions/240156344)
|
32
32
|
or read the book [Test-Driven Development for Embedded C](https://pragprog.com/book/jgade/test-driven-development-for-embedded-c)
|
33
33
|
by James Grenning. These resources cover [Unity](http://www.throwtheswitch.org/unity/)
|
34
34
|
and [CppUTest](http://cpputest.github.io/); this track uses Unity.
|
@@ -1,53 +1,21 @@
|
|
1
1
|
#include "space_age.h"
|
2
2
|
|
3
3
|
/* Number of seconds in a Earth year */
|
4
|
-
#define
|
4
|
+
#define EARTH 31557600
|
5
5
|
|
6
6
|
/* Orbital period of each planet, in Earth years */
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
{
|
22
|
-
return input / MERCURY_YEAR;
|
23
|
-
}
|
24
|
-
|
25
|
-
float convert_venus_age(const long input)
|
26
|
-
{
|
27
|
-
return input / VENUS_YEAR;
|
28
|
-
}
|
29
|
-
|
30
|
-
float convert_mars_age(const long input)
|
31
|
-
{
|
32
|
-
return input / MARS_YEAR;
|
33
|
-
}
|
34
|
-
|
35
|
-
float convert_jupiter_age(const long input)
|
36
|
-
{
|
37
|
-
return input / JUPITER_YEAR;
|
38
|
-
}
|
39
|
-
|
40
|
-
float convert_saturn_age(const long input)
|
41
|
-
{
|
42
|
-
return input / SATURN_YEAR;
|
43
|
-
}
|
44
|
-
|
45
|
-
float convert_uranus_age(const long input)
|
46
|
-
{
|
47
|
-
return input / URANUS_YEAR;
|
48
|
-
}
|
49
|
-
|
50
|
-
float convert_neptune_age(const long input)
|
51
|
-
{
|
52
|
-
return input / NEPTUNE_YEAR;
|
7
|
+
static const float factors[8] = {
|
8
|
+
EARTH * 0.2408467, // Mercury
|
9
|
+
EARTH * 0.61519726, // Venus
|
10
|
+
EARTH * 1, // Earth
|
11
|
+
EARTH * 1.8808158, // Mars
|
12
|
+
EARTH * 11.862615, // Jupiter
|
13
|
+
EARTH * 29.447498, // Saturn
|
14
|
+
EARTH * 84.016846, // Uranus
|
15
|
+
EARTH * 164.79132 // Neptune
|
16
|
+
};
|
17
|
+
|
18
|
+
float convert_planet_age(Planets planet, const long input)
|
19
|
+
{
|
20
|
+
return input / factors[planet];
|
53
21
|
}
|
@@ -1,13 +1,17 @@
|
|
1
1
|
#ifndef SPACE_AGE_H
|
2
2
|
#define SPACE_AGE_H
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
4
|
+
typedef enum planets {
|
5
|
+
mercury,
|
6
|
+
venus,
|
7
|
+
earth,
|
8
|
+
mars,
|
9
|
+
jupiter,
|
10
|
+
saturn,
|
11
|
+
uranus,
|
12
|
+
neptune,
|
13
|
+
} Planets;
|
14
|
+
|
15
|
+
float convert_planet_age(Planets planet, const long input);
|
12
16
|
|
13
17
|
#endif
|
@@ -3,42 +3,42 @@
|
|
3
3
|
|
4
4
|
void test_convert_earth_year(void)
|
5
5
|
{
|
6
|
-
TEST_ASSERT_FLOAT_WITHIN(1, 31.69,
|
6
|
+
TEST_ASSERT_FLOAT_WITHIN(1, 31.69, convert_planet_age(earth, 1000000000));
|
7
7
|
}
|
8
8
|
|
9
9
|
void test_convert_mercury_year(void)
|
10
10
|
{
|
11
|
-
TEST_ASSERT_FLOAT_WITHIN(3, 280.88,
|
11
|
+
TEST_ASSERT_FLOAT_WITHIN(3, 280.88, convert_planet_age(mercury, 2134835688));
|
12
12
|
}
|
13
13
|
|
14
14
|
void test_convert_venus_year(void)
|
15
15
|
{
|
16
|
-
TEST_ASSERT_FLOAT_WITHIN(1, 9.78,
|
16
|
+
TEST_ASSERT_FLOAT_WITHIN(1, 9.78, convert_planet_age(venus, 189839836));
|
17
17
|
}
|
18
18
|
|
19
19
|
void test_convert_mars_year(void)
|
20
20
|
{
|
21
|
-
TEST_ASSERT_FLOAT_WITHIN(1, 39.25,
|
21
|
+
TEST_ASSERT_FLOAT_WITHIN(1, 39.25, convert_planet_age(mars, 2329871239));
|
22
22
|
}
|
23
23
|
|
24
24
|
void test_convert_jupiter_year(void)
|
25
25
|
{
|
26
|
-
TEST_ASSERT_FLOAT_WITHIN(0.1, 2.41,
|
26
|
+
TEST_ASSERT_FLOAT_WITHIN(0.1, 2.41, convert_planet_age(jupiter, 901876382));
|
27
27
|
}
|
28
28
|
|
29
29
|
void test_convert_saturn_year(void)
|
30
30
|
{
|
31
|
-
TEST_ASSERT_FLOAT_WITHIN(0.1, 3.23,
|
31
|
+
TEST_ASSERT_FLOAT_WITHIN(0.1, 3.23, convert_planet_age(saturn, 3000000000));
|
32
32
|
}
|
33
33
|
|
34
34
|
void test_convert_uranus_year(void)
|
35
35
|
{
|
36
|
-
TEST_ASSERT_FLOAT_WITHIN(0.1, 1.21,
|
36
|
+
TEST_ASSERT_FLOAT_WITHIN(0.1, 1.21, convert_planet_age(uranus, 3210123456));
|
37
37
|
}
|
38
38
|
|
39
39
|
void test_convert_neptune_year(void)
|
40
40
|
{
|
41
|
-
TEST_ASSERT_FLOAT_WITHIN(0.1, 1.58,
|
41
|
+
TEST_ASSERT_FLOAT_WITHIN(0.1, 1.58, convert_planet_age(neptune, 8210123456));
|
42
42
|
}
|
43
43
|
|
44
44
|
int main(void)
|
data/tracks/ceylon/docs/TESTS.md
CHANGED
@@ -1,11 +1,14 @@
|
|
1
1
|
## Running Ceylon Tests
|
2
2
|
|
3
|
-
|
3
|
+
Before tests can be run, your code must be compiled via [`ceylon compile`](https://ceylon-lang.org/documentation/current/reference/tool/ceylon/subcommands/ceylon-compile.html).
|
4
|
+
|
5
|
+
We run tests with the [`ceylon test`](https://ceylon-lang.org/documentation/reference/tool/ceylon/subcommands/ceylon-test.html) command.
|
4
6
|
|
5
7
|
`ceylon test` expects a module name to run the tests on.
|
6
8
|
In the Ceylon track, each exercise has just a single module.
|
9
|
+
|
7
10
|
Therefore, you can run the tests with:
|
8
11
|
|
9
12
|
```bash
|
10
|
-
ceylon test $(basename source/*)
|
13
|
+
ceylon compile && ceylon test $(basename source/*)
|
11
14
|
```
|
@@ -1,11 +1,14 @@
|
|
1
1
|
## Running Ceylon Tests
|
2
2
|
|
3
|
-
|
3
|
+
Before tests can be run, your code must be compiled via [`ceylon compile`](https://ceylon-lang.org/documentation/current/reference/tool/ceylon/subcommands/ceylon-compile.html).
|
4
|
+
|
5
|
+
We run tests with the [`ceylon test`](https://ceylon-lang.org/documentation/reference/tool/ceylon/subcommands/ceylon-test.html) command.
|
4
6
|
|
5
7
|
`ceylon test` expects a module name to run the tests on.
|
6
8
|
In the Ceylon track, each exercise has just a single module.
|
9
|
+
|
7
10
|
Therefore, you can run the tests with:
|
8
11
|
|
9
12
|
```bash
|
10
|
-
ceylon test $(basename source/*)
|
13
|
+
ceylon compile && ceylon test $(basename source/*)
|
11
14
|
```
|
data/tracks/csharp/.gitignore
CHANGED
data/tracks/csharp/.travis.yml
CHANGED
@@ -3,31 +3,20 @@ sudo: required
|
|
3
3
|
dist: trusty
|
4
4
|
addons:
|
5
5
|
apt:
|
6
|
-
sources:
|
6
|
+
sources:
|
7
|
+
- sourceline: 'deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ trusty main'
|
8
|
+
key_url: 'https://apt-mo.trafficmanager.net/keys/microsoft.asc'
|
7
9
|
packages:
|
8
|
-
-
|
9
|
-
- libcurl4-openssl-dev
|
10
|
-
- libicu-dev
|
11
|
-
- libssl-dev
|
12
|
-
- libunwind8
|
13
|
-
- zlib1g
|
14
|
-
- libstdc++6
|
15
|
-
env:
|
16
|
-
global:
|
17
|
-
- DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
|
18
|
-
- DOTNET_CLI_TELEMETRY_OPTOUT: 1
|
10
|
+
- dotnet-dev-1.0.1
|
19
11
|
mono:
|
20
12
|
- 4.0.5
|
21
13
|
os:
|
22
14
|
- linux
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
- sudo tar zxf /tmp/dotnet.tar.gz -C /opt/dotnet
|
28
|
-
- sudo ln -s /opt/dotnet/dotnet /usr/local/bin
|
29
|
-
|
15
|
+
env:
|
16
|
+
global:
|
17
|
+
- DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
|
18
|
+
- DOTNET_CLI_TELEMETRY_OPTOUT: 1
|
30
19
|
script:
|
31
20
|
- ./bin/fetch-configlet
|
32
21
|
- ./bin/configlet .
|
33
|
-
- ./build.sh
|
22
|
+
- ./build.sh
|