def test_saving_with_datasaver(learner_type, f, learner_kwargs): f = generate_random_parametrization(f) g = lambda x: {"y": f(x), "t": random.random()} # noqa: E731 arg_picker = operator.itemgetter("y") learner = DataSaver(learner_type(g, **learner_kwargs), arg_picker) control = DataSaver(learner_type(g, **learner_kwargs), arg_picker) if learner_type is Learner1D: learner.learner._recompute_losses_factor = 1 control.learner._recompute_losses_factor = 1 simple(learner, lambda l: l.npoints > 100) fd, path = tempfile.mkstemp() try: learner.save(path) control.load(path) np.testing.assert_almost_equal(learner.loss(), control.loss()) assert learner.extra_data == control.extra_data # Try if the control is runnable simple(control, lambda l: l.npoints > 200) finally: os.remove(path)
def datasaver(f, learner_type, learner_kwargs): return DataSaver( learner=learner_type(f, **learner_kwargs), arg_picker=identity_function )