Col*_*in9 6 random numpy pytest python-3.x random-seed
假设我在使用 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))
Run Code Online (Sandbox Code Playgroud)
当使用随机的东西时,你可以有两种测试方法: