本文整理汇总了C++中CPPUNIT_METRIC_START_TIMING函数的典型用法代码示例。如果您正苦于以下问题:C++ CPPUNIT_METRIC_START_TIMING函数的具体用法?C++ CPPUNIT_METRIC_START_TIMING怎么用?C++ CPPUNIT_METRIC_START_TIMING使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了CPPUNIT_METRIC_START_TIMING函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: iters
void QuatGenMetricTest::testGenTimingMakeNormalQuat()
{
gmtl::Quat<double> q1;
const long iters(25000);
CPPUNIT_METRIC_START_TIMING();
for (long iter = 0; iter < iters; ++iter)
{
q1 = gmtl::makeNormal( q1 );
}
CPPUNIT_METRIC_STOP_TIMING();
CPPUNIT_ASSERT_METRIC_TIMING_LE( "QuatGenTest/makeNormal(quatd)", iters, 0.075f, 0.1f); // warn at 7.5%, error at 10%
gmtl::Quat<float> q2;
CPPUNIT_METRIC_START_TIMING();
for (long iter = 0; iter < iters; ++iter)
{
q2 = gmtl::makeNormal( q2 );
}
CPPUNIT_METRIC_STOP_TIMING();
CPPUNIT_ASSERT_METRIC_TIMING_LE( "QuatGenTest/makeNormal(quatf)", iters, 0.075f, 0.1f); // warn at 7.5%, error at 10%
// force intelligent compilers to do all the iterations (ie. to not optimize them out),
// by using the variables computed...
CPPUNIT_ASSERT( q2[0] != 10000.0f );
CPPUNIT_ASSERT( q1[0] != 10000.0f );
}
示例2: iters
void PointMetricTest::testTimingCopyConstruct()
{
// Test copy construction overhead
const long iters(400000);
gmtl::Point<float, 2> test_point2;
test_point2[0] = 2.0f;
gmtl::Point<float, 3> test_point3;
test_point2[0] = 3.0f;
gmtl::Point<float, 4> test_point4;
test_point2[0] = 4.0f;
float use_value(0); // A temp just here to use the objs so the copiler (hopefully) does not opt them out
CPPUNIT_METRIC_START_TIMING();
for( long iter=0;iter<iters; ++iter)
{
gmtl::Point<float, 2> test_point2_copy(test_point2);
use_value += test_point2_copy[0];
gmtl::Point<float, 3> test_point3_copy(test_point3);
use_value += test_point3_copy[0];
gmtl::Point<float, 4> test_point4_copy(test_point4);
use_value += test_point4_copy[0];
}
CPPUNIT_METRIC_STOP_TIMING();
CPPUNIT_ASSERT_METRIC_TIMING_LE("PointTest/CopyConstructOverhead", iters, 0.075f, 0.1f); // warn at 7.5%, error at 10%
}
示例3: test_point1
void PointMetricTest::testTimingIsEqual()
{
gmtl::Point<float, 4> test_point1(1.0f, 2.0f, 3.0f, 4.0f);
gmtl::Point<float, 4> test_point2(test_point1);
// Test comparison performance
// Test constructor
const float iters(400000);
unsigned true_count(0);
// -- Equality
CPPUNIT_METRIC_START_TIMING();
test_point1.set(0.0f, 0.0f, 0.0f, 2000.0f);
test_point2.set(0.0f, 0.0f, 0.0f, 1000.0f);
for( float iter=0;iter<iters; ++iter)
{
test_point1[3] += 1.0f;
test_point2[3] += 2.0f;
if(gmtl::isEqual(test_point1, test_point2, 1.0f) )
true_count++;
if(gmtl::isEqual(test_point1, test_point2, 0.1f) )
true_count++;
if(gmtl::isEqual(test_point1, test_point2, 100000.0f) )
true_count++;
}
CPPUNIT_METRIC_STOP_TIMING();
CPPUNIT_ASSERT_METRIC_TIMING_LE("PointTest/isEqualOverhead", iters, 0.075f, 0.1f); // warn at 7.5%, error at 10%
}
示例4: box1
void AABoxOpsMetricTest::testTimingEqualityCompare()
{
{
// Equality
gmtl::AABoxf box1(gmtl::Point3f(-1,-1,-1), gmtl::Point3f(1,1,1));
gmtl::AABoxf box2(gmtl::Point3f(-1,-1,-1), gmtl::Point3f(2,2,2));
const long iters(400000);
unsigned true_count(0);
CPPUNIT_METRIC_START_TIMING();
for(long iter=0;iter<iters; ++iter)
{
if (box1 == box2)
{
++true_count;
}
}
CPPUNIT_METRIC_STOP_TIMING();
CPPUNIT_ASSERT_METRIC_TIMING_LE("AABoxOpsTest/EqualityCompareOverhead", iters, 0.075f, 0.1f); // warn at 7.5%, error at 10%
CPPUNIT_ASSERT(true_count == 0);
}
{
// Inequality
gmtl::AABoxf box1(gmtl::Point3f(-1,-1,-1), gmtl::Point3f(1,1,1));
gmtl::AABoxf box2(gmtl::Point3f(-1,-1,-1), gmtl::Point3f(2,2,2));
const long iters(400000);
unsigned true_count(0);
CPPUNIT_METRIC_START_TIMING();
for(long iter=0;iter<iters; ++iter)
{
if (box1 != box2)
{
++true_count;
}
}
CPPUNIT_METRIC_STOP_TIMING();
CPPUNIT_ASSERT_METRIC_TIMING_LE("AABoxOpsTest/InequalityCompareOverhead", iters, 0.075f, 0.1f); // warn at 7.5%, error at 10%
CPPUNIT_ASSERT(true_count > 0);
}
}
示例5: iters
void AxisAngleCompareMetricTest::testAxisAngleTimingIsEqualTest()
{
// Test overhead of creation
const long iters(400000);
gmtl::AxisAnglef src_quat11;
gmtl::AxisAnglef src_quat22;
gmtl::AxisAnglef src_quat33;
gmtl::AxisAnglef src_quat34;
gmtl::AxisAnglef src_quat44;
gmtl::AxisAngled src_quat101;
// half will be equal
src_quat11[0] = 1.0f;
src_quat22[1] = 1.0f;
src_quat33[2] = 2.0f;
gmtl::AxisAnglef test_quat11( src_quat11 );
gmtl::AxisAnglef test_quat22( src_quat22 );
gmtl::AxisAnglef test_quat33( src_quat33 );
gmtl::AxisAnglef test_quat34( src_quat34 );
gmtl::AxisAnglef test_quat44( src_quat44 );
gmtl::AxisAngled test_quat101( src_quat101 );
// half will be not equal
src_quat34[0] = 23.0f;
src_quat44[2] = 234.0f;
src_quat101[3] = 1234.0f;
unsigned true_count(0);
CPPUNIT_METRIC_START_TIMING();
for( long iter=0;iter<iters; ++iter)
{
if (gmtl::isEqual( src_quat11, test_quat11, 0.0f ))
++true_count;
if (gmtl::isEqual( src_quat22, test_quat22, 0.2f ))
++true_count;
if (gmtl::isEqual( src_quat33, test_quat33, 0.3f ))
++true_count;
if (gmtl::isEqual( src_quat34, test_quat34, 0.6f ))
++true_count;
if (gmtl::isEqual( src_quat44, test_quat44, 0.8f ))
++true_count;
/*
if (gmtl::isEqual( src_quat101, test_quat101, 111.1f ))
++true_count;
*/
}
CPPUNIT_METRIC_STOP_TIMING();
CPPUNIT_ASSERT_METRIC_TIMING_LE("AxisAngleCompareTest/isEqual(...)", iters, 0.075f, 0.1f); // warn at 7.5%, error at 10%
// Make sure the compiler doesn't optimize out true_count
CPPUNIT_ASSERT( true_count > 0 );
}
示例6: iters
void QuatCompareMetricTest::testQuatTimingOpNotEqualityTest()
{
// Test overhead of creation
const long iters(400000);
gmtl::Quat<float> src_quat11;
gmtl::Quat<float> src_quat22;
gmtl::Quat<float> src_quat33;
gmtl::Quat<float> src_quat34;
gmtl::Quat<float> src_quat44;
gmtl::Quat<double> src_quat101;
// half will be equal
src_quat11[0] = 1.0f;
src_quat22[2] = 1.0f;
src_quat33[3] = 2.0f;
gmtl::Quat<float> test_quat11( src_quat11 );
gmtl::Quat<float> test_quat22( src_quat22 );
gmtl::Quat<float> test_quat33( src_quat33 );
gmtl::Quat<float> test_quat34( src_quat34 );
gmtl::Quat<float> test_quat44( src_quat44 );
gmtl::Quat<double> test_quat101( src_quat101 );
// half will be not equal
src_quat34[0] = 2.0f;
src_quat44[1] = 3.0f;
src_quat101[3] = 1.0f;
unsigned true_count(0);
CPPUNIT_METRIC_START_TIMING();
for( long iter=0;iter<iters; ++iter)
{
if (src_quat11 != test_quat11)
++true_count;
if (src_quat22 != test_quat22)
++true_count;
if (src_quat33 != test_quat33)
++true_count;
if (src_quat34 != test_quat34)
++true_count;
if (src_quat44 != test_quat44)
++true_count;
if (src_quat101 != test_quat101)
++true_count;
}
CPPUNIT_METRIC_STOP_TIMING();
CPPUNIT_ASSERT_METRIC_TIMING_LE("QuatCompareTest/operator!=", iters, 0.075f, 0.1f); // warn at 7.5%, error at 10%
// Make sure the compiler doesn't optimize out true_count
CPPUNIT_ASSERT( true_count > 0 );
}
示例7: iters
void CoordCompareMetricTest::testCoordTimingIsEqualTest()
{
// Test overhead of creation
const long iters(400000);
gmtl::Coord<gmtl::Vec<float,3>, gmtl::EulerAngle<float, gmtl::XYZ> > src_coord11;
gmtl::Coord<gmtl::Vec<float,3>, gmtl::EulerAngle<float, gmtl::XYZ> > src_coord22;
gmtl::Coord<gmtl::Vec<float,3>, gmtl::EulerAngle<float, gmtl::XYZ> > src_coord33;
gmtl::Coord<gmtl::Vec<float,3>, gmtl::EulerAngle<float, gmtl::XYZ> > src_coord34;
gmtl::Coord<gmtl::Vec<float,3>, gmtl::EulerAngle<float, gmtl::XYZ> > src_coord44;
gmtl::Coord<gmtl::Vec<double,3>, gmtl::EulerAngle<double, gmtl::XYZ> > src_coord101;
// half will be equal
src_coord11.pos()[0] = 1.0f;
src_coord22.pos()[1] = 1.0f;
src_coord33.pos()[2] = 2.0f;
gmtl::Coord<gmtl::Vec<float,3>, gmtl::EulerAngle<float, gmtl::XYZ> > test_coord11( src_coord11 );
gmtl::Coord<gmtl::Vec<float,3>, gmtl::EulerAngle<float, gmtl::XYZ> > test_coord22( src_coord22 );
gmtl::Coord<gmtl::Vec<float,3>, gmtl::EulerAngle<float, gmtl::XYZ> > test_coord33( src_coord33 );
gmtl::Coord<gmtl::Vec<float,3>, gmtl::EulerAngle<float, gmtl::XYZ> > test_coord34( src_coord34 );
gmtl::Coord<gmtl::Vec<float,3>, gmtl::EulerAngle<float, gmtl::XYZ> > test_coord44( src_coord44 );
gmtl::Coord<gmtl::Vec<double,3>, gmtl::EulerAngle<double, gmtl::XYZ> > test_coord101( src_coord101 );
// half will be not equal
src_coord34.pos()[0] = 23.0f;
src_coord44.pos()[2] = 234.0f;
src_coord101.pos()[1] = 1234.0f;
unsigned true_count(0);
CPPUNIT_METRIC_START_TIMING();
for( long iter=0;iter<iters; ++iter)
{
if (gmtl::isEqual( src_coord11, test_coord11, 0.0f ))
++true_count;
if (gmtl::isEqual( src_coord22, test_coord22, 0.2f ))
++true_count;
if (gmtl::isEqual( src_coord33, test_coord33, 0.3f ))
++true_count;
if (gmtl::isEqual( src_coord34, test_coord34, 0.6f ))
++true_count;
if (gmtl::isEqual( src_coord44, test_coord44, 0.8f ))
++true_count;
if (gmtl::isEqual( src_coord101, test_coord101, 111.1 ))
++true_count;
}
CPPUNIT_METRIC_STOP_TIMING();
CPPUNIT_ASSERT_METRIC_TIMING_LE("CoordCompareTest/isEqual(...)", iters, 0.075f, 0.1f); // warn at 7.5%, error at 10%
// Make sure the compiler doesn't optimize out true_count
CPPUNIT_ASSERT( true_count > 0 );
}
示例8: iters
void EulerAngleCompareMetricTest::testEulerAngleTimingOpEqualityTest()
{
// Test overhead of creation
const long iters(400000);
gmtl::EulerAngleXYZf src_quat11;
gmtl::EulerAngleXYZf src_quat22;
gmtl::EulerAngleXYZf src_quat33;
gmtl::EulerAngleXYZf src_quat34;
gmtl::EulerAngleXYZf src_quat44;
gmtl::EulerAngleXYZd src_quat101;
// half of them will be equal
src_quat11[0] = 1.0f;
src_quat22[2] = 1.0f;
src_quat33[1] = 2.0f;
gmtl::EulerAngleXYZf test_quat11( src_quat11 );
gmtl::EulerAngleXYZf test_quat22( src_quat22 );
gmtl::EulerAngleXYZf test_quat33( src_quat33 );
gmtl::EulerAngleXYZf test_quat34( src_quat34 );
gmtl::EulerAngleXYZf test_quat44( src_quat44 );
gmtl::EulerAngleXYZd test_quat101( src_quat101 );
// half will be not equal
src_quat34[0] = 2.0f;
src_quat44[1] = 3.0f;
src_quat101[2] = 1.0;
unsigned true_count(0);
CPPUNIT_METRIC_START_TIMING();
for (long iter = 0; iter < iters; ++iter)
{
if (src_quat11 == test_quat11)
++true_count;
if (src_quat22 == test_quat22)
++true_count;
if (src_quat33 == test_quat33)
++true_count;
if (src_quat34 == test_quat34)
++true_count;
if (src_quat44 == test_quat44)
++true_count;
if (src_quat101 == test_quat101)
++true_count;
}
CPPUNIT_METRIC_STOP_TIMING();
CPPUNIT_ASSERT_METRIC_TIMING_LE("EulerAngleCompareTest/operator==", iters, 0.075f, 0.1f); // warn at 7.5%, error at 10%
// Make sure the compiler doesn't optimize out true_count
CPPUNIT_ASSERT( true_count > 0 );
}
示例9: iters
void MatrixCompareMetricTest::testMatTimingOpNotEqualityTest()
{
// Test overhead of creation
const long iters(25000);
gmtl::Matrix<float, 1, 1> src_mat11;
gmtl::Matrix<float, 2, 2> src_mat22;
gmtl::Matrix<float, 3, 3> src_mat33;
gmtl::Matrix<float, 3, 4> src_mat34;
gmtl::Matrix<float, 4, 4> src_mat44;
gmtl::Matrix<double, 10, 1> src_mat101;
// half will be equal
src_mat11.mData[0] = 1.0f;
src_mat22.mData[0] = 1.0f;
src_mat33.mData[4] = 2.0f;
gmtl::Matrix<float, 1, 1> test_mat11( src_mat11 );
gmtl::Matrix<float, 2, 2> test_mat22( src_mat22 );
gmtl::Matrix<float, 3, 3> test_mat33( src_mat33 );
gmtl::Matrix<float, 3, 4> test_mat34( src_mat34 );
gmtl::Matrix<float, 4, 4> test_mat44( src_mat44 );
gmtl::Matrix<double, 10, 1> test_mat101( src_mat101 );
// half will be not equal
src_mat34.mData[5] = 2.0f;
src_mat44.mData[15] = 3.0f;
src_mat101.mData[9] = 1.0f;
unsigned true_count(0);
CPPUNIT_METRIC_START_TIMING();
for( long iter=0;iter<iters; ++iter)
{
if (src_mat11 != test_mat11)
++true_count;
if (src_mat22 != test_mat22)
++true_count;
if (src_mat33 != test_mat33)
++true_count;
if (src_mat34 != test_mat34)
++true_count;
if (src_mat44 != test_mat44)
++true_count;
if (src_mat101 != test_mat101)
++true_count;
}
CPPUNIT_METRIC_STOP_TIMING();
CPPUNIT_ASSERT_METRIC_TIMING_LE("MatrixCompareTest/OpNotEqualityTest", iters, 0.075f, 0.1f); // warn at 7.5%, error at 10%
// make sure compiler uses true_count
CPPUNIT_ASSERT( true_count > 0 );
}
示例10: iters
void QuatOpsMetricTest::testQuatTimingDiv()
{
gmtl::Quat<float> q3, q4;
const long iters(10000);
CPPUNIT_METRIC_START_TIMING();
for (long iter = 0; iter < iters; ++iter)
{
gmtl::div( q4, q4, q3 );
}
CPPUNIT_METRIC_STOP_TIMING();
CPPUNIT_ASSERT_METRIC_TIMING_LE("QuatOpsTest/invert()", iters, 0.075f, 0.1f); // warn at 7.5%, error at 10%
// Make sure the compiler doesn't optimize out
CPPUNIT_ASSERT( q4[2] != 1234.5f );
}
示例11: iters
void CoordClassMetricTest::testCoordTimingOpEqual()
{
const long iters( 400000 );
gmtl::Coord<gmtl::Vec<float,3>, gmtl::EulerAngle<float, gmtl::XYZ> > q4, q2;
CPPUNIT_METRIC_START_TIMING();
for (long iter = 0; iter < iters; ++iter)
{
// performance of operator=() function
q4 = q2;
q2.pos()[2] += q4.pos()[1];
}
CPPUNIT_METRIC_STOP_TIMING();
CPPUNIT_ASSERT_METRIC_TIMING_LE("CoordTest/operator=()", iters, 0.075f, 0.1f); // warn at 7.5%, error at 10%
CPPUNIT_ASSERT( q4.pos()[0] != 3498.0f );
}
示例12: iters
void EulerAngleClassMetricTest::testEulerAngleTimingOpEqual()
{
const long iters( 400000 );
gmtl::EulerAngleXYZf q4, q2( 0.0f, 2.0f, 1.0f );
CPPUNIT_METRIC_START_TIMING();
for (long iter = 0; iter < iters; ++iter)
{
// performance of operator=() function
q4 = q2;
q2[0] += q4[2];
}
CPPUNIT_METRIC_STOP_TIMING();
CPPUNIT_ASSERT_METRIC_TIMING_LE("EulerAngleTest/operator=()", iters, 0.075f, 0.1f); // warn at 7.5%, error at 10%
CPPUNIT_ASSERT( q4[0] != 3498.0f );
}
示例13: iters
void QuatClassMetricTest::testQuatTimingOpEqual()
{
const long iters( 400000 );
gmtl::Quat<float> q4, q2( 0, 2, 1, 3 );
CPPUNIT_METRIC_START_TIMING();
for (long iter = 0; iter < iters; ++iter)
{
// performance of operator=() function
q4 = q2;
q2[0] += q4[2];
}
CPPUNIT_METRIC_STOP_TIMING();
CPPUNIT_ASSERT_METRIC_TIMING_LE("QuatTest/operator=()", iters, 0.075f, 0.1f); // warn at 7.5%, error at 10%
CPPUNIT_ASSERT( q4[0] != 3498.0f );
}
示例14: iters
void CoordGenMetricTest::testGenTimingSetCoord()
{
gmtl::Matrix44f mat;
gmtl::Coord<gmtl::Vec<float,3>, gmtl::EulerAngle<float, gmtl::XYZ> > q1;
const long iters(25000);
CPPUNIT_METRIC_START_TIMING();
for (long iter = 0; iter < iters; ++iter)
{
gmtl::set( q1, mat );
mat[3][3] += q1.getPos()[2];
}
CPPUNIT_METRIC_STOP_TIMING();
CPPUNIT_ASSERT_METRIC_TIMING_LE( "CoordGenTest/set(coord,mat)", iters, 0.075f, 0.1f); // warn at 7.5%, error at 10%
CPPUNIT_ASSERT( q1.pos()[1] != 10000.0f );
}
示例15: iters
void AxisAngleClassMetricTest::testAxisAngleTimingDefaultConstructor()
{
const long iters( 400000 );
float use_value(1);
CPPUNIT_METRIC_START_TIMING();
for (long iter = 0; iter < iters; ++iter)
{
// performance of def constructor
gmtl::AxisAnglef q;
use_value += q.mData[0];
}
CPPUNIT_METRIC_STOP_TIMING();
CPPUNIT_ASSERT_METRIC_TIMING_LE("AxisAngleTest/DefaultConstructor", iters, 0.075f, 0.1f); // warn at 7.5%, error at 10%
CPPUNIT_ASSERT( use_value != 0 );
}