Skip to content

Commit 210820b

Browse files
committed
feat: throw RangeError when interleaved data length is odd
1 parent 80a3695 commit 210820b

2 files changed

Lines changed: 11 additions & 0 deletions

File tree

src/xy/__tests__/xyFromInterleaved.test.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,9 @@ test('empty array', () => {
2222
y: new Float64Array(0),
2323
});
2424
});
25+
26+
test('odd length throws', () => {
27+
expect(() => xyFromInterleaved([1, 2, 3])).toThrow(
28+
/data length must be even/,
29+
);
30+
});

src/xy/xyFromInterleaved.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@ import type { DataXY } from 'cheminfo-types';
88
export function xyFromInterleaved(
99
data: number[] | Float64Array,
1010
): DataXY<Float64Array> {
11+
if (data.length % 2 !== 0) {
12+
throw new RangeError(
13+
`xyFromInterleaved: data length must be even, got ${data.length}`,
14+
);
15+
}
1116
const length = data.length / 2;
1217
const x = new Float64Array(length);
1318
const y = new Float64Array(length);

0 commit comments

Comments
 (0)