def is_native(op_or_op_list) -> bool: """True iff the op_list consists of native operations only.""" if Adonis.is_native_operation(op_or_op_list): return True for op in op_or_op_list: if not Adonis.is_native_operation(op): raise TypeError(f'Non-native operation: {op}') return True
def test_equality_method(): adonis_1 = Adonis() adonis_2 = Adonis() apollo_1 = Apollo() apollo_2 = Apollo() valkmusa = Valkmusa() assert adonis_1 == adonis_2 assert valkmusa != adonis_1 assert apollo_1 == apollo_2
def test_non_injective_qubit_mapping(base_url, settings_dict, qubit_mapping): qubit_mapping['q2 log.'] = 'QB1' with pytest.raises( ValueError, match='Multiple logical qubits map to the same physical qubit'): IQMSampler(base_url, Adonis(), json.dumps(settings_dict), qubit_mapping)
def test_qubits_not_in_settings(base_url, settings_dict, qubit_mapping): del settings_dict['subtrees']['QB1'] with pytest.raises( ValueError, match= "The physical qubits {'QB1'} in the qubit mapping are not defined in the settings" ): IQMSampler(base_url, Adonis(), json.dumps(settings_dict), qubit_mapping)
def test_credentials_are_passed_to_client(settings_dict): user_auth_args = { 'auth_server_url': 'https://fake.auth.server.com', 'username': '******', 'password': '******', } with when(IQMClient)._update_tokens(): sampler = IQMSampler('http://url', Adonis(), json.dumps(settings_dict), None, **user_auth_args) assert sampler._client._credentials.auth_server_url == user_auth_args[ 'auth_server_url'] assert sampler._client._credentials.username == user_auth_args['username'] assert sampler._client._credentials.password == user_auth_args['password']
def adonis_sampler_without_settings(base_url): return IQMSampler(base_url, Adonis())
def adonis_sampler(base_url, settings_dict, qubit_mapping): return IQMSampler(base_url, Adonis(), json.dumps(settings_dict), qubit_mapping)
def adonis(): """Adonis device fixture.""" return Adonis()