// 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(); }
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); } }