AsciimationStatistics.Program.Main C# (CSharp) Метод

Main() статический приватный Метод

static private Main ( string args ) : void
args string
Результат void
        static void Main(string[] args)
        {
            var generator = new AsciimationDataGenerator(File.ReadAllText(@"..\..\..\Patterns and Data\Asciimation.txt"));

            List<CompressedFrame> compressedFrames;
            var compressedStr = generator.Compress_v_1_3(out compressedFrames, true);
            File.WriteAllText(DateTime.Now.Ticks.ToString() + ".txt", compressedStr);

            Console.WriteLine("Global frames count: " + generator.Frames.Length);
            Console.WriteLine("Compressed frames count: " + compressedFrames.Where(f => f.FrameType != FrameType.Basic).Count());

            var repeatedLengths = new List<int>();
            var notrepeatedLengths = new List<int>();
            var changeLengths = new List<int>();
            var changeCounts = new List<int>();
            int maxReducedLineLength = 0;

            var frameTypesCount = new Dictionary<FrameType, int>()
            {
                { FrameType.Basic, 0 },
                { FrameType.Transitional, 0 },
                { FrameType.TransitionalLeft, 0 },
                { FrameType.TransitionalRight, 0 },
                { FrameType.TransitionalTop, 0 },
                { FrameType.TransitionalBottom, 0 }
            };

            for (int i = 0; i < compressedFrames.Count; i++)
            {
                var compressedFrame = compressedFrames[i];
                switch (compressedFrame.FrameType)
                {
                    case FrameType.Basic:
                        GetRepeatedCount(generator.Frames[i].ReducedLine, repeatedLengths, notrepeatedLengths);
                        if (generator.Frames[i].ReducedLine.Length > maxReducedLineLength)
                            maxReducedLineLength = generator.Frames[i].ReducedLine.Length;
                        break;
                    case FrameType.Transitional:
                    case FrameType.TransitionalLeft:
                    case FrameType.TransitionalRight:
                    case FrameType.TransitionalTop:
                    case FrameType.TransitionalBottom:
                        foreach (var change in compressedFrame.FrameChanges)
                        {
                            //GetRepeatedCount(new string(change.Chars.ToArray()), repeatedLengths, notrepeatedLengths);
                            changeLengths.Add(change.Chars.Count);
                        }
                        changeCounts.Add(compressedFrame.FrameChanges.Count);
                        break;
                }
                frameTypesCount[compressedFrame.FrameType]++;
            }

            Console.WriteLine("Basic count: " + frameTypesCount[FrameType.Basic]);
            Console.WriteLine("Trans count: " + frameTypesCount[FrameType.Transitional]);
            Console.WriteLine("Trans left count: " + frameTypesCount[FrameType.TransitionalLeft]);
            Console.WriteLine("Trans right count: " + frameTypesCount[FrameType.TransitionalRight]);
            Console.WriteLine("Trans top count: " + frameTypesCount[FrameType.TransitionalTop]);
            Console.WriteLine("Trans bottom count: " + frameTypesCount[FrameType.TransitionalBottom]);

            Console.WriteLine("Avg repeated chars length: " + repeatedLengths.Average());
            Console.WriteLine("Avg not repeated chars length: " + notrepeatedLengths.Average());
            Console.WriteLine("Avg change length: " + changeLengths.Average());
            Console.WriteLine("Max change length: " + changeLengths.Max());
            Console.WriteLine("Max change count: " + changeCounts.Max());
            Console.WriteLine("Max reduced line length: " + maxReducedLineLength);

            Console.ReadLine();
        }