-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsqrt.test.ts
More file actions
42 lines (34 loc) · 1.12 KB
/
sqrt.test.ts
File metadata and controls
42 lines (34 loc) · 1.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import sqrt from "../src/sqrt";
describe("sqrt function", () => {
test("should compute square root of perfect squares", () => {
expect(sqrt("4")).toBe("2");
expect(sqrt("9")).toBe("3");
expect(sqrt("16")).toBe("4");
});
test("should handle zero", () => {
expect(sqrt("0")).toBe("0");
expect(sqrt("0.0")).toBe("0");
});
test("should handle one", () => {
expect(sqrt("1")).toBe("1");
expect(sqrt("1.0")).toBe("1");
});
test("should compute square root with precision", () => {
const result = sqrt("2", 10);
expect(result.substring(0, 12)).toBe("1.4142135623");
});
test("should handle large numbers", () => {
const result = sqrt("100");
expect(result).toBe("10");
});
test("should handle decimal numbers", () => {
const result = sqrt("0.25");
expect(result).toBe("0.5");
});
test("should throw error for negative numbers", () => {
expect(() => sqrt("-4")).toThrow("Cannot compute square root of negative number");
});
test("should throw error for non-string input", () => {
expect(() => sqrt(4 as any)).toThrow("Input must be a string");
});
});