trackler 2.2.1.113 → 2.2.1.114
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/tracks/bash/exercises/hello-world/hello_world.sh +1 -1
- data/tracks/c/config.json +24 -0
- data/tracks/c/exercises/two-fer/README.md +12 -0
- data/tracks/c/exercises/two-fer/makefile +25 -0
- data/tracks/c/exercises/two-fer/src/example.c +11 -0
- data/tracks/c/exercises/two-fer/src/example.h +6 -0
- data/tracks/c/exercises/two-fer/test/test_two_fer.c +51 -0
- data/tracks/c/exercises/two-fer/test/vendor/unity.c +1300 -0
- data/tracks/c/exercises/two-fer/test/vendor/unity.h +274 -0
- data/tracks/c/exercises/two-fer/test/vendor/unity_internals.h +701 -0
- data/tracks/c/exercises/wordy/README.md +51 -0
- data/tracks/c/exercises/wordy/makefile +25 -0
- data/tracks/c/exercises/wordy/src/example.c +53 -0
- data/tracks/c/exercises/wordy/src/example.h +7 -0
- data/tracks/c/exercises/wordy/test/test_wordy.c +206 -0
- data/tracks/c/exercises/wordy/test/vendor/unity.c +1300 -0
- data/tracks/c/exercises/wordy/test/vendor/unity.h +274 -0
- data/tracks/c/exercises/wordy/test/vendor/unity_internals.h +701 -0
- data/tracks/dart/.gitignore +6 -7
- data/tracks/dart/bin/create_exercise.dart +17 -17
- data/tracks/dart/exercises/anagram/lib/anagram.dart +1 -1
- data/tracks/dart/exercises/anagram/test/anagram_test.dart +27 -31
- data/tracks/dart/exercises/bob/lib/example.dart +7 -1
- data/tracks/dart/exercises/bob/test/bob_test.dart +81 -43
- data/tracks/dart/exercises/difference-of-squares/lib/example.dart +3 -3
- data/tracks/dart/exercises/difference-of-squares/test/difference_of_squares_test.dart +26 -17
- data/tracks/dart/pubspec.lock +28 -16
- data/tracks/dart/pubspec.yaml +2 -2
- data/tracks/elixir/.travis.yml +3 -3
- data/tracks/elixir/README.md +1 -1
- data/tracks/elixir/config.json +12 -0
- data/tracks/elixir/exercises/alphametics/README.md +73 -0
- data/tracks/elixir/exercises/alphametics/alphametics.exs +21 -0
- data/tracks/elixir/exercises/alphametics/alphametics_test.exs +162 -0
- data/tracks/elixir/exercises/alphametics/example.exs +70 -0
- data/tracks/elixir/mix.exs +1 -1
- data/tracks/elixir/mix.lock +0 -1
- data/tracks/elm/config.json +9 -0
- data/tracks/elm/exercises/accumulate/Accumulate.elm +6 -1
- data/tracks/elm/exercises/accumulate/Accumulate.example.elm +1 -1
- data/tracks/elm/exercises/acronym/Acronym.elm +6 -1
- data/tracks/elm/exercises/acronym/Acronym.example.elm +1 -1
- data/tracks/elm/exercises/all-your-base/AllYourBase.elm +6 -1
- data/tracks/elm/exercises/all-your-base/AllYourBase.example.elm +1 -1
- data/tracks/elm/exercises/allergies/Allergies.elm +11 -1
- data/tracks/elm/exercises/allergies/Allergies.example.elm +1 -1
- data/tracks/elm/exercises/anagram/Anagram.elm +6 -1
- data/tracks/elm/exercises/anagram/Anagram.example.elm +1 -1
- data/tracks/elm/exercises/atbash-cipher/AtbashCipher.elm +11 -1
- data/tracks/elm/exercises/atbash-cipher/AtbashCipher.example.elm +1 -1
- data/tracks/elm/exercises/binary-search/BinarySearch.elm +1 -2
- data/tracks/elm/exercises/bob/Bob.elm +6 -1
- data/tracks/elm/exercises/bob/Bob.example.elm +1 -1
- data/tracks/elm/exercises/collatz-conjecture/CollatzConjecture.elm +5 -1
- data/tracks/elm/exercises/difference-of-squares/DifferenceOfSquares.elm +16 -1
- data/tracks/elm/exercises/difference-of-squares/DifferenceOfSquares.example.elm +1 -1
- data/tracks/elm/exercises/etl/Etl.elm +5 -0
- data/tracks/elm/exercises/gigasecond/Gigasecond.elm +5 -0
- data/tracks/elm/exercises/grade-school/GradeSchool.elm +32 -1
- data/tracks/elm/exercises/grade-school/GradeSchool.example.elm +1 -1
- data/tracks/elm/exercises/grains/Grains.elm +5 -1
- data/tracks/elm/exercises/grains/Grains.example.elm +1 -1
- data/tracks/elm/exercises/hamming/Hamming.elm +6 -1
- data/tracks/elm/exercises/hello-world/HelloWorld.elm +2 -2
- data/tracks/elm/exercises/hello-world/HelloWorld.example.elm +1 -1
- data/tracks/elm/exercises/isogram/Isogram.elm +6 -1
- data/tracks/elm/exercises/largest-series-product/LargestSeriesProduct.elm +5 -0
- data/tracks/elm/exercises/leap/Leap.elm +6 -1
- data/tracks/elm/exercises/leap/Leap.example.elm +1 -1
- data/tracks/elm/exercises/list-ops/ListOps.elm +51 -1
- data/tracks/elm/exercises/list-ops/ListOps.example.elm +11 -1
- data/tracks/elm/exercises/list-ops/tests/Tests.elm +1 -1
- data/tracks/elm/exercises/luhn/Luhn.elm +6 -1
- data/tracks/elm/exercises/nucleotide-count/NucleotideCount.elm +14 -1
- data/tracks/elm/exercises/nucleotide-count/NucleotideCount.example.elm +1 -1
- data/tracks/elm/exercises/pangram/Pangram.elm +6 -1
- data/tracks/elm/exercises/pangram/Pangram.example.elm +1 -1
- data/tracks/elm/exercises/pascals-triangle/Triangle.elm +6 -1
- data/tracks/elm/exercises/phone-number/PhoneNumber.elm +11 -1
- data/tracks/elm/exercises/phone-number/PhoneNumber.example.elm +1 -1
- data/tracks/elm/exercises/raindrops/Raindrops.elm +6 -1
- data/tracks/elm/exercises/raindrops/Raindrops.example.elm +1 -1
- data/tracks/elm/exercises/rna-transcription/RNATranscription.elm +6 -1
- data/tracks/elm/exercises/robot-simulator/RobotSimulator.elm +48 -1
- data/tracks/elm/exercises/robot-simulator/RobotSimulator.example.elm +10 -1
- data/tracks/elm/exercises/roman-numerals/RomanNumerals.elm +5 -0
- data/tracks/elm/exercises/run-length-encoding/RunLengthEncoding.elm +11 -2
- data/tracks/elm/exercises/say/Say.elm +11 -1
- data/tracks/elm/exercises/scrabble-score/ScrabbleScore.elm +6 -1
- data/tracks/elm/exercises/scrabble-score/ScrabbleScore.example.elm +1 -1
- data/tracks/elm/exercises/series/Series.elm +6 -1
- data/tracks/elm/exercises/series/Series.example.elm +1 -1
- data/tracks/elm/exercises/space-age/SpaceAge.elm +6 -1
- data/tracks/elm/exercises/space-age/SpaceAge.example.elm +1 -1
- data/tracks/elm/exercises/strain/Strain.elm +11 -1
- data/tracks/elm/exercises/strain/Strain.example.elm +1 -1
- data/tracks/elm/exercises/sublist/Sublist.elm +13 -1
- data/tracks/elm/exercises/sublist/Sublist.example.elm +1 -1
- data/tracks/elm/exercises/sum-of-multiples/SumOfMultiples.elm +6 -1
- data/tracks/elm/exercises/sum-of-multiples/SumOfMultiples.example.elm +1 -1
- data/tracks/elm/exercises/transpose/README.md +95 -0
- data/tracks/elm/exercises/transpose/Transpose.elm +6 -0
- data/tracks/elm/exercises/transpose/Transpose.example.elm +47 -0
- data/tracks/elm/exercises/transpose/elm-package.json +15 -0
- data/tracks/elm/exercises/transpose/tests/Tests.elm +202 -0
- data/tracks/elm/exercises/transpose/tests/elm-package.json +16 -0
- data/tracks/elm/exercises/triangle/Triangle.elm +12 -1
- data/tracks/elm/exercises/triangle/Triangle.example.elm +1 -1
- data/tracks/elm/exercises/twelve-days/TwelveDays.elm +6 -1
- data/tracks/elm/exercises/word-count/WordCount.elm +3 -1
- data/tracks/elm/exercises/word-count/WordCount.example.elm +1 -1
- data/tracks/go/exercises/crypto-square/crypto_square_test.go +9 -9
- data/tracks/go/exercises/crypto-square/example.go +7 -0
- data/tracks/idris/docs/INSTALLATION.md +4 -4
- data/tracks/java/config.json +13 -0
- data/tracks/java/exercises/alphametics/.meta/version +1 -0
- data/tracks/java/exercises/go-counting/.meta/src/reference/java/GoCounting.java +152 -0
- data/tracks/java/exercises/go-counting/.meta/src/reference/java/Player.java +3 -0
- data/tracks/java/exercises/go-counting/.meta/version +2 -0
- data/tracks/java/exercises/go-counting/README.md +50 -0
- data/tracks/java/exercises/go-counting/build.gradle +18 -0
- data/tracks/java/exercises/go-counting/src/main/java/.keep +0 -0
- data/tracks/java/exercises/go-counting/src/main/java/Player.java +3 -0
- data/tracks/java/exercises/go-counting/src/test/java/GoCountingTest.java +178 -0
- data/tracks/java/exercises/isogram/.meta/version +1 -1
- data/tracks/java/exercises/perfect-numbers/.meta/version +1 -1
- data/tracks/java/exercises/settings.gradle +1 -0
- data/tracks/javascript/.eslintignore +0 -1
- data/tracks/javascript/exercises/minesweeper/example.js +15 -15
- data/tracks/javascript/package-lock.json +7 -14
- data/tracks/javascript/package.json +1 -1
- data/tracks/perl6/exercises/grains/.meta/exercise-data.yaml +2 -2
- data/tracks/perl6/exercises/grains/grains.t +34 -13
- data/tracks/r/config.json +13 -0
- data/tracks/r/exercises/bob/README.md +2 -0
- data/tracks/r/exercises/bob/example.R +5 -0
- data/tracks/r/exercises/bob/test_bob.R +1 -1
- data/tracks/r/exercises/crypto-square/README.md +84 -0
- data/tracks/r/exercises/crypto-square/crypto-square.R +15 -0
- data/tracks/r/exercises/crypto-square/example.R +47 -0
- data/tracks/r/exercises/crypto-square/test_crypto-square.R +65 -0
- data/tracks/rust/exercises/allergies/tests/allergies.rs +36 -36
- data/tracks/rust/exercises/book-store/Cargo-example.toml +1 -2
- data/tracks/rust/exercises/book-store/Cargo.toml +1 -1
- data/tracks/rust/exercises/book-store/example.rs +10 -14
- data/tracks/rust/exercises/book-store/src/lib.rs +1 -1
- data/tracks/rust/exercises/book-store/tests/book-store.rs +15 -15
- data/tracks/rust/exercises/dominoes/example.rs +3 -3
- data/tracks/rust/exercises/dominoes/tests/dominoes.rs +26 -26
- data/tracks/rust/exercises/grade-school/tests/grade-school.rs +5 -5
- data/tracks/rust/exercises/poker/tests/poker.rs +55 -55
- data/tracks/rust/exercises/react/tests/react.rs +28 -28
- data/tracks/rust/exercises/rectangles/example.rs +1 -1
- data/tracks/rust/exercises/rectangles/tests/rectangles.rs +26 -26
- data/tracks/rust/exercises/simple-linked-list/tests/simple-linked-list.rs +1 -1
- data/tracks/rust/exercises/sum-of-multiples/tests/sum-of-multiples.rs +12 -12
- data/tracks/rust/exercises/variable-length-quantity/example.rs +9 -3
- data/tracks/rust/exercises/variable-length-quantity/src/lib.rs +7 -1
- data/tracks/rust/exercises/variable-length-quantity/tests/variable-length-quantity.rs +3 -3
- data/tracks/rust/exercises/word-count/tests/word-count.rs +20 -20
- data/tracks/scala/exercises/secret-handshake/src/test/scala/SecretHandshakeTest.scala +2 -2
- data/tracks/scala/exercises/sieve/src/test/scala/SieveTest.scala +12 -12
- data/tracks/scala/testgen/src/main/scala/SecretHandshakeTestGenerator.scala +2 -2
- data/tracks/scala/testgen/src/main/scala/SieveTestGenerator.scala +2 -2
- data/tracks/typescript/config.json +68 -0
- data/tracks/typescript/exercises/armstrong-numbers/README.md +44 -0
- data/tracks/typescript/exercises/armstrong-numbers/armstrong-numbers.example.ts +11 -0
- data/tracks/typescript/exercises/armstrong-numbers/armstrong-numbers.test.ts +35 -0
- data/tracks/typescript/exercises/armstrong-numbers/armstrong-numbers.ts +0 -0
- data/tracks/typescript/exercises/armstrong-numbers/package.json +36 -0
- data/tracks/typescript/exercises/armstrong-numbers/tsconfig.json +22 -0
- data/tracks/typescript/exercises/armstrong-numbers/tslint.json +127 -0
- data/tracks/typescript/exercises/armstrong-numbers/yarn.lock +2624 -0
- data/tracks/typescript/exercises/perfect-numbers/README.md +50 -0
- data/tracks/typescript/exercises/perfect-numbers/package.json +36 -0
- data/tracks/typescript/exercises/perfect-numbers/perfect-numbers.example.ts +55 -0
- data/tracks/typescript/exercises/perfect-numbers/perfect-numbers.test.ts +72 -0
- data/tracks/typescript/exercises/perfect-numbers/perfect-numbers.ts +0 -0
- data/tracks/typescript/exercises/perfect-numbers/tsconfig.json +22 -0
- data/tracks/typescript/exercises/perfect-numbers/tslint.json +127 -0
- data/tracks/typescript/exercises/perfect-numbers/yarn.lock +2624 -0
- data/tracks/typescript/exercises/rational-numbers/README.md +61 -0
- data/tracks/typescript/exercises/rational-numbers/package.json +36 -0
- data/tracks/typescript/exercises/rational-numbers/rational-numbers.example.ts +76 -0
- data/tracks/typescript/exercises/rational-numbers/rational-numbers.test.ts +197 -0
- data/tracks/typescript/exercises/rational-numbers/rational-numbers.ts +0 -0
- data/tracks/typescript/exercises/rational-numbers/tsconfig.json +22 -0
- data/tracks/typescript/exercises/rational-numbers/tslint.json +127 -0
- data/tracks/typescript/exercises/rational-numbers/yarn.lock +2624 -0
- data/tracks/typescript/exercises/run-length-encoding/README.md +56 -0
- data/tracks/typescript/exercises/run-length-encoding/package.json +36 -0
- data/tracks/typescript/exercises/run-length-encoding/run-length-encoding.example.ts +15 -0
- data/tracks/typescript/exercises/run-length-encoding/run-length-encoding.test.ts +71 -0
- data/tracks/typescript/exercises/run-length-encoding/run-length-encoding.ts +0 -0
- data/tracks/typescript/exercises/run-length-encoding/tsconfig.json +22 -0
- data/tracks/typescript/exercises/run-length-encoding/tslint.json +127 -0
- data/tracks/typescript/exercises/run-length-encoding/yarn.lock +2624 -0
- data/tracks/typescript/exercises/secret-handshake/README.md +61 -0
- data/tracks/typescript/exercises/secret-handshake/package.json +36 -0
- data/tracks/typescript/exercises/secret-handshake/secret-handshake.example.ts +43 -0
- data/tracks/typescript/exercises/secret-handshake/secret-handshake.test.ts +69 -0
- data/tracks/typescript/exercises/secret-handshake/secret-handshake.ts +0 -0
- data/tracks/typescript/exercises/secret-handshake/tsconfig.json +22 -0
- data/tracks/typescript/exercises/secret-handshake/tslint.json +127 -0
- data/tracks/typescript/exercises/secret-handshake/yarn.lock +2624 -0
- metadata +81 -7
- data/tracks/dart/exercises/anagram/pubspec.lock +0 -293
- data/tracks/dart/exercises/bob/pubspec.lock +0 -293
- data/tracks/dart/exercises/difference-of-squares/pubspec.lock +0 -293
- data/tracks/java/exercises/alphametics/.meta/src/version +0 -1
- data/tracks/r/exercises/bob/.meta/description.md +0 -10
@@ -0,0 +1,47 @@
|
|
1
|
+
module Transpose exposing (transpose)
|
2
|
+
|
3
|
+
import List
|
4
|
+
import String
|
5
|
+
|
6
|
+
|
7
|
+
transpose : List String -> List String
|
8
|
+
transpose lines =
|
9
|
+
let
|
10
|
+
longestRow =
|
11
|
+
Maybe.withDefault 0 <|
|
12
|
+
List.maximum <|
|
13
|
+
List.map String.length lines
|
14
|
+
|
15
|
+
padNothingRight maxLength line =
|
16
|
+
line ++ List.repeat (maxLength - List.length line) Nothing
|
17
|
+
|
18
|
+
stringify line =
|
19
|
+
String.concat <|
|
20
|
+
List.map
|
21
|
+
(\x ->
|
22
|
+
case x of
|
23
|
+
Nothing ->
|
24
|
+
" "
|
25
|
+
|
26
|
+
Just c ->
|
27
|
+
String.fromChar c
|
28
|
+
)
|
29
|
+
(dropNothingRight line)
|
30
|
+
|
31
|
+
dropNothingRight line =
|
32
|
+
Tuple.second <|
|
33
|
+
List.foldr
|
34
|
+
(\x ( ignore, list ) ->
|
35
|
+
if ignore && x == Nothing then
|
36
|
+
( ignore, list )
|
37
|
+
else
|
38
|
+
( False, x :: list )
|
39
|
+
)
|
40
|
+
( True, [] )
|
41
|
+
line
|
42
|
+
in
|
43
|
+
List.map stringify <|
|
44
|
+
List.foldr
|
45
|
+
(List.map2 (::))
|
46
|
+
(List.repeat longestRow [])
|
47
|
+
(List.map (padNothingRight longestRow << List.map Just << String.toList) lines)
|
@@ -0,0 +1,15 @@
|
|
1
|
+
{
|
2
|
+
"version": "3.0.0",
|
3
|
+
"summary": "Exercism problems in Elm.",
|
4
|
+
"repository": "https://github.com/exercism/elm.git",
|
5
|
+
"license": "BSD3",
|
6
|
+
"source-directories": [
|
7
|
+
"."
|
8
|
+
],
|
9
|
+
"exposed-modules": [],
|
10
|
+
"dependencies": {
|
11
|
+
"elm-lang/core": "5.0.0 <= v < 6.0.0"
|
12
|
+
},
|
13
|
+
"elm-version": "0.18.0 <= v < 0.19.0"
|
14
|
+
}
|
15
|
+
|
@@ -0,0 +1,202 @@
|
|
1
|
+
module Tests exposing (..)
|
2
|
+
|
3
|
+
import Expect
|
4
|
+
import Test exposing (Test, describe, skip, test)
|
5
|
+
import Transpose exposing (transpose)
|
6
|
+
|
7
|
+
|
8
|
+
tests : Test
|
9
|
+
tests =
|
10
|
+
describe "Hamming"
|
11
|
+
[ test "empty string" <|
|
12
|
+
\_ ->
|
13
|
+
Expect.equal [] (transpose [])
|
14
|
+
, skip <|
|
15
|
+
test "two characters in a row" <|
|
16
|
+
\_ ->
|
17
|
+
Expect.equal
|
18
|
+
[ "A"
|
19
|
+
, "1"
|
20
|
+
]
|
21
|
+
(transpose [ "A1" ])
|
22
|
+
, skip <|
|
23
|
+
test "two characters in a column" <|
|
24
|
+
\_ ->
|
25
|
+
Expect.equal
|
26
|
+
[ "A1" ]
|
27
|
+
(transpose
|
28
|
+
[ "A"
|
29
|
+
, "1"
|
30
|
+
]
|
31
|
+
)
|
32
|
+
, skip <|
|
33
|
+
test "simple" <|
|
34
|
+
\_ ->
|
35
|
+
Expect.equal
|
36
|
+
[ "A1"
|
37
|
+
, "B2"
|
38
|
+
, "C3"
|
39
|
+
]
|
40
|
+
(transpose
|
41
|
+
[ "ABC"
|
42
|
+
, "123"
|
43
|
+
]
|
44
|
+
)
|
45
|
+
, skip <|
|
46
|
+
test "single line" <|
|
47
|
+
\_ ->
|
48
|
+
Expect.equal
|
49
|
+
[ "S"
|
50
|
+
, "i"
|
51
|
+
, "n"
|
52
|
+
, "g"
|
53
|
+
, "l"
|
54
|
+
, "e"
|
55
|
+
, " "
|
56
|
+
, "l"
|
57
|
+
, "i"
|
58
|
+
, "n"
|
59
|
+
, "e"
|
60
|
+
, "."
|
61
|
+
]
|
62
|
+
(transpose [ "Single line." ])
|
63
|
+
, skip <|
|
64
|
+
test "first line longer than second line" <|
|
65
|
+
\_ ->
|
66
|
+
Expect.equal
|
67
|
+
[ "TT"
|
68
|
+
, "hh"
|
69
|
+
, "ee"
|
70
|
+
, " "
|
71
|
+
, "ff"
|
72
|
+
, "oi"
|
73
|
+
, "uf"
|
74
|
+
, "rt"
|
75
|
+
, "th"
|
76
|
+
, "h "
|
77
|
+
, " l"
|
78
|
+
, "li"
|
79
|
+
, "in"
|
80
|
+
, "ne"
|
81
|
+
, "e."
|
82
|
+
, "."
|
83
|
+
]
|
84
|
+
(transpose
|
85
|
+
[ "The fourth line."
|
86
|
+
, "The fifth line."
|
87
|
+
]
|
88
|
+
)
|
89
|
+
, skip <|
|
90
|
+
test "second line longer than first line" <|
|
91
|
+
\_ ->
|
92
|
+
Expect.equal
|
93
|
+
[ "TT"
|
94
|
+
, "hh"
|
95
|
+
, "ee"
|
96
|
+
, " "
|
97
|
+
, "fs"
|
98
|
+
, "ie"
|
99
|
+
, "rc"
|
100
|
+
, "so"
|
101
|
+
, "tn"
|
102
|
+
, " d"
|
103
|
+
, "l "
|
104
|
+
, "il"
|
105
|
+
, "ni"
|
106
|
+
, "en"
|
107
|
+
, ".e"
|
108
|
+
, " ."
|
109
|
+
]
|
110
|
+
(transpose
|
111
|
+
[ "The first line."
|
112
|
+
, "The second line."
|
113
|
+
]
|
114
|
+
)
|
115
|
+
, skip <|
|
116
|
+
test "mixed line length" <|
|
117
|
+
\_ ->
|
118
|
+
Expect.equal
|
119
|
+
[ "TAAA"
|
120
|
+
, "h "
|
121
|
+
, "elll"
|
122
|
+
, " ooi"
|
123
|
+
, "lnnn"
|
124
|
+
, "ogge"
|
125
|
+
, "n e."
|
126
|
+
, "glr"
|
127
|
+
, "ei "
|
128
|
+
, "snl"
|
129
|
+
, "tei"
|
130
|
+
, " .n"
|
131
|
+
, "l e"
|
132
|
+
, "i ."
|
133
|
+
, "n"
|
134
|
+
, "e"
|
135
|
+
, "."
|
136
|
+
]
|
137
|
+
(transpose
|
138
|
+
[ "The longest line."
|
139
|
+
, "A long line."
|
140
|
+
, "A longer line."
|
141
|
+
, "A line."
|
142
|
+
]
|
143
|
+
)
|
144
|
+
, skip <|
|
145
|
+
test "square" <|
|
146
|
+
\_ ->
|
147
|
+
Expect.equal
|
148
|
+
[ "HEART"
|
149
|
+
, "EMBER"
|
150
|
+
, "ABUSE"
|
151
|
+
, "RESIN"
|
152
|
+
, "TREND"
|
153
|
+
]
|
154
|
+
(transpose
|
155
|
+
[ "HEART"
|
156
|
+
, "EMBER"
|
157
|
+
, "ABUSE"
|
158
|
+
, "RESIN"
|
159
|
+
, "TREND"
|
160
|
+
]
|
161
|
+
)
|
162
|
+
, skip <|
|
163
|
+
test "rectangle" <|
|
164
|
+
\_ ->
|
165
|
+
Expect.equal
|
166
|
+
[ "FOBS"
|
167
|
+
, "RULE"
|
168
|
+
, "ATOP"
|
169
|
+
, "CLOT"
|
170
|
+
, "TIME"
|
171
|
+
, "UNIT"
|
172
|
+
, "RENT"
|
173
|
+
, "EDGE"
|
174
|
+
]
|
175
|
+
(transpose
|
176
|
+
[ "FRACTURE"
|
177
|
+
, "OUTLINED"
|
178
|
+
, "BLOOMING"
|
179
|
+
, "SEPTETTE"
|
180
|
+
]
|
181
|
+
)
|
182
|
+
, skip <|
|
183
|
+
test "triangle" <|
|
184
|
+
\_ ->
|
185
|
+
Expect.equal
|
186
|
+
[ "TEASER"
|
187
|
+
, " EASER"
|
188
|
+
, " ASER"
|
189
|
+
, " SER"
|
190
|
+
, " ER"
|
191
|
+
, " R"
|
192
|
+
]
|
193
|
+
(transpose
|
194
|
+
[ "T"
|
195
|
+
, "EE"
|
196
|
+
, "AAA"
|
197
|
+
, "SSSS"
|
198
|
+
, "EEEEE"
|
199
|
+
, "RRRRRR"
|
200
|
+
]
|
201
|
+
)
|
202
|
+
]
|
@@ -0,0 +1,16 @@
|
|
1
|
+
{
|
2
|
+
"version": "3.0.0",
|
3
|
+
"summary": "Exercism problems in Elm.",
|
4
|
+
"repository": "https://github.com/exercism/elm.git",
|
5
|
+
"license": "BSD3",
|
6
|
+
"source-directories": [
|
7
|
+
".",
|
8
|
+
".."
|
9
|
+
],
|
10
|
+
"exposed-modules": [],
|
11
|
+
"dependencies": {
|
12
|
+
"elm-lang/core": "5.0.0 <= v < 6.0.0",
|
13
|
+
"elm-community/elm-test": "4.0.0 <= v < 5.0.0"
|
14
|
+
},
|
15
|
+
"elm-version": "0.18.0 <= v < 0.19.0"
|
16
|
+
}
|
@@ -1,6 +1,17 @@
|
|
1
|
-
module Triangle exposing (..)
|
1
|
+
module Triangle exposing (Triangle(..), triangleKind, version)
|
2
|
+
|
3
|
+
|
4
|
+
type Triangle
|
5
|
+
= Equilateral
|
6
|
+
| Isosceles
|
7
|
+
| Scalene
|
2
8
|
|
3
9
|
|
4
10
|
version : Int
|
5
11
|
version =
|
6
12
|
2
|
13
|
+
|
14
|
+
|
15
|
+
triangleKind : comparable -> comparable -> comparable -> Result String Triangle
|
16
|
+
triangleKind x y z =
|
17
|
+
Debug.crash "Please implement this function"
|
@@ -12,7 +12,7 @@ var tests = []struct {
|
|
12
12
|
},
|
13
13
|
{
|
14
14
|
"1, 2, 3 GO!",
|
15
|
-
"1g 2o 3",
|
15
|
+
"1g 2o 3 ",
|
16
16
|
},
|
17
17
|
{
|
18
18
|
"1234",
|
@@ -32,19 +32,19 @@ var tests = []struct {
|
|
32
32
|
},
|
33
33
|
{
|
34
34
|
"ZOMG! ZOMBIES!!!",
|
35
|
-
"zzi ooe mms gb",
|
35
|
+
"zzi ooe mms gb ",
|
36
36
|
},
|
37
37
|
{
|
38
38
|
"Time is an illusion. Lunchtime doubly so.",
|
39
|
-
"tasney inicds miohoo elntu
|
39
|
+
"tasney inicds miohoo elntu illib suuml ",
|
40
40
|
},
|
41
41
|
{
|
42
42
|
"We all know interspecies romance is weird.",
|
43
|
-
"wneiaw eorene awssci liprer lneoid ktcms",
|
43
|
+
"wneiaw eorene awssci liprer lneoid ktcms ",
|
44
44
|
},
|
45
45
|
{
|
46
46
|
"Madness, and then illumination.",
|
47
|
-
"msemo aanin dnin
|
47
|
+
"msemo aanin dnin ndla etlt shui ",
|
48
48
|
},
|
49
49
|
{
|
50
50
|
"Vampires are people too!",
|
@@ -64,19 +64,19 @@ var tests = []struct {
|
|
64
64
|
},
|
65
65
|
{
|
66
66
|
"12 3",
|
67
|
-
"13 2",
|
67
|
+
"13 2 ",
|
68
68
|
},
|
69
69
|
{
|
70
70
|
"12345678",
|
71
|
-
"147 258 36",
|
71
|
+
"147 258 36 ",
|
72
72
|
},
|
73
73
|
{
|
74
74
|
"123456789a",
|
75
|
-
"159 26a 37
|
75
|
+
"159 26a 37 48 ",
|
76
76
|
},
|
77
77
|
{
|
78
78
|
"If man was meant to stay on the ground god would have given us roots",
|
79
|
-
"imtgdvs fearwer mayoogo anouuio ntnnlvt wttddes aohghn
|
79
|
+
"imtgdvs fearwer mayoogo anouuio ntnnlvt wttddes aohghn sseoau ",
|
80
80
|
},
|
81
81
|
{
|
82
82
|
"Have a nice day. Feed the dog & chill out!",
|
@@ -18,9 +18,16 @@ func norm(r rune) rune {
|
|
18
18
|
func Encode(pt string) string {
|
19
19
|
pt = strings.Map(norm, pt)
|
20
20
|
numCols := int(math.Ceil(math.Sqrt(float64(len(pt)))))
|
21
|
+
padding := numCols*(numCols-1) - len(pt)
|
22
|
+
if padding < 0 {
|
23
|
+
padding = numCols*numCols - len(pt)
|
24
|
+
}
|
21
25
|
cols := make([]string, numCols)
|
22
26
|
for i, r := range pt {
|
23
27
|
cols[i%numCols] += string(r)
|
24
28
|
}
|
29
|
+
for i := 0; i < padding; i++ {
|
30
|
+
cols[numCols-i-1] += " "
|
31
|
+
}
|
25
32
|
return strings.Join(cols, " ")
|
26
33
|
}
|
@@ -13,8 +13,8 @@ The easiest way to install Idris, if you have all of the prerequisites, is to ty
|
|
13
13
|
cabal update; cabal install idris
|
14
14
|
```
|
15
15
|
|
16
|
-
This will install the latest version released on Hackage, along with any dependencies.
|
17
|
-
If, however, you would like the most up to date development version you can find it,
|
16
|
+
This will install the latest version released on Hackage, along with any dependencies.
|
17
|
+
If, however, you would like the most up to date development version you can find it,
|
18
18
|
as well as build instructions, on GitHub at: https://github.com/idris-lang/Idris-dev.
|
19
19
|
|
20
20
|
## Necessary libraries
|
@@ -27,11 +27,11 @@ This library provides the actual testing framework we use. It's installation is
|
|
27
27
|
|
28
28
|
```shell
|
29
29
|
pushd /tmp
|
30
|
-
git clone git
|
30
|
+
git clone git@github.com:jfdm/idris-testing.git
|
31
31
|
cd idris-testing
|
32
32
|
make lib
|
33
33
|
make install # depending on your installation of idris this might need to be run as root
|
34
34
|
popd
|
35
35
|
```
|
36
36
|
|
37
|
-
If the tests will ever brake because of calling things that your installed version of `idris-testing` does not provide, you have to update it by repeating the steps above.
|
37
|
+
If the tests will ever brake because of calling things that your installed version of `idris-testing` does not provide, you have to update it by repeating the steps above.
|