【发布时间】:2021-07-26 02:39:17
【问题描述】:
我有一个使用 R 编写的函数,后来还创建了一个 C++ 版本。我想评估这两个函数是否产生相同的结果。
该函数生成随机数,因此需要在同一种子下进行比较。
这可以比较用 2 种不同语言编写的函数吗?
【问题讨论】:
-
给出输入并检查输出是否相同,并不是检查两个函数是否相同的好方法
-
@Berto99:这不是一个坏方法,特别是如果原件是一个黑盒子。见test oracle。结合模糊测试,它可以非常有效(一如既往,如果您了解您的领域,您可以设计更多的单元测试)。
-
能否在调用每个函数之前不设置种子并缓存每个函数的结果?然后做
identical(res1, res2) -
@AndyG 是的,它增加了概率,但不证明任何东西......但如果我们无法证明这两个函数是相同的,这是你描述的最好的方法跨度>