def test_w_noise(self):
        """ with noise test """
        # build noise model
        # Asymmetric readout error on qubit-0 only
        try:
            from qiskit.providers.aer.noise import NoiseModel
            from qiskit import Aer
            self.backend = Aer.get_backend('qasm_simulator')
        except ImportError as ex:
            self.skipTest("Aer doesn't appear to be installed. Error: '{}'".format(str(ex)))
            return

        probs_given0 = [0.9, 0.1]
        probs_given1 = [0.3, 0.7]
        noise_model = NoiseModel()
        noise_model.add_readout_error([probs_given0, probs_given1], [0])

        quantum_instance = QuantumInstance(self.backend, seed_transpiler=self.random_seed,
                                           seed_simulator=self.random_seed, shots=1024,
                                           noise_model=noise_model)
        res_w_noise = quantum_instance.execute(self.qc).get_counts(self.qc)

        quantum_instance.skip_qobj_validation = True
        res_w_noise_skip_validation = quantum_instance.execute(self.qc).get_counts(self.qc)
        self.assertTrue(_compare_dict(res_w_noise, res_w_noise_skip_validation))

        # BasicAer should fail:
        with self.assertRaises(QiskitError):
            _ = QuantumInstance(BasicAer.get_backend('qasm_simulator'),
                                noise_model=noise_model)

        with self.assertRaises(QiskitError):
            quantum_instance = QuantumInstance(BasicAer.get_backend('qasm_simulator'))
            quantum_instance.set_config(noise_model=noise_model)
 def test_w_backend_options(self):
     """ with backend options test """
     # run with backend_options
     quantum_instance = QuantumInstance(self.backend, seed_transpiler=self.random_seed,
                                        seed_simulator=self.random_seed, shots=1024,
                                        backend_options={
                                            'initial_statevector': [.5, .5, .5, .5]})
     res_w_bo = quantum_instance.execute(self.qc).get_counts(self.qc)
     self.assertGreaterEqual(quantum_instance.time_taken, 0.)
     quantum_instance.reset_execution_results()
     quantum_instance.skip_qobj_validation = True
     res_w_bo_skip_validation = quantum_instance.execute(self.qc).get_counts(self.qc)
     self.assertGreaterEqual(quantum_instance.time_taken, 0.)
     quantum_instance.reset_execution_results()
     self.assertTrue(_compare_dict(res_w_bo, res_w_bo_skip_validation))
 def test_wo_backend_options(self):
     """ without backend options test """
     quantum_instance = QuantumInstance(self.backend,
                                        seed_transpiler=self.random_seed,
                                        seed_simulator=self.random_seed,
                                        shots=1024)
     # run without backend_options and without noise
     res_wo_bo = quantum_instance.execute(self.qc).get_counts(self.qc)
     self.assertGreaterEqual(quantum_instance.time_taken, 0.)
     quantum_instance.reset_execution_results()
     quantum_instance.skip_qobj_validation = True
     res_wo_bo_skip_validation = quantum_instance.execute(self.qc).get_counts(self.qc)
     self.assertGreaterEqual(quantum_instance.time_taken, 0.)
     quantum_instance.reset_execution_results()
     self.assertTrue(_compare_dict(res_wo_bo, res_wo_bo_skip_validation))