Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • 120--learnernd-curvature
  • 133-use-a-itemsorteddict-for-the-loss-in-the-learnernd
  • 134-learner1d-load-throws-exception-when-file-is-empty
  • 74--add-anisotropicity-to-learnerND
  • AverageLearner2D
  • bugfix/suppress
  • ci_benchmarks
  • cython
  • function_in_runner
  • make_notebook_with_content
  • master
  • no_overlay_plotting
  • private_methods_learnernd
  • refactor/triangulating-learner
  • renorm_2d
  • rst_readme
  • rtol_integrator
  • stable-0.7
  • v0.1.0
  • v0.2.0
  • v0.2.0-dev
  • v0.2.1
  • v0.3.0
  • v0.3.0-dev
  • v0.4.0
  • v0.4.0-dev
  • v0.4.1
  • v0.5.0
  • v0.5.0-dev
  • v0.6.0
  • v0.7.0
  • v0.7.0-dev
  • v0.7.2
  • v0.8.0-dev
34 results

Target

Select target project
No results found
Select Git revision
  • 120--learnernd-curvature
  • 133-use-a-itemsorteddict-for-the-loss-in-the-learnernd
  • 134-learner1d-load-throws-exception-when-file-is-empty
  • 74--add-anisotropicity-to-learnerND
  • AverageLearner2D
  • bugfix/suppress
  • ci_benchmarks
  • cython
  • function_in_runner
  • make_notebook_with_content
  • master
  • no_overlay_plotting
  • private_methods_learnernd
  • refactor/triangulating-learner
  • renorm_2d
  • rst_readme
  • rtol_integrator
  • stable-0.7
  • v0.1.0
  • v0.2.0
  • v0.2.0-dev
  • v0.2.1
  • v0.3.0
  • v0.3.0-dev
  • v0.4.0
  • v0.4.0-dev
  • v0.4.1
  • v0.5.0
  • v0.5.0-dev
  • v0.6.0
  • v0.7.0
  • v0.7.0-dev
  • v0.7.2
  • v0.8.0-dev
34 results
Show changes
Commits on Source (2)
# -*- coding: utf-8 -*-
import random
import numpy as np
from ..learner import AverageLearner
......@@ -17,3 +21,28 @@ def test_only_returns_new_points():
assert learner.ask(1)[0][0] == 3
assert learner.ask(1)[0][0] == 4
assert learner.ask(1)[0][0] == 10
def test_avg_std_and_npoints():
learner = AverageLearner(lambda x: x, atol=None, rtol=0.01)
for i in range(300):
# This will add 5000 points at random values of n.
# It could try to readd already evaluated points.
n = random.randint(0, 2*300)
value = random.random()
# With 10% chance None is added to simulate asking that point.
if value < 0.9:
learner.tell(n, value)
else:
learner.tell_pending(n)
if i > 2 and i % 10 == 0:
# We need more than two points for 'learner.std' to be defined.
values = np.array(list(learner.data.values()))
std = np.sqrt(sum((values - values.mean())**2) / (len(values) - 1))
assert learner.npoints == len(learner.data)
assert abs(learner.sum_f - values.sum()) < 1e-13
assert abs(learner.std - std) < 1e-13
......@@ -288,7 +288,9 @@ def test_point_adding_order_is_irrelevant(learner_type, f, learner_kwargs):
np.testing.assert_almost_equal(sorted(pls), sorted(cpls))
@run_with(Learner1D, Learner2D, LearnerND, AverageLearner)
# XXX: the Learner2D fails with ~50% chance
# see https://gitlab.kwant-project.org/qt/adaptive/issues/84
@run_with(Learner1D, xfail(Learner2D), LearnerND, AverageLearner)
def test_expected_loss_improvement_is_less_than_total_loss(learner_type, f, learner_kwargs):
"""The estimated loss improvement can never be greater than the total loss."""
f = generate_random_parametrization(f)
......