{
  "total_program_families": 24,
  "total_registered_versions": 40,
  "meta_data": {
    "adder_hamiltonian_mixture": {
      "description": "Adder + Hamiltonian mixture",
      "family": "hamiltonian",
      "class": "AdderHamiltonianMixture",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/MgcosA/Code_of_Testing_Oracle_Quantum_Program_Article/blob/master/",
        "file": "qolumbina/programs/MixedProc.qs",
        "sdk": "Q#",
        "available_doc": true
      },
      "testability_refactoring": [
        "Cross-language translation",
        "Structure reorganization",
        "Input validation"
      ]
    },
    "amplitude_estimation": {
      "description": "Implement the Amplitude Estimation algorithm via Phase Estimation",
      "family": "amplitude_estimation",
      "class": "QuantumAmplitudeEstimation",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/SRI-International/QC-App-Oriented-Benchmarks?tab=Apache-2.0-1-ov-file",
        "file": "amplitude_estimation/qiskit/ae_benchmark.py",
        "sdk": "Qiskit",
        "available_doc": true
      },
      "testability_refactoring": [
        "Structure reorganization",
        "Dependency decoupling",
        "Input validation"
      ]
    },
    "bv": {
      "description": "Bernstein-Vazirani algorithm: Find a hidden binary string with a single oracle query.",
      "family": "bernstein_vazirani",
      "class": "BernsteinVazirani",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/Qiskit/textbook?tab=Apache-2.0-1-ov-file",
        "file": "notebooks/ch-algorithms/bernstein-vazirani.ipynb",
        "sdk": "Qiskit",
        "available_doc": true
      },
      "testability_refactoring": [
        "Structure reorganization"
      ]
    },
    "counting": {
      "description": "Estimate the number of solutions to a search problem using Grover's operator and inverse QFT.",
      "family": "quantum_counting",
      "class": "QuantumCounting",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/Qiskit/textbook?tab=Apache-2.0-1-ov-file",
        "file": "notebooks/ch-algorithms/quantum-counting.ipynb",
        "sdk": "Qiskit",
        "available_doc": true
      },
      "testability_refactoring": [
        "Structure reorganization",
        "Dependency decoupling"
      ]
    },
    "diagonal": {
      "description": "Perform a diagonal operation defined by a list of diagonal entries",
      "family": "diagonal",
      "class": "Diagonal",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/Qiskit/qiskit/tree/f14e0b29a484795034447ea5bfb637fe845c194f",
        "file": "qiskit/circuit/library/generalized_gates/diagonal.py",
        "sdk": "Qiskit",
        "available_doc": true
      },
      "testability_refactoring": [
        "Dependency decoupling"
      ]
    },
    "diagonal_hamiltonian": {
      "description": "Hamiltonian evolution for diagonal Z Hamiltonian",
      "family": "hamiltonian",
      "class": "DiagonalZHamiltonian",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/MgcosA/Code_of_Testing_Oracle_Quantum_Program_Article/blob/master/",
        "file": "qolumbina/programs/HamiltonX.qs",
        "sdk": "Q#",
        "available_doc": true
      },
      "testability_refactoring": [
        "Cross-language translation",
        "Structure reorganization",
        "Input validation"
      ]
    },
    "dj": {
      "description": "Deutsch-Jozsa algorithm: Determine if a function is constant or balanced with a single oracle query.",
      "family": "deutsch_jozsa",
      "class": "DeutschJozsa",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/Qiskit/textbook?tab=Apache-2.0-1-ov-file",
        "file": "notebooks/ch-algorithms/deutsch-jozsa.ipynb",
        "sdk": "Qiskit",
        "available_doc": true
      },
      "testability_refactoring": [
        "Structure reorganization",
        "input validation"
      ]
    },
    "draper_adder": {
      "description": "Quantum adder (Draper Adder)",
      "family": "quantum_adder",
      "class": "DraperAdder",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/MgcosA/Code_of_Testing_Oracle_Quantum_Program_Article/blob/master/",
        "file": "qolumbina/programs/QAdder.qs",
        "sdk": "Q#",
        "available_doc": true
      },
      "testability_refactoring": [
        "Cross-language translation",
        "Structure reorganization"
      ]
    },
    "exact_reciprocal": {
      "description": "Exact reciprocal rotation circuit",
      "family": "exact_reciprocal",
      "class": "ExactReciprocal",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/Qiskit/qiskit/tree/f14e0b29a484795034447ea5bfb637fe845c194f",
        "file": "qiskit/circuit/library/arithmetic/exact_reciprocal.py",
        "sdk": "Qiskit",
        "available_doc": true
      },
      "testability_refactoring": []
    },
    "full_adder": {
      "description": "Full adder circuit",
      "family": "quantum_adder",
      "class": "FullAdder",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/Qiskit/qiskit/tree/f14e0b29a484795034447ea5bfb637fe845c194f",
        "file": "qiskit/circuit/library/arithmetic/adders/adder.py",
        "sdk": "Qiskit",
        "available_doc": true
      },
      "testability_refactoring": [
        "Structure reorganization",
        "Dependency decoupling"
      ]
    },
    "ghz_state": {
      "description": "GHZ state preparation circuit",
      "family": "state_preparation",
      "class": "GHZState",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/munich-quantum-toolkit/bench/tree/main",
        "file": "src/mqt/bench/benchmarks/ghz.py",
        "sdk": "Qiskit",
        "available_doc": false
      },
      "testability_refactoring": [
        "Structure reorganization"
      ]
    },
    "graph_state": {
      "description": "Prepare a graph state based on an adjacency matrix",
      "family": "state_preparation",
      "class": "GraphState",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/Qiskit/qiskit/tree/f14e0b29a484795034447ea5bfb637fe845c194f",
        "file": "qiskit/circuit/library/graph_state.py",
        "sdk": "Qiskit",
        "available_doc": true
      },
      "testability_refactoring": []
    },
    "grover_operator": {
      "description": "Construct the Grover operator circuit",
      "family": "grover",
      "class": "GroverOperator",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/Qiskit/qiskit/tree/f14e0b29a484795034447ea5bfb637fe845c194f",
        "file": "qiskit/circuit/library/grover_operator.py",
        "sdk": "Qiskit",
        "available_doc": true
      },
      "testability_refactoring": [
        "Dependency decoupling",
        "Structure reorganization"
      ]
    },
    "grover_search": {
      "description": "Construct a complete Grover search quantum circuit",
      "family": "grover",
      "class": "GroverSearch",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/LuisLlana/metamorphic_testing/tree/main",
        "file": "adder_mod.py",
        "sdk": "Qiskit",
        "available_doc": false
      },
      "testability_refactoring": [
        "Input validation",
        "Structure reorganization"
      ]
    },
    "hhl": {
      "description": "Harrow-Hassidim-Lloyd (HHL) algorithm for solving linear systems of equations",
      "family": "harrow_hassidim_lloyd",
      "class": "HarrowHassidimLloyd",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/SRI-International/QC-App-Oriented-Benchmarks?tab=Apache-2.0-1-ov-file",
        "file": "hhl/qiskit/hhl_benchmark.py",
        "sdk": "Qiskit",
        "available_doc": true
      },
      "testability_refactoring": [
        "Dependency decoupling",
        "Structure reorganization",
        "Input validation"
      ]
    },
    "hidden_shift": {
      "description": "Hidden Shift Benchmark Program",
      "family": "hidden_subgroup_problem",
      "class": "HiddenShift",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/SRI-International/QC-App-Oriented-Benchmarks?tab=Apache-2.0-1-ov-file",
        "file": "hidden_shift/qiskit/hs_kernel.py",
        "sdk": "Qiskit",
        "available_doc": true
      },
      "testability_refactoring": [
        "Structure reorganization",
        "Input validation"
      ]
    },
    "integer_comparator_greedy": {
      "description": "Implement an integer comparison based on value-by-value comparison, where this version stores the comparison result in a target qubit.",
      "family": "comparator",
      "class": "IntegerComparatorGreedy",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/Qiskit/qiskit/tree/f14e0b29a484795034447ea5bfb637fe845c194f",
        "file": "qiskit/circuit/library/arithmetic/integer_comparator.py",
        "language": "Qiskit",
        "available_doc": true
      },
      "testability_refactoring": [
        "Structure reorganization",
        "Dependency decoupling"
      ]
    },
    "integer_comparator_old": {
      "description": "Implement an integer comparison of an old version, where this version stores the comparison result in n target qubits.",
      "family": "comparator",
      "class": "IntegerComparatorOld",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/NahidaNahida/mstcs",
        "file": "mycode/testing/IntegerComparator/programs/comp.py",
        "language": "Qiskit",
        "available_doc": true
      },
      "testability_refactoring": [
        "Structure reorganization"
      ]
    },
    "is_two_power_phase": {
      "description": "Check if input is a power of two (phase version)",
      "family": "is_two_power",
      "class": "Is2PowerPhase",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/MgcosA/Code_of_Testing_Oracle_Quantum_Program_Article/blob/master/",
        "file": "qolumbina/programs/Is2Power.qs",
        "sdk": "Q#",
        "available_doc": true
      },
      "testability_refactoring": [
        "Cross-language translation",
        "Structure reorganization"
      ]
    },
    "is_two_power_qubit": {
      "description": "Check if input is a power of two (qubit version)",
      "family": "is_two_power",
      "class": "Is2PowerQubit",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/MgcosA/Code_of_Testing_Oracle_Quantum_Program_Article/blob/master/",
        "file": "qolumbina/programs/Is2Power.qs",
        "sdk": "Q#",
        "available_doc": true
      },
      "testability_refactoring": [
        "Cross-language translation",
        "Structure reorganization"
      ]
    },
    "ising": {
      "description": "Implement the Ising evolution",
      "family": "ising",
      "class": "IsingEvolution",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/MgcosA/Code_of_Testing_Oracle_Quantum_Program_Article/blob/master/",
        "file": "qolumbina/programs/Ising.qs",
        "sdk": "Q#",
        "available_doc": true
      },
      "testability_refactoring": [
        "Cross-language translation",
        "Structure reorganization",
        "Input validation"
      ]
    },
    "less_than_phase": {
      "description": "Less-than comparator oracle (phase version)",
      "family": "comparator",
      "class": "LessThanPhase",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/MgcosA/Code_of_Testing_Oracle_Quantum_Program_Article/blob/master/",
        "file": "qolumbina/programs/LessThan.qs",
        "language": "Q#",
        "available_doc": true
      },
      "testability_refactoring": [
        "Cross-language translation",
        "Structure reorganization",
        "Input validation"
      ]
    },
    "less_than_qubit": {
      "description": "Less-than comparator oracle (qubit version)",
      "family": "comparator",
      "class": "LessThanQubit",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/MgcosA/Code_of_Testing_Oracle_Quantum_Program_Article/blob/master/",
        "file": "qolumbina/programs/LessThan.qs",
        "language": "Q#",
        "available_doc": true
      },
      "testability_refactoring": [
        "Cross-language translation",
        "Structure reorganization",
        "Input validation"
      ]
    },
    "linear_pauli_rotations": {
      "description": "A gate implementing linear Pauli rotations.",
      "family": "pauli_rotations",
      "class": "LinearPauliRotations",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/Qiskit/qiskit/tree/f14e0b29a484795034447ea5bfb637fe845c194f",
        "file": "qiskit/circuit/library/arithmetic/linear_pauli_rotations.py",
        "sdk": "Qiskit",
        "available_doc": true
      },
      "testability_refactoring": [
        "Structure reorganization"
      ]
    },
    "monte_carlo": {
      "description": "Implement the Monte Carlo Sampling algorithm via Amplitude Estimation",
      "family": "monte_carlo",
      "class": "QuantumMonteCarlo",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/SRI-International/QC-App-Oriented-Benchmarks?tab=Apache-2.0-1-ov-file",
        "file": "monte_carlo/qiskit/mc_benchmark.py",
        "sdk": "Qiskit",
        "available_doc": true
      },
      "testability_refactoring": [
        "Structure reorganization",
        "Dependency decoupling"
      ]
    },
    "multiplier_hrs": {
      "description": "Compute the product of two equally sized qubit registers using HRS cumulative multiplier",
      "family": "quantum_multiplier",
      "class": "MultiplierHRS",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/munich-quantum-toolkit/bench/tree/main",
        "file": "src/mqt/bench/benchmarks/hrs_cumulative_multiplier.py",
        "sdk": "Qiskit",
        "available_doc": false
      },
      "testability_refactoring": [
        "Dependency decoupling",
        "Structure reorganization"
      ]
    },
    "multiplier_qft": {
      "description": "Compute the product of two equally sized qubit registers using QFT",
      "family": "quantum_multiplier",
      "class": "MultiplierQFT",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/Qiskit/qiskit/tree/f14e0b29a484795034447ea5bfb637fe845c194f",
        "file": "qiskit/circuit/library/arithmetic/multipliers/multiplier.py",
        "sdk": "Qiskit",
        "available_doc": true
      },
      "testability_refactoring": [
        "Dependency decoupling",
        "Structure reorganization"
      ]
    },
    "parity_phase": {
      "description": "Parity oracle (phase version)",
      "family": "parity",
      "class": "ParityPhase",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/MgcosA/Code_of_Testing_Oracle_Quantum_Program_Article/blob/master/",
        "file": "qolumbina/programs/Parity.qs",
        "sdk": "Q#",
        "available_doc": true
      },
      "testability_refactoring": [
        "Cross-language translation",
        "Structure reorganization"
      ]
    },
    "parity_qubit": {
      "description": "Parity oracle (qubit version)",
      "family": "parity",
      "class": "ParityQubit",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/MgcosA/Code_of_Testing_Oracle_Quantum_Program_Article/blob/master/",
        "file": "qolumbina/programs/Parity.qs",
        "sdk": "Q#",
        "available_doc": true
      },
      "testability_refactoring": [
        "Cross-language translation",
        "Structure reorganization"
      ]
    },
    "phase_estimation": {
      "description": "Estimate the phase of an eigenvalue of a unitary operator",
      "family": "phase_estimation",
      "class": "PhaseEstimation",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/Qiskit/qiskit/tree/f14e0b29a484795034447ea5bfb637fe845c194f",
        "file": "qiskit/circuit/library/phase_estimation.py",
        "sdk": "Qiskit",
        "available_doc": true
      },
      "testability_refactoring": [
        "Dependency decoupling",
        "Structure reorganization"
      ]
    },
    "polynomial_pauli_rotations": {
      "description": "A circuit implementing polynomial Pauli rotations.",
      "family": "pauli_rotations",
      "class": "PolynomialPauliRotations",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/Qiskit/qiskit/tree/f14e0b29a484795034447ea5bfb637fe845c194f",
        "file": "qiskit/circuit/library/arithmetic/polynomial_pauli_rotations.py",
        "sdk": "Qiskit",
        "available_doc": true
      },
      "testability_refactoring": [
        "Structure reorganization"
      ]
    },
    "qft": {
      "description": "Quantum Fourier Transform circuit (QFT)",
      "family": "quantum_fourier_transform",
      "class": "QFT",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/Qiskit/qiskit/tree/f14e0b29a484795034447ea5bfb637fe845c194f",
        "file": "qiskit/circuit/library/basis_change/qft.py",
        "sdk": "Qiskit",
        "available_doc": true
      },
      "testability_refactoring": [
        "Dependency decoupling",
        "Structure reorganization"
      ]
    },
    "quadratic_form": {
      "description": "Compute a quadratic form on binary variables encoded in qubit registers",
      "family": "quadratic_form",
      "class": "QuadraticForm",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/Qiskit/qiskit/tree/f14e0b29a484795034447ea5bfb637fe845c194f",
        "file": "qiskit/circuit/library/arithmetic/quadratic_form.py",
        "sdk": "Qiskit",
        "available_doc": true
      },
      "testability_refactoring": [
        "Dependency decoupling",
        "Structure reorganization"
      ]
    },
    "quantum_walk": {
      "description": "Quantum Walk circuit: discrete-time quantum walk on a line",
      "family": "quantum_walk",
      "class": "QuantumWalk",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/munich-quantum-toolkit/bench/tree/main",
        "file": "src/mqt/bench/benchmarks/qwalk.py",
        "sdk": "Qiskit",
        "available_doc": false
      },
      "testability_refactoring": [
        "Structure reorganization"
      ]
    },
    "shor": {
      "description": "Shor's algorithm for integer factorization",
      "family": "shor_algorithm",
      "class": "Shor",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/munich-quantum-toolkit/bench/tree/main",
        "file": "src/mqt/bench/benchmarks/shor.py",
        "sdk": "Qiskit",
        "available_doc": false
      },
      "testability_refactoring": [
        "Structure reorganization",
        "Dependency decoupling"
      ]
    },
    "simon": {
      "description": "Simon's algorithm for hidden bitstring finding",
      "family": "hidden_subgroup_problem",
      "class": "Simon",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/qiskit-community/qiskit-textbook",
        "file": "content/ch-algorithms/simon.ipynb",
        "language": "Qiskit",
        "available_doc": true
      },
      "testability_refactoring": [
        "Dependency decoupling",
        "Structure reorganization",
        "Input validation"
      ]
    },
    "sparse_hamiltonian": {
      "description": "Evolution for sparse Hamiltonian",
      "family": "hamiltonian",
      "class": "SparseHamiltonian",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/SRI-International/QC-App-Oriented-Benchmarks?tab=Apache-2.0-1-ov-file",
        "file": "hhl/qiskit/sparse_Ham_sim.py",
        "language": "Qiskit",
        "available_doc": false
      },
      "testability_refactoring": [
        "Structure reorganization",
        "Input validation"
      ]
    },
    "uniform_controlled_rotations": {
      "description": "Uniformly controlled rotations: Applies rotations on an ancilla qubit controlled by multiple qubits.",
      "family": "pauli_rotations",
      "class": "UniformlyControlledRotations",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/SRI-International/QC-App-Oriented-Benchmarks?tab=Apache-2.0-1-ov-file",
        "file": "hhl/qiskit/uniform_controlled_rotation.py",
        "sdk": "Qiskit",
        "available_doc": false
      },
      "testability_refactoring": [
        "Structure reorganization",
        "Input validation"
      ]
    },
    "w_state": {
      "description": "W state preparation circuit",
      "family": "state_preparation",
      "class": "WState",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/munich-quantum-toolkit/bench/tree/main",
        "file": "src/mqt/bench/benchmarks/wstate.py",
        "language": "Qiskit",
        "available_doc": false
      },
      "testability_refactoring": [
        "Structure reorganization"
      ]
    },
    "weighted_adder": {
      "description": "Weighted adder circuit",
      "family": "quantum_adder",
      "class": "WeightedAdder",
      "quantum_sdk": "Qiskit",
      "source": {
        "repo": "https://github.com/Qiskit/qiskit/tree/f14e0b29a484795034447ea5bfb637fe845c194f",
        "file": "qiskit/circuit/library/arithmetic/weighted_adder.py",
        "sdk": "Qiskit",
        "available_doc": true
      },
      "testability_refactoring": [
        "Structure reorganization"
      ]
    }
  }
}