public Mapper(IHostEnvironment env, SequentialForecastingTransformBase <TInput, TState> parent, DataViewSchema inputSchema)
            {
                Contracts.CheckValue(env, nameof(env));
                _host = env.Register(nameof(Mapper));
                _host.CheckValue(inputSchema, nameof(inputSchema));
                _host.CheckValue(parent, nameof(parent));

                if (!inputSchema.TryGetColumnIndex(parent.InputColumnName, out _inputColumnIndex))
                {
                    throw _host.ExceptSchemaMismatch(nameof(inputSchema), "input", parent.InputColumnName);
                }

                var colType = inputSchema[_inputColumnIndex].Type;

                if (colType != NumberDataViewType.Single)
                {
                    throw _host.ExceptSchemaMismatch(nameof(inputSchema), "input", parent.InputColumnName, "Single", colType.ToString());
                }

                _parent            = parent;
                _parentSchema      = inputSchema;
                State              = (ForecastingStateBase)_parent.StateRef;
                _dontFetchSrcValue = false;
            }
 private protected sealed override void InitializeStateCore(bool disk = false)
 {
     Parent = (SequentialForecastingTransformBase <TInput, TState>)ParentTransform;
     Host.Assert(WindowSize >= 0);
     InitializeForecaster();
 }