 For this example, we're going to look at making some function calls to a factorial function. Up at the top here, I have a factorial function. That hopefully computes the right results. And I'm going to use this test suite. Generate some tests. And I'm going to have a whole bunch of function calls. We're going to make a number of calls to our factorial function. We'll give it some parameters. And we're going to compare the results to what we expect to see. And let the test suite show us whether or not our function actually works. So I've already written one function, which is really simple. It just checks that zero factorial equals one. Just to make sure everything is working, I will load this up and run it. And the results say that test one passed. Zero factorial was equal to one, just as we expected. But now we're going to go through and make some more of these. Make some new tests and try some new values with it. So for test number two, I'll do something cover so slightly harder, which is that one factorial should also equal one. So the first line here serves to set up the save register. And it's going to make sure that the function isn't doing anything that it's not supposed to. If the function changes any of the saved registers, then it should restore them before it's done. With this test suite, the set saved registers function will help us to do that. Next thing I'm doing is I'm setting up my parameter for my function. I want to compute factorial of one, so I'm putting one in for my first parameter. Then I will call my factorial function. When it returns, the result should be in register v zero. So I'm going to move them to register a zero so I can make a function call to one of the test suite assertions. It expects to get the observed value for my function in a zero. A one should have the expected value that I should get for my computation. A two contains the number of the test, so this is test number two. A three contains a pointer to the A string describing what this test does. Since I've got two integers and I want to show that they are equal, I'm going to use the assert equal integer function. Last I'm actually going to enter that string that it will print out from my description. And we'll try this test as well. So now it's run two tests, both of them passed. Once I've done this a couple of times, I may decide I don't really want to type all of this again. So for test three, well, two factorial should be two. I will put in a two for my parameter for my factorial call. My result should be two. This is test three, and I'll have a new description for test three as well. If I generate a test four, well, I might have three factorial now, which is six. So I can put in three for my factorial parameter, six for my expected result. And then this is test number four with a corresponding description. I have a test five, test six, and even a test seven. So again, first thing I'm going to do is set up my initial factorial call, putting six in for my parameter, and then calling factorial. Then my second function call is to the assert equal integer. I'm putting the result in a zero, the expected value in a one. My test number in a two, then the description of that test goes in a three. So I will go through and fill out the rest of these, and then we'll see how these work. So I ran them and all seven of my tests passed. So this is an example where we are calling a few different functions. We have, we're calling the set saved registers function. It didn't have any parameters, didn't have any return values. It just did some work for us. Then I'm calling the factorial function, which required me to set up one parameter. And then I'm using the assert equal integer function, which required me to set up four parameters. Each time I just make sure my parameters are in a zero through a three as needed. And then I use jump and link to call my actual function.