Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 79c86b7b authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Refactor VTS tests to use common sine input generation method" into main

parents 9604dae9 ed98f7b2
Loading
Loading
Loading
Loading
+13 −4
Original line number Diff line number Diff line
@@ -429,19 +429,28 @@ class EffectHelper {
        }
    }

    // Generate multitone input between -1 to +1 using testFrequencies
    void generateMultiTone(const std::vector<int>& testFrequencies, std::vector<float>& input,
                           const int samplingFrequency) {
    // Generate multitone input between -amplitude to +amplitude using testFrequencies
    // All test frequencies are considered having the same amplitude
    void generateSineWave(const std::vector<int>& testFrequencies, std::vector<float>& input,
                          const float amplitude = 1.0,
                          const int samplingFrequency = kSamplingFrequency) {
        for (size_t i = 0; i < input.size(); i++) {
            input[i] = 0;

            for (size_t j = 0; j < testFrequencies.size(); j++) {
                input[i] += sin(2 * M_PI * testFrequencies[j] * i / samplingFrequency);
            }
            input[i] /= testFrequencies.size();
            input[i] *= amplitude / testFrequencies.size();
        }
    }

    // Generate single tone input between -amplitude to +amplitude using testFrequency
    void generateSineWave(const int testFrequency, std::vector<float>& input,
                          const float amplitude = 1.0,
                          const int samplingFrequency = kSamplingFrequency) {
        generateSineWave(std::vector<int>{testFrequency}, input, amplitude, samplingFrequency);
    }

    // Use FFT transform to convert the buffer to frequency domain
    // Compute its magnitude at binOffsets
    std::vector<float> calculateMagnitude(const std::vector<float>& buffer,
+2 −13
Original line number Diff line number Diff line
@@ -187,18 +187,6 @@ class BassBoostDataTest : public ::testing::TestWithParam<BassBoostDataTestParam
        }
    }

    // Generate multitone input between -1 to +1 using testFrequencies
    void generateMultiTone(const std::vector<int>& testFrequencies, std::vector<float>& input) {
        for (auto i = 0; i < kInputSize; i++) {
            input[i] = 0;

            for (size_t j = 0; j < testFrequencies.size(); j++) {
                input[i] += sin(2 * M_PI * testFrequencies[j] * i / kSamplingFrequency);
            }
            input[i] /= testFrequencies.size();
        }
    }

    // Use FFT transform to convert the buffer to frequency domain
    // Compute its magnitude at binOffsets
    std::vector<float> calculateMagnitude(const std::vector<float>& buffer,
@@ -251,7 +239,8 @@ TEST_P(BassBoostDataTest, IncreasingStrength) {

    roundToFreqCenteredToFftBin(testFrequencies, binOffsets);

    generateMultiTone(testFrequencies, input);
    // Generate multitone input
    generateSineWave(testFrequencies, input);

    inputMag = calculateMagnitude(input, binOffsets);

+5 −10
Original line number Diff line number Diff line
@@ -224,12 +224,6 @@ class EnvironmentalReverbHelper : public EffectHelper {
                                               output.size());
    }

    void generateSineWaveInput(std::vector<float>& input) {
        int frequency = 1000;
        for (size_t i = 0; i < input.size(); i++) {
            input[i] = sin(2 * M_PI * frequency * i / kSamplingFrequency);
        }
    }
    using Maker = EnvironmentalReverb (*)(int);

    static constexpr std::array<Maker, static_cast<int>(EnvironmentalReverb::bypass) + 1>
@@ -287,6 +281,7 @@ class EnvironmentalReverbHelper : public EffectHelper {

    static constexpr int kDurationMilliSec = 500;
    static constexpr int kBufferSize = kSamplingFrequency * kDurationMilliSec / 1000;
    static constexpr int kInputFrequency = 1000;

    int mStereoChannelCount =
            getChannelCount(AudioChannelLayout::make<AudioChannelLayout::layoutMask>(
@@ -349,7 +344,7 @@ class EnvironmentalReverbDataTest
        : EnvironmentalReverbHelper(std::get<DESCRIPTOR_INDEX>(GetParam())) {
        std::tie(mTag, mParamValues) = std::get<TAG_VALUE_PAIR>(GetParam());
        mInput.resize(kBufferSize);
        generateSineWaveInput(mInput);
        generateSineWave(kInputFrequency, mInput);
    }
    void SetUp() override {
        SKIP_TEST_IF_DATA_UNSUPPORTED(mDescriptor.common.flags);
@@ -439,7 +434,7 @@ class EnvironmentalReverbMinimumParamTest

TEST_P(EnvironmentalReverbMinimumParamTest, MinimumValueTest) {
    std::vector<float> input(kBufferSize);
    generateSineWaveInput(input);
    generateSineWave(kInputFrequency, input);
    std::vector<float> output(kBufferSize);
    setParameterAndProcess(input, output, mValue, mTag);
    float energy = computeOutputEnergy(input, output);
@@ -475,7 +470,7 @@ class EnvironmentalReverbDiffusionTest
        : EnvironmentalReverbHelper(std::get<DESCRIPTOR_INDEX>(GetParam())) {
        std::tie(mTag, mParamValues) = std::get<TAG_VALUE_PAIR>(GetParam());
        mInput.resize(kBufferSize);
        generateSineWaveInput(mInput);
        generateSineWave(kInputFrequency, mInput);
    }
    void SetUp() override {
        SKIP_TEST_IF_DATA_UNSUPPORTED(mDescriptor.common.flags);
@@ -554,7 +549,7 @@ class EnvironmentalReverbDensityTest
        if (mIsInputMute) {
            std::fill(mInput.begin(), mInput.end(), 0);
        } else {
            generateSineWaveInput(mInput);
            generateSineWave(kInputFrequency, mInput);
        }
    }
    void SetUp() override {
+2 −8
Original line number Diff line number Diff line
@@ -132,7 +132,8 @@ class PresetReverbProcessTest : public ::testing::TestWithParam<PresetReverbProc
  public:
    PresetReverbProcessTest() {
        std::tie(mFactory, mDescriptor) = GetParam();
        generateSineWaveInput();
        mInput.resize(kBufferSize);
        generateSineWave(1000 /*Input Frequency*/, mInput);
    }

    void SetUp() override {
@@ -144,13 +145,6 @@ class PresetReverbProcessTest : public ::testing::TestWithParam<PresetReverbProc
        ASSERT_NO_FATAL_FAILURE(TearDownPresetReverb());
    }

    void generateSineWaveInput() {
        int frequency = 1000;
        for (size_t i = 0; i < kBufferSize; i++) {
            mInput.push_back(sin(2 * M_PI * frequency * i / kSamplingFrequency));
        }
    }

    bool isAuxiliary() {
        return mDescriptor.common.flags.type ==
               aidl::android::hardware::audio::effect::Flags::Type::AUXILIARY;
+1 −4
Original line number Diff line number Diff line
@@ -163,10 +163,7 @@ class VirtualizerProcessTest : public ::testing::TestWithParam<VirtualizerProces
        if (mZeroInput) {
            std::fill(buffer.begin(), buffer.end(), 0);
        } else {
            int frequency = 100;
            for (size_t i = 0; i < buffer.size(); i++) {
                buffer[i] = sin(2 * M_PI * frequency * i / kSamplingFrequency);
            }
            generateSineWave(1000 /*Input Frequency*/, buffer);
        }
    }

Loading