使用 Python,我正在尝试编写将当前输出与预期输出进行比较的测试。输出是一个 matplotlib 图,我想在不将该图保存到文件的情况下执行此操作。
我想找到对象的加密散列,这样我只需要将一个散列与另一个散列进行比较,以确认整个对象与预期的没有变化。
这适用于 numpy 数组,如下所示:
import numpy as np
import hashlib
np.random.seed(1)
A = np.random.rand(10,100)
actual_hash = hashlib.sha1(A).hexdigest()
expected_hash = '38f682cab1f0bfefb84cdd6b112b7d10cde6147f'
assert actual_hash == expected_hash
当我在 matplotlib 对象上尝试这个时,我得到:TypeError: object supporting the buffer API required
import hashlib
import numpy as np
import matplotlib.pyplot as plt
X = np.linspace(0,100,1000)
Y = np.sin(0.5*X)
plt.plot(X,Y)
fig = plt.gcf()
actual_hash = hashlib.sha1(fig).hexdigest() #this raises the TypeError
关于如何使用 hashlib 查找 matplotlib 对象的加密哈希的任何想法?
慕斯王
相关分类