@@ -321,6 +321,30 @@ def test_learner_performance_is_invariant_under_scaling(learner_type, f, learner
321321 assert abs (learner .loss () - control .loss ()) / learner .loss () < 1e-11
322322
323323
324+ def test_learner1d_first_iteration ():
325+ """Edge cases where we ask for a few points at the start."""
326+ learner = Learner1D (lambda x : None , (- 1 , 1 ))
327+ points , loss_improvements = learner .choose_points (2 )
328+ assert set (points ) == set ([- 1 , 1 ])
329+
330+ learner = Learner1D (lambda x : None , (- 1 , 1 ))
331+ points , loss_improvements = learner .choose_points (3 )
332+ assert set (points ) == set ([- 1 , 0 , 1 ])
333+
334+ learner = Learner1D (lambda x : None , (- 1 , 1 ))
335+ points , loss_improvements = learner .choose_points (1 )
336+ assert len (points ) == 1 and points [0 ] in [- 1 , 1 ]
337+ rest = set ([- 1 , 0 , 1 ]) - set (points )
338+ points , loss_improvements = learner .choose_points (2 )
339+ assert set (points ) == set (rest )
340+
341+ learner = Learner1D (lambda x : None , (- 1 , 1 ))
342+ points , loss_improvements = learner .choose_points (1 )
343+ to_see = set ([- 1 , 1 ]) - set (points )
344+ points , loss_improvements = learner .choose_points (1 )
345+ assert set (points ) == set (to_see )
346+
347+
324348@pytest .mark .xfail
325349@run_with (Learner1D , Learner2D )
326350def test_convergence_for_arbitrary_ordering (learner_type , f , learner_kwargs ):
@@ -339,4 +363,4 @@ def test_learner_subdomain(learner_type, f, learner_kwargs):
339363 """Learners that never receive data outside of a subdomain should
340364 perform 'similarly' to learners defined on that subdomain only."""
341365 # XXX: not sure how to implement this. How do we measure "performance"?
342- raise NotImplementedError ()
366+ raise NotImplementedError ()
0 commit comments