// This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            var configService       = new GlobalConfigService();
            var globalConfig        = configService.LoadConfig(Configuration);
            var userSessionsManager = new UserSessionsManager();

            var labelsService    = new LabelSorterService();
            var histogramService = new HistogramSorterService();

            var imageLabelsPath     = Configuration["FilePaths:ImageLabelsPath"];
            var colorHistogramsPath = Configuration["FilePaths:ColorHistogramFiles"];

            var imageLabelsWrapper = new LoadedImageLabelsWrapper(labelsService.ParseLabels(imageLabelsPath));
            var histogramsWrapper  = new LoadedHistogramsWrapper(histogramService.ParseHistograms(colorHistogramsPath));

            services.AddSingleton(globalConfig);
            services.AddSingleton(configService);
            services.AddSingleton(userSessionsManager);
            services.AddSingleton(labelsService);
            services.AddSingleton(histogramService);
            services.AddSingleton(imageLabelsWrapper);
            services.AddSingleton(histogramsWrapper);

            services.AddRazorPages();
        }
示例#2
0
        public void CorrectParseLabelsTest()
        {
            var labelService = new LabelSorterService();

            // Get the directory in which the test files are contained.
            var pathToHistogramFiles = $"{Directory.GetCurrentDirectory()}/../../../{TestFilesFolder}";

            var parseOutput = labelService.ParseLabels(pathToHistogramFiles);

            var testFileNames =
                Directory
                .GetFiles(pathToHistogramFiles)
                .Select(Path.GetFileNameWithoutExtension)
                .ToList();

            var imageIds =
                parseOutput
                .Select(imageLabels => imageLabels.ImageId)
                .ToList();

            Assert.True(testFileNames.Count == NumberOfHistogramsInTestFolder);
            Assert.True(testFileNames.Count == parseOutput.Count);
            foreach (var testFileName in testFileNames)
            {
                Assert.Contains(testFileName, imageIds);
            }

            try
            {
                var testImageLabels = parseOutput.Find(imageLabels => imageLabels.ImageId == TestImageId);
                Assert.True(testImageLabels?.LabelValues.Count == NumberOfTestLabels);
            }
            catch (NullReferenceException)
            {
                Assert.True(false);
            }
            catch (Exception)
            {
                Assert.True(false);
            }
        }