#include <Nsound/Buffer.h>#include <Nsound/Plotter.h>#include <Nsound/Sine.h>#include <Nsound/Wavefile.h>#include "UnitTest.h"#include <cmath>#include <stdlib.h>#include <iostream>#include <sstream>
Go to the source code of this file.
Defines | |
| #define | THIS_FILE "BufferResample_UnitTest.cc" |
| #define | GAMMA 1.5e-14 |
Functions | |
| void | BufferResample_UnitTest () |
| #define THIS_FILE "BufferResample_UnitTest.cc" |
Definition at line 49 of file BufferResample_UnitTest.cc.
| #define GAMMA 1.5e-14 |
Definition at line 50 of file BufferResample_UnitTest.cc.
Referenced by Buffer_UnitTest(), BufferResample_UnitTest(), DelayLine_UnitTest(), FFTransform_UnitTest(), FilterBandPassFIR_UnitTest(), FilterBandPassIIR_UnitTest(), FilterBandRejectFIR_UnitTest(), FilterBandRejectIIR_UnitTest(), FilterCombLowPassFeedback_UnitTest(), FilterDelay_UnitTest(), FilterHighPassFIR_UnitTest(), FilterHighPassIIR_UnitTest(), FilterLeastSquaresFIR_UnitTest(), FilterLowPassFIR_UnitTest(), FilterLowPassIIR_UnitTest(), FilterParametricEqualizer_UnitTest(), Generator_UnitTest(), Sine_UnitTest(), Triangle_UnitTest(), and Wavefile_UnitTest().
| void BufferResample_UnitTest | ( | ) |
Definition at line 52 of file BufferResample_UnitTest.cc.
References GAMMA, Nsound::Generator::generate(), Nsound::Buffer::getAbs(), Nsound::Buffer::getLength(), Nsound::Buffer::getMax(), Nsound::Buffer::getResample(), Nsound::Buffer::plot(), SUCCESS, TEST_ERROR_HEADER, TEST_HEADER, and THIS_FILE.
Referenced by main().
00053 { 00054 cout << endl << THIS_FILE; 00055 00056 Wavefile::setDefaultSampleSize(64); 00057 Wavefile::setIEEEFloat(true); 00058 00059 static const uint32 LM[4] = { 2,3,5,7 }; 00060 00061 Sine sin(150); 00062 00063 Buffer input = sin.generate(1.0, 3.0); 00064 00065 cout << TEST_HEADER << "Testing Buffer:getResample(L,M) ..."; 00066 00067 Buffer data; 00068 Buffer gold; 00069 Buffer diff; 00070 00071 std::stringstream ss; 00072 00073 for(uint32 i = 1; i <= 4; ++i) 00074 { 00075 00076 std::string gold_filename; 00077 00078 ss.str(""); 00079 ss << "gold/BufferResample_out_" << i << "_" << LM[i-1] << ".wav"; 00080 00081 data = input.getResample(i, LM[i-1]); 00082 00083 // Create gold file 00084 //~ data >> ss.str().c_str(); 00085 00086 gold = Buffer(ss.str().c_str()); 00087 00088 diff = data - gold; 00089 00090 if(gold.getLength() != data.getLength() || 00091 diff.getAbs().getMax() > GAMMA) 00092 { 00093 cerr << TEST_ERROR_HEADER 00094 << "Output did not match gold file!" 00095 << endl; 00096 00097 diff.plot("data - gold"); 00098 data.plot("data"); 00099 gold.plot("gold"); 00100 00101 Plotter::show(); 00102 00103 exit(1); 00104 } 00105 00106 // Reverse L & M 00107 ss.str(""); 00108 ss << "gold/BufferResample_out_" << LM[i-1] << "_" << i << ".wav"; 00109 00110 data = input.getResample(LM[i-1], i); 00111 00112 // Create gold file 00113 //~ data >> ss.str().c_str(); 00114 00115 gold = Buffer(ss.str().c_str()); 00116 00117 diff = data - gold; 00118 00119 if(gold.getLength() != data.getLength() || 00120 diff.getAbs().getMax() > GAMMA) 00121 { 00122 cerr << TEST_ERROR_HEADER 00123 << "Output did not match gold file!" 00124 << endl; 00125 00126 diff.plot("data - gold"); 00127 data.plot("data"); 00128 gold.plot("gold"); 00129 00130 Plotter::show(); 00131 00132 exit(1); 00133 } 00134 00135 } 00136 00137 cout << SUCCESS << endl; 00138 }
1.6.3