def setUp(self): super().setUp() random.seed(123) low = 0 high = 100 pos = { i: (random.randint(low, high), random.randint(low, high)) for i in range(4) } self.graph = nx.random_geometric_graph( 4, np.hypot(high - low, high - low) + 1, pos=pos) for w, v in self.graph.edges: delta = [ self.graph.nodes[w]["pos"][i] - self.graph.nodes[v]["pos"][i] for i in range(2) ] self.graph.edges[w, v]["weight"] = np.rint( np.hypot(delta[0], delta[1])) op = QuadraticProgram() for i in range(16): op.binary_var() self.result = OptimizationResult( x=[1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], fval=272, variables=op.variables, status=OptimizationResultStatus.SUCCESS, )
def test_prettyprint(self): """test prettyprint""" with self.subTest("success"): q_p = QuadraticProgram() q_p.integer_var_list(3) result = OptimizationResult( x=[1.0, 2.0, 3.0], fval=10.1, variables=q_p.variables, status=OptimizationResultStatus.SUCCESS, ) expected = "\n".join([ "objective function value: 10.1", "variable values: x0=1.0, x1=2.0, x2=3.0", "status: SUCCESS", ]) self.assertEqual(result.prettyprint(), expected) with self.subTest("failure"): q_p = QuadraticProgram() q_p.integer_var_list(3) result = OptimizationResult( x=[-1.0, 2.0, -3.0], fval=10.0, variables=q_p.variables, status=OptimizationResultStatus.FAILURE, ) expected = "\n".join([ "objective function value: 10.0", "variable values: x0=-1.0, x1=2.0, x2=-3.0", "status: FAILURE", ]) self.assertEqual(result.prettyprint(), expected) with self.subTest("infeasible"): q_p = QuadraticProgram() q_p.integer_var_list(3, name="y", key_format="_{}") result = OptimizationResult( x=[1.0, 2.0, -3.0], fval=11.0, variables=q_p.variables, status=OptimizationResultStatus.INFEASIBLE, ) expected = "\n".join([ "objective function value: 11.0", "variable values: y_0=1.0, y_1=2.0, y_2=-3.0", "status: INFEASIBLE", ]) self.assertEqual(result.prettyprint(), expected)
def setUp(self): """Set up for the test""" super().setUp() self.num_set = [8, 7, 6, 5, 4] op = QuadraticProgram() for _ in range(5): op.binary_var() self.result = OptimizationResult( x=[1, 1, 0, 0, 0], fval=0, variables=op.variables, status=OptimizationResultStatus.SUCCESS)
def setUp(self): """Set up for the tests""" super().setUp() self.graph = nx.gnm_random_graph(5, 8, 123) op = QuadraticProgram() for _ in range(5): op.binary_var() self.result = OptimizationResult( x=[1, 0, 1, 1, 1], fval=4, variables=op.variables, status=OptimizationResultStatus.SUCCESS, ) self.result_c3 = OptimizationResult( x=[1, 0, 1, 1, 0], fval=0, variables=op.variables, status=OptimizationResultStatus.SUCCESS, )
def setUp(self): """set up the test class""" super().setUp() self.graph = nx.gnm_random_graph(5, 4, 3) op = QuadraticProgram() for _ in range(5): op.binary_var() self.result = OptimizationResult( x=[0, 0, 0, 0, 1], fval=1, variables=op.variables, status=OptimizationResultStatus.SUCCESS)
def setUp(self): super().setUp() self.graph = nx.gnm_random_graph(5, 4, 3) op = QuadraticProgram() for _ in range(5): op.binary_var() self.result = OptimizationResult( x=[1, 1, 1, 1, 0], fval=4, variables=op.variables, status=OptimizationResultStatus.SUCCESS)
def test_str_repr(self): """test str and repr""" with self.subTest("success"): q_p = QuadraticProgram() q_p.integer_var_list(3) result = OptimizationResult( x=[1.0, 2.0, 3.0], fval=10.1, variables=q_p.variables, status=OptimizationResultStatus.SUCCESS, ) expected = "fval=10.1, x0=1.0, x1=2.0, x2=3.0, status=SUCCESS" self.assertEqual(str(result), expected) self.assertEqual(repr(result), f"<OptimizationResult: {expected}>") with self.subTest("failure"): q_p = QuadraticProgram() q_p.integer_var_list(3) result = OptimizationResult( x=[-1.0, 2.0, -3.0], fval=10.0, variables=q_p.variables, status=OptimizationResultStatus.FAILURE, ) expected = "fval=10.0, x0=-1.0, x1=2.0, x2=-3.0, status=FAILURE" self.assertEqual(str(result), expected) self.assertEqual(repr(result), f"<OptimizationResult: {expected}>") with self.subTest("infeasible"): q_p = QuadraticProgram() q_p.integer_var_list(3, name="y", key_format="_{}") result = OptimizationResult( x=[1.0, 2.0, -3.0], fval=11.0, variables=q_p.variables, status=OptimizationResultStatus.INFEASIBLE, ) expected = "fval=11.0, y_0=1.0, y_1=2.0, y_2=-3.0, status=INFEASIBLE" self.assertEqual(str(result), expected) self.assertEqual(repr(result), f"<OptimizationResult: {expected}>")
def setUp(self): """Set up for the tests""" super().setUp() self.values = [10, 40, 30, 50] self.weights = [5, 4, 6, 3] self.max_weight = 10 op = QuadraticProgram() for _ in range(4): op.binary_var() self.result = OptimizationResult( x=[0, 1, 0, 1], fval=90, variables=op.variables, status=OptimizationResultStatus.SUCCESS)
def setUp(self): super().setUp() self.total_set = [1, 2, 3, 4, 5] self.list_of_subsets = [[1, 2, 3], [2, 3, 4], [4, 5], [1, 3], [2]] op = QuadraticProgram() for _ in range(5): op.binary_var() self.result = OptimizationResult( x=[0, 0, 1, 1, 1], fval=3, variables=op.variables, status=OptimizationResultStatus.SUCCESS)
def setUp(self): """Set up for the tests""" super().setUp() self.total_set = [1, 2, 3, 4, 5] self.list_of_subsets = [[1, 4], [2, 3, 4], [1, 5], [2, 3]] op = QuadraticProgram() for _ in range(4): op.binary_var() self.result = OptimizationResult( x=[0, 1, 1, 0], fval=2, variables=op.variables, status=OptimizationResultStatus.SUCCESS)
def setUp(self): """Set up for the tests""" super().setUp() self.weights = [16, 9, 23] self.max_weight = 40 self.max_number_of_bins = 2 op = QuadraticProgram() for _ in range(12): op.binary_var() self.result = OptimizationResult( x=[1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1], fval=2.0, variables=op.variables, status=OptimizationResultStatus.SUCCESS, )
def test_init(self): """test init""" q_p = QuadraticProgram() q_p.integer_var_list(3) result = OptimizationResult(x=[1, 2, 3], fval=10, variables=q_p.variables, status=OptimizationResultStatus.SUCCESS) np.testing.assert_allclose(result.x, [1, 2, 3]) self.assertAlmostEqual(result.fval, 10) self.assertEqual(result.status, OptimizationResultStatus.SUCCESS) self.assertIsNone(result.raw_results) self.assertEqual(len(result.samples), 1) sample = result.samples[0] np.testing.assert_allclose(sample.x, [1, 2, 3]) self.assertAlmostEqual(sample.fval, 10) self.assertEqual(sample.status, OptimizationResultStatus.SUCCESS) self.assertAlmostEqual(sample.probability, 1)
def setUp(self): super().setUp() self._num_of_sites = 2 self._seed = 0 self._graph = nx.convert_matrix.from_numpy_matrix( np.array([[0, -1], [-1, 0]])) self._new_disorder_graph = nx.convert_matrix.from_numpy_matrix( np.array([[0, 1], [1, 0]])) op = QuadraticProgram() for _ in range(2): op.binary_var() self._result = OptimizationResult( x=[0, 0], fval=-1 / np.sqrt(2), variables=op.variables, status=OptimizationResultStatus.SUCCESS, )