trackler 2.2.1.57 → 2.2.1.58
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/trackler/version.rb +1 -1
- data/problem-specifications/exercises/custom-set/canonical-data.json +8 -1
- data/tracks/c/README.md +2 -44
- data/tracks/c/docs/CONTRIBUTING.md +93 -0
- data/tracks/c/docs/C_STYLE_GUIDE.md +1 -1
- data/tracks/clojure/config.json +27 -0
- data/tracks/clojure/exercises/accumulate/project.clj +1 -1
- data/tracks/clojure/exercises/acronym/project.clj +1 -1
- data/tracks/clojure/exercises/all-your-base/project.clj +1 -1
- data/tracks/clojure/exercises/allergies/project.clj +1 -1
- data/tracks/clojure/exercises/anagram/project.clj +1 -1
- data/tracks/clojure/exercises/atbash-cipher/project.clj +1 -1
- data/tracks/clojure/exercises/bank-account/project.clj +1 -1
- data/tracks/clojure/exercises/beer-song/project.clj +1 -1
- data/tracks/clojure/exercises/binary/project.clj +1 -1
- data/tracks/clojure/exercises/binary-search/project.clj +1 -1
- data/tracks/clojure/exercises/binary-search-tree/project.clj +1 -1
- data/tracks/clojure/exercises/bob/project.clj +1 -1
- data/tracks/clojure/exercises/bracket-push/project.clj +1 -1
- data/tracks/clojure/exercises/change/project.clj +1 -1
- data/tracks/clojure/exercises/clock/project.clj +1 -1
- data/tracks/clojure/exercises/collatz-conjecture/project.clj +1 -1
- data/tracks/clojure/exercises/complex-numbers/project.clj +1 -1
- data/tracks/clojure/exercises/crypto-square/project.clj +1 -1
- data/tracks/clojure/exercises/diamond/README.md +51 -0
- data/tracks/clojure/exercises/diamond/project.clj +4 -0
- data/tracks/clojure/exercises/diamond/src/example.clj +22 -0
- data/tracks/clojure/exercises/diamond/test/diamond_test.clj +79 -0
- data/tracks/clojure/exercises/difference-of-squares/project.clj +1 -1
- data/tracks/clojure/exercises/etl/project.clj +1 -1
- data/tracks/clojure/exercises/flatten-array/project.clj +1 -1
- data/tracks/clojure/exercises/gigasecond/project.clj +1 -1
- data/tracks/clojure/exercises/grade-school/project.clj +1 -1
- data/tracks/clojure/exercises/grains/project.clj +1 -1
- data/tracks/clojure/exercises/hamming/project.clj +1 -1
- data/tracks/clojure/exercises/hello-world/project.clj +1 -1
- data/tracks/clojure/exercises/hexadecimal/project.clj +1 -1
- data/tracks/clojure/exercises/isogram/project.clj +1 -1
- data/tracks/clojure/exercises/kindergarten-garden/project.clj +1 -1
- data/tracks/clojure/exercises/largest-series-product/project.clj +1 -1
- data/tracks/clojure/exercises/leap/project.clj +1 -1
- data/tracks/clojure/exercises/luhn/project.clj +1 -1
- data/tracks/clojure/exercises/meetup/project.clj +1 -1
- data/tracks/clojure/exercises/minesweeper/project.clj +1 -1
- data/tracks/clojure/exercises/nth-prime/project.clj +1 -1
- data/tracks/clojure/exercises/nucleotide-count/project.clj +1 -1
- data/tracks/clojure/exercises/octal/project.clj +1 -1
- data/tracks/clojure/exercises/pascals-triangle/project.clj +1 -1
- data/tracks/clojure/exercises/perfect-numbers/project.clj +1 -1
- data/tracks/clojure/exercises/phone-number/project.clj +1 -1
- data/tracks/clojure/exercises/pig-latin/project.clj +1 -1
- data/tracks/clojure/exercises/prime-factors/project.clj +1 -1
- data/tracks/clojure/exercises/protein-translation/README.md +40 -0
- data/tracks/clojure/exercises/protein-translation/project.clj +4 -0
- data/tracks/clojure/exercises/protein-translation/src/example.clj +19 -0
- data/tracks/clojure/exercises/protein-translation/test/protein_translation_test.clj +36 -0
- data/tracks/clojure/exercises/queen-attack/project.clj +1 -1
- data/tracks/clojure/exercises/raindrops/project.clj +1 -1
- data/tracks/clojure/exercises/rna-transcription/project.clj +1 -1
- data/tracks/clojure/exercises/robot-name/project.clj +1 -1
- data/tracks/clojure/exercises/robot-simulator/project.clj +1 -1
- data/tracks/clojure/exercises/roman-numerals/project.clj +1 -1
- data/tracks/clojure/exercises/rotational-cipher/project.clj +1 -1
- data/tracks/clojure/exercises/run-length-encoding/README.md +36 -0
- data/tracks/clojure/exercises/run-length-encoding/project.clj +4 -0
- data/tracks/clojure/exercises/run-length-encoding/src/example.clj +20 -0
- data/tracks/clojure/exercises/run-length-encoding/src/run_length_encoding.clj +11 -0
- data/tracks/clojure/exercises/run-length-encoding/test/run_length_encoding_test.clj +57 -0
- data/tracks/clojure/exercises/scrabble-score/project.clj +1 -1
- data/tracks/clojure/exercises/secret-handshake/project.clj +1 -1
- data/tracks/clojure/exercises/series/project.clj +1 -1
- data/tracks/clojure/exercises/sieve/project.clj +1 -1
- data/tracks/clojure/exercises/space-age/project.clj +1 -1
- data/tracks/clojure/exercises/spiral-matrix/project.clj +1 -1
- data/tracks/clojure/exercises/strain/project.clj +1 -1
- data/tracks/clojure/exercises/sublist/project.clj +1 -1
- data/tracks/clojure/exercises/sum-of-multiples/project.clj +1 -1
- data/tracks/clojure/exercises/triangle/project.clj +1 -1
- data/tracks/clojure/exercises/trinary/project.clj +1 -1
- data/tracks/clojure/exercises/word-count/project.clj +1 -1
- data/tracks/clojure/exercises/wordy/project.clj +1 -1
- data/tracks/clojure/project.clj +2 -2
- data/tracks/ecmascript/config.json +10 -15
- data/tracks/ecmascript/docs/TESTS.md +15 -0
- data/tracks/ecmascript/exercises/complex-numbers/README.md +68 -0
- data/tracks/ecmascript/exercises/complex-numbers/complex-numbers.spec.js +216 -0
- data/tracks/ecmascript/exercises/complex-numbers/example.js +43 -0
- data/tracks/ecmascript/exercises/{transpose → complex-numbers}/package.json +2 -2
- data/tracks/elixir/config.json +22 -1
- data/tracks/elixir/exercises/isbn-verifier/README.md +80 -0
- data/tracks/elixir/exercises/isbn-verifier/example.exs +36 -0
- data/tracks/elixir/exercises/isbn-verifier/isbn_verifier.exs +18 -0
- data/tracks/elixir/exercises/isbn-verifier/isbn_verifier_test.exs +75 -0
- data/tracks/elixir/exercises/spiral-matrix/README.md +65 -0
- data/tracks/elixir/exercises/spiral-matrix/example.exs +27 -0
- data/tracks/elixir/exercises/spiral-matrix/spiral.exs +9 -0
- data/tracks/elixir/exercises/spiral-matrix/spiral_test.exs +58 -0
- data/tracks/erlang/config.json +10 -0
- data/tracks/erlang/exercises/complex-numbers/HINTS.md +2 -0
- data/tracks/erlang/exercises/complex-numbers/README.md +85 -0
- data/tracks/erlang/exercises/complex-numbers/include/exercism.hrl +11 -0
- data/tracks/erlang/exercises/complex-numbers/rebar.config +30 -0
- data/tracks/erlang/exercises/complex-numbers/src/complex_numbers.app.src +9 -0
- data/tracks/erlang/exercises/complex-numbers/src/complex_numbers.erl +29 -0
- data/tracks/erlang/exercises/complex-numbers/src/example.erl +44 -0
- data/tracks/erlang/exercises/complex-numbers/test/complex_numbers_tests.erl +152 -0
- data/tracks/erlang/testgen/src/tgen.erl +1 -1
- data/tracks/erlang/testgen/src/tgen_complex-numbers.erl +75 -0
- data/tracks/java/config.json +10 -5
- data/tracks/javascript/config.json +13 -0
- data/tracks/javascript/exercises/isbn-verifier/README.md +66 -0
- data/tracks/javascript/exercises/isbn-verifier/example.js +24 -0
- data/tracks/javascript/exercises/isbn-verifier/isbn-verifier.spec.js +68 -0
- data/tracks/perl6/config/maintainers.json +4 -4
- data/tracks/perl6/config.json +21 -21
- data/tracks/php/README.md +1 -0
- data/tracks/python/config/maintainers.json +3 -3
- data/tracks/python/exercises/alphametics/alphametics_test.py +6 -6
- data/tracks/python/exercises/queen-attack/queen_attack_test.py +60 -40
- data/tracks/sml/config.json +13 -2
- data/tracks/sml/exercises/flatten-array/{HINTS.md → .meta/hints.md} +0 -0
- data/tracks/sml/exercises/nth-prime/{HINTS.md → .meta/hints.md} +0 -0
- data/tracks/sml/exercises/pig-latin/README.md +54 -0
- data/tracks/sml/exercises/pig-latin/example.sml +23 -0
- data/tracks/sml/exercises/pig-latin/pig-latin.sml +2 -0
- data/tracks/sml/exercises/pig-latin/test.sml +90 -0
- data/tracks/sml/exercises/pig-latin/testlib.sml +159 -0
- data/tracks/typescript/config.json +16 -0
- data/tracks/typescript/exercises/ocr-numbers/README.md +110 -0
- data/tracks/typescript/exercises/ocr-numbers/ocr-numbers.example.ts +92 -0
- data/tracks/typescript/exercises/ocr-numbers/ocr-numbers.test.ts +155 -0
- data/tracks/typescript/exercises/ocr-numbers/ocr-numbers.ts +3 -0
- data/tracks/typescript/exercises/ocr-numbers/package.json +36 -0
- data/tracks/typescript/exercises/ocr-numbers/tsconfig.json +22 -0
- data/tracks/typescript/exercises/ocr-numbers/tslint.json +127 -0
- data/tracks/typescript/exercises/ocr-numbers/yarn.lock +2624 -0
- metadata +55 -8
- data/tracks/ecmascript/exercises/transpose/README.md +0 -94
- data/tracks/ecmascript/exercises/transpose/example.js +0 -12
- data/tracks/ecmascript/exercises/transpose/transpose.spec.js +0 -67
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.2.1.
|
4
|
+
version: 2.2.1.58
|
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-
|
11
|
+
date: 2017-11-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubyzip
|
@@ -652,6 +652,7 @@ files:
|
|
652
652
|
- tracks/c/config.json
|
653
653
|
- tracks/c/config/exercise_readme.go.tmpl
|
654
654
|
- tracks/c/docs/ABOUT.md
|
655
|
+
- tracks/c/docs/CONTRIBUTING.md
|
655
656
|
- tracks/c/docs/C_STYLE_GUIDE.md
|
656
657
|
- tracks/c/docs/EXERCISE_README_INSERT.md
|
657
658
|
- tracks/c/docs/INSTALLATION.md
|
@@ -1429,6 +1430,10 @@ files:
|
|
1429
1430
|
- tracks/clojure/exercises/crypto-square/project.clj
|
1430
1431
|
- tracks/clojure/exercises/crypto-square/src/example.clj
|
1431
1432
|
- tracks/clojure/exercises/crypto-square/test/crypto_square_test.clj
|
1433
|
+
- tracks/clojure/exercises/diamond/README.md
|
1434
|
+
- tracks/clojure/exercises/diamond/project.clj
|
1435
|
+
- tracks/clojure/exercises/diamond/src/example.clj
|
1436
|
+
- tracks/clojure/exercises/diamond/test/diamond_test.clj
|
1432
1437
|
- tracks/clojure/exercises/difference-of-squares/README.md
|
1433
1438
|
- tracks/clojure/exercises/difference-of-squares/project.clj
|
1434
1439
|
- tracks/clojure/exercises/difference-of-squares/src/example.clj
|
@@ -1537,6 +1542,10 @@ files:
|
|
1537
1542
|
- tracks/clojure/exercises/prime-factors/project.clj
|
1538
1543
|
- tracks/clojure/exercises/prime-factors/src/example.clj
|
1539
1544
|
- tracks/clojure/exercises/prime-factors/test/prime_factors_test.clj
|
1545
|
+
- tracks/clojure/exercises/protein-translation/README.md
|
1546
|
+
- tracks/clojure/exercises/protein-translation/project.clj
|
1547
|
+
- tracks/clojure/exercises/protein-translation/src/example.clj
|
1548
|
+
- tracks/clojure/exercises/protein-translation/test/protein_translation_test.clj
|
1540
1549
|
- tracks/clojure/exercises/queen-attack/README.md
|
1541
1550
|
- tracks/clojure/exercises/queen-attack/project.clj
|
1542
1551
|
- tracks/clojure/exercises/queen-attack/src/example.clj
|
@@ -1566,6 +1575,11 @@ files:
|
|
1566
1575
|
- tracks/clojure/exercises/rotational-cipher/project.clj
|
1567
1576
|
- tracks/clojure/exercises/rotational-cipher/src/example.clj
|
1568
1577
|
- tracks/clojure/exercises/rotational-cipher/test/rotational_cipher_test.clj
|
1578
|
+
- tracks/clojure/exercises/run-length-encoding/README.md
|
1579
|
+
- tracks/clojure/exercises/run-length-encoding/project.clj
|
1580
|
+
- tracks/clojure/exercises/run-length-encoding/src/example.clj
|
1581
|
+
- tracks/clojure/exercises/run-length-encoding/src/run_length_encoding.clj
|
1582
|
+
- tracks/clojure/exercises/run-length-encoding/test/run_length_encoding_test.clj
|
1569
1583
|
- tracks/clojure/exercises/scrabble-score/README.md
|
1570
1584
|
- tracks/clojure/exercises/scrabble-score/project.clj
|
1571
1585
|
- tracks/clojure/exercises/scrabble-score/src/example.clj
|
@@ -3382,6 +3396,10 @@ files:
|
|
3382
3396
|
- tracks/ecmascript/exercises/collatz-conjecture/collatz-conjecture.spec.js
|
3383
3397
|
- tracks/ecmascript/exercises/collatz-conjecture/example.js
|
3384
3398
|
- tracks/ecmascript/exercises/collatz-conjecture/package.json
|
3399
|
+
- tracks/ecmascript/exercises/complex-numbers/README.md
|
3400
|
+
- tracks/ecmascript/exercises/complex-numbers/complex-numbers.spec.js
|
3401
|
+
- tracks/ecmascript/exercises/complex-numbers/example.js
|
3402
|
+
- tracks/ecmascript/exercises/complex-numbers/package.json
|
3385
3403
|
- tracks/ecmascript/exercises/connect/README.md
|
3386
3404
|
- tracks/ecmascript/exercises/connect/connect.spec.js
|
3387
3405
|
- tracks/ecmascript/exercises/connect/example.js
|
@@ -3617,10 +3635,6 @@ files:
|
|
3617
3635
|
- tracks/ecmascript/exercises/sum-of-multiples/example.js
|
3618
3636
|
- tracks/ecmascript/exercises/sum-of-multiples/package.json
|
3619
3637
|
- tracks/ecmascript/exercises/sum-of-multiples/sum-of-multiples.spec.js
|
3620
|
-
- tracks/ecmascript/exercises/transpose/README.md
|
3621
|
-
- tracks/ecmascript/exercises/transpose/example.js
|
3622
|
-
- tracks/ecmascript/exercises/transpose/package.json
|
3623
|
-
- tracks/ecmascript/exercises/transpose/transpose.spec.js
|
3624
3638
|
- tracks/ecmascript/exercises/triangle/README.md
|
3625
3639
|
- tracks/ecmascript/exercises/triangle/example.js
|
3626
3640
|
- tracks/ecmascript/exercises/triangle/package.json
|
@@ -3916,6 +3930,10 @@ files:
|
|
3916
3930
|
- tracks/elixir/exercises/hexadecimal/example.exs
|
3917
3931
|
- tracks/elixir/exercises/hexadecimal/hexadecimal.exs
|
3918
3932
|
- tracks/elixir/exercises/hexadecimal/hexadecimal_test.exs
|
3933
|
+
- tracks/elixir/exercises/isbn-verifier/README.md
|
3934
|
+
- tracks/elixir/exercises/isbn-verifier/example.exs
|
3935
|
+
- tracks/elixir/exercises/isbn-verifier/isbn_verifier.exs
|
3936
|
+
- tracks/elixir/exercises/isbn-verifier/isbn_verifier_test.exs
|
3919
3937
|
- tracks/elixir/exercises/isogram/README.md
|
3920
3938
|
- tracks/elixir/exercises/isogram/example.exs
|
3921
3939
|
- tracks/elixir/exercises/isogram/isogram.exs
|
@@ -4085,6 +4103,10 @@ files:
|
|
4085
4103
|
- tracks/elixir/exercises/space-age/example.exs
|
4086
4104
|
- tracks/elixir/exercises/space-age/space_age.exs
|
4087
4105
|
- tracks/elixir/exercises/space-age/space_age_test.exs
|
4106
|
+
- tracks/elixir/exercises/spiral-matrix/README.md
|
4107
|
+
- tracks/elixir/exercises/spiral-matrix/example.exs
|
4108
|
+
- tracks/elixir/exercises/spiral-matrix/spiral.exs
|
4109
|
+
- tracks/elixir/exercises/spiral-matrix/spiral_test.exs
|
4088
4110
|
- tracks/elixir/exercises/strain/HINTS.md
|
4089
4111
|
- tracks/elixir/exercises/strain/README.md
|
4090
4112
|
- tracks/elixir/exercises/strain/example.exs
|
@@ -4506,6 +4528,14 @@ files:
|
|
4506
4528
|
- tracks/erlang/exercises/collatz-conjecture/src/collatz_conjecture.erl
|
4507
4529
|
- tracks/erlang/exercises/collatz-conjecture/src/example.erl
|
4508
4530
|
- tracks/erlang/exercises/collatz-conjecture/test/collatz_conjecture_tests.erl
|
4531
|
+
- tracks/erlang/exercises/complex-numbers/HINTS.md
|
4532
|
+
- tracks/erlang/exercises/complex-numbers/README.md
|
4533
|
+
- tracks/erlang/exercises/complex-numbers/include/exercism.hrl
|
4534
|
+
- tracks/erlang/exercises/complex-numbers/rebar.config
|
4535
|
+
- tracks/erlang/exercises/complex-numbers/src/complex_numbers.app.src
|
4536
|
+
- tracks/erlang/exercises/complex-numbers/src/complex_numbers.erl
|
4537
|
+
- tracks/erlang/exercises/complex-numbers/src/example.erl
|
4538
|
+
- tracks/erlang/exercises/complex-numbers/test/complex_numbers_tests.erl
|
4509
4539
|
- tracks/erlang/exercises/difference-of-squares/README.md
|
4510
4540
|
- tracks/erlang/exercises/difference-of-squares/include/exercism.hrl
|
4511
4541
|
- tracks/erlang/exercises/difference-of-squares/rebar.config
|
@@ -4735,6 +4765,7 @@ files:
|
|
4735
4765
|
- tracks/erlang/testgen/src/tgen.erl
|
4736
4766
|
- tracks/erlang/testgen/src/tgen_bob.erl
|
4737
4767
|
- tracks/erlang/testgen/src/tgen_collatz-conjecture.erl
|
4768
|
+
- tracks/erlang/testgen/src/tgen_complex-numbers.erl
|
4738
4769
|
- tracks/erlang/testgen/src/tgen_hamming.erl
|
4739
4770
|
- tracks/erlang/testgen/src/tgen_hello-world.erl
|
4740
4771
|
- tracks/erlang/testgen/src/tgen_leap.erl
|
@@ -7500,6 +7531,9 @@ files:
|
|
7500
7531
|
- tracks/javascript/exercises/hexadecimal/README.md
|
7501
7532
|
- tracks/javascript/exercises/hexadecimal/example.js
|
7502
7533
|
- tracks/javascript/exercises/hexadecimal/hexadecimal.spec.js
|
7534
|
+
- tracks/javascript/exercises/isbn-verifier/README.md
|
7535
|
+
- tracks/javascript/exercises/isbn-verifier/example.js
|
7536
|
+
- tracks/javascript/exercises/isbn-verifier/isbn-verifier.spec.js
|
7503
7537
|
- tracks/javascript/exercises/isogram/README.md
|
7504
7538
|
- tracks/javascript/exercises/isogram/example.js
|
7505
7539
|
- tracks/javascript/exercises/isogram/isogram.spec.js
|
@@ -12765,7 +12799,7 @@ files:
|
|
12765
12799
|
- tracks/sml/exercises/difference-of-squares/example.sml
|
12766
12800
|
- tracks/sml/exercises/difference-of-squares/test.sml
|
12767
12801
|
- tracks/sml/exercises/difference-of-squares/testlib.sml
|
12768
|
-
- tracks/sml/exercises/flatten-array/
|
12802
|
+
- tracks/sml/exercises/flatten-array/.meta/hints.md
|
12769
12803
|
- tracks/sml/exercises/flatten-array/README.md
|
12770
12804
|
- tracks/sml/exercises/flatten-array/example.sml
|
12771
12805
|
- tracks/sml/exercises/flatten-array/flatten-array.sml
|
@@ -12791,7 +12825,7 @@ files:
|
|
12791
12825
|
- tracks/sml/exercises/list-ops/list-ops.sml
|
12792
12826
|
- tracks/sml/exercises/list-ops/test.sml
|
12793
12827
|
- tracks/sml/exercises/list-ops/testlib.sml
|
12794
|
-
- tracks/sml/exercises/nth-prime/
|
12828
|
+
- tracks/sml/exercises/nth-prime/.meta/hints.md
|
12795
12829
|
- tracks/sml/exercises/nth-prime/README.md
|
12796
12830
|
- tracks/sml/exercises/nth-prime/example.sml
|
12797
12831
|
- tracks/sml/exercises/nth-prime/nth-prime.sml
|
@@ -12812,6 +12846,11 @@ files:
|
|
12812
12846
|
- tracks/sml/exercises/phone-number/phone-number.sml
|
12813
12847
|
- tracks/sml/exercises/phone-number/test.sml
|
12814
12848
|
- tracks/sml/exercises/phone-number/testlib.sml
|
12849
|
+
- tracks/sml/exercises/pig-latin/README.md
|
12850
|
+
- tracks/sml/exercises/pig-latin/example.sml
|
12851
|
+
- tracks/sml/exercises/pig-latin/pig-latin.sml
|
12852
|
+
- tracks/sml/exercises/pig-latin/test.sml
|
12853
|
+
- tracks/sml/exercises/pig-latin/testlib.sml
|
12815
12854
|
- tracks/sml/exercises/prime-factors/README.md
|
12816
12855
|
- tracks/sml/exercises/prime-factors/example.sml
|
12817
12856
|
- tracks/sml/exercises/prime-factors/prime-factors.sml
|
@@ -13581,6 +13620,14 @@ files:
|
|
13581
13620
|
- tracks/typescript/exercises/nth-prime/tsconfig.json
|
13582
13621
|
- tracks/typescript/exercises/nth-prime/tslint.json
|
13583
13622
|
- tracks/typescript/exercises/nth-prime/yarn.lock
|
13623
|
+
- tracks/typescript/exercises/ocr-numbers/README.md
|
13624
|
+
- tracks/typescript/exercises/ocr-numbers/ocr-numbers.example.ts
|
13625
|
+
- tracks/typescript/exercises/ocr-numbers/ocr-numbers.test.ts
|
13626
|
+
- tracks/typescript/exercises/ocr-numbers/ocr-numbers.ts
|
13627
|
+
- tracks/typescript/exercises/ocr-numbers/package.json
|
13628
|
+
- tracks/typescript/exercises/ocr-numbers/tsconfig.json
|
13629
|
+
- tracks/typescript/exercises/ocr-numbers/tslint.json
|
13630
|
+
- tracks/typescript/exercises/ocr-numbers/yarn.lock
|
13584
13631
|
- tracks/typescript/exercises/pangram/README.md
|
13585
13632
|
- tracks/typescript/exercises/pangram/package.json
|
13586
13633
|
- tracks/typescript/exercises/pangram/pangram.example.ts
|
@@ -1,94 +0,0 @@
|
|
1
|
-
# Transpose
|
2
|
-
|
3
|
-
Given an input text output it transposed.
|
4
|
-
|
5
|
-
Roughly explained, the transpose of a matrix:
|
6
|
-
|
7
|
-
```text
|
8
|
-
ABC
|
9
|
-
DEF
|
10
|
-
```
|
11
|
-
|
12
|
-
is given by:
|
13
|
-
|
14
|
-
```text
|
15
|
-
AD
|
16
|
-
BE
|
17
|
-
CF
|
18
|
-
```
|
19
|
-
|
20
|
-
Rows become columns and columns become rows. See <https://en.wikipedia.org/wiki/Transpose>.
|
21
|
-
|
22
|
-
If the input has rows of different lengths, this is to be solved as follows:
|
23
|
-
|
24
|
-
- Pad to the left with spaces.
|
25
|
-
- Don't pad to the right.
|
26
|
-
|
27
|
-
Therefore, transposing this matrix:
|
28
|
-
|
29
|
-
```text
|
30
|
-
ABC
|
31
|
-
DE
|
32
|
-
```
|
33
|
-
|
34
|
-
results in:
|
35
|
-
|
36
|
-
```text
|
37
|
-
AD
|
38
|
-
BE
|
39
|
-
C
|
40
|
-
```
|
41
|
-
|
42
|
-
And transposing:
|
43
|
-
|
44
|
-
```text
|
45
|
-
AB
|
46
|
-
DEF
|
47
|
-
```
|
48
|
-
|
49
|
-
results in:
|
50
|
-
|
51
|
-
```text
|
52
|
-
AD
|
53
|
-
BE
|
54
|
-
F
|
55
|
-
```
|
56
|
-
|
57
|
-
In general, all characters from the input should also be present in the transposed output.
|
58
|
-
That means that if a column in the input text contains only spaces on its bottom-most row(s),
|
59
|
-
the corresponding output row should contain the spaces in its right-most column(s).
|
60
|
-
|
61
|
-
## Setup
|
62
|
-
|
63
|
-
Go through the setup instructions for ECMAScript to
|
64
|
-
install the necessary dependencies:
|
65
|
-
|
66
|
-
http://exercism.io/languages/ecmascript/installation
|
67
|
-
|
68
|
-
## Requirements
|
69
|
-
|
70
|
-
Install assignment dependencies:
|
71
|
-
|
72
|
-
```bash
|
73
|
-
$ npm install
|
74
|
-
```
|
75
|
-
|
76
|
-
## Making the Test Suite Pass
|
77
|
-
|
78
|
-
Execute the tests with:
|
79
|
-
|
80
|
-
```bash
|
81
|
-
$ npm test
|
82
|
-
```
|
83
|
-
|
84
|
-
In the test suite, all tests but the first have been skipped.
|
85
|
-
|
86
|
-
Once you get a test passing, you can enable the next one by
|
87
|
-
changing `xtest` to `test`.
|
88
|
-
|
89
|
-
## Source
|
90
|
-
|
91
|
-
Reddit r/dailyprogrammer challenge #270 [Easy]. [https://www.reddit.com/r/dailyprogrammer/comments/4msu2x/challenge_270_easy_transpose_the_input_text](https://www.reddit.com/r/dailyprogrammer/comments/4msu2x/challenge_270_easy_transpose_the_input_text)
|
92
|
-
|
93
|
-
## Submitting Incomplete Solutions
|
94
|
-
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -1,12 +0,0 @@
|
|
1
|
-
export default function transpose(text) {
|
2
|
-
const result = [];
|
3
|
-
text.forEach((line, lineNo) => {
|
4
|
-
[...line].forEach((value, key) => {
|
5
|
-
if (typeof result[key] === 'undefined') {
|
6
|
-
result[key] = ' '.repeat(lineNo);
|
7
|
-
}
|
8
|
-
result[key] += value;
|
9
|
-
});
|
10
|
-
});
|
11
|
-
return result;
|
12
|
-
}
|
@@ -1,67 +0,0 @@
|
|
1
|
-
import transpose from './transpose';
|
2
|
-
|
3
|
-
describe('Transpose', () => {
|
4
|
-
test('test empty string', () => {
|
5
|
-
expect(transpose([])).toEqual([]);
|
6
|
-
});
|
7
|
-
|
8
|
-
xtest('test two characters in a row', () => {
|
9
|
-
const input = ['A1'];
|
10
|
-
const expected = ['A', '1'];
|
11
|
-
expect(transpose(input)).toEqual(expected);
|
12
|
-
});
|
13
|
-
|
14
|
-
xtest('test two characters in a column', () => {
|
15
|
-
const input = ['A', '1'];
|
16
|
-
const expected = ['A1'];
|
17
|
-
expect(transpose(input)).toEqual(expected);
|
18
|
-
});
|
19
|
-
|
20
|
-
xtest('test simple', () => {
|
21
|
-
const input = ['ABC', '123'];
|
22
|
-
const expected = ['A1', 'B2', 'C3'];
|
23
|
-
expect(transpose(input)).toEqual(expected);
|
24
|
-
});
|
25
|
-
|
26
|
-
xtest('test single line', () => {
|
27
|
-
const input = ['Single line.'];
|
28
|
-
const expected = ['S', 'i', 'n', 'g', 'l', 'e', ' ', 'l', 'i', 'n', 'e', '.'];
|
29
|
-
expect(transpose(input)).toEqual(expected);
|
30
|
-
});
|
31
|
-
|
32
|
-
xtest('test first line longer than second line', () => {
|
33
|
-
const input = ['The fourth line.', 'The fifth line.'];
|
34
|
-
const expected = ['TT', 'hh', 'ee', ' ', 'ff', 'oi', 'uf', 'rt', 'th', 'h ', ' l', 'li', 'in', 'ne', 'e.', '.'];
|
35
|
-
expect(transpose(input)).toEqual(expected);
|
36
|
-
});
|
37
|
-
|
38
|
-
xtest('test second line longer than first line', () => {
|
39
|
-
const input = ['The first line.', 'The second line.'];
|
40
|
-
const expected = ['TT', 'hh', 'ee', ' ', 'fs', 'ie', 'rc', 'so', 'tn', ' d', 'l ', 'il', 'ni', 'en', '.e', ' .'];
|
41
|
-
expect(transpose(input)).toEqual(expected);
|
42
|
-
});
|
43
|
-
|
44
|
-
xtest('test square', () => {
|
45
|
-
const input = ['HEART', 'EMBER', 'ABUSE', 'RESIN', 'TREND'];
|
46
|
-
const expected = ['HEART', 'EMBER', 'ABUSE', 'RESIN', 'TREND'];
|
47
|
-
expect(transpose(input)).toEqual(expected);
|
48
|
-
});
|
49
|
-
|
50
|
-
xtest('test rectangle', () => {
|
51
|
-
const input = ['FRACTURE', 'OUTLINED', 'BLOOMING', 'SEPTETTE'];
|
52
|
-
const expected = ['FOBS', 'RULE', 'ATOP', 'CLOT', 'TIME', 'UNIT', 'RENT', 'EDGE'];
|
53
|
-
expect(transpose(input)).toEqual(expected);
|
54
|
-
});
|
55
|
-
|
56
|
-
xtest('test triangle', () => {
|
57
|
-
const input = ['T', 'EE', 'AAA', 'SSSS', 'EEEEE', 'RRRRRR'];
|
58
|
-
const expected = ['TEASER', ' EASER', ' ASER', ' SER', ' ER', ' R'];
|
59
|
-
expect(transpose(input)).toEqual(expected);
|
60
|
-
});
|
61
|
-
|
62
|
-
xtest('test many lines', () => {
|
63
|
-
const input = ['Chor. Two households, both alike in dignity,', 'In fair Verona, where we lay our scene,', 'From ancient grudge break to new mutiny,', 'Where civil blood makes civil hands unclean.', 'From forth the fatal loins of these two foes', 'A pair of star-cross\'d lovers take their life;', 'Whose misadventur\'d piteous overthrows', 'Doth with their death bury their parents\' strife.', 'The fearful passage of their death-mark\'d love,', 'And the continuance of their parents\' rage,', 'Which, but their children\'s end, naught could remove,', 'Is now the two hours\' traffic of our stage;', 'The which if you with patient ears attend,', 'What here shall miss, our toil shall strive to mend.'];
|
64
|
-
const expected = ['CIFWFAWDTAWITW', 'hnrhr hohnhshh', 'o oeopotedi ea', 'rfmrmash cn t', '.a e ie fthow ', ' ia fr weh,whh', 'Trnco miae ie', 'w ciroitr btcr', 'oVivtfshfcuhhe', ' eeih a uote ', 'hrnl sdtln is', 'oot ttvh tttfh', 'un bhaeepihw a', 'saglernianeoyl', 'e,ro -trsui ol', 'h uofcu sarhu ', 'owddarrdan o m', 'lhg to\'egccuwi', 'deemasdaeehris', 'sr als t ists', ',ebk \'phool\'h,', ' reldi ffd ', 'bweso tb rtpo', 'oea ileutterau', 't kcnoorhhnatr', 'hl isvuyee\'fi ', ' atv es iisfet', 'ayoior trr ino', 'l lfsoh ecti', 'ion vedpn l', 'kuehtteieadoe ', 'erwaharrar,fas', ' nekt te rh', 'ismdsehphnnosa', 'ncuse ra-tau l', ' et tormsural', 'dniuthwea\'g t ', 'iennwesnr hsts', 'g,ycoitkrttet', 'n,l rs\'a anr', 'ief \'dgcgdi', 'taol eoe,v', 'yneisl,u;e', ',.sftol ', ' ervdt', ' ;ie o', ' f,r ', ' eem', ' .me', ' on', ' vd', ' e.', ' ,'];
|
65
|
-
expect(transpose(input)).toEqual(expected);
|
66
|
-
});
|
67
|
-
});
|