public void TestGenerateTilesFailsWithInvalidScales() { PathHelper.ResolveConfigFile("IndexPropertiesConfig.Zooming.yml").CopyTo(this.outputDirectory.CombineFile("IndexPropertiesConfig.Zooming.yml").FullName); void SetupAndRun(params double[] scales) { SpectrogramZoomingConfig config = new SpectrogramZoomingConfig(); config.SpectralIndexScale = scales; config.IndexPropertiesConfig = ".\\IndexPropertiesConfig.Zooming.yml"; var newConfigFile = this.outputDirectory.CombineFile("SpectrogramZoomingConfig.yml"); Yaml.Serialize(newConfigFile, config); // generate the zooming spectrograms DrawZoomingSpectrograms.Execute( new DrawZoomingSpectrograms.Arguments() { Output = this.outputDirectory.FullName, SourceDirectory = ResultsDirectory.FullName, SpectrogramZoomingConfig = newConfigFile.FullName, ZoomAction = DrawZoomingSpectrograms.Arguments.ZoomActionType.Tile, }); } Assert.ThrowsException <InvalidScaleException>(() => SetupAndRun(0.125)); Assert.ThrowsException <InvalidScaleException>(() => SetupAndRun(-3)); Assert.ThrowsException <InvalidScaleException>(() => SetupAndRun(0)); Assert.ThrowsException <InvalidScaleException>(() => SetupAndRun(0.01)); Assert.ThrowsException <InvalidScaleException>(() => SetupAndRun(13.33)); }
public static List <double[]> ReadFrameData(DirectoryInfo dataDir, string fileStem, TimeSpan startTime, TimeSpan maxDuration, SpectrogramZoomingConfig zoomingConfig, TimeSpan indexGenerationSegmentDuration) { TimeSpan endTime = startTime + maxDuration; int startMinute = (int)Math.Floor(startTime.TotalMinutes); int endMinute = (int)Math.Ceiling(endTime.TotalMinutes); int expectedDataDurationInSeconds = (int)indexGenerationSegmentDuration.TotalSeconds; int expectedFrameCount = (int)Math.Round(expectedDataDurationInSeconds / zoomingConfig.SpectralFrameDuration); string name = fileStem + "_" + startMinute + "min.csv"; string csvPath = Path.Combine(dataDir.FullName, name); bool skipHeader = true; bool skipFirstColumn = true; List <double[]> frameData = CsvTools.ReadCSVFileOfDoubles(csvPath, skipHeader, skipFirstColumn); ZoomTiledSpectrograms.PadEndOfListOfFrames(frameData, expectedFrameCount); for (int i = startMinute + 1; i < endMinute; i++) { name = fileStem + "_" + i + "min.csv"; csvPath = Path.Combine(dataDir.FullName, name); List <double[]> data = CsvTools.ReadCSVFileOfDoubles(csvPath, skipHeader, skipFirstColumn); ZoomTiledSpectrograms.PadEndOfListOfFrames(data, expectedFrameCount); frameData.AddRange(data); } return(frameData); }