public void CutLogarithmizedSpectrumOfJustOneFingerprintTest()
        {
            var stride = new StaticStride(0, 0);
            var configuration = new DefaultSpectrogramConfig { Stride = stride };
            int logSpectrumLength = configuration.ImageLength; // 128
            var logSpectrum = GetLogSpectrum(logSpectrumLength);

            var cutLogarithmizedSpectrum = spectrumService.CutLogarithmizedSpectrum(logSpectrum, SampleRate, configuration);

            Assert.AreEqual(1, cutLogarithmizedSpectrum.Count);
        }
        public void CutLogarithmizedSpectrumOfJustOneFingerprintTest()
        {
            DefaultFingerprintConfiguration config = new DefaultFingerprintConfiguration();
            int logSpectrumLength = config.FingerprintLength; // 128
            var stride = new StaticStride(0, 0);
            var logSpectrum = new float[logSpectrumLength][];
            for (int i = 0; i < logSpectrumLength; i++)
            {
                logSpectrum[i] = new float[32];
            }

            var cutLogarithmizedSpectrum = spectrumService.CutLogarithmizedSpectrum(logSpectrum, stride, config.FingerprintLength, config.Overlap);

            Assert.AreEqual(1, cutLogarithmizedSpectrum.Count);
        }
        public void CutLogarithmizedSpectrumTest()
        {
            var stride = new StaticStride(0, 0);
            var configuration = new CustomSpectrogramConfig { Stride = stride };
            const int LogSpectrumLength = 1024;
            var logSpectrum = GetLogSpectrum(LogSpectrumLength);

            var cutLogarithmizedSpectrum = spectrumService.CutLogarithmizedSpectrum(logSpectrum, SampleRate, configuration);
            
            Assert.AreEqual(8, cutLogarithmizedSpectrum.Count);
            double lengthOfOneFingerprint = (double)configuration.ImageLength * configuration.Overlap / SampleRate;
            for (int i = 0; i < cutLogarithmizedSpectrum.Count; i++)
            {
                Assert.IsTrue(
                    System.Math.Abs(cutLogarithmizedSpectrum[i].Timestamp - (i * lengthOfOneFingerprint)) < Epsilon);
            }
        }
        public void CustomValuesAreSetOnFingerprintConfiguration()
        {
            var staticStride = new StaticStride(2048);
            var customConfiguration = new CustomFingerprintConfiguration
                                          {
                                              FingerprintLength = 256,
                                              LogBase = 4,
                                              LogBins = 46,
                                              MaxFrequency = 22050,
                                              MinFrequency = 5512,
                                              NormalizeSignal = true,
                                              NumberOfLSHTables = 30,
                                              NumberOfMinHashesPerTable = 4,
                                              Overlap = 32,
                                              SampleRate = 10024,
                                              Stride = staticStride,
                                              TopWavelets = 250,
                                              UseDynamicLogBase = true,
                                              WdftSize = 4048
                                          };

            Assert.AreEqual(256, customConfiguration.FingerprintLength);
            Assert.AreEqual(4, customConfiguration.LogBase);
            Assert.AreEqual(46, customConfiguration.LogBins);
            Assert.AreEqual(22050, customConfiguration.MaxFrequency);
            Assert.AreEqual(5512, customConfiguration.MinFrequency);
            Assert.IsTrue(customConfiguration.NormalizeSignal);
            Assert.AreEqual(30, customConfiguration.NumberOfLSHTables);
            Assert.AreEqual(4, customConfiguration.NumberOfMinHashesPerTable);
            Assert.AreEqual(32, customConfiguration.Overlap);
            Assert.AreEqual(10024, customConfiguration.SampleRate);
            Assert.AreEqual(staticStride, customConfiguration.Stride);
            Assert.AreEqual(250, customConfiguration.TopWavelets);
            Assert.IsTrue(customConfiguration.UseDynamicLogBase);
            Assert.AreEqual(4048, customConfiguration.WdftSize);
        }
 public void StaticStrideClassTest()
 {
     const int Value = 5115;
     StaticStride stride = new StaticStride(Value);
     Assert.AreEqual(Value, stride.NextStride);
 }
        public void CutLogarithmizedSpectrumWithSpectrumWhichIsLessThanMinimalLengthOfOneFingerprintTest()
        {
            var stride = new StaticStride(0, 0);
            var config = new CustomSpectrogramConfig { Stride = stride };
            int logSpectrumLength = config.ImageLength - 1;
            var logSpectrum = GetLogSpectrum(logSpectrumLength);

            var cutLogarithmizedSpectrum = spectrumService.CutLogarithmizedSpectrum(logSpectrum, SampleRate, config);

            Assert.AreEqual(0, cutLogarithmizedSpectrum.Count);
        }