





'''simple docstring'''

import math

import qiskit







def 							UpperCAmelCase_    (	lowerCAmelCase_ = 1		,							lowerCAmelCase_ = 1		,							lowerCAmelCase_ = 1							):

				"""simple docstring"""






				if (
				    isinstance(lowerCAmelCase_		,							lowerCAmelCase_							)
				    or isinstance(lowerCAmelCase_		,							lowerCAmelCase_							)
				    or isinstance(lowerCAmelCase_		,							lowerCAmelCase_							)
				):
								raise TypeError("inputs must be integers."							)

				if (input_a < 0) or (input_a < 0) or (carry_in < 0):
								raise ValueError("inputs must be positive."							)

				if (
				    (math.floor(lowerCAmelCase_							) != input_a)
				    or (math.floor(lowerCAmelCase_							) != input_a)
				    or (math.floor(lowerCAmelCase_							) != carry_in)
				):
								raise ValueError("inputs must be exact integers."							)

				if (input_a > 2) or (input_a > 2) or (carry_in > 2):
								raise ValueError("inputs must be less or equal to 2."							)

				# build registers
				lowercase         = qiskit.QuantumRegister(4		,							"qr"							)
				lowercase         = qiskit.ClassicalRegister(2		,							"cr"							)
				# list the entries
				lowercase         = [input_a, input_a, carry_in]

				lowercase         = qiskit.QuantumCircuit(lowerCAmelCase_		,							lowerCAmelCase_							)

				for i in range(0		,							3							):
								if entry[i] == 2:
												quantum_circuit.h(lowerCAmelCase_							)  # for hadamard entries
								elif entry[i] == 1:
												quantum_circuit.x(lowerCAmelCase_							)  # for 1 entries
								elif entry[i] == 0:
												quantum_circuit.i(lowerCAmelCase_							)  # for 0 entries

    # build the circuit
				quantum_circuit.ccx(0		,							1		,							3							)  # ccx = toffoli gate
				quantum_circuit.cx(0		,							1							)
				quantum_circuit.ccx(1		,							2		,							3							)
				quantum_circuit.cx(1		,							2							)
				quantum_circuit.cx(0		,							1							)

				quantum_circuit.measure([2, 3]		,							lowerCAmelCase_							)  # measure the last two qbits

				lowercase         = qiskit.Aer.get_backend("aer_simulator"							)
				lowercase         = qiskit.execute(lowerCAmelCase_		,							lowerCAmelCase_		,							shots=1000							)

				return job.result().get_counts(lowerCAmelCase_							)


if __name__ == "__main__":
			print(f"Total sum count for state is: {quantum_full_adder(1, 1, 1)}")











'''simple docstring'''

# This is the module that test_patching.py uses to test patch_submodule()

import os  # noqa: this is just for tests
import os as renamed_os  # noqa: this is just for tests
from os import path  # noqa: this is just for tests
from os import path as renamed_path  # noqa: this is just for tests
from os.path import join  # noqa: this is just for tests
from os.path import join as renamed_join  # noqa: this is just for tests


__lowerCamelCase : Any											=			open  # noqa: we just need to have a builtin inside this module to test it properly




