Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include "main.h"
00026
00027 template<typename MatrixType> void verifySizeOf(const MatrixType&)
00028 {
00029 typedef typename MatrixType::Scalar Scalar;
00030 if (MatrixType::RowsAtCompileTime!=Dynamic && MatrixType::ColsAtCompileTime!=Dynamic)
00031 VERIFY(sizeof(MatrixType)==sizeof(Scalar)*size_t(MatrixType::SizeAtCompileTime));
00032 else
00033 VERIFY(sizeof(MatrixType)==sizeof(Scalar*) + 2 * sizeof(typename MatrixType::Index));
00034 }
00035
00036 void test_sizeof()
00037 {
00038 CALL_SUBTEST(verifySizeOf(Matrix<float, 1, 1>()) );
00039 CALL_SUBTEST(verifySizeOf(Matrix4d()) );
00040 CALL_SUBTEST(verifySizeOf(Matrix<double, 4, 2>()) );
00041 CALL_SUBTEST(verifySizeOf(Matrix<bool, 7, 5>()) );
00042 CALL_SUBTEST(verifySizeOf(MatrixXcf(3, 3)) );
00043 CALL_SUBTEST(verifySizeOf(MatrixXi(8, 12)) );
00044 CALL_SUBTEST(verifySizeOf(MatrixXcd(20, 20)) );
00045 CALL_SUBTEST(verifySizeOf(Matrix<float, 100, 100>()) );
00046
00047 VERIFY(sizeof(std::complex<float>) == 2*sizeof(float));
00048 VERIFY(sizeof(std::complex<double>) == 2*sizeof(double));
00049 }