def test_fock_state(self, setup_eng, cutoff, bsize, pure, tol):
        """Test fock state function matches Fock backends"""
        eng, prog = setup_eng(1)
        n = 2

        with prog.context as q:
            ops.Fock(n) | q[0]

        state = eng.run(prog).state
        ket = utils.fock_state(n, fock_dim=cutoff)
        if not pure:
            expected = state.dm()
            ket = np.tile(np.outer(ket, ket.conj()), (bsize, 1, 1))
        else:
            expected = state.ket()
            ket = np.tile(ket, (bsize, 1))

        assert np.allclose(expected, ket, atol=tol, rtol=0)
Esempio n. 2
0
 def test_fock_state(self):
     """test correct fock state returned"""
     n = 3
     cutoff = 10
     state = utils.fock_state(n, fock_dim=cutoff)
     assert np.all(state == np.eye(1, cutoff, n))