void TestPSD::testPSD() { Kst::VectorPtr vp = Kst::kst_cast<Kst::Vector>(_store.createObject<Kst::Vector>(Kst::ObjectTag::fromString("tempVector"))); Q_ASSERT(vp); vp->resize(10); for (int i = 0; i < 10; i++){ vp->value()[i] = i; } Kst::PSDPtr psd = new Kst::PSD(&_store, Kst::ObjectTag::fromString("psdTest"), vp, 0.0, false, 10, false, false, QString("vUnits"), QString("rUnits"), WindowUndefined, 0.0, PSDUndefined); QCOMPARE(psd->tag().tagString(), QLatin1String("psdTest")); QCOMPARE(psd->vTag(), QLatin1String("tempVector")); QCOMPARE(psd->output(), PSDUndefined); QVERIFY(!psd->apodize()); QVERIFY(!psd->removeMean()); QVERIFY(!psd->average()); QCOMPARE(psd->freq(), 0.0); QCOMPARE(psd->apodizeFxn(), WindowUndefined); QCOMPARE(psd->gaussianSigma(), 0.0); Kst::VectorPtr vpVX = psd->vX(); Kst::VectorPtr vpVY = psd->vY(); QCOMPARE(vpVX->length(), 1); QVERIFY(vpVX->value()[0] != vpVX->value()[0]); QCOMPARE(vpVY->length(), 1); QVERIFY(vpVY->value()[0] != vpVY->value()[0]); psd->writeLock(); QCOMPARE(psd->update(0), Kst::Object::UPDATE); psd->unlock(); for(int j = 0; j < vpVX->length(); j++){ QCOMPARE(vpVX->value()[j], 0.0); } psd->setOutput(PSDAmplitudeSpectralDensity); psd->setApodize(true); psd->setRemoveMean(true); psd->setAverage(true); psd->setFreq(0.1); psd->setApodizeFxn(WindowOriginal); psd->setGaussianSigma(0.2); QCOMPARE(psd->tag().tagString(), QLatin1String("psdTest")); QCOMPARE(psd->vTag(), QLatin1String("tempVector")); QCOMPARE(psd->output(), PSDAmplitudeSpectralDensity); QVERIFY(psd->apodize()); QVERIFY(psd->removeMean()); QVERIFY(psd->average()); QCOMPARE(psd->freq(), 0.1); QCOMPARE(psd->apodizeFxn(), WindowOriginal); QCOMPARE(psd->gaussianSigma(), 0.2); // doTest(psd->update(0) == Kst::Object::UPDATE); // QString ps = "PSD: " + psd->vTag(); // doTest(psd->propertyString() == ps); // doTest(!psd->curveHints().curveName() == ""); // printf("Curve name [%s]", kstCHL[0].curveName()); // printf("X Vector name [%s]", kstCHL[0].xVectorName()); // printf("Y Vector name [%s]", kstCHL[0].yVectorName()); QTemporaryFile tf; tf.open(); QTextStream ts(&tf); psd->save(ts, ""); QFile::remove(tf.fileName()); QDomNode n = makeDOMElement("psdDOMPsd", "psdDOMVector").firstChild(); QDomElement e = n.toElement(); Kst::PSDPtr psdDOM = new Kst::PSD(&_store, e); QCOMPARE(psdDOM->tag().tagString(), QLatin1String("psdDOMPsd")); QCOMPARE(psdDOM->output(), PSDAmplitudeSpectralDensity); QVERIFY(psdDOM->apodize()); QVERIFY(psdDOM->removeMean()); QVERIFY(psdDOM->average()); QCOMPARE(psdDOM->freq(), 128.0); QCOMPARE(psdDOM->apodizeFxn(), WindowOriginal); QCOMPARE(psdDOM->gaussianSigma(), 0.01); // Kst::VectorPtr vpVX = psdDOM->vX(); // for(int j = 0; j < vpVX->length(); j++){ // printf("[%d][%lf]", j, vpVX->value()[j]); // } // Kst::VectorPtr vpVY = psdDOM->vY(); }
void TestPSD::testPSD() { Kst::VectorPtr vp = Kst::kst_cast<Kst::Vector>(_store.createObject<Kst::Vector>()); Q_ASSERT(vp); vp->resize(10); vp->setDescriptiveName("tempVector"); for (int i = 0; i < 10; i++){ vp->value()[i] = i; } Kst::PSDPtr psd = Kst::kst_cast<Kst::PSD>(_store.createObject<Kst::PSD>()); psd->change(vp, 0.0, false, 10, false, false, QString("vUnits"), QString("rUnits"), WindowUndefined, 0.0, PSDUndefined); QCOMPARE(psd->vector()->descriptiveName(), QLatin1String("tempVector")); QCOMPARE(psd->output(), PSDUndefined); QVERIFY(!psd->apodize()); QVERIFY(!psd->removeMean()); QVERIFY(!psd->average()); QCOMPARE(psd->frequency(), 0.0); QCOMPARE(psd->apodizeFxn(), WindowUndefined); QCOMPARE(psd->gaussianSigma(), 0.0); Kst::VectorPtr vpVX = psd->vX(); Kst::VectorPtr vpVY = psd->vY(); QCOMPARE(vpVX->length(), 1); QVERIFY(vpVX->value()[0] != vpVX->value()[0]); QCOMPARE(vpVY->length(), 1); QVERIFY(vpVY->value()[0] != vpVY->value()[0]); for(int j = 0; j < vpVX->length(); j++){ QCOMPARE(vpVX->value()[j], 0.0); } psd->setOutput(PSDAmplitudeSpectralDensity); psd->setApodize(true); psd->setRemoveMean(true); psd->setAverage(true); psd->setFrequency(0.1); psd->setApodizeFxn(WindowOriginal); psd->setGaussianSigma(0.2); QCOMPARE(psd->vector()->descriptiveName(), QLatin1String("tempVector")); QCOMPARE(psd->output(), PSDAmplitudeSpectralDensity); QVERIFY(psd->apodize()); QVERIFY(psd->removeMean()); QVERIFY(psd->average()); QCOMPARE(psd->frequency(), 0.1); QCOMPARE(psd->apodizeFxn(), WindowOriginal); QCOMPARE(psd->gaussianSigma(), 0.2); // doTest(psd->update(0) == Kst::Object::UPDATE); // doTest(psd->propertyString() == ps); // doTest(!psd->curveHints().curveName() == ""); // printf("Curve name [%s]", kstCHL[0].curveName()); // printf("X Vector name [%s]", kstCHL[0].xVectorName()); // printf("Y Vector name [%s]", kstCHL[0].yVectorName()); QTemporaryFile tf; tf.open(); QXmlStreamWriter xml; xml.setDevice(&tf); xml.setAutoFormatting(true); psd->save(xml); QFile::remove(tf.fileName()); QDomNode n = makeDOMElement("psdDOMPsd", "psdDOMVector").firstChild(); QDomElement e = n.toElement(); //FIXME: should use factory, not this constructor. This constructor is no longer // used anywhere in kst. // Kst::PSDPtr psdDOM = new Kst::PSD(&_store, e); // QCOMPARE(psdDOM->tag().tagString(), QLatin1String("psdDOMPsd")); // QCOMPARE(psdDOM->output(), PSDAmplitudeSpectralDensity); // QVERIFY(psdDOM->apodize()); // QVERIFY(psdDOM->removeMean()); // QVERIFY(psdDOM->average()); // QCOMPARE(psdDOM->frequency(), 128.0); // QCOMPARE(psdDOM->apodizeFxn(), WindowOriginal); // QCOMPARE(psdDOM->gaussianSigma(), 0.01); // Kst::VectorPtr vpVX = psdDOM->vX(); // for(int j = 0; j < vpVX->length(); j++){ // printf("[%d][%lf]", j, vpVX->value()[j]); // } // Kst::VectorPtr vpVY = psdDOM->vY(); }