Skip to content

Commit

Permalink
Utility for number ranges
Browse files Browse the repository at this point in the history
  • Loading branch information
cwegrzyn committed May 17, 2024
1 parent 7d9f37f commit 23f298e
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 0 deletions.
15 changes: 15 additions & 0 deletions src/utils/numbers.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import { numberRange } from "./numbers";

describe("numberRange", () => {
it("lists numbers in positive range", () => {
expect(numberRange(0, 5)).toEqual([0, 1, 2, 3, 4, 5]);
});

it("lists numbers in negative range", () => {
expect(numberRange(-5, 5)).toEqual([-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5]);
});

it("lists numbers when from/to are backwards", () => {
expect(numberRange(5, 0)).toEqual([0, 1, 2, 3, 4, 5]);
});
});
9 changes: 9 additions & 0 deletions src/utils/numbers.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
/** Generate array with integers between `from` and `to`. */
export function numberRange(from: number, to: number): number[] {
if (from > to) {
[to, from] = [from, to];
}
return Array(to - from + 1)
.fill(0)
.map((_, i) => from + i);
}

0 comments on commit 23f298e

Please sign in to comment.