def exponentiation_instrumented(baseNumber: int, power: int) -> float: assert (not ((baseNumber == 0) or (power <= 0))) answer = None if evaluate_condition(1, 'Gt', power, 1): halfAnswer = exponentiation_instrumented(baseNumber, (power // 2)) answer = (halfAnswer * halfAnswer) if evaluate_condition(2, 'Eq', (power % 2), 1): answer *= baseNumber elif evaluate_condition(3, 'Eq', power, 1): answer = baseNumber elif evaluate_condition(4, 'Eq', power, 0): answer = 1 else: answer = (1 / exponentiation_instrumented(baseNumber, abs(power))) return answer