Unit testing 单元测试概率分布的一些好做法是什么?

Unit testing 单元测试概率分布的一些好做法是什么?,unit-testing,probability,Unit Testing,Probability,我在一个项目中工作,我需要从头开始生成泊松、正态等变量。我知道Python中有一些实现。我习惯于为我编写的几乎所有代码编写测试 我想知道测试这些功能的好方法(如果有的话)是什么?我在类似情况下所做的是a)编写一个简单的直方图例程,绘制样本的直方图,并在数千个样本上运行以查看它;和b)测试一些关键统计数据-标准偏差、平均值。。。您至少可以断言返回的值不是null,并且在您期望的范围内。这仍然确保了这些方法至少能够运行并且不会出错,并且通过了基本的健全性检查 您还可以收集许多值,并断言您得到的值接近

我在一个项目中工作,我需要从头开始生成泊松、正态等变量。我知道Python中有一些实现。我习惯于为我编写的几乎所有代码编写测试


我想知道测试这些功能的好方法(如果有的话)是什么?

我在类似情况下所做的是a)编写一个简单的直方图例程,绘制样本的直方图,并在数千个样本上运行以查看它;和b)测试一些关键统计数据-标准偏差、平均值。。。您至少可以断言返回的值不是null,并且在您期望的范围内。这仍然确保了这些方法至少能够运行并且不会出错,并且通过了基本的健全性检查


您还可以收集许多值,并断言您得到的值接近预期的分布,但这将需要更多的工作。

我假设您的实现是建立在您认为足够好的统一分布伪数生成器之上的(不仅是生成值的分布,还包括其顺序的随机性-请参阅)

您应该构建两个柱状图:第一个柱状图基于您的实现生成的值。第二个柱状图基于受信任的实现,或者更好——基于给定分布的每个柱状图列中的值计数的最大似然估计

下一步,您可以使用紧固件验证所有直方图列的计数是否匹配