예제 #1
0
            public static Indicators CalculateByDelimiter(char delimiter, string[][] data, char?quotedChar)
            {
                var        res              = new Indicators();
                int        totalDelimiters  = 0;
                int        lines            = 0;
                List <int> delimiterPerLine = new List <int> (100);

                foreach (var fileData in data)
                {
                    foreach (var line in fileData)
                    {
                        if (string.IsNullOrEmpty(line))
                        {
                            continue;
                        }

                        lines++;

                        var delimiterInLine = 0;
                        if (quotedChar.HasValue)
                        {
                            delimiterInLine = QuoteHelper.CountNumberOfDelimiters(line, delimiter, quotedChar.Value);
                        }
                        else
                        {
                            delimiterInLine = CountNumberOfDelimiters(line, delimiter);
                        }
                        // add count for deviation analysis
                        delimiterPerLine.Add(delimiterInLine);

                        if (delimiterInLine > res.Max)
                        {
                            res.Max = delimiterInLine;
                        }

                        if (delimiterInLine < res.Min)
                        {
                            res.Min = delimiterInLine;
                        }

                        totalDelimiters += delimiterInLine;
                    }
                }

                res.Avg = totalDelimiters / (double)lines;

                // calculate deviation
                res.Deviation = CalculateDeviation(delimiterPerLine, res.Avg);

                return(res);
            }
        private Indicators CalculateIndicators(char c, string[][] data)
        {
            var res             = new Indicators();
            int totalDelimiters = 0;
            int lines           = 0;

            foreach (var fileData in data)
            {
                foreach (var line in fileData)
                {
                    if (string.IsNullOrEmpty(line))
                    {
                        continue;
                    }

                    lines++;

                    var delimiterInLine = QuoteHelper.CountNumberOfDelimiters(line, c, QuotedChar);

                    if (delimiterInLine > res.Max)
                    {
                        res.Max = delimiterInLine;
                    }

                    if (delimiterInLine < res.Min)
                    {
                        res.Min = delimiterInLine;
                    }

                    totalDelimiters += delimiterInLine;
                }
            }

            res.Avg = totalDelimiters / (double)lines;

            return(res);
        }