Execution with the Assistant
The ALE simulator supports the use of execution assistants that automatically run one or more tests with the loaded code and produce a report with information about the submitted code and the results of the tests.
Overview of the Execution Assistant
The assistant is encoded in the URL that points to the simulator. This link, for example, contains the address of the simulator and the code for an assistant that is loaded when the simulator is opened. You can click the link and inspect the menu that appears after clicking the arrow next to the RUN button. Figure 3.2.1 illustrates accessing the debugging assistant.

Figure 3.2.1: Accessing the Assistant in the ALE Simulator.
When you click on the Assistant button, the simulator will open a window with information about the debugging assistant. The information provided depends on the specific assistant. Figure 3.2.2 shows the assistant loaded from the link above. Note that it includes the RUN TESTS button, which is used to start the tests.

Figure 3.2.2: Example of a window with assistant information. In this case, the assistant contains three tests: 1. Addition, 2. Subtraction and 3. Multiplication.
Running a program with the execution assistant
To test your program with the debugging assistant, simply open the simulator with a link that includes an assistant (such as this one), load your program into the simulator (see Chapter 3.1), and click the RUN TESTS button in the assistant's window. Figure 3.2.3 shows an example where the assistant is running tests with the loaded program. In this case, the program produced the correct results for tests 1 (Addition) and 2 (Subtraction) and is currently being executed with test 3.

Figure 3.2.3:Example of test execution with the assistant.
Some assistants provide an option to download a report with the test results at the end of the testing process. Figure 3.2.4 shows an example where, after the tests are completed, the assistant displays the score and provides a link to retrieve the report.

Figure 3.2.4: Example of test execution.