2.5 练习
2-1 使用TestSuite框架编写一个测试程序来测试标准vector类,彻底地测试整型vector类的下列成员函数:push_back()(在vector的末端添加一个元素)、front()(返回vector中的第一个元素)、back()(返回vector中的最后一个元素)、pop_back()(删除最后一个元素,不返回它)、at()(返回指定索引位置中的元素)和size()(返回元素的个数)。验证:如果给出的索引产生越界情况,vector:at()会抛出std:out_of_range异常。
2-2 假设有人要求开发一个名为Rational的类,这个类支持有理数(分数)。在Rational对象中的分数始终保存最低项(默认值为0),并且分母为0的情况是一个错误。下面是Rational类接口的例子:
为这个类编写一个完整的规格说明,包括前置条件、后置条件和异常说明。
2-3 使用TestSuite框架编写一个测试案例,为上一个练习写出的所有规格说明做彻底地测试,包括测试异常。
2-4 实现Rational类,使其通过上一个练习时写出的所有测试案例。仅对不变量使用断言。
2-5 下面的BuggedSearch.cpp文件包含一个二分查找函数,这个函数在区间[beg, end)中查找整型数what。算法中有些错误。使用本章介绍的跟踪技术调试这个查找函数。