Chris@1086: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ Chris@1086: Chris@1086: /* Chris@1086: Sonic Visualiser Chris@1086: An audio file viewer and annotation editor. Chris@1086: Centre for Digital Music, Queen Mary, University of London. Chris@1086: Chris@1086: This program is free software; you can redistribute it and/or Chris@1086: modify it under the terms of the GNU General Public License as Chris@1086: published by the Free Software Foundation; either version 2 of the Chris@1086: License, or (at your option) any later version. See the file Chris@1086: COPYING included with this distribution for more information. Chris@1086: */ Chris@1086: Chris@1086: #ifndef TEST_FFT_MODEL_H Chris@1086: #define TEST_FFT_MODEL_H Chris@1086: Chris@1086: #include "../FFTModel.h" Chris@1086: Chris@1086: #include "MockWaveModel.h" Chris@1086: Chris@1086: #include "Compares.h" Chris@1086: Chris@1086: #include Chris@1086: #include Chris@1086: #include Chris@1086: Chris@1086: #include Chris@1086: Chris@1086: using namespace std; Chris@1086: Chris@1086: class TestFFTModel : public QObject Chris@1086: { Chris@1086: Q_OBJECT Chris@1086: Chris@1086: private slots: Chris@1086: Chris@1086: void example() { Chris@1086: MockWaveModel mwm({ DC }, 16); Chris@1086: FFTModel fftm(&mwm, 0, RectangularWindow, 8, 8, 8, false); Chris@1086: float reals[6], imags[6]; Chris@1086: reals[5] = 999.f; // overrun guards Chris@1086: imags[5] = 999.f; Chris@1086: fftm.getValuesAt(0, reals, imags); Chris@1086: cerr << "reals: " << reals[0] << "," << reals[1] << "," << reals[2] << "," << reals[3] << "," << reals[4] << endl; Chris@1086: cerr << "imags: " << imags[0] << "," << imags[1] << "," << imags[2] << "," << imags[3] << "," << imags[4] << endl; Chris@1086: QCOMPARE(reals[0], 4.f); // rectangular window scales by 0.5 Chris@1086: QCOMPARE(reals[1], 0.f); Chris@1086: QCOMPARE(reals[2], 0.f); Chris@1086: QCOMPARE(reals[3], 0.f); Chris@1086: QCOMPARE(reals[4], 0.f); Chris@1086: QCOMPARE(reals[5], 999.f); Chris@1086: QCOMPARE(imags[5], 999.f); Chris@1086: imags[5] = 0.f; Chris@1086: COMPARE_ALL_TO_F(imags, 0.f); Chris@1086: } Chris@1086: Chris@1086: }; Chris@1086: Chris@1086: #endif