예제 #1
0
 private static Duplicate[] Convert(int lineNumberOfFile, int linesOfCode, CpdOccurance occurance, List <CpdOccurance> copyCats)
 {
     return(copyCats.ConvertAll(x => new Duplicate(linesOfCode, x.LineNumber, new Location(x.FileName)))
            .Where(x =>
                   (x.LineNumber != lineNumberOfFile && x.Location.Path == occurance.FileName) || x.Location.Path != occurance.FileName)
            .ToArray());
 }
예제 #2
0
        private static IEnumerable <CpdLineItem> ReadFile(TextReader textReader)
        {
            //lines,tokens,occurrences
            //47,196,2,
            //  106,C:\Dev\disruptor\src\perftest\java\com\lmax\disruptor\sequenced\ThreeToOneSequencedBatchThroughputTest.java,
            //  104,C:\Dev\disruptor\src\perftest\java\com\lmax\disruptor\sequenced\ThreeToOneSequencedThroughputTest.java
            //47,196,4,
            //  106,C:\Dev\disruptor\src\perftest\java\com\lmax\disruptor\sequenced\ThreeToOneSequencedBatchThroughputTest.java,
            //  104,C:\Dev\disruptor\src\perftest\java\com\lmax\disruptor\sequenced\ThreeToOneSequencedThroughputTest.java,
            //  106,C:\Dev\disruptor\src\perftest\java\com\lmax\disruptor\sequenced\ThreeToOneSequencedBatchThroughputTestAA.java,
            //  104,C:\Dev\disruptor\src\perftest\java\com\lmax\disruptor\sequenced\ThreeToOneSequencedThroughputTestAAA.java
            var items = new List <CpdLineItem>();

            using (textReader)
            {
                var csv = new CsvReader(textReader);
                while (csv.Read())
                {
                    var linesOfCode = csv.GetField <int>(0);
                    var occurances  = csv.GetField <int>(2);
                    var lineItem    = new CpdLineItem {
                        LinesOfCode = linesOfCode
                    };
                    for (var i = 0; i < occurances; i++)
                    {
                        var index        = 3 + i * 2;
                        var cpdOccurance = new CpdOccurance
                        {
                            LineNumber = csv.GetField <int>(index),       // 3, 5, 7, etc.
                            FileName   = csv.GetField <string>(index + 1) // 4, 6, 8, etc
                        };
                        lineItem.Occurances.Add(cpdOccurance);
                    }
                    items.Add(lineItem);
                }
            }
            return(items);
        }