def test_sample_hising_quadratic_range(self):
        linear = {'a': -4.0, 'b': -4.0, 'c': -4.0}
        quadratic = {('a', 'b', 'c'): 3.2}
        offset = 5
        ignored_variables, ignored_interactions = _check_params(None, None)

        comp_parameters = dict(ignored_interactions=ignored_interactions,
                               ignored_variables=ignored_variables,
                               penalty_strength=5.,
                               quadratic_range=(-1, 2)
                               )
        sampler = ScaleComposite(
            ScalingChecker(HigherOrderComposite(ExactSolver()),
                           h=linear,
                           J=quadratic, offset=offset,
                           **comp_parameters))
        response = sampler.sample_ising(linear, quadratic, offset=offset,
                                        **comp_parameters)

        self.assertAlmostEqual(response.first.energy, -3.8)

        comp_parameters = dict(ignored_interactions=ignored_interactions,
                               ignored_variables=ignored_variables,
                               penalty_strength=5.,
                               quadratic_range=(-1, 0.4)
                               )
        sampler = ScaleComposite(
            ScalingChecker(HigherOrderComposite(ExactSolver()),
                           h=linear,
                           J=quadratic, offset=offset,
                           **comp_parameters))
        response = sampler.sample_ising(linear, quadratic, offset=offset,
                                        **comp_parameters)

        self.assertAlmostEqual(response.first.energy, -3.8)
 def test_sample_ising_quadratic(self):
     linear = {'a': -4.0, 'b': -4.0}
     quadratic = {('a', 'b'): 3.2}
     offset = 5
     ignored_variables, ignored_interactions = _check_params(None, None)
     comp_parameters = dict(ignored_interactions=ignored_interactions,
                            ignored_variables=ignored_variables)
     sampler = ScaleComposite(ScalingChecker(ExactSolver(), h=linear,
                                             J=quadratic, offset=offset,
                                             **comp_parameters))
     response = sampler.sample_ising(linear, quadratic,
                                     offset=offset)
     self.assertAlmostEqual(response.first.energy, 0.2)
    def test_sample_hising_ignore_variables(self):
        linear = {'a': -4.0, 'b': -4.0, 'c': -4.0}
        quadratic = {('a', 'b', 'c'): 3.2}
        offset = 5
        ignored_variables, ignored_interactions = _check_params(
            ['a'], None)
        comp_parameters = dict(ignored_interactions=ignored_interactions,
                               ignored_variables=ignored_variables,
                               ignore_offset=True,
                               scalar=0.5)

        sampler = ScaleComposite(ScalingChecker(HigherOrderComposite(
            ExactSolver()), h=linear,
            J=quadratic, offset=offset,
            **comp_parameters))
        response = sampler.sample_ising(linear, quadratic, offset=offset,
                                        **comp_parameters)
        self.assertAlmostEqual(response.first.energy, -3.8)