RSS Amplifier

Science and software · May 17, 2021

Testing the Easter program—part 1

0
Sign in to vote or save

Antonis Christofides · Science and software

I’m going to experiment with the Gauss Easter program by trying to make it understandable without comments and without needing to explain it. Before that, I need to write some tests.

The problem is I will be changing the code. How will I know I haven’t broken something? By going to the web interface and trying it out? This would be tedious and wouldn’t work well. Instead, I wrote a few automated tests. All I do now is enter a command on my terminal. It runs the tests, and after two seconds it tells me they passed.

Here are the tests, which you can probably understand easily even if you don’t know this language:

test('earliest possible date', () => {
  expect(getEasterDate(1598)).toEqual([3, 22]);
});
test('latest possible date', () => {
  expect(getEasterDate(1666)).toEqual([4, 25]);
});
test('19 April special case where d = 29 and e = 6', () => {
  expect(getEasterDate(1609)).toEqual([4, 19]);
});
test('non-special 19 April', () => {
  expect(getEasterDate(1615)).toEqual([4, 19]);
});
test('18 April special case where d = 28 and e = 6 and more', () => {
  expect(getEasterDate(1954)).toEqual([4, 18]);
});
test('non-special 18 April', () => {
  expect(getEasterDate(1965)).toEqual([4, 18]);
});
test('correct p', () => {
  expect(getEasterDate(4200)).toEqual([4, 20]);
});

Read the original on antonischristofides.substack.com

Comments

Nothing yet. Say the first thing.

    Sign in to join the conversation.