Exemple #1
0
        private static FileAnalysisBatchResult AnalyzeSliceOfFiles(int start, int limit, IReadOnlyList <string> files, IReadOnlyDictionary <string, InvestmentActivity> originAccessions,
                                                                   IReadOnlyDictionary <string, int> supervised, InvestorHashTableSet investors, AtratinusConfiguration config)
        {
            IList <InvestmentActivity> investments  = new List <InvestmentActivity>();
            IList <Supervised>         trainingData = new List <Supervised>();
            var report = new FullQualityReport();

            for (int fileIndex = start; fileIndex < limit; fileIndex++)
            {
                var analysis   = AnalyzeFile(files[fileIndex], originAccessions, supervised, investors);
                var fileReport = QualityGate.Measure(analysis.Investment, config);
                report.ConsiderQualityReport(files[fileIndex], fileReport);

                if (!fileReport.ShouldBeConsidered)
                {
                    continue;
                }

                if (analysis.Supervised != null)
                {
                    trainingData.Add(analysis.Supervised);
                }

                investments.Add(analysis.Investment);
            }

            return(new FileAnalysisBatchResult()
            {
                Accessions = investments, TrainingData = trainingData, QualityReport = report
            });
        }
Exemple #2
0
        private static void FinalizeRun(Task <FileAnalysisBatchResult>[] tasks, AtratinusConfiguration config, uint enumeratedFiles, uint amountFiles, AlteryxResult alteryxResult)
        {
            Task.WaitAll(tasks);

            List <Supervised>         trainingData = new List <Supervised>();
            List <InvestmentActivity> investments  = new List <InvestmentActivity>();
            var report = new FullQualityReport();

            for (int c = 0; c < tasks.Length; c++)
            {
                trainingData.AddRange(tasks[c].Result.TrainingData);
                investments.AddRange(tasks[c].Result.Accessions);
                report.Merge(tasks[c].Result.QualityReport);
            }

            Helper.SaveAccessionsAsCSV(investments, config.OutputFolder, false);
            FileHelper.SaveTrainingData(trainingData, config.OutputFolder);
            report.BuildAndSaveReport(config.OutputFolder, enumeratedFiles, amountFiles, alteryxResult);
        }