/*
* This file is part of qpOASES .
*
* qpOASES - - An Implementation of the Online Active Set Strategy .
* Copyright ( C ) 2007 - 2015 by Hans Joachim Ferreau , Andreas Potschka ,
* Christian Kirches et al . All rights reserved .
*
* qpOASES is free software ; you can redistribute it and / or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation ; either
* version 2.1 of the License , or ( at your option ) any later version .
*
* qpOASES is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE .
* See the GNU Lesser General Public License for more details .
*
* You should have received a copy of the GNU Lesser General Public
* License along with qpOASES ; if not , write to the Free Software
* Foundation , Inc . , 51 Franklin Street , Fifth Floor , Boston , MA 02110 - 1301 USA
*
*/
/**
* \ file include / qpOASES_e / UnitTesting . h
* \ author Hans Joachim Ferreau
* \ version 3.1 embedded
* \ date 2014 - 2015
*
* Definition of auxiliary functions / macros for unit testing .
*/
# ifndef QPOASES_UNIT_TESTING_H
# define QPOASES_UNIT_TESTING_H
# ifndef TEST_TOL_FACTOR
# define TEST_TOL_FACTOR 1
# endif
/** Return value for tests that passed. */
# define TEST_PASSED 0
/** Return value for tests that failed. */
# define TEST_FAILED 1
/** Return value for tests that could not run due to missing external data. */
# define TEST_DATA_NOT_FOUND 99
/** Macro verifying that two numerical values are equal in order to pass unit test. */
# define QPOASES_TEST_FOR_EQUAL( x,y ) if ( REFER_NAMESPACE_QPOASES isEqual( (x),(y) ) == BT_FALSE ) { return TEST_FAILED; }
/** Macro verifying that two numerical values are close to each other in order to pass unit test. */
# define QPOASES_TEST_FOR_NEAR( x,y ) if ( REFER_NAMESPACE_QPOASES getAbs((x)-(y)) / REFER_NAMESPACE_QPOASES getMax( 1.0,REFER_NAMESPACE_QPOASES getAbs(x) ) >= 1e-10 ) { return TEST_FAILED; }
/** Macro verifying that first quantity is lower or equal than second one in order to pass unit test. */
# define QPOASES_TEST_FOR_TOL( x,tol ) if ( (x) > (tol)*(TEST_TOL_FACTOR) ) { return TEST_FAILED; }
/** Macro verifying that a logical expression holds in order to pass unit test. */
# define QPOASES_TEST_FOR_TRUE( x ) if ( (x) == 0 ) { return TEST_FAILED; }
BEGIN_NAMESPACE_QPOASES
END_NAMESPACE_QPOASES
# endif /* QPOASES_UNIT_TESTING_H */
/*
* end of file
*/