Random 如何为unittest的CGAL网格骨架化过程固定随机种子

Random 如何为unittest的CGAL网格骨架化过程固定随机种子,random,cgal,Random,Cgal,我为使用CGAL网格骨架化过程的函数编写单元测试。由于CGAL过程是随机的,每次执行的结果都不同 此函数使用:CGAL::平均曲率流骨架化::收缩直到收敛和转换为骨架 对于我的单元测试,我尝试将相同的种子设置为CGAL::Random对象,但由于skeletonizer进程不使用该对象,因此每次执行时它们仍然产生不同的结果 是否可以为CGAL安装随机生成器,以便始终使用相同的输入获得相同的输出 谢谢您的帮助。要在CGAL中设置随机生成器的种子,您可以使用=CGAL::random(seed),

我为使用CGAL网格骨架化过程的函数编写单元测试。由于CGAL过程是随机的,每次执行的结果都不同

此函数使用:
CGAL::平均曲率流骨架化::收缩直到收敛
转换为骨架

对于我的单元测试,我尝试将相同的种子设置为CGAL::Random对象,但由于skeletonizer进程不使用该对象,因此每次执行时它们仍然产生不同的结果

是否可以为CGAL安装随机生成器,以便始终使用相同的输入获得相同的输出


谢谢您的帮助。

要在CGAL中设置随机生成器的种子,您可以使用
=CGAL::random(seed)
,但是IIRC,这个包中还有其他非确定性的来源(迭代顺序或类似的东西)。实际上,这个包中还有其他非确定性的来源。修复您提到的随机种子不足以复制曲面网格骨架化结果。但是对于像uniform_int()这样的简单函数,它允许在每次调用时获得相同的结果。要在CGAL中为随机生成器种子,您可以使用
=CGAL::random(seed)
,但是IIRC,在这个包中还有其他非确定性的来源(迭代顺序或类似的东西)。实际上,在这个包中还有其他非确定性的来源。修复您提到的随机种子不足以复制曲面网格骨架化结果。但对于像uniform_int()这样的简单函数,它允许在每次调用时获得相同的结果。