-
Notifications
You must be signed in to change notification settings - Fork 31.1k
Expand file tree
/
Copy pathcatalanNumber.test.js
More file actions
27 lines (24 loc) · 992 Bytes
/
catalanNumber.test.js
File metadata and controls
27 lines (24 loc) · 992 Bytes
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
import catalanNumber from '../catalanNumber';
describe('catalanNumber', () => {
it('should calculate Catalan numbers correctly', () => {
expect(catalanNumber(0)).toBe(1);
expect(catalanNumber(1)).toBe(1);
expect(catalanNumber(2)).toBe(2);
expect(catalanNumber(3)).toBe(5);
expect(catalanNumber(4)).toBe(14);
expect(catalanNumber(5)).toBe(42);
expect(catalanNumber(6)).toBe(132);
expect(catalanNumber(7)).toBe(429);
expect(catalanNumber(8)).toBe(1430);
expect(catalanNumber(9)).toBe(4862);
expect(catalanNumber(10)).toBe(16796);
});
it('should throw error for negative numbers', () => {
expect(() => catalanNumber(-1)).toThrow('Catalan number is not defined for negative numbers');
expect(() => catalanNumber(-10)).toThrow('Catalan number is not defined for negative numbers');
});
it('should handle larger numbers', () => {
expect(catalanNumber(15)).toBe(9694845);
expect(catalanNumber(20)).toBe(6564120420);
});
});