Note: we are changing the functional test for the 2011 edition.

The functional test is performed on the final code that you hand in. It consists of a number of secret Joos 1 programs, most quite simple, some more complicated, and a few quite fiendish. Each error-free program that produces the correct output, when compiled with your compiler, awards you points. Each erroneous program that you correctly reject also awards you points. Note that the functional test contains a majority of positive cases.

You are also allowed to select a hate phase, which is the one that you think will cause you the most problems. If your compiler fails a particular functional test program (by rejecting a correct program or producing the wrong result, or by accepting an erroneous program), we will try again without using your hate phase. If the program then produces the correct output, you will receive a reduced number of points.