AssertOperaçãoOperationsEqualReferenced operaçãoAssertOperationsEqualReferenced operation

Espaço de nome: Microsoft.Quantum.DiagnosticsNamespace: Microsoft.Quantum.Diagnostics

Pacote: Microsoft.Quantum.QSharp.CorePackage: Microsoft.Quantum.QSharp.Core

Tendo em conta duas operações, afirma que agem de forma idêntica para todos os estados de entrada.Given two operations, asserts that they act identically for all input states.

Esta afirmação é implementada usando o isomorfismo Choi-Jamiołkowski para reduzir a afirmação a uma afirmação de estado qubit em dois registos emaranhados.This assertion is implemented by using the Choi–Jamiołkowski isomorphism to reduce the assertion to one of a qubit state assertion on two entangled registers. Assim, esta operação necessita apenas de uma única chamada para cada operação que está a ser testada, mas requer o dobro dos qubits a serem atribuídos.Thus, this operation needs only a single call to each operation being tested, but requires twice as many qubits to be allocated. Esta afirmação pode ser usada para garantir, por exemplo, que uma versão otimizada de uma operação age de forma idêntica à sua implementação ingénua, ou que uma operação que atua numa série de entradas não quânticas concorda com casos conhecidos.This assertion can be used to ensure, for instance, that an optimized version of an operation acts identically to its naïve implementation, or that an operation which acts on a range of non-quantum inputs agrees with known cases.

operation AssertOperationsEqualReferenced (nQubits : Int, actual : (Qubit[] => Unit), expected : (Qubit[] => Unit is Adj)) : Unit

EntradaInput

nQubits : IntnQubits : Int

Número de qubits para passar para cada operação.Number of qubits to pass to each operation.

real : Qubit[] = Unidade>actual : Qubit[] => Unit

Operação a ser testada.Operation to be tested.

esperado : Qubit[] = unidade > é Adjexpected : Qubit[] => Unit is Adj

Operação que define o comportamento esperado para a operação em teste.Operation defining the expected behavior for the operation under test.

Saída : UnidadeOutput : Unit

ObservaçõesRemarks

Esta operação requer que a operação que modela o comportamento esperado seja adjacente, de modo a que o inverso possa ser realizado apenas no registo-alvo.This operation requires that the operation modeling the expected behavior is adjointable, so that the inverse can be performed on the target register alone. Formalmente, pode especificar uma operação transposta, que relaxa este requisito, mas a operação de transposição não é fisicamente realizável para operações quânticas arbitrárias e, portanto, não está incluída aqui como uma opção.Formally, one can specify a transpose operation, which relaxes this requirement, but the transpose operation is not in general physically realizable for arbitrary quantum operations and thus is not included here as an option.