def nopovm(request, local_dim, rgen):
"""Provide different POVMs and non-POVMs for testing
We provide instances of :class:`povm.localpovm.POVM` with the
following elements:
* `pauli`: Generated by :func:`povm.pauli_povm()`
* `random`: Random (non-Hermitian, non-positive) elements for
testing. (These elements do not constitute a POVM. We use them
to distinguish elem.conj() from elem.T in our code.)
"""
nopovm_name = request.param
if nopovm_name == 'pauli':
return povm.pauli_povm(local_dim)
elif nopovm_name == 'random':
d = local_dim
return povm.localpovm.POVM(factory._zrandn((2 * d**2, d, d), rgen))
else:
raise ValueError('Unknown fixture name {}'.format(nopovm_name))
评论列表
文章目录