增加固定点的Boost单元测试用例

时间:2013-04-12 12:32:10

标签: c++ loops boost types

你好,我是c +的新手,在这里我需要对我的头文件的固定点添加进行增强测试。它由以下代码完成。

 BOOST_AUTO_TEST_CASE( add )
    {
        double a=(std::numeric_limits<fpml::fixed_point<short, 8> >::min)(); 
        double b=(std::numeric_limits<fpml::fixed_point<short, 8> >::max)(); 

        for (double x=a; x<b; ++x)
        {
            for (double y=a; y<b; ++y)
            {
                fpml::fixed_point<int, 16> xx = x;
                fpml::fixed_point<int, 16> yy = y;

                BOOST_CHECK( (fpml::fixed_point<int, 16>)(x+y) == xx+yy );
            }
        }
    }

我只需知道代码中的内容是什么, 限制为fpml::fixed_point<short, 8>的课程模板short_min已分配到double function a,并且fpml::fixed_point<short, 8>的限制为short_max的同一课程模板double function b已分配给for loop

{{1}}中发生的事情是从短的最小值到短的最小值循环?

有人可以解释在for lopp中发生了什么,以及如何进行添加和检查

1 个答案:

答案 0 :(得分:0)

std::numeric_limitstraits-type。代码中的某处,fmpl::fixed_point<T, int>有专门化。然后a ==最小值类型fmpl::fixed_point<short, 8>b ==此类型的最大值。对于循环检查,对于所有abfmpl::fixed_point (a + b) == fmpl::fixed_point(a)fmpl::fixed_point(b)的总和,范围a到b。