Beispiel #1
0
        private static HashSet <string> GetExcludedSamples(SampleExclusionParameters parameters)
        {
            if (parameters.Disabled)
            {
                return(new HashSet <string>(StringComparer.Ordinal));
            }

            var existingSamples = GetSamples(
                parameters.SampleSize,
                parameters.BeginAnchor,
                parameters.EndAnchor,
                parameters.GetMinWordSize(),
                parameters.StartIndex,
                parameters.Length);
            var possibleSamples = GetAllPossibleSamples(parameters.SampleSize, parameters.BeginAnchor, parameters.EndAnchor);

            foreach (var s in possibleSamples)
            {
                if (!existingSamples.ContainsKey(s))
                {
                    existingSamples.Add(s, 0);
                }
            }

            var excludedSamples = new HashSet <string>(
                existingSamples
                .Where(d => d.Value <= parameters.MaxCount)
                .Select(kv => kv.Key),
                StringComparer.Ordinal);

            return(excludedSamples);
        }