Hi everyone. Welcome back. A test case expresses requirements for a program in a way that can be checked automatically. It expresses what some objects value should be at a specific spot in the program execution. There are several reasons why it's a good habit to write test cases. First, writing down test cases forces us to be more concrete about what the program should do. It's hard to correctly implement a program if you're not completely clear about what that program ought to be doing. Second, test cases can give you feedback as you're writing the code. Actually, you've already experienced that with the autograders that gave you feedback in some of the active code windows. We wrote those test cases. Now, you'll get to write your own. Third, writing test cases is a good preview of the unit testing practice that is used on pretty much all larger software projects. When there's a lot of code and many contributors, the project really needs to know when my code is breaking some other function that was calling it. So, big projects will have tens of thousands of unit tests, and they all get run every time someone tries to contribute any change to any of the code. We have previously suggested that it's a good idea to first write down comments about what your code is supposed to do before actually writing the code. You can think of writing test cases as basically an extension of that advice. Instead of just writing a human-readable comment, you write a computer executable test case. For example, before writing the code to implement a function, you'd write a few test cases that check whether the function returns the right kind of object, whether it's returning the correct values when invoked on particular inputs. At the end of this lesson, you should be able to, first, use the test.textequal function to express test cases. Second, you should be able to identify when a return value test is needed and when a side effect tests is needed, and you should be able to identify and express edge cases for functions and for class definitions. I'll see you at the end. Bye for now.