Skip to content

Commit e4da94e

Browse files
committed
Fix/add tangent tests
1 parent 7d55e0b commit e4da94e

File tree

1 file changed

+37
-5
lines changed

1 file changed

+37
-5
lines changed

src/calculator/internal/evaluator.spec.ts

+37-5
Original file line numberDiff line numberDiff line change
@@ -180,11 +180,6 @@ describe("Using degrees", () => {
180180
if (result.isErr()) expect.unreachable(`Could not use the answer register: (${result.error})`);
181181
expect(result.value.toNumber()).toBeCloseTo(0);
182182
}
183-
{
184-
const result = evaluate([t.tan, t.lbrk, litr(90), t.rbrk], d(0), d(0), "deg");
185-
if (result.isErr()) expect.unreachable(`Could not use the answer register: (${result.error})`);
186-
expect(result.value.toNumber()).toBe(-707106781186547.5);
187-
}
188183
});
189184
test("45°", () => {
190185
{
@@ -305,3 +300,40 @@ describe("Syntax Errors", () => {
305300
[t.sin, t.lbrk, t.sin, t.lbrk, litr(10), t.rbrk],
306301
]);
307302
});
303+
304+
describe("Tangent errors", () => {
305+
test("90°", () => {
306+
const result = evaluate([t.tan, t.lbrk, litr(90), t.rbrk], d(0), d(0), "deg");
307+
expect(result.isErr()).toBe(true);
308+
});
309+
test("90° + 180°", () => {
310+
const result = evaluate([t.tan, t.lbrk, litr(90), t.add, litr(180), t.rbrk], d(0), d(0), "deg");
311+
expect(result.isErr()).toBe(true);
312+
});
313+
test("90° - 180°", () => {
314+
const result = evaluate([t.tan, t.lbrk, litr(90), t.sub, litr(180), t.rbrk], d(0), d(0), "deg");
315+
expect(result.isErr()).toBe(true);
316+
});
317+
test("90° + 50_000 × 180°", () => {
318+
const result = evaluate(
319+
[t.tan, t.lbrk, litr(90), t.add, litr(50_000), t.mul, litr(180), t.rbrk],
320+
d(0),
321+
d(0),
322+
"deg"
323+
);
324+
expect(result.isErr()).toBe(true);
325+
});
326+
test("90° + 50_000.1 × 180°", () => {
327+
const result = evaluate(
328+
[t.tan, t.lbrk, litr(90), t.add, litr(50_000.1), t.mul, litr(180), t.rbrk],
329+
d(0),
330+
d(0),
331+
"deg"
332+
);
333+
expect(result.isErr()).toBe(false);
334+
});
335+
test("90° + 0.001 × 180°", () => {
336+
const result = evaluate([t.tan, t.lbrk, litr(90), t.add, litr(0.001), t.mul, litr(180), t.rbrk], d(0), d(0), "deg");
337+
expect(result.isErr()).toBe(false);
338+
});
339+
});

0 commit comments

Comments
 (0)