ConstrainedOptPack: C++ Tools for Constrained (and Unconstrained) Optimization
Version of the Day
|
Testing class for DecompositionSystem
interface.
More...
#include <ConstrainedOptPack_DecompositionSystemTester.hpp>
Public Member Functions | |
DecompositionSystemTester (EPrintTestLevel print_tests=PRINT_NOT_SELECTED, bool dump_all=false, bool throw_exception=true, size_type num_random_tests=1, value_type mult_warning_tol=1e-14, value_type mult_error_tol=1e-8, value_type solve_warning_tol=1e-14, value_type solve_error_tol=1e-8) | |
Constructor (default options) More... | |
bool | test_decomp_system (const DecompositionSystem &decomp_sys, const MatrixOp &Gc, const MatrixOp *Z, const MatrixOp *Y, const MatrixOpNonsing *R, const MatrixOp *Uz, const MatrixOp *Uy, std::ostream *out) |
Test a DecompositionSystem object after DecompositionSystem::update_basis() is called. More... | |
Set and access options | |
enum | EPrintTestLevel { PRINT_NOT_SELECTED =0, PRINT_NONE =1, PRINT_BASIC =2, PRINT_MORE =3, PRINT_ALL =4 } |
STANDARD_MEMBER_COMPOSITION_MEMBERS (EPrintTestLevel, print_tests) | |
Set the level of output produced durring tests. More... | |
STANDARD_MEMBER_COMPOSITION_MEMBERS (bool, dump_all) | |
Set whether matrices, vectors ect. are printed (warning, this may be a lot of output for larger systems). More... | |
STANDARD_MEMBER_COMPOSITION_MEMBERS (bool, throw_exception) | |
Set whether an exception that is thrown is thrown clear out of the testing function or not. More... | |
STANDARD_MEMBER_COMPOSITION_MEMBERS (size_type, num_random_tests) | |
Set the number of random test cases created. More... | |
STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, mult_warning_tol) | |
Set the relative tolerance for numerical tests of matrix-vector multiplication above which to print a warning. More... | |
STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, mult_error_tol) | |
Set the relative tolerance for numerical tests of matrix-vector multiplication above which to return false from the testing function. More... | |
STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, solve_warning_tol) | |
Set the relative tolerance for numerical tests of matrix-vector solves above which to print a warning. More... | |
STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, solve_error_tol) | |
Set the relative tolerance for numerical tests of matrix-vector solves above which to return false from the testing function. More... | |
Testing class for DecompositionSystem
interface.
This testing class is basically a unit tester for DecompositionSystem
. The method test_decomp_system()
runs many different tests to validate the interface and the matrix objects associated with the interface. The method test_decomp_system()
should only be called after decomp_sys.update_decomp(...)
is called on the DecompositionSystem
object decomp_sys
. The output decomposition matrices are passed through a series of tests. The compatibility of the matrices described in the postconditions for DecompositionSytem::update_decomp()
are also checked in a series of tests. If the method test_decomp_system()
returns true
, then the client can feel fairly confident that the things are functioning properly (but this is not guaranteed of course).
The tests performed by this testing class are designed to allow some validation for even the largest systems and will produce various levels of output so as to be usefull in debugging.
ToDo: Finish documentation!
Definition at line 69 of file ConstrainedOptPack_DecompositionSystemTester.hpp.
Definition at line 76 of file ConstrainedOptPack_DecompositionSystemTester.hpp.
ConstrainedOptPack::DecompositionSystemTester::DecompositionSystemTester | ( | EPrintTestLevel | print_tests = PRINT_NOT_SELECTED , |
bool | dump_all = false , |
||
bool | throw_exception = true , |
||
size_type | num_random_tests = 1 , |
||
value_type | mult_warning_tol = 1e-14 , |
||
value_type | mult_error_tol = 1e-8 , |
||
value_type | solve_warning_tol = 1e-14 , |
||
value_type | solve_error_tol = 1e-8 |
||
) |
Constructor (default options)
Definition at line 62 of file ConstrainedOptPack_DecompositionSystemTester.cpp.
ConstrainedOptPack::DecompositionSystemTester::STANDARD_MEMBER_COMPOSITION_MEMBERS | ( | EPrintTestLevel | , |
print_tests | |||
) |
Set the level of output produced durring tests.
ConstrainedOptPack::DecompositionSystemTester::STANDARD_MEMBER_COMPOSITION_MEMBERS | ( | bool | , |
dump_all | |||
) |
Set whether matrices, vectors ect. are printed (warning, this may be a lot of output for larger systems).
ConstrainedOptPack::DecompositionSystemTester::STANDARD_MEMBER_COMPOSITION_MEMBERS | ( | bool | , |
throw_exception | |||
) |
Set whether an exception that is thrown is thrown clear out of the testing function or not.
ConstrainedOptPack::DecompositionSystemTester::STANDARD_MEMBER_COMPOSITION_MEMBERS | ( | size_type | , |
num_random_tests | |||
) |
Set the number of random test cases created.
ConstrainedOptPack::DecompositionSystemTester::STANDARD_MEMBER_COMPOSITION_MEMBERS | ( | value_type | , |
mult_warning_tol | |||
) |
Set the relative tolerance for numerical tests of matrix-vector multiplication above which to print a warning.
ConstrainedOptPack::DecompositionSystemTester::STANDARD_MEMBER_COMPOSITION_MEMBERS | ( | value_type | , |
mult_error_tol | |||
) |
Set the relative tolerance for numerical tests of matrix-vector multiplication above which to return false
from the testing function.
ConstrainedOptPack::DecompositionSystemTester::STANDARD_MEMBER_COMPOSITION_MEMBERS | ( | value_type | , |
solve_warning_tol | |||
) |
Set the relative tolerance for numerical tests of matrix-vector solves above which to print a warning.
ConstrainedOptPack::DecompositionSystemTester::STANDARD_MEMBER_COMPOSITION_MEMBERS | ( | value_type | , |
solve_error_tol | |||
) |
Set the relative tolerance for numerical tests of matrix-vector solves above which to return false
from the testing function.
bool ConstrainedOptPack::DecompositionSystemTester::test_decomp_system | ( | const DecompositionSystem & | decomp_sys, |
const MatrixOp & | Gc, | ||
const MatrixOp * | Z, | ||
const MatrixOp * | Y, | ||
const MatrixOpNonsing * | R, | ||
const MatrixOp * | Uz, | ||
const MatrixOp * | Uy, | ||
std::ostream * | out | ||
) |
Test a DecompositionSystem
object after DecompositionSystem::update_basis()
is called.
decomp_sys | [in] The DecompositionSystem object that DecompositionSystem::update_basis() was called on. |
Gc | [in] Must be matrix that was passed to decomp_sys.update_decomp(Gc,...) . |
Z | [in] Must be matrix that was passed to and returned from decomp_sys.update_decomp(...,Z,...) . |
Y | [in] Must be matrix that was passed to and returned from decomp_sys.update_decomp(...,Y,...) . |
R | [in] Must be matrix that was passed to and returned from decomp_sys.update_decomp(...,R,...) . |
Uz | [in] If Uz!=NULL then Must be matrix that was passed to and returned from decomp_sys.update_decomp(...,Uz,...) . |
Uy | [in] If Uy!=NULL then Must be matrix that was passed to and returned from decomp_sys.update_decomp(...,Uy,...) . |
out | [in/out] If out != NULL any and all output will be sent here. If out == NULL then no output will be produced. |
true
if all of the tests checked out and no unexpected exceptions were thrown.The behavior of this method depends on a set of options and the input arguments.
throw_exception(bool)
: If throw_exception()
== true, then if any of the objects within this function throw exceptions, these exceptions will be be thrown clean out of this function for the caller to handle. If throw_exception()
== false, then if any object throws an exception, the exception is caught and this this function will return false
. In any case an error message will be printed to *out
(if out != NULL</tt) before leaving the function (by return
or throw
).
dump_all(bool)
: If dump_all() == true
then all of the computed quantities will but dumped to out
. Note that this is a useful option for initial debugging of small systems but not a good idea for larger systems as it will result in an excessive amount of output.
ToDo: Add rest of options!
Definition at line 82 of file ConstrainedOptPack_DecompositionSystemTester.cpp.