17#ifndef RESONANCE_AUDIO_UTILS_TEST_UTIL_H_
18#define RESONANCE_AUDIO_UTILS_TEST_UTIL_H_
23#include "base/integral_types.h"
24#include "base/audio_buffer.h"
29void GenerateSilence(AudioBuffer::Channel* output);
33void GenerateSineWave(
float frequency_hz,
int sample_rate,
34 AudioBuffer::Channel* output);
37void GenerateSawToothSignal(
size_t tooth_length_samples,
38 AudioBuffer::Channel* output);
42void GenerateDiracImpulseFilter(
size_t delay_samples,
43 AudioBuffer::Channel* output);
46void GenerateIncreasingSignal(AudioBuffer::Channel* output);
49size_t ZeroCompare(
const AudioBuffer::Channel& signal,
float epsilon);
53bool CompareAudioBuffers(
const AudioBuffer::Channel& buffer_a,
54 const AudioBuffer::Channel& buffer_b,
float epsilon);
59size_t DelayCompare(
const AudioBuffer::Channel& original_signal,
60 const AudioBuffer::Channel& delayed_signal,
size_t delay,
65bool TestZeroPaddedDelay(
const AudioBuffer::Channel& original_signal,
66 const AudioBuffer::Channel& delayed_signal,
67 size_t delay_samples,
float epsilon);
70double CalculateSignalPeak(
const AudioBuffer::Channel& channel);
73double CalculateSignalEnergy(
const AudioBuffer::Channel& channel);
76double CalculateSignalRms(
const AudioBuffer::Channel& channel);
79double DbFromMagnitude(
double magnitude);
82double DbFromPower(
double power);
86float MaxCrossCorrelation(
const AudioBuffer::Channel& signal_a,
87 const AudioBuffer::Channel& signal_b);