def test_instantiation(self): for factory in [dimod.ExactSolver, dimod.RandomSampler, dimod.SimulatedAnnealingSampler]: sampler = dimod.StructureComposite(factory(), [0, 1, 2], [(0, 1), (0, 2), (1, 2)]) dit.assert_sampler_api(sampler) dit.assert_composite_api(sampler) dit.assert_structured_api(sampler)
def test_instantiation_triangle(self): sampler = FixedEmbeddingComposite(MockSampler(), {'a': [0, 4], 'b': [1, 5], 'c': [2, 6]}) dtest.assert_sampler_api(sampler) # checks adj consistent with nodelist/edgelist self.assertEqual(sampler.nodelist, ['a', 'b', 'c']) self.assertEqual(sampler.edgelist, [('a', 'b'), ('a', 'c'), ('b', 'c')])
def test_initialization(self): sampler = dimod.RandomSampler() dtest.assert_sampler_api(sampler) self.assertEqual(sampler.properties, {}) self.assertEqual(sampler.parameters, {'num_reads': []})
def test_instantiation(self): for factory in [dimod.ExactSolver, dimod.RandomSampler, dimod.SimulatedAnnealingSampler]: sampler = dimod.SpinReversalTransformComposite(factory()) dit.assert_sampler_api(sampler) dit.assert_composite_api(sampler)
def test_instantiation(self): sampler = dimod.ExactSolver() dtest.assert_sampler_api(sampler) # this sampler has no properties and has no accepted parameters self.assertEqual(sampler.properties, {}) self.assertEqual(sampler.parameters, {})
def test_pegasus_topology(self): grid_parameter = 4 sampler = MockDWaveSampler(topology_type='pegasus', topology_shape=[grid_parameter]) # P4 fabric only has 264 nodes self.assertTrue(len(sampler.nodelist) == 264) dit.assert_sampler_api(sampler) dit.assert_structured_api(sampler)
def test_instantiation_empty_embedding(self): sampler = FixedEmbeddingComposite(MockDWaveSampler(), {}) dtest.assert_sampler_api(sampler) # checks adj consistent with nodelist/edgelist self.assertEqual(sampler.edgelist, []) self.assertTrue(hasattr(sampler, 'embedding')) self.assertIn('embedding', sampler.properties)
def test_instantiation_empty_adjacency(self): sampler = FixedEmbeddingComposite(MockDWaveSampler(), source_adjacency={}) dtest.assert_sampler_api(sampler) # checks for attributes needed in a sampler self.assertEqual(sampler.edgelist, []) self.assertTrue(hasattr(sampler, 'embedding')) self.assertIn('embedding', sampler.properties)
def test_instantiate_chimera(self): # Use the provided architectures target_graph = generators.dw2x_graph() # Use any sampler and make structured (i.e. Simulated Annealing, Exact) or use structured sampler if available (i.e. D-Wave machine) structsampler = StructureComposite(RandomSampler(), target_graph.nodes, target_graph.edges) sampler = EmbeddingComposite(structsampler, minorminer) dtest.assert_sampler_api(sampler)
def test_instantiate_pegasus(self): # Use the provided architectures target_graph = generators.p6_graph() # Use any sampler and make structured (i.e. Simulated Annealing, Exact) or use structured sampler if available (i.e. D-Wave machine) structsampler = StructureComposite(SimulatedAnnealingSampler(), target_graph.nodes, target_graph.edges) sampler = LayoutAwareEmbeddingComposite(structsampler) dtest.assert_sampler_api(sampler)
def test_zephyr_topology(self): grid_parameter = 3 tile_parameter = 4 sampler = MockDWaveSampler( topology_type='zephyr', topology_shape=[grid_parameter, tile_parameter]) # P4 fabric only has 264 nodes self.assertTrue( len(sampler.nodelist) == tile_parameter * grid_parameter * (8 * grid_parameter + 4)) dit.assert_sampler_api(sampler) dit.assert_structured_api(sampler)
def test_chimera_topology(self): grid_parameter = 5 tile_parameter = 2 sampler = MockDWaveSampler( topology_type='chimera', topology_shape=[grid_parameter, grid_parameter, tile_parameter]) # C5 (shore 2) fabric only has 200 nodes self.assertTrue( len(sampler.nodelist) == grid_parameter * grid_parameter * tile_parameter * 2) dit.assert_sampler_api(sampler) dit.assert_structured_api(sampler)
def test_instantiation(self): C = dnx.chimera_graph(2, 2, 4) for factory in [ dimod.ExactSolver, dimod.RandomSampler, dimod.SimulatedAnnealingSampler ]: structsampler = dimod.StructureComposite(factory(), nodelist=C.nodes(), edgelist=C.edges()) sampler = CheckerboardTransformComposite(structsampler, C) dit.assert_sampler_api(sampler) dit.assert_composite_api(sampler)
def test_construction(self): child_sampler = DWaveSampler() # get an embedding K10_edges = list(itertools.combinations(range(10), 2)) embedding = minorminer.find_embedding(K10_edges, child_sampler.edgelist) sampler = VirtualGraphComposite(child_sampler, embedding) dtest.assert_sampler_api(sampler) h = {} J = {edge: -1 for edge in K10_edges} sampler.sample_ising(h, J) sampler.sample_ising(h, J, apply_flux_bias_offsets=False)
def test_construction(self): child_sampler = self.qpu # get an embedding K10_edges = list(itertools.combinations(range(10), 2)) embedding = minorminer.find_embedding(K10_edges, child_sampler.edgelist) sampler = VirtualGraphComposite(child_sampler, embedding, flux_bias_num_reads=10) dtest.assert_sampler_api(sampler) h = {} J = {edge: -1 for edge in K10_edges} # run with fbo sampler.sample_ising(h, J).resolve() # and again without sampler.sample_ising(h, J, apply_flux_bias_offsets=False).resolve()
def test_bug60(self): for __ in range(100): # make a small K5 bqm bqm = dimod.BinaryQuadraticModel.empty(dimod.BINARY) for v in range(5): bqm.add_variable(v, random.uniform(-1, 1)) for u, v in itertools.combinations(range(5), 2): bqm.add_interaction(u, v, random.uniform(-1, 1)) sampler_exact = dimod.ExactSolver() # get the structure of a C1,2 chimera lattice C12 = dnx.chimera_graph(2, 2, 3) nodelist = sorted(C12) edgelist = sorted(sorted(edge) for edge in C12.edges) sampler_structured = dimod.StructureComposite(sampler_exact, nodelist=nodelist, edgelist=edgelist) sampler_embedding = EmbeddingComposite(sampler_structured) dtest.assert_sampler_api(sampler_embedding) resp_exact = sampler_exact.sample(bqm) resp_emb = sampler_embedding.sample(bqm) for sample, energy in resp_emb.data(['sample', 'energy']): self.assertEqual(bqm.energy(sample), energy) ground_exact = dict(next(iter(resp_exact))) ground_embed = dict(next(iter(resp_emb))) self.assertEqual(ground_embed, ground_exact)
def test_instantiation_smoketest(self): sampler = EmbeddingComposite(MockDWaveSampler()) dtest.assert_sampler_api(sampler)
def test_instantiation_smoketest(self): sampler = CutOffComposite(dimod.ExactSolver(), 0) dtest.assert_sampler_api(sampler)
def test_instantiation_smoke(self): sampler = ConnectedComponentsComposite(ExactSolver()) dtest.assert_sampler_api(sampler)
def test_construction(self): sampler = RoofDualityComposite(dimod.ExactSolver()) dtest.assert_sampler_api(sampler)
def test_instantiation_smoke(self): sampler = FixVariablesComposite(ExactSolver()) dtest.assert_sampler_api(sampler)
def test_instantiation_smoketest(self): with self.assertWarns(DeprecationWarning): sampler = FixedVariableComposite(ExactSolver()) dtest.assert_sampler_api(sampler)
def setUp(self): sampler = MockDWaveSampler() dit.assert_sampler_api(sampler) dit.assert_structured_api(sampler)
def test_instantiation_smoketest_batch(self): sampler = ReverseBatchStatesComposite(dimod.ExactSolver()) dtest.assert_sampler_api(sampler)
def test_instantiation_smoketest_advance(self): sampler = ReverseAdvanceComposite(dimod.ExactSolver()) dtest.assert_sampler_api(sampler)
def test_api(self): sampler = ScaleComposite(dimod.ExactSolver()) dtest.assert_sampler_api(sampler)
def test_instantiation_smoketest(self): sampler = ScaleComposite(ExactSolver()) dtest.assert_sampler_api(sampler)
def test_instantiation_smoketest(self): sampler = ClipComposite(NullSampler()) dtest.assert_sampler_api(sampler)
def test_construction(self): with self.assertWarns(DeprecationWarning): sampler = RoofDualityComposite(dimod.ExactSolver()) dtest.assert_sampler_api(sampler)
def test_10(self): sampler = TruncateComposite(ExactSolver(), 10) dtest.assert_sampler_api(sampler) dtest.assert_composite_api(sampler) self.assertEqual(sampler.parameters, {})