 For this example, I'm going to be building a test suite for a Fibonacci function. Again, like the previous example, this is going to involve creating a number of function calls to both my Fibonacci function as well as to some of my test suite functions. So to start with, I have one test here where I'm just testing that Fibonacci of 0 is in fact a 0. So if I go ahead and run this 1, then I see that yes, my function is working correctly. It says that Fibonacci of 0 is 0. But to do more with this, I'm going to need to make a few more of these function calls. So for test number 2, I know that Fibonacci of 1 is 1. And the first thing I need to do for my test is to call my set saved registers function. This is going to help to make sure that my function isn't doing anything it's not supposed to. If it's using the saved registers, it knows to restore them before it returns. Next, I need to set up my function call to my Fibonacci function. It has one parameter that goes in A0, which is just the number. So Fibonacci of 1 this time. And then I can call my Fibonacci function. Once it returns, it should have put its results in V0. So I will copy those to A0 as the first parameter for my assertion function. Second parameter to my assertion function is the expected result, which in this case is 1. The third parameter is the test number. In this case, it's test number 2. And then for the fourth parameter, it expects some description of the test that I've just drawn. Once I've got that information, then I can call the assert equal integer function because I'm comparing two integers. And finally, I need to give it the actual description of this test. Now that I've saved that, I can go over here, load that up, and run it again. So I get that my Fibonacci function correctly calculated that Fibonacci of 1 is 1. But if I'm not completely convinced that my function is working correctly, then I probably want to generate a few more tests. I'm going to use my previous test as a form. And I'm really just going to worry about filling out all those parameters that I'm generating each time. So I'm going to run three more of these. Fibonacci of 3 will be the number 2, which is 1 plus 0, so that should also be 1. Test 4 will be Fibonacci 3, which is 1 plus 1, which is 2. Test 5 is Fibonacci of 4, which is 1 plus 2, which is 3. So now I just need to go through and fill in all the parameters for my functions. I'm calling Fibonacci of 4 here, and I expect that to be equal to 3. That's test number 5, and I'll fill in my description. Then I'll go do test 4, which is Fibonacci of 3. That should be 2. Test number 4. Then Fibonacci of 3 is equal to 2. Finally, for test number 3, Fibonacci of 2 should give me 1. Test number 3, Fibonacci of 2 is 1. Now I have five tests, lots of function calls. If I load this and I run it, then it runs my Fibonacci function five different times, five different parameters, and we get the results that we expected. If you're not quite convinced the function is in fact working and it's not just automatically accepting everything, we can put something else in for the expected result for, say, test number 2 there. Then if we run that, the test suite tells us that no, test number 2 is incorrectly expected to get 42, but the function actually returned 1. So all of our function calls are doing exactly what we expect. They're returning the results that we expect, but we really just have a number of function calls here. As before, for each of these function calls, we need to set up its parameters and then use the results in other ways as we need. So the set safe registers function doesn't have any parameters, it doesn't have any results, so we can just call it and get it to do its work. The Fibonacci function, though, takes one parameter, then we call the function, and then we can use its results. In this case, we copy them to A0 so that they can be the first parameter for the assert equal integer function. This is a function that takes four parameters and doesn't return any results. And to set this up, we're just putting all four parameters into A0 through A3 and then calling the function using jump and link.