static void Main(string[] args) { BuildConfiguration(); BuildLoggerFactory(); var listsSizesDistributionAnalyzer = new ListsSizesDistributionAnalyzer( new RecursiveGenerator(), _loggerFactory.CreateLogger <ListsSizesDistributionAnalyzer>() ); var logger = _loggerFactory.CreateLogger <Program>(); try { var listsSizesDistribution = listsSizesDistributionAnalyzer.Analyze( new G12GolayCode(), new ListsSizesDistributionAnalyzerOptions { MaxDegreeOfParallelism = 3, FullLogsPath = @"c:\Users\litic\Documents\Study\Coding\PostGraduateWorks\Experiments\" } ); logger.LogInformation(JsonConvert.SerializeObject(listsSizesDistribution, Formatting.Indented)); } catch (Exception exception) { logger.LogError(0, exception, "Exception occurred during analysis"); } }
static Program() { var configuration = new ConfigurationBuilder() .AddJsonFile("appsettings.json") .Build(); var loggerFactory = new LoggerFactory() .AddSerilog( new LoggerConfiguration() .ReadFrom.Configuration(configuration) .Enrich.FromLogContext() .Enrich.WithProperty("Version", Assembly.GetEntryAssembly().GetName().Version.ToString(4)) .CreateLogger() ); Logger = loggerFactory.CreateLogger <Program>(); NoiseGenerator = new RecursiveGenerator(); WordsComparer = new FieldElementsArraysComparer(); LinearCodeDistanceAnalyzer = new LinearCodeDistanceAnalyzer(loggerFactory.CreateLogger <LinearCodeDistanceAnalyzer>()); MinimalSphereCoveringAnalyzer = new MinimalSphereCoveringAnalyzer(NoiseGenerator, loggerFactory.CreateLogger <MinimalSphereCoveringAnalyzer>()); ListsSizesDistributionAnalyzer = new ListsSizesDistributionAnalyzer(NoiseGenerator, loggerFactory.CreateLogger <ListsSizesDistributionAnalyzer>()); var gaussSolver = new GaussSolver(); TelemetryCollector = new GsBasedDecoderTelemetryCollectorForGsBasedDecoder(); FixedDistanceCodesFactory = new StandardCodesFactory( new LiftingSchemeBasedBuilder(new GcdBasedBuilder(new RecursiveGcdFinder()), gaussSolver), new RsBasedDecoder(new BerlekampWelchDecoder(gaussSolver), gaussSolver), new GsBasedDecoder( new GsDecoder(new KotterAlgorithmBasedBuilder(new PascalsTriangleBasedCalculator()), new RrFactorizator()), gaussSolver ) { TelemetryCollector = TelemetryCollector } ); }