我正在为我的计算机视觉论文编写一款相当复杂的机器学习程序。它运行得相当好,但我需要不断尝试新的东西并添加新功能。这是有问题的,因为当我扩展代码或尝试简化算法时,有时会引入错误。
显然,正确的做法是添加单元测试,但如何做到这一点尚不清楚。我的程序的许多组件产生了一些主观答案,我无法自动进行健全性检查。
例如,我有一些代码,用低分辨率曲线逼近曲线,以便在低分辨率曲线上进行计算密集型工作。我意外地在这段代码中引入了一个错误,并且只有在我的整个程序结果稍微变差时才发现了它。
但是,当我试图为它编写单元测试时,不清楚我该做什么。如果我制作一个具有明确正确低分辨率版本的简单曲线,那么我并没有真正测试出可能出错的所有内容。如果我制作一个简单的曲线,然后稍微改变其点,我的代码开始产生不同的答案,即使这个特定代码现在似乎运行良好。