
#include <gm/functions/inverse.h>
#include <gm/functions/matrixProduct.h>

template < typename MatrixT >
void CHECK_INVERSE( const MatrixT& i_matrix )
{
    MatrixT identity;
    gm::SetIdentity( identity );
    MatrixT inverse;
    CHECK( gm::Inverse( i_matrix, inverse ) );
    CHECK( gm::MatrixProduct( i_matrix, inverse ) == identity );
    CHECK( gm::MatrixProduct( inverse, i_matrix ) == identity );