Example #1
0
 def test_optimize_variational_circuit_with_proxy_x_squared(self):
     # Given
     client = MockedClient(self.ipaddress, self.port, "return_x_squared")
     params = [4]
     optimizer = MockOptimizer()
     # When
     opt_results = optimize_variational_circuit_with_proxy(
         params, optimizer, client)
     # Then
     self.assertGreater(opt_results["opt_value"].value, 0)
     self.assertEqual(len(opt_results["opt_params"]), 1)
Example #2
0
 def test_optimize_variational_circuit_with_proxy_all_zero_line(self):
     # Given
     client = MockedClient(self.ipaddress, self.port)
     params = [0, 0]
     optimizer = MockOptimizer()
     # When
     opt_results = optimize_variational_circuit_with_proxy(
         params, optimizer, client)
     # Then
     self.assertEqual(opt_results["opt_value"].value, 0)
     self.assertEqual(len(opt_results["opt_params"]), 2)
Example #3
0
    def test_optimize_variational_circuit_with_proxy_errors(self):
        client = MockedClient(self.ipaddress, self.port)
        params = [0]
        optimizer = MockOptimizer()
        # self.assertRaises(ValueError, lambda: optimize_variational_circuit_with_proxy(
        #     "Not initial params", optimizer, client))

        self.assertRaises(AttributeError, lambda: optimize_variational_circuit_with_proxy(
            params, "Not an optimizer object", "Not a client"))

        self.assertRaises(AttributeError, lambda: optimize_variational_circuit_with_proxy(
            params, optimizer, "Not a client"))
Example #4
0
 def test_optimize_variational_circuit_with_proxy_x_squared(self):
     # Given
     client = MockedClient(self.ipaddress, self.port, "return_x_squared")
     params = [4]
     optimizer = MockOptimizer()
     # When
     opt_results = optimize_variational_circuit_with_proxy(params,
                     optimizer, client)
     # Then
     self.assertGreater(opt_results['opt_value'], 0)
     self.assertEqual(len(opt_results['opt_params']), 1)
     self.assertEqual(opt_results['history'], [{'optimization-evaluation-ids': ['MOCKED-ID']}])
Example #5
0
 def test_optimize_variational_circuit_with_proxy_all_zero_line(self):
     # Given
     client = MockedClient(self.ipaddress, self.port)
     params = [0, 0]
     optimizer = MockOptimizer()
     # When
     opt_results = optimize_variational_circuit_with_proxy(params,
                     optimizer, client)
     # Then
     self.assertEqual(opt_results['opt_value'], 0)
     self.assertEqual(len(opt_results['opt_params']), 2)
     self.assertEqual(opt_results['history'], [{'optimization-evaluation-ids': ['MOCKED-ID']}])
Example #6
0
def test_solve_qp_problem_with_optimizer_throws_error_when_optimizer_does_not_support_constraints(
    matrix, ):
    optimizer = MockOptimizer()
    with pytest.raises(ValueError):
        solution, optimal_value = solve_qp_problem_with_optimizer(
            matrix, optimizer)
Example #7
0
def optimizer():
    optimizer = MockOptimizer()
    optimizer.constraints = None
    return optimizer
class MaliciousNestedOptimizer(MockNestedOptimizer):
    def _minimize(
        self,
        cost_function_factory: Callable[[int], CostFunction],
        initial_params: np.ndarray,
        keep_history: bool = False,
    ):
        keep_history = not keep_history
        results = super()._minimize(cost_function_factory,
                                    initial_params,
                                    keep_history=keep_history)
        del results["nit"]
        return results


_good_nested_optimizer = MockNestedOptimizer(inner_optimizer=MockOptimizer(),
                                             n_iters=5)
_malicious_nested_optimizer = MaliciousNestedOptimizer(
    inner_optimizer=MockOptimizer(), n_iters=5)


def mock_cost_function_factory(iteration_id: int):
    def modified_cost_function(params):
        return mock_cost_function(params)**iteration_id

    return modified_cost_function


@pytest.mark.parametrize("contract", NESTED_OPTIMIZER_CONTRACTS)
def test_validate_contracts(contract):
    assert contract(