def wrapped(self, state): continuous_gradient = function(self, state) gradient_time_series = TimeSeries.from_list( continuous_gradient, self.midpoint_grid ) du = TimeSeries.interpolate_to_keys(gradient_time_series, self.time_grid) discrete_grad = self.basis.discretize(du.values()) gradient_norm = (gradient_time_series * du).integrate() log.info(f"gradient norm: {gradient_norm}") discrete_grad_norm = ( gradient_time_series * TimeSeries.from_list( self.basis.extrapolate(discrete_grad), self.time_grid ) ).integrate() log.info("discrete gradient norm: {}".format(discrete_grad_norm)) return discrete_grad
def test_create_from_list(): for series in numeric_series() + dicts(): values = series.values() new_series = TimeSeries.from_list(values, series) assert new_series == series