Skip to content

Commit c26806d

Browse files
authored
Merge pull request #203 from karczewskiPiotr/fix-matrix-toArray
Fix Matrix.toArray
2 parents 2937268 + e240a1b commit c26806d

2 files changed

Lines changed: 25 additions & 2 deletions

File tree

src/matrix.test.ts

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,9 +177,32 @@ describe("Matrix.toArray()", () => {
177177
...EXAMPLE_MATRIX[1],
178178
...EXAMPLE_MATRIX[2],
179179
];
180-
test("Flattens matrix values to an array", () => {
180+
test("Flattens square matrix values to an array", () => {
181181
expect(Matrix.toArray(EXAMPLE_MATRIX)).toEqual(flattedMatrix);
182182
});
183+
test("Flattens horizontal matrix values to an array", () => {
184+
expect(
185+
Matrix.toArray([
186+
[1, 2, 3],
187+
[4, 5, 6],
188+
])
189+
).toEqual([1, 2, 3, 4, 5, 6]);
190+
});
191+
test("Flattens vertical matrix values to an array", () => {
192+
expect(
193+
Matrix.toArray([
194+
[1, 2],
195+
[3, 4],
196+
[5, 6],
197+
])
198+
).toEqual([1, 2, 3, 4, 5, 6]);
199+
});
200+
test("Flattens column matrix values to an array", () => {
201+
expect(Matrix.toArray([[1], [2], [3]])).toEqual([1, 2, 3]);
202+
});
203+
test("Flattens row matrix values to an array", () => {
204+
expect(Matrix.toArray([[1, 2, 3]])).toEqual([1, 2, 3]);
205+
});
183206
test("Transforms matrix values and collects them to an array", () => {
184207
const transform = (value: number | undefined) => value && value * 2;
185208
expect(

src/matrix.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ export function toArray<T1, T2>(
236236
) {
237237
const array = [];
238238
for (let row = 0; row < matrix.length; row++) {
239-
for (let column = 0; column < matrix.length; column++) {
239+
for (let column = 0; column < matrix[row].length; column++) {
240240
const value = matrix[row][column];
241241
array.push(transform ? transform(value, { row, column }) : value);
242242
}

0 commit comments

Comments
 (0)