BufferResample_UnitTest.cc File Reference

#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>
Include dependency graph for BufferResample_UnitTest.cc:

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 Documentation

#define THIS_FILE   "BufferResample_UnitTest.cc"

Definition at line 49 of file BufferResample_UnitTest.cc.

#define GAMMA   1.5e-14

Function Documentation

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 }

Generated on Sun Apr 15 20:10:30 2012 for nsound by  doxygen 1.6.3