gpt4 book ai didi

python-3.x - 如何使用 Pytest 测试生成随机样本的函数?

转载 作者:行者123 更新时间:2023-12-04 14:13:07 25 4
gpt4 key购买 nike

假设我在使用 pytest 的 test_func.py 脚本中使用 np.random.normal() 生成一些输入 numpy 数组数据。
现在我想调用我正在测试的 func.py 函数。我怎样才能获得可测试的结果?如果我在 test_func.py 脚本中设置了一个种子,它不会对应于在 func.py 函数中生成的随机数据,对吗?
我希望能够在 test_func.py 中创建一些引用数据,然后测试 func.py 脚本中生成的随机性是否与我创建的引用数据相当(因此,测试 func.py 函数的随机性和功能性) .
谢谢!
编辑:这是一些示例代码来描述我的过程:

# func.py
import numpy as np
# I send in a numpy array signal, generate noise, and append noise to signal
def generate_random_noise(signal):
noise = np.random.normal(0, 5, signal.shape)
signal_w_noise = signal + noise
return signal_w_noise


# test_func.py
import pytest
import numpy as np
import func
def test_generate_random_noise():
# create reference signal
# ...
np.random.seed(5)
reference_noise = np.random.normal(0, 5, ref_signal.shape)
ref_signal_w_noise = ref_signal + reference_noise

# assert manually created signal and noise and
assert all(np.array_equal(x, y) for x, y in zip(generate_random_noise(reference_signal), ref_signal_w_noise))

最佳答案

当使用随机的东西时,你可以有 2 种测试方法:

  • 使用已知的种子来确保取决于随机分布的函数按预期执行:使用已知的种子,您可以将函数行为与预先已知的行为进行比较。
  • 根据随机分布验证函数的统计行为。在这里,您需要对函数“结果”的预期分布进行一些数学计算,并使用一些统计指标作为成功/失败标准,例如测试函数与其预期目标匹配的均值、偏斜...这可以使用非卡住种子来完成,但需要收集大量函数调用以获得足够的数据来获得有意义的统计数据。
  • 关于python-3.x - 如何使用 Pytest 测试生成随机样本的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62757185/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com