https://cmcsforge.epfl.ch/attachments/download/151/jellyfish_small.png 2. Use type definitions at the beginning of the class to introduce more generality in the code. The syntax for types and pointer types is the following: typedef Epetra_FEVector vector_Type; typedef const Epetra_FEVector vectorConst_Type; typedef std::shared_ptr< vector_Type > vectorPtr_Type; typedef std::shared_ptr< vector_constType > vectorConstPtr_Type; typedef std::map::iterator mapIterator_Type; typedef std::map::const_iterator mapConstIterator_Type; ### How to add a test in the testsuite (OLD) The first step to add a new test in the testsuite is the creation of a new folder, with the name `test_NameOfTheTest`. Inside the folder, at least these files should be present: main.cpp : : the main file for the test, containing information about the test and a doxygen description of its purposes. A template for this file is provided in appendix \[main\]. Makefile.am : : the makefile of the test. A template for this file is provided in appendix \[Makefileam\]. **NOTE:** To enable the automatic compilation of the test, it is necessary to add a line in the `Makefile.am` file placed in the main testsuite folder. data.txt : : the data file(s) for the test, which should be a significant case. This data file is used when a manual execution of the test is performed. testsuite.at : : the configure file for the night test, which could contain the same test as the one in the `data.txt`, or a different one. A template for this file is provided in appendix \[testsuiteat\]. **NOTE:** To enable the night execution of the test, it is necessary to add a line inside the `Makefile.am` and `testsuite.at` files placed in the main testsuite folder. Note that `data.txt` and `testsuite.at` are independent. The test should verify both the compilation and execution of the test. For this second task, it is necessary to place a check at the end of the main file. The check could consist in a tolerance test (for a numeric comparison of the obtained result with the expected one), or a flag check. Here there is an example: Real tolerance = 1.e-10; if ( tolerance > result ) return EXIT_FAILURE; else return EXIT_SUCCESS; Please also note that the testsuite is not the right place for applications. The testsuite has the purpose to test classes and packages with simple tests. Moreover, the tests should be no longer than $5$ minutes, to allow a quick check of the library before committing new software.