Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file modified common/package.json
100755 → 100644
Empty file.
Empty file modified exercises/accumulate/package.json
100755 → 100644
Empty file.
Empty file modified exercises/all-your-base/package.json
100755 → 100644
Empty file.
Empty file modified exercises/allergies/package.json
100755 → 100644
Empty file.
Empty file modified exercises/alphametics/package.json
100755 → 100644
Empty file.
Empty file modified exercises/anagram/package.json
100755 → 100644
Empty file.
Empty file modified exercises/armstrong-numbers/package.json
100755 → 100644
Empty file.
Empty file modified exercises/beer-song/package.json
100755 → 100644
Empty file.
Empty file modified exercises/binary-search/package.json
100755 → 100644
Empty file.
Empty file modified exercises/bob/package.json
100755 → 100644
Empty file.
Empty file modified exercises/bowling/package.json
100755 → 100644
Empty file.
Empty file modified exercises/circular-buffer/package.json
100755 → 100644
Empty file.
Empty file modified exercises/clock/package.json
100755 → 100644
Empty file.
Empty file modified exercises/collatz-conjecture/package.json
100755 → 100644
Empty file.
Empty file modified exercises/complex-numbers/package.json
100755 → 100644
Empty file.
Empty file modified exercises/connect/package.json
100755 → 100644
Empty file.
Empty file modified exercises/crypto-square/package.json
100755 → 100644
Empty file.
Empty file modified exercises/custom-set/package.json
100755 → 100644
Empty file.
Empty file modified exercises/diamond/package.json
100755 → 100644
Empty file.
Empty file modified exercises/diffie-hellman/package.json
100755 → 100644
Empty file.
Empty file modified exercises/etl/package.json
100755 → 100644
Empty file.
Empty file modified exercises/flatten-array/package.json
100755 → 100644
Empty file.
Empty file modified exercises/food-chain/package.json
100755 → 100644
Empty file.
Empty file modified exercises/gigasecond/package.json
100755 → 100644
Empty file.
Empty file modified exercises/grade-school/package.json
100755 → 100644
Empty file.
Empty file modified exercises/grains/package.json
100755 → 100644
Empty file.
Empty file modified exercises/hamming/package.json
100755 → 100644
Empty file.
Empty file modified exercises/hello-world/package.json
100755 → 100644
Empty file.
Empty file modified exercises/house/package.json
100755 → 100644
Empty file.
Empty file modified exercises/isbn-verifier/package.json
100755 → 100644
Empty file.
Empty file modified exercises/isogram/package.json
100755 → 100644
Empty file.
Empty file modified exercises/leap/package.json
100755 → 100644
Empty file.
Empty file modified exercises/linked-list/package.json
100755 → 100644
Empty file.
Empty file modified exercises/list-ops/package.json
100755 → 100644
Empty file.
Empty file modified exercises/luhn/package.json
100755 → 100644
Empty file.
Empty file modified exercises/matrix/package.json
100755 → 100644
Empty file.
Empty file modified exercises/minesweeper/package.json
100755 → 100644
Empty file.
Empty file modified exercises/nucleotide-count/package.json
100755 → 100644
Empty file.
Empty file modified exercises/palindrome-products/package.json
100755 → 100644
Empty file.
Empty file modified exercises/pangram/package.json
100755 → 100644
Empty file.
Empty file modified exercises/pascals-triangle/package.json
100755 → 100644
Empty file.
Empty file modified exercises/perfect-numbers/package.json
100755 → 100644
Empty file.
Empty file modified exercises/phone-number/package.json
100755 → 100644
Empty file.
Empty file modified exercises/pig-latin/package.json
100755 → 100644
Empty file.
Empty file modified exercises/prime-factors/package.json
100755 → 100644
Empty file.
Empty file modified exercises/protein-translation/package.json
100755 → 100644
Empty file.
Empty file modified exercises/proverb/package.json
100755 → 100644
Empty file.
Empty file modified exercises/queen-attack/package.json
100755 → 100644
Empty file.
Empty file modified exercises/raindrops/package.json
100755 → 100644
Empty file.
Empty file modified exercises/rational-numbers/package.json
100755 → 100644
Empty file.
Empty file modified exercises/rectangles/package.json
100755 → 100644
Empty file.
Empty file modified exercises/resistor-color-duo/package.json
100755 → 100644
Empty file.
Empty file modified exercises/resistor-color/package.json
100755 → 100644
Empty file.
Empty file modified exercises/reverse-string/package.json
100755 → 100644
Empty file.
Empty file modified exercises/rna-transcription/package.json
100755 → 100644
Empty file.
Empty file modified exercises/robot-name/package.json
100755 → 100644
Empty file.
Empty file modified exercises/roman-numerals/package.json
100755 → 100644
Empty file.
Empty file modified exercises/rotational-cipher/package.json
100755 → 100644
Empty file.
Empty file modified exercises/run-length-encoding/package.json
100755 → 100644
Empty file.
Empty file modified exercises/saddle-points/package.json
100755 → 100644
Empty file.
Empty file modified exercises/say/package.json
100755 → 100644
Empty file.
Empty file modified exercises/scrabble-score/package.json
100755 → 100644
Empty file.
Empty file modified exercises/secret-handshake/package.json
100755 → 100644
Empty file.
Empty file modified exercises/sieve/package.json
100755 → 100644
Empty file.
Empty file modified exercises/simple-cipher/package.json
100755 → 100644
Empty file.
Empty file modified exercises/space-age/package.json
100755 → 100644
Empty file.
Empty file modified exercises/spiral-matrix/package.json
100755 → 100644
Empty file.
Empty file modified exercises/strain/package.json
100755 → 100644
Empty file.
Empty file modified exercises/sublist/package.json
100755 → 100644
Empty file.
Empty file modified exercises/sum-of-multiples/package.json
100755 → 100644
Empty file.
3 changes: 3 additions & 0 deletions exercises/transpose/.meta/tests.toml
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,6 @@

# triangle
"b80badc9-057e-4543-bd07-ce1296a1ea2c" = true

# jagged triangle
"76acfd50-5596-4d05-89f1-5116328a7dd9" = true
Empty file modified exercises/transpose/package.json
100755 → 100644
Empty file.
27 changes: 14 additions & 13 deletions exercises/transpose/transpose.example.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
class Transpose {
public static transpose(lines: string[]): string[] {
return lines.reduce((result: string[], line, lineNo) => {
line.split("").map((value, key) => {
if (typeof result[key] === "undefined") {
result[key] = new Array(lineNo + 1).join(" ")
}
const fillColumn: (t: string[], l: string, r: number) => void =
(transposed, fromSource, toColumn) => {
for (let row = 0; row < fromSource.length; row++) {
transposed[row] =
(row in transposed ? transposed[row] : '').padEnd(toColumn) +
fromSource.charAt(row)
}
}

result[key] += value
})
function transpose(lines: string[]): string[] {
const transposed: string[] = []
for (let toColumn = 0; toColumn < lines.length; toColumn++)
fillColumn(transposed, lines[toColumn], toColumn)

return result
}, [])
}
return transposed
}

export default Transpose
export default transpose
76 changes: 49 additions & 27 deletions exercises/transpose/transpose.test.ts
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
import Transpose from "./transpose"
import transpose from "./transpose"

describe("Transpose", () => {
it("empty string", () => {
const expected: string[] = []
expect(Transpose.transpose([])).toEqual(expected)
expect(transpose([])).toEqual(expected)
})

xit("two characters in a row", () => {
const expected = ["A", "1"]
expect(Transpose.transpose(["A1"])).toEqual(expected)
expect(transpose(["A1"])).toEqual(expected)
})

xit("two characters in a column", () => {
const expected = ["A1"]
expect(Transpose.transpose(["A", "1"])).toEqual(expected)
expect(transpose(["A", "1"])).toEqual(expected)
})

xit("simple", () => {
const expected = ["A1", "B2", "C3"]
expect(Transpose.transpose(["ABC", "123"])).toEqual(expected)
expect(transpose(["ABC", "123"])).toEqual(expected)
})

xit("single line", () => {
Expand All @@ -36,7 +36,7 @@ describe("Transpose", () => {
"e",
"."
]
expect(Transpose.transpose(["Single line."])).toEqual(expected)
expect(transpose(["Single line."])).toEqual(expected)
})

xit("first line longer than second line", () => {
Expand All @@ -59,7 +59,7 @@ describe("Transpose", () => {
"."
]
expect(
Transpose.transpose(["The fourth line.", "The fifth line."])
transpose(["The fourth line.", "The fifth line."])
).toEqual(expected)
})

Expand All @@ -83,14 +83,14 @@ describe("Transpose", () => {
" ."
]
expect(
Transpose.transpose(["The first line.", "The second line."])
transpose(["The first line.", "The second line."])
).toEqual(expected)
})

xit("square", () => {
const expected = ["HEART", "EMBER", "ABUSE", "RESIN", "TREND"]
expect(
Transpose.transpose(["HEART", "EMBER", "ABUSE", "RESIN", "TREND"])
transpose(["HEART", "EMBER", "ABUSE", "RESIN", "TREND"])
).toEqual(expected)
})

Expand All @@ -106,7 +106,7 @@ describe("Transpose", () => {
"EDGE"
]
expect(
Transpose.transpose(["FRACTURE", "OUTLINED", "BLOOMING", "SEPTETTE"])
transpose(["FRACTURE", "OUTLINED", "BLOOMING", "SEPTETTE"])
).toEqual(expected)
})

Expand All @@ -120,7 +120,29 @@ describe("Transpose", () => {
" R"
]
expect(
Transpose.transpose(["T", "EE", "AAA", "SSSS", "EEEEE", "RRRRRR"])
transpose(["T", "EE", "AAA", "SSSS", "EEEEE", "RRRRRR"])
).toEqual(expected)
})

xit("jagged triangle", () => {
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Only request I have is to also push this addition to problem-specifications.

  1. generate a uuid (google a generator, generate one, or use configlet uuid if you have configlet)
  2. add it to .meta/tests.toml
  3. PR it to this file.

I'm also in that repo, the process won't be lengthy to get it merged there.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A.) problem-specification pull request: exercism/problem-specifications#1748
In hindsight you specified a range - did you want to replace the "triangle" test with "jagged triangle"?
Because I simply added a new test at the end.

B.) added the uuid to the tests.toml

C.) "package.json are changed from 100644 → 100755"?
It's something that must have happened when I ran through the lint, test, sync, ci-check, ci scripts.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

C) Yeah it was possibly wrong already 💯 . I fixed it :)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A) as you've done it right now looks perfect to me.

const expected = [
"123456",
"1 3456",
" 3456",
" 3 56",
" 56",
" 5"
]

expect(
transpose([
"11",
"2",
"3333",
"444",
"555555",
"66666"
])
).toEqual(expected)
})

Expand Down Expand Up @@ -164,24 +186,24 @@ describe("Transpose", () => {
" 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.",
" ,"
"g,ycoi tkrttet",
"n ,l r s'a anr",
"i ef 'dgcgdi",
"t aol eoe,v",
"y nei sl,u; e",
", .sf to l ",
" e rv d t",
" ; ie o",
" f, r ",
" e e m",
" . m e",
" o n",
" v d",
" e .",
" ,",
]
expect(
Transpose.transpose([
transpose([
"Chor. Two households, both alike in dignity,",
"In fair Verona, where we lay our scene,",
"From ancient grudge break to new mutiny,",
Expand Down
5 changes: 5 additions & 0 deletions exercises/transpose/transpose.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
function transpose(_lines: string[]): string[] {
return []
}

export default transpose
Empty file modified exercises/twelve-days/package.json
100755 → 100644
Empty file.
Empty file modified exercises/two-bucket/package.json
100755 → 100644
Empty file.
Empty file modified exercises/two-fer/package.json
100755 → 100644
Empty file.
Empty file modified exercises/variable-length-quantity/package.json
100755 → 100644
Empty file.
Empty file modified exercises/word-count/package.json
100755 → 100644
Empty file.
Empty file modified exercises/word-search/package.json
100755 → 100644
Empty file.
Empty file modified exercises/wordy/package.json
100755 → 100644
Empty file.