def test_3x3_identity(self):
        C33 = dnx.chimera_graph(3, 3)
        coord = chimera_coordinates(3, 3, 4)

        labels = canonical_chimera_labeling(C33)
        labels = {v: coord.chimera_to_linear(labels[v]) for v in labels}

        G = nx.relabel_nodes(C33, labels, copy=True)

        self.assertTrue(nx.is_isomorphic(G, C33))
    def test_row_identity(self):
        C41 = dnx.chimera_graph(4, 1)
        coord = chimera_coordinates(4, 1, 4)

        labels = canonical_chimera_labeling(C41)
        labels = {v: coord.chimera_to_linear(labels[v]) for v in labels}

        G = nx.relabel_nodes(C41, labels, copy=True)

        self.assertTrue(nx.is_isomorphic(G, C41))
    def test_tile_identity(self):
        C1 = dnx.chimera_graph(1)
        coord = chimera_coordinates(1, 1, 4)

        labels = canonical_chimera_labeling(C1)
        labels = {v: coord.chimera_to_linear(labels[v]) for v in labels}

        G = nx.relabel_nodes(C1, labels, copy=True)

        self.assertTrue(nx.is_isomorphic(G, C1))
        self.assertEqual(set(G), set(C1))
    def test_bqm_tile_identity(self):
        C1bqm = dimod.BinaryQuadraticModel.from_ising(
            {}, {e: -1
                 for e in dnx.chimera_graph(1).edges})
        coord = chimera_coordinates(1, 1, 4)

        labels = canonical_chimera_labeling(C1bqm)
        labels = {v: coord.chimera_to_linear(labels[v]) for v in labels}

        bqm = C1bqm.relabel_variables(labels, inplace=False)

        self.assertEqual(bqm, C1bqm)
Exemple #5
0
    def test_reversed(self):
        C33 = nx.OrderedGraph()
        C33.add_nodes_from(reversed(range(3 * 3 * 4)))
        C33.add_edges_from(dnx.chimera_graph(3, 3, 4).edges)
        coord = chimera_coordinates(3, 3, 4)

        labels = canonical_chimera_labeling(C33)
        labels = {v: coord.chimera_to_linear(labels[v]) for v in labels}

        G = nx.relabel_nodes(C33, labels, copy=True)

        self.assertTrue(nx.is_isomorphic(G, C33))
    def test_construction_string_labels(self):
        C22 = dnx.chimera_graph(2, 2, 3)
        coord = chimera_coordinates(2, 2, 3)

        alpha = 'abcdefghijklmnopqrstuvwxyz'

        bqm = dimod.BinaryQuadraticModel.empty(dimod.BINARY)

        for u, v in reversed(list(C22.edges)):
            bqm.add_interaction(alpha[u], alpha[v], 1)

        assert len(bqm.quadratic) == len(C22.edges)
        assert len(bqm) == len(C22)

        labels = canonical_chimera_labeling(bqm)
        labels = {v: alpha[coord.chimera_to_linear(labels[v])] for v in labels}

        bqm2 = bqm.relabel_variables(labels, inplace=False)

        self.assertEqual(bqm, bqm2)