我们的单元测试测试最小/最大值。如果被测试变量的基础数据类型发生变化,那么测试就需要更新——如果我们发现它并记得这样做的话。
如果我们只谈论unit8_t, 16, 32, 64,有没有办法在单元测试中说“变量的最小/最大值” - 只要它是这些类型之一?
例如,如果unit8_t height变为unit16_t height,我不想更新最小/最大单元测试。
如果我能为这些简单的测试做到这一点,我会很高兴。其他任何事情都是奖金。
Ted*_*gmo 10
您可以使用numeric_limits获取该类型的最小值和最大值:
#include <limits>
template<class T>
bool has_min_value(T val) {
return val == std::numeric_limits<T>::lowest();
}
template<class T>
bool has_max_value(T val) {
return val == std::numeric_limits<T>::max();
}
Run Code Online (Sandbox Code Playgroud)
lowest()对于整型类型返回min()相同的结果。
对于浮点类型,lowest()通常返回-max()并min()返回: