void DedispersionSpectraTest::test_dmIndex()
{
    unsigned timebins=100;
    unsigned dedispersionBins = 100;
    float dedispersionBinStart = 0.1;
    float dedispersionBinWidth = 0.2;
    float maxDmAmplitude = 1001.1;
    size_t dataSize = timebins * dedispersionBins;
    DedispersionSpectra spectra;
    spectra.resize( timebins, dedispersionBins, dedispersionBinStart,
                    dedispersionBinWidth );
    CPPUNIT_ASSERT_EQUAL( dataSize, spectra.data().size() );
    spectra.data()[ dataSize - 1 ] = maxDmAmplitude;
    float max = dedispersionBinStart + dedispersionBinWidth * (dedispersionBins -1 );
    CPPUNIT_ASSERT_DOUBLES_EQUAL( max, spectra.dmMax(), 0.0001 );
    CPPUNIT_ASSERT_EQUAL( (int)dedispersionBins, spectra.dmBins() );
    //CPPUNIT_ASSERT_EQUAL( maxDmAmplitude , spectra.dm( max ) );
    CPPUNIT_ASSERT_EQUAL( (int)dedispersionBins - 1, spectra.dmIndex( max ) );
    CPPUNIT_ASSERT_EQUAL( (int)timebins, spectra.timeSamples() );
    // try accessing the max amplitude
    // expect not to fail
    CPPUNIT_ASSERT_EQUAL( maxDmAmplitude, spectra.dmAmplitude( timebins-1 , max ) );
    CPPUNIT_ASSERT_EQUAL( maxDmAmplitude, spectra.dmAmplitude( timebins-1 , (int)dedispersionBins - 1 ) );
}
void DedispersionDataAnalysisOutputTest::test_method()
{
    // create an ouput stream
    test::TestFile file(true);
    QString filename = file.filename();
    SpectrumDataSetStokes sblob;
    QList<SpectrumDataSetStokes*> sblobs;
    sblobs.append( &sblob );
    DedispersionSpectra data; data.resize(10,10,1.0,0.1);
    data.setInputDataBlobs( sblobs );
    DedispersionDataAnalysis blob1;
    blob1.reset(&data);
    blob1.addEvent( 1, 1, 1, 1);
    CPPUNIT_ASSERT_EQUAL( 1, blob1.eventsFound() );
    ConfigNode config;
    {
        DedispersionDataAnalysisOutput writer(config);
        writer.addFile(filename);
        writer.send("stream1", &blob1);
    }
    QFile f(filename);
    CPPUNIT_ASSERT( f.exists(filename) );
    CPPUNIT_ASSERT( f.size() > 0 );
}