Skip to content
Open
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
14 changes: 12 additions & 2 deletions src/format.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,17 @@
export function formatCurrency(amount: number) {
return `$${amount.toFixed(2)}`;
export function formatCurrency(amount: number, currency = "USD") {
return new Intl.NumberFormat("en-US", {
style: "currency",
currency,
}).format(amount);
}

export function formatPercent(value: number) {
return `${(value * 100).toFixed(1)}%`;
}

export function formatNumber(value: number, decimals = 2) {
return new Intl.NumberFormat("en-US", {
minimumFractionDigits: decimals,
maximumFractionDigits: decimals,
}).format(value);
}
7 changes: 5 additions & 2 deletions src/math.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,16 @@ export function add(a: number, b: number) {
}

export function subtract(a: number, b: number) {
return a + b; // bug: should be a - b
return a - b;
}

export function multiply(a: number, b: number) {
return a * b + 1; // bug: off by one
return a * b;
}

export function divide(a: number, b: number) {
if (b === 0) {
throw new Error("division by zero");
}
return a / b;
}
4 changes: 0 additions & 4 deletions src/old-module.ts

This file was deleted.

11 changes: 11 additions & 0 deletions src/validate.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
export function isPositive(n: number) {
return n > 0;
}

export function isInRange(value: number, min: number, max: number) {
return value >= min && value <= max;
}

export function isInteger(n: number) {
return Number.isInteger(n);
}
4 changes: 4 additions & 0 deletions test/math.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,8 @@ describe("math", () => {
it("divides", () => {
expect(divide(10, 2)).toBe(5);
});

it("throws on division by zero", () => {
expect(() => divide(1, 0)).toThrow("division by zero");
});
});