Matrix Template Library Nightly Test Scoreboard

  |   Home   |   Documentation   |  

Here we present a table of test results generated automatically by a nightly script. The script comprehensively tests compilation and execution of MTL on all currently supported platforms. Although MTL itself is reasonable in size, there are a combinatorial number of data structures that can be constructed from MTL components, as well as a combinatorial number of algorithm / data structure combinations.

We test as many of these combinations as we can. Presently, there are well over 350,000 separate tests invoked as part of the test suite.

About the Tests

The following components are included in the testing process.
Element types
complex<double>, double
Rectangular storage
array<linked_list>, array< compressed<> >, array<sparse_pair>, array<tree>, array< dense<> >, dense<>, compressed<>
Banded shapes
symmetric<lower>, symmetric<upper>, diagonal<>, triangle<lower>, triangle<unit_lower>, triangle<upper>, triangle<unit_upper>, banded<>
Banded storage
packed<>, array< dense<> >, banded<>, banded_view<>
Orientations
row_major,column_major

The test script tests all combinations of the above rectangular storage types, orientation, and element types as well as all combinations of banded shapes, banded storage, orientations, and element types.

For each matrix type, the script builds a test program that tests all of the MTL algorithms that are applicable to that type (approximately 50 test routines for each data type). The test program also tests for proper operation of all class member functions and member data.

Each test program is compiled with the flags for maximum language pickiness enabled for each corresponding compiler - with one exception. The Microsoft compiler does not have maximum pickiness enabled because it emits numerous warnings from code in its own header files.

Test Results

Currently, these test results may be somewhat less than nightly. We are currently fighting with AFS (such a blessing, such a curse) to get it to cooperate properly with cron. In the meantime, the tests are being run by hand.