/// <summary>
        /// Determine the input fields.
        /// </summary>
        ///
        /// <param name="headerList">The headers.</param>
        /// <returns>The indexes of the input fields.</returns>
        private int[] DetermineInputFields(CSVHeaders headerList)
        {
            IList <Int32> fields = new List <Int32>();

            for (int currentIndex = 0; currentIndex < headerList.Size(); currentIndex++)
            {
                String       baseName = headerList.GetBaseHeader(currentIndex);
                int          slice    = headerList.GetSlice(currentIndex);
                AnalystField field    = Analyst.Script
                                        .FindNormalizedField(baseName, slice);

                if (field != null && field.Input)
                {
                    fields.Add(currentIndex);
                }
            }

            // allocate result array
            var result = new int[fields.Count];

            for (int i = 0; i < result.Length; i++)
            {
                result[i] = (fields[i]);
            }

            return(result);
        }
        /// <summary>
        /// Determine the ideal fields.
        /// </summary>
        ///
        /// <param name="headerList">The headers.</param>
        /// <returns>The indexes of the ideal fields.</returns>
        private int[] DetermineIdealFields(CSVHeaders headerList)
        {
            int[]  result;
            String type = Prop.GetPropertyString(
                ScriptProperties.MlConfigType);

            // is it non-supervised?
            if (type.Equals(MLMethodFactory.TypeSOM))
            {
                result = new int[0];
                return(result);
            }

            IList <Int32> fields = new List <Int32>();

            for (int currentIndex = 0; currentIndex < headerList.Size(); currentIndex++)
            {
                String       baseName = headerList.GetBaseHeader(currentIndex);
                int          slice    = headerList.GetSlice(currentIndex);
                AnalystField field    = Analyst.Script
                                        .FindNormalizedField(baseName, slice);

                if (field != null && field.Output)
                {
                    fields.Add(currentIndex);
                }
            }

            // allocate result array
            result = new int[fields.Count];
            for (int i = 0; i < result.Length; i++)
            {
                result[i] = (fields[i]);
            }

            return(result);
        }