2023-02-01 15:53:54 -08:00
|
|
|
const caesar = require('./caesar-solution');
|
2022-02-20 11:07:44 -08:00
|
|
|
|
2023-02-01 15:53:54 -08:00
|
|
|
test('works with single letters', () => {
|
|
|
|
expect(caesar('A', 1)).toBe('B');
|
2022-02-20 11:07:44 -08:00
|
|
|
});
|
2023-02-01 15:58:58 -08:00
|
|
|
test('works with words', () => {
|
2023-02-01 15:53:54 -08:00
|
|
|
expect(caesar('Aaa', 1)).toBe('Bbb');
|
2022-02-20 11:07:44 -08:00
|
|
|
});
|
2023-02-01 15:58:58 -08:00
|
|
|
test('works with phrases', () => {
|
2023-02-01 15:53:54 -08:00
|
|
|
expect(caesar('Hello, World!', 5)).toBe('Mjqqt, Btwqi!');
|
2022-02-20 11:07:44 -08:00
|
|
|
});
|
2023-02-01 15:58:58 -08:00
|
|
|
test('works with negative shift', () => {
|
2023-02-01 15:53:54 -08:00
|
|
|
expect(caesar('Mjqqt, Btwqi!', -5)).toBe('Hello, World!');
|
2022-02-20 11:07:44 -08:00
|
|
|
});
|
2023-02-01 15:58:58 -08:00
|
|
|
test('wraps', () => {
|
2023-02-01 15:53:54 -08:00
|
|
|
expect(caesar('Z', 1)).toBe('A');
|
2022-02-20 11:07:44 -08:00
|
|
|
});
|
2023-02-01 15:58:58 -08:00
|
|
|
test('works with large shift factors', () => {
|
2023-02-01 15:53:54 -08:00
|
|
|
expect(caesar('Hello, World!', 75)).toBe('Ebiil, Tloia!');
|
2022-02-20 11:07:44 -08:00
|
|
|
});
|
2023-02-01 15:58:58 -08:00
|
|
|
test('works with large negative shift factors', () => {
|
2023-02-01 15:53:54 -08:00
|
|
|
expect(caesar('Hello, World!', -29)).toBe('Ebiil, Tloia!');
|
2022-02-20 11:07:44 -08:00
|
|
|
});
|