def test_covariance_3d(self):
cov = [[3, 0.5, 0.2], [0.5, 4, 0.3], [0.2, 0.3, 5]]
data = np.random.multivariate_normal([0, 0, 1], cov, size=2000000)
parameters = ["x", "y", "z"]
c = ChainConsumer()
c.add_chain(data, parameters=parameters, name="chain1")
p, cor = c.analysis.get_covariance(chain="chain1", parameters=["y", "z", "x"])
assert p[0] == "y"
assert p[1] == "z"
assert p[2] == "x"
assert np.isclose(cor[0, 0], 4, atol=2e-2)
assert np.isclose(cor[1, 1], 5, atol=2e-2)
assert np.isclose(cor[2, 2], 3, atol=2e-2)
assert cor.shape == (3, 3)
assert np.abs(cor[0, 1] - 0.3) < 0.01
assert np.abs(cor[0, 2] - 0.5) < 0.01
assert np.abs(cor[1, 2] - 0.2) < 0.01
评论列表
文章目录