def test_apply_basis_state(self, nr_wires, tol):
        """Tests that we correctly apply a `BasisState` operation for the |11...1> state"""
        dev = qml.device("default.mixed", wires=nr_wires)
        state = np.ones(nr_wires)
        dev.apply([BasisState(state, wires=range(nr_wires))])

        assert np.allclose(dev.state, basis_state(2 ** nr_wires - 1, nr_wires), atol=tol, rtol=0)
    def test_raise_order_error_basis_state(self):
        """Tests that an error is raised if a state is prepared after BasisState has been
        applied"""
        dev = qml.device("default.mixed", wires=1)
        state = np.array([0])
        ops = [PauliX(0), BasisState(state, wires=0)]

        with pytest.raises(DeviceError, match="Operation"):
            dev.apply(ops)