Info: Check-Expects

The importance of check-expects.

Importance of Checks

Good check-expects give you a road map to write your function. Check-expects should be correct based on the purpose of your function, not its current behavior.

  • A working function should pass all of its check-expects.
  • A function that does not do what it is supposed to do should fail some check-expect.
  • A function that sometimes gives the right answer and sometimes gives the wrong answer should pass some check-expects but not all of them.

The idea of check-expects is important because when you are working with more complex and possibly buggy functions (later in the course), the specification (“check-expect”) can be written first, then you can test to see your progress in completing the goals you set (so it is not all or nothing).

Five example check-expect ideas from checkers that build in complexity:

  • is it legal to move diagonally to an empty square?
  • is it illegal to move diagonally to an occupied square?
  • is it legal to jump a single opponent’s piece?
  • is it illegal to jump your own piece?
  • is it illegal to jump off the board?

A programmer might start by allowing any move to an adjacent square, then put in rules that the square had to be unoccupied, then allow jumping, etc.

Last modified August 18, 2023: 2022-2023 End State (7352e87)