是否有人使用单元测试来验证代码的时间/空间复杂性?
谢谢
雨果
最佳答案
这是您提出的一个很好的观点。确保为此使用单元测试。
单元测试主要是测试代码结果的“方式”。您测试它是否按照预期的方式工作,并且在您希望它失败时失败。
时间和空间是两个非常重要的变量,您可能会“想要”更快的速度和较低的空间成本,但是程序实际上却相反,然后您得到一个错误,这是单元测试的目的,以查找错误并解决他们。
一些用于时间消耗的单元测试的伪代码,您可能知道如何解决此问题,但这是测试它的一种相当不错的方法:
Unit_Test_To_See_If_X_Takes_More_Than_Y_Seconds(int max_milli_seconds)
{
int current_millis = getMillis();
do_operations_on_objects_and_functions();
int millis_after_executions = getMillis();
int elapes_millis = millis_after_execution - current_millis;
if ( elapsed_millis > max_milli_seconds )
Assert(ERROR);
}
另外,当您考虑它时,您可以进行过多的测试吗?不,你不能。测试所有结果是很好的,即使您测试“愚蠢”的东西,如果您不测试结果并且有错误出现,这是否也就意味着它不存在,仅仅是因为您没有看到它而已还是没有测试? :)
关于unit-testing - 单元测试以验证时间复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/487211/