47 #define READFTSERIESTESTC_ENOM 0
48 #define READFTSERIESTESTC_ECHK 1
49 #define READFTSERIESTESTC_EFUN 2
50 #define READFTSERIESTESTC_EFLS 3
54 #define READFTSERIESTESTC_MSGENOM "Nominal exit"
55 #define READFTSERIESTESTC_MSGECHK "Error checking failed to catch bad data"
56 #define READFTSERIESTESTC_MSGEFUN "Subroutine returned error for valid data"
57 #define READFTSERIESTESTC_MSGEFLS "Subroutine returned unexpected results"
60 #include <lal/Units.h>
61 #include <lal/ReadFTSeries.h>
62 #include <lal/PrintFTSeries.h>
64 #include <lal/LALStdlib.h>
65 #include <lal/AVFactories.h>
66 #define READFTSERIESTEST_TOL 1e6
67 #define READFTSERIESTEST_LEN 20
131 fprintf(stderr,
"Testing value of LALUnitTextSize ... ");
134 fprintf(stderr,
"UnitTextSize mismatch: [ReadFTSeriesTest:%s]\n",
135 READFTSERIESTESTC_MSGEFLS);
143 fprintf(stderr,
"Testing Print/Read COMPLEX8FrequencySeries ... ");
147 if (
status.statusCode != 0)
149 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
150 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
153 for ( i=1, cData=cSequenceIn->
data; i<=READFTSERIESTEST_LEN ; i++, cData++ )
155 *(cData) =
crectf( i, i+1 );
160 cFrequencySeries.
deltaF = 1;
161 cFrequencySeries.
epoch = t;
162 cFrequencySeries.
f0 = 5;
164 cFrequencySeries.
data = cSequenceIn;
167 if (
status.statusCode != 0)
169 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
170 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
176 if (
status.statusCode != 0)
178 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
179 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
183 cFrequencySeries2.
data = cSequenceOut;
186 if (
status.statusCode != 0)
188 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
189 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
193 if (fabs(cFrequencySeries.
deltaF - cFrequencySeries.
deltaF)/
194 cFrequencySeries.
deltaF > READFTSERIESTEST_TOL)
196 fprintf(stderr,
"DeltaF MisMatch [ReadFTSeriesTest:%s]\n",
197 READFTSERIESTESTC_MSGEFLS);
200 if (strcmp(cFrequencySeries.
name,cFrequencySeries2.
name) != 0)
202 fprintf(stderr,
"Name Mismatch [ReadFTSeriesTest:%s]\n",
203 READFTSERIESTESTC_MSGEFLS);
209 fprintf(stderr,
"Epoch Second Mismatch [ReadFTSeriesTest:%s]\n",
210 READFTSERIESTESTC_MSGEFLS);
216 fprintf(stderr,
"Epoch NanosecondMismatch [ReadFTSeriesTest:%s]\n",
217 READFTSERIESTESTC_MSGEFLS);
220 if ((cFrequencySeries.
f0) ?
221 (fabs(cFrequencySeries.
f0 - cFrequencySeries2.
f0)/cFrequencySeries.
f0) :
222 (fabs(cFrequencySeries.
f0 - cFrequencySeries2.
f0) >
223 READFTSERIESTEST_TOL))
225 fprintf(stderr,
"f0 Mismatch [ReadFTSeriesTest:%s]\n",
226 READFTSERIESTESTC_MSGEFLS);
233 fprintf(stderr,
"Units Mismatch [ReadFTSeriesTest:%s]\n",
234 READFTSERIESTESTC_MSGEFLS);
238 for (j = 0; j < cSequenceIn->
length;j++)
240 if ((crealf(cSequenceIn->
data[j]) ?
241 fabs((crealf(cSequenceIn->
data[j]) - crealf(cSequenceOut->
data[j]))
242 /crealf(cSequenceIn->
data[j]))
243 :fabs(crealf(cSequenceIn->
data[j]) - crealf(cSequenceOut->
data[j]))) >
244 READFTSERIESTEST_TOL)
246 fprintf(stderr,
"Data Tolerance Exceeded [ReadFTSeriesTest:%s]\n",
247 READFTSERIESTESTC_MSGEFLS);
250 if ((cimagf(cSequenceIn->
data[j]) ?
251 fabs((cimagf(cSequenceIn->
data[j]) - cimagf(cSequenceOut->
data[j]))
252 /cimagf(cSequenceIn->
data[j]))
253 :fabs(cimagf(cSequenceIn->
data[j]) - cimagf(cSequenceOut->
data[j]))) >
254 READFTSERIESTEST_TOL)
256 fprintf(stderr,
"Data Tolerance Exceeded [ReadFTSeriesTest:%s]\n",
257 READFTSERIESTESTC_MSGEFLS);
264 fprintf(stderr,
"Testing Print/Read COMPLEX16FrequencySeries ... ");
273 if (
status.statusCode != 0)
275 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
276 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
281 for ( i=1, zData=zSequenceIn->
data; i<=READFTSERIESTEST_LEN ; i++, zData++ )
283 *(zData) =
crect( i/4.0, (i+1)/5.0 );
287 zFrequencySeries.
deltaF = 1.3;
288 zFrequencySeries.
epoch = t;
289 zFrequencySeries.
f0 = 0;
290 zFrequencySeries.
data = zSequenceIn;
293 if (
status.statusCode != 0)
295 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
296 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
302 if (
status.statusCode != 0)
304 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
305 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
309 zFrequencySeries2.
data = zSequenceOut;
312 if (
status.statusCode != 0)
314 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
315 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
319 if ((zFrequencySeries.
deltaF) != (zFrequencySeries2.
deltaF))
321 fprintf(stderr,
"DeltaF Mismatch [ReadFTSeriesTest:%s]\n",
322 READFTSERIESTESTC_MSGEFLS);
325 if (strcmp(zFrequencySeries.
name,zFrequencySeries2.
name) != 0)
327 fprintf(stderr,
"Name Mismatch [ReadFTSeriesTest:%s]\n",
328 READFTSERIESTESTC_MSGEFLS);
334 fprintf(stderr,
"Epoch Seconds Mismatch [ReadFTSeriesTest:%s]\n",
335 READFTSERIESTESTC_MSGEFLS);
341 fprintf(stderr,
"Epoch NanoSeconds Mismatch [ReadFTSeriesTest:%s]\n",
342 READFTSERIESTESTC_MSGEFLS);
345 if (zFrequencySeries.
f0 ?
346 (fabs(zFrequencySeries.
f0 - zFrequencySeries2.
f0)/zFrequencySeries.
f0)
347 : (fabs(zFrequencySeries.
f0 - zFrequencySeries2.
f0)) >
348 READFTSERIESTEST_TOL)
350 fprintf(stderr,
"f0 Mismatch [ReadFTSeriesTest:%s]\n",
351 READFTSERIESTESTC_MSGEFLS);
358 fprintf(stderr,
"Units Mismatch [ReadFTSeriesTest:%s]\n",
359 READFTSERIESTESTC_MSGEFLS);
363 for (j = 0; j < zSequenceIn->
length;j++)
365 if ((creal(zSequenceIn->
data[j]) ?
366 fabs((creal(zSequenceIn->
data[j]) - creal(zSequenceOut->
data[j]))
367 /creal(zSequenceIn->
data[j])) :
368 fabs(creal(zSequenceIn->
data[j]) - creal(zSequenceOut->
data[j]))) >
369 READFTSERIESTEST_TOL)
371 fprintf(stderr,
"Data Tolerance Exceeded [ReadFTSeriesTest:%s]\n",
372 READFTSERIESTESTC_MSGEFLS);
375 if ((cimag(zSequenceIn->
data[j]) ?
376 fabs((cimag(zSequenceIn->
data[j]) - cimag(zSequenceOut->
data[j]))
377 /cimag(zSequenceIn->
data[j])) :
378 fabs(cimag(zSequenceIn->
data[j]) - cimag(zSequenceOut->
data[j]))) >
379 READFTSERIESTEST_TOL)
381 fprintf(stderr,
"Data Tolerance Exceeded [ReadFTSeriesTest:%s]\n",
382 READFTSERIESTESTC_MSGEFLS);
389 fprintf(stderr,
"Testing Print/Read REAL8FrequencySeries ... ");
397 if (
status.statusCode != 0)
399 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
400 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
404 for ( i=1, dData=dSequenceIn->
data; i<=READFTSERIESTEST_LEN ; i++, dData++ )
411 raise.numerator = -2;
412 raise.denominatorMinusOne = 0;
415 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
416 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
422 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
423 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
429 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
430 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
436 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
437 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
442 dFrequencySeries.
deltaF = 1.3;
443 dFrequencySeries.
epoch = t;
444 dFrequencySeries.
f0 = 0;
445 dFrequencySeries.
data = dSequenceIn;
447 if (
status.statusCode != 0)
449 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
450 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
457 if (
status.statusCode != 0)
459 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
460 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
465 dFrequencySeries2.
data = dSequenceOut;
468 if (
status.statusCode != 0)
470 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
471 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
475 if ((dFrequencySeries.
deltaF) != (dFrequencySeries.
deltaF))
477 fprintf(stderr,
"DeltaF Mismatch [ReadFTSeriesTest:%s]\n",
478 READFTSERIESTESTC_MSGEFLS);
481 if (strcmp(dFrequencySeries.
name,dFrequencySeries2.
name) != 0)
483 fprintf(stderr,
"Name Mismatch [ReadFTSeriesTest:%s]\n",
484 READFTSERIESTESTC_MSGEFLS);
490 fprintf(stderr,
"Epoch Seconds Mismatch [ReadFTSeriesTest:%s]\n",
491 READFTSERIESTESTC_MSGEFLS);
497 fprintf(stderr,
"Epoch NanoSeconds Mismatch [ReadFTSeriesTest:%s]\n",
498 READFTSERIESTESTC_MSGEFLS);
501 if (dFrequencySeries.
f0 ?
502 (fabs(dFrequencySeries.
f0 - dFrequencySeries2.
f0)/dFrequencySeries.
f0)
503 : (fabs(dFrequencySeries.
f0 - dFrequencySeries2.
f0)) >
504 READFTSERIESTEST_TOL)
506 fprintf(stderr,
"f0 Mismatch [ReadFTSeriesTest:%s]\n",
507 READFTSERIESTESTC_MSGEFLS);
515 fprintf(stderr,
"Unit Mismatch [ReadFTSeriesTest:%s]\n",
516 READFTSERIESTESTC_MSGEFLS);
521 for (j = 0; j < dSequenceIn->
length;j++)
523 if ((dSequenceIn->
data[j] ?
524 fabs((dSequenceIn->
data[j] - dSequenceOut->
data[j])
525 /dSequenceIn->
data[j])
526 :fabs(dSequenceIn->
data[j] - dSequenceOut->
data[j])) >
527 READFTSERIESTEST_TOL)
529 fprintf(stderr,
"Data Tolerance Exceeded [ReadFTSeriesTest:%s]\n",
530 READFTSERIESTESTC_MSGEFLS);
539 fprintf(stderr,
"Testing Print/Read REAL4FrequencySeries ... ");
548 if (
status.statusCode != 0)
550 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
551 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
555 for ( i=1, sData=sSequenceIn->
data; i<=READFTSERIESTEST_LEN ; i++, sData++ )
562 raise.numerator = -2;
563 raise.denominatorMinusOne = 0;
566 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
567 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
573 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
574 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
580 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
581 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
587 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
588 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
593 sFrequencySeries.
deltaF = 1.3;
594 sFrequencySeries.
epoch = t;
595 sFrequencySeries.
f0 = 5;
596 sFrequencySeries.
data = sSequenceIn;
600 if (
status.statusCode != 0)
602 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
603 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
607 sFrequencySeries2.
data = sSequenceOut;
609 if (
status.statusCode != 0)
611 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
612 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
617 if (
status.statusCode != 0)
619 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
620 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
624 if (fabs(sFrequencySeries.
deltaF - sFrequencySeries2.
deltaF)
625 /sFrequencySeries.
deltaF > READFTSERIESTEST_TOL)
627 fprintf(stderr,
"Deltaf Mismatch [ReadFTSeriesTest:%s]\n",
628 READFTSERIESTESTC_MSGEFLS);
632 if (strcmp(sFrequencySeries.
name,sFrequencySeries2.
name)!=0)
634 fprintf(stderr,
"Name Mismatch [ReadFTSeriesTest:%s]\n",
635 READFTSERIESTESTC_MSGEFLS);
642 fprintf(stderr,
"Epoch Seconds Mismatch [ReadFTSeriesTest:%s]\n",
643 READFTSERIESTESTC_MSGEFLS);
649 fprintf(stderr,
"Epoch NanoSeconds Mismatch [ReadFTSeriesTest:%s]\n",
650 READFTSERIESTESTC_MSGEFLS);
653 if (sFrequencySeries.
f0 ?
654 (fabs(sFrequencySeries.
f0 - sFrequencySeries2.
f0)/sFrequencySeries.
f0)
655 : (fabs(sFrequencySeries.
f0 - sFrequencySeries2.
f0)) >
656 READFTSERIESTEST_TOL)
658 fprintf(stderr,
"f0 Mismatch [ReadFTSeriesTest:%s]\n",
659 READFTSERIESTESTC_MSGEFLS);
667 fprintf(stderr,
"Unit Mismatch [ReadFTSeriesTest:%s]\n",
668 READFTSERIESTESTC_MSGEFLS);
672 for (j = 0; j < sSequenceIn->
length;j++)
674 if ((sSequenceIn->
data[j] ?
675 fabs((sSequenceIn->
data[j] - sSequenceOut->
data[j])
676 /sSequenceIn->
data[j])
677 :fabs(sSequenceIn->
data[j] - sSequenceOut->
data[j])) >
678 READFTSERIESTEST_TOL)
680 fprintf(stderr,
"Data Tolerance Exceeded [ReadFTSeriesTest:%s]\n",
681 READFTSERIESTESTC_MSGEFLS);
688 if (
status.statusCode != 0)
690 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
691 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
696 if (
status.statusCode != 0)
698 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
699 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
704 if (
status.statusCode != 0)
706 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
707 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
711 if (
status.statusCode != 0)
713 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
714 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
719 if (
status.statusCode != 0)
721 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
722 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
727 if (
status.statusCode != 0)
729 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
730 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
735 if (
status.statusCode != 0)
737 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
738 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
743 if (
status.statusCode != 0)
745 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
746 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
753 fprintf(stderr,
"Testing Print/Read REAL4TimeSeries ... ");
758 raise.numerator = -2;
759 raise.denominatorMinusOne = 0;
762 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
763 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
769 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
770 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
776 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
777 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
783 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
784 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
794 if (
status.statusCode != 0)
796 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
797 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
802 for ( i=1, sData=sSequenceIn->
data; i<=READFTSERIESTEST_LEN ; i++, sData++ )
808 sTimeSeries.
epoch = t;
809 sTimeSeries.
data = sSequenceIn;
812 if (
status.statusCode != 0)
814 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
815 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
821 if (
status.statusCode != 0)
823 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
824 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
828 sTimeSeries2.
data = sSequenceOut;
831 if (
status.statusCode != 0)
833 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
834 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
839 sTimeSeries.
deltaT > READFTSERIESTEST_TOL)
841 fprintf(stderr,
"DeltaT Mismatch [ReadFTSeriesTest:%s]\n",
842 READFTSERIESTESTC_MSGEFLS);
846 if (strcmp(sFrequencySeries.
name,sFrequencySeries2.
name) != 0)
848 fprintf(stderr,
"Name Mismatch [ReadFTSeriesTest:%s]\n",
849 READFTSERIESTESTC_MSGEFLS);
855 fprintf(stderr,
"Epoch Seconds Mismatch [ReadFTSeriesTest:%s]\n",
856 READFTSERIESTESTC_MSGEFLS);
861 fprintf(stderr,
"Epoch NanoSeconds Mismatch [ReadFTSeriesTest:%s]\n",
862 READFTSERIESTESTC_MSGEFLS);
867 (fabs(sTimeSeries.
f0 - sTimeSeries2.
f0)/sTimeSeries.
f0)
868 : (fabs(sTimeSeries.
f0 - sTimeSeries2.
f0)) >
869 READFTSERIESTEST_TOL)
871 fprintf(stderr,
"f0 Mismatch [ReadFTSeriesTest:%s]\n",
872 READFTSERIESTESTC_MSGEFLS);
880 fprintf(stderr,
"Units Mismatch [ReadFTSeriesTest:%s]\n",
881 READFTSERIESTESTC_MSGEFLS);
884 for (j = 0; j < sSequenceIn->
length;j++)
886 if ((sSequenceIn->
data[j] ?
887 fabs((sSequenceIn->
data[j] - sSequenceOut->
data[j])
888 /sSequenceIn->
data[j])
889 :fabs(sSequenceIn->
data[j] - sSequenceOut->
data[j])) >
890 READFTSERIESTEST_TOL)
892 fprintf(stderr,
"Data Tolerance Exceeded [ReadFTSeriesTest:%s]\n",
893 READFTSERIESTESTC_MSGEFLS);
900 fprintf(stderr,
"Testing Print/Read COMPLEX16TimeSeries ... ");
904 raise.numerator = -2;
905 raise.denominatorMinusOne = 0;
908 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
909 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
915 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
916 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
922 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
923 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
929 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
930 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
939 if (
status.statusCode != 0)
941 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
942 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
947 for ( i=1, zData=zSequenceIn->
data; i<=READFTSERIESTEST_LEN ; i++, zData++ )
949 *(zData) =
crect( 0.005, 1 );
953 zTimeSeries.
epoch = t;
954 zTimeSeries.
data = zSequenceIn;
957 if (
status.statusCode != 0)
959 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
960 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
966 if (
status.statusCode != 0)
968 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
969 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
973 zTimeSeries2.
data = zSequenceOut;
976 if (
status.statusCode != 0)
978 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
979 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
984 READFTSERIESTEST_TOL)
986 fprintf(stderr,
"Mismatch DeltaT [ReadFTSeriesTest:%s]\n",
987 READFTSERIESTESTC_MSGEFLS);
992 if (strcmp(zTimeSeries.
name,zTimeSeries2.
name) != 0)
994 fprintf(stderr,
"Name Mismatch [ReadFTSeriesTest:%s]\n",
995 READFTSERIESTESTC_MSGEFLS);
1001 fprintf(stderr,
"Epoch Second Mismatch [ReadFTSeriesTest:%s]\n",
1002 READFTSERIESTESTC_MSGEFLS);
1008 fprintf(stderr,
"Epoch Nanosecond Mismatch [ReadFTSeriesTest:%s]\n",
1009 READFTSERIESTESTC_MSGEFLS);
1013 if (zTimeSeries.
f0 ?
1014 (fabs(zTimeSeries.
f0 - zTimeSeries2.
f0)/zTimeSeries.
f0)
1015 : (fabs(zTimeSeries.
f0 - zTimeSeries2.
f0)) >
1016 READFTSERIESTEST_TOL)
1018 fprintf(stderr,
"f0 Mismatch [ReadFTSeriesTest:%s]\n",
1019 READFTSERIESTESTC_MSGEFLS);
1027 fprintf(stderr,
"Unit Mismatch [ReadFTSeriesTest:%s]\n",
1028 READFTSERIESTESTC_MSGEFLS);
1032 for (j = 0; j < zSequenceIn->
length;j++)
1034 if ((creal(zSequenceIn->
data[j]) ?
1035 fabs((creal(zSequenceIn->
data[j]) - creal(zSequenceOut->
data[j]))
1036 /creal(zSequenceIn->
data[j]))
1037 :fabs(creal(zSequenceIn->
data[j]) - creal(zSequenceOut->
data[j]))) >
1038 READFTSERIESTEST_TOL)
1040 fprintf(stderr,
"Data Tolerance Exceeded [ReadFTSeriesTest:%s]\n",
1041 READFTSERIESTESTC_MSGEFLS);
1044 if ((cimag(zSequenceIn->
data[j]) ?
1045 fabs((cimag(zSequenceIn->
data[j]) - cimag(zSequenceOut->
data[j]))
1046 /cimag(zSequenceIn->
data[j]))
1047 :fabs(cimag(zSequenceIn->
data[j]) - cimag(zSequenceOut->
data[j]))) >
1048 READFTSERIESTEST_TOL)
1050 fprintf(stderr,
"Data Tolerance Exceeded [ReadFTSeriesTest:%s]\n",
1051 READFTSERIESTESTC_MSGEFLS);
1058 fprintf(stderr,
"Testing Print/Read REAL8TimeSeries ... ");
1062 raise.numerator = -2;
1063 raise.denominatorMinusOne = 0;
1066 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
1067 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
1072 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
1073 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
1079 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
1080 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
1086 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
1087 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
1098 if (
status.statusCode != 0)
1100 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
1101 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
1106 for ( i=1, dData=dSequenceIn->
data; i<=READFTSERIESTEST_LEN ; i++, dData++ )
1111 dTimeSeries.
deltaT = 1.3;
1112 dTimeSeries.
epoch = t;
1113 dTimeSeries.
data = dSequenceIn;
1116 if (
status.statusCode != 0)
1118 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
1119 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
1123 dSequenceOut = NULL;
1125 if (
status.statusCode != 0)
1127 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
1128 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
1132 dTimeSeries2.
data = dSequenceOut;
1134 if (
status.statusCode != 0)
1136 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
1137 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
1142 > READFTSERIESTEST_TOL)
1144 fprintf(stderr,
"DeltaT Mismatch [ReadFTSeriesTest:%d,%s]\n",
status.statusCode,
1145 status.statusDescription );
1148 if (strcmp(dTimeSeries.
name,dTimeSeries2.
name) != 0)
1150 fprintf(stderr,
"Name Mismatch [ReadFTSeriesTest:%d,%s]\n",
status.statusCode,
1151 status.statusDescription );
1157 fprintf(stderr,
"Epoch Seconds Mismatch [ReadFTSeriesTest:%s]\n",
1158 READFTSERIESTESTC_MSGEFLS);
1165 fprintf(stderr,
"Epoch Nanoseconds Mismatch [ReadFTSeriesTest:%s]\n",
1166 READFTSERIESTESTC_MSGEFLS);
1170 if (dTimeSeries.
f0 ?
1171 (fabs(dTimeSeries.
f0 - dTimeSeries2.
f0)/dTimeSeries.
f0)
1172 : (fabs(dTimeSeries.
f0 - dTimeSeries2.
f0)) >
1173 READFTSERIESTEST_TOL)
1175 fprintf(stderr,
"f0 Mismatch [ReadFTSeriesTest:%s]\n",
1176 READFTSERIESTESTC_MSGEFLS);
1184 fprintf(stderr,
"Unit Mismatch [ReadFTSeriesTest:%s]\n",
1185 READFTSERIESTESTC_MSGEFLS);
1189 for (j = 0; j < dSequenceIn->
length;j++)
1191 if ((dSequenceIn->
data[j] ?
1192 fabs((dSequenceIn->
data[j] - dSequenceOut->
data[j])
1193 /dSequenceIn->
data[j])
1194 :fabs(dSequenceIn->
data[j] - dSequenceOut->
data[j])) >
1195 READFTSERIESTEST_TOL)
1197 fprintf(stderr,
"Data Tolerance Exceeded [ReadFTSeriesTest:%s]\n",
1198 READFTSERIESTESTC_MSGEFLS);
1205 fprintf(stderr,
"Testing Print/Read COMPLEX8TimeSeries ... ");
1209 raise.numerator = -2;
1210 raise.denominatorMinusOne = 0;
1213 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
1214 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
1220 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
1221 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
1227 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
1228 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
1234 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
1235 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
1244 if (
status.statusCode != 0)
1246 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
1247 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
1251 for ( i=1, cData=cSequenceIn->
data; i<=READFTSERIESTEST_LEN ; i++, cData++ )
1253 *(cData) =
crectf( 0.005, 1 );
1256 cTimeSeries.
deltaT = 1.3;
1257 cTimeSeries.
epoch = t;
1258 cTimeSeries.
data = cSequenceIn;
1260 cSequenceOut = NULL;
1262 if (
status.statusCode != 0)
1264 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
1265 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
1269 if (
status.statusCode != 0)
1271 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
1272 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
1276 cTimeSeries2.
data = cSequenceOut;
1279 if (
status.statusCode != 0)
1281 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
1282 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
1287 > READFTSERIESTEST_TOL)
1289 fprintf(stderr,
"DeltaT Mismatch [ReadFTSeriesTest:%s]\n",
1290 READFTSERIESTESTC_MSGEFLS);
1294 if (strcmp(cTimeSeries.
name,cTimeSeries2.
name) != 0)
1296 fprintf(stderr,
"Name Mismatch [ReadFTSeriesTest:%s]\n",
1297 READFTSERIESTESTC_MSGEFLS);
1302 fprintf(stderr,
"Epoch Seconds Mismatch [ReadFTSeriesTest:%s]\n",
1303 READFTSERIESTESTC_MSGEFLS);
1308 fprintf(stderr,
"Epoch Nanoseconds Mismatch [ReadFTSeriesTest:%s]\n",
1309 READFTSERIESTESTC_MSGEFLS);
1312 if (cTimeSeries.
f0 ?
1313 (fabs(cTimeSeries.
f0 - cTimeSeries2.
f0)/cTimeSeries.
f0)
1314 : (fabs(cTimeSeries.
f0 - cTimeSeries2.
f0)) >
1315 READFTSERIESTEST_TOL)
1317 fprintf(stderr,
"f0 Mismatch [ReadFTSeriesTest:%s]\n",
1318 READFTSERIESTESTC_MSGEFLS);
1326 fprintf(stderr,
"Units Mismatch [ReadFTSeriesTest:%s]\n",
1327 READFTSERIESTESTC_MSGEFLS);
1331 for (j = 0; j < cSequenceIn->
length;j++)
1333 if ((crealf(cSequenceIn->
data[j]) ?
1334 fabs((crealf(cSequenceIn->
data[j]) - crealf(cSequenceOut->
data[j]))
1335 /crealf(cSequenceIn->
data[j]))
1336 :fabs(crealf(cSequenceIn->
data[j]) - crealf(cSequenceOut->
data[j]))) >
1337 READFTSERIESTEST_TOL)
1339 fprintf(stderr,
"Data Tolerance Exceeded [ReadFTSeriesTest:%s]\n",
1340 READFTSERIESTESTC_MSGEFLS);
1343 if ((cimagf(cSequenceIn->
data[j]) ?
1344 fabs((cimagf(cSequenceIn->
data[j]) - cimagf(cSequenceOut->
data[j]))
1345 /cimagf(cSequenceIn->
data[j]))
1346 :fabs(cimagf(cSequenceIn->
data[j]) - cimagf(cSequenceOut->
data[j]))) >
1347 READFTSERIESTEST_TOL)
1349 fprintf(stderr,
"Data Tolerance Exceeded [ReadFTSeriesTest:%s]\n",
1350 READFTSERIESTESTC_MSGEFLS);
1359 if (
status.statusCode != 0)
1361 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
1362 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
1367 if (
status.statusCode != 0)
1369 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
1370 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
1375 if (
status.statusCode != 0)
1377 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
1378 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
1383 if (
status.statusCode != 0)
1385 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
1386 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
1391 if (
status.statusCode != 0)
1393 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
1394 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
1399 if (
status.statusCode != 0)
1401 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
1402 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
1407 if (
status.statusCode != 0)
1409 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
1410 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
1415 if (
status.statusCode != 0)
1417 fprintf(stderr,
"[%i]: %s [ReadFTSeriesTest:%s]\n",
status.statusCode,
1418 status.statusDescription, READFTSERIESTESTC_MSGEFUN);
1424 fprintf(stderr,
"ReadFTSeries passed all tests.\n");
void LALCheckMemoryLeaks(void)
#define READFTSERIESTESTC_ENOM
Nominal exit.
#define READFTSERIESTESTC_EFLS
Subroutine returned unexpected results.
#define READFTSERIESTESTC_EFUN
Subroutine returned error for valid data.
int main(int argc, char *argv[])
#define crect(re, im)
Construct a COMPLEX16 from real and imaginary parts.
unsigned char BOOLEAN
Boolean logical type, see Headers LAL(Atomic)Datatypes.h for more details.
double complex COMPLEX16
Double-precision floating-point complex number (16 bytes total)
double REAL8
Double precision real floating-point number (8 bytes).
#define crectf(re, im)
Construct a COMPLEX8 from real and imaginary parts.
uint32_t UINT4
Four-byte unsigned integer.
float complex COMPLEX8
Single-precision floating-point complex number (8 bytes total)
float REAL4
Single precision real floating-point number (4 bytes).
void LALCPrintFrequencySeries(COMPLEX8FrequencySeries *series, const CHAR *filename)
void LALSPrintFrequencySeries(REAL4FrequencySeries *series, const CHAR *filename)
void LALZPrintFrequencySeries(COMPLEX16FrequencySeries *series, const CHAR *filename)
void LALDPrintFrequencySeries(REAL8FrequencySeries *series, const CHAR *filename)
void LALZPrintTimeSeries(COMPLEX16TimeSeries *series, const CHAR *filename)
void LALDPrintTimeSeries(REAL8TimeSeries *series, const CHAR *filename)
void LALCPrintTimeSeries(COMPLEX8TimeSeries *series, const CHAR *filename)
void LALSPrintTimeSeries(REAL4TimeSeries *series, const CHAR *filename)
void LALDReadFrequencySeries(LALStatus *status, REAL8FrequencySeries *series, const CHAR *filename)
void LALSReadFrequencySeries(LALStatus *status, REAL4FrequencySeries *series, const CHAR *filename)
void LALCReadFrequencySeries(LALStatus *status, COMPLEX8FrequencySeries *series, const CHAR *filename)
void LALZReadFrequencySeries(LALStatus *status, COMPLEX16FrequencySeries *series, const CHAR *filename)
void LALSReadTimeSeries(LALStatus *status, REAL4TimeSeries *series, const CHAR *filename)
void LALZReadTimeSeries(LALStatus *status, COMPLEX16TimeSeries *series, const CHAR *filename)
void LALDReadTimeSeries(LALStatus *status, REAL8TimeSeries *series, const CHAR *filename)
void LALCReadTimeSeries(LALStatus *status, COMPLEX8TimeSeries *series, const CHAR *filename)
int XLALUnitCompare(const LALUnit *unit1, const LALUnit *unit2)
Returns 0 if the the normal form of the two unit structures are the same or > 0 if they are different...
const LALUnit lalStrainUnit
Strain [1].
const LALUnit lalADCCountUnit
ADC count [count].
const LALUnit lalHertzUnit
Hertz [Hz].
const LALUnit lalDimensionlessUnit
dimensionless units
LALUnit * XLALUnitMultiply(LALUnit *output, const LALUnit *unit1, const LALUnit *unit2)
This function multiplies together the LALUnit structures *(input->unitOne) and *(input->unitTwo),...
LALUnit * XLALUnitRaiseRAT4(LALUnit *output, const LALUnit *input, const RAT4 *power)
Raises a LALUnit structure to a rational power given by the RAT4 structure power.
void LALCCreateVector(LALStatus *, COMPLEX8Vector **, UINT4)
void LALZDestroyVector(LALStatus *, COMPLEX16Vector **)
void LALDCreateVector(LALStatus *, REAL8Vector **, UINT4)
void LALCDestroyVector(LALStatus *, COMPLEX8Vector **)
void LALDDestroyVector(LALStatus *, REAL8Vector **)
void LALSDestroyVector(LALStatus *, REAL4Vector **)
void LALZCreateVector(LALStatus *, COMPLEX16Vector **, UINT4)
void LALSCreateVector(LALStatus *, REAL4Vector **, UINT4)
See DATATYPE-FrequencySeries types for documentation.
Time series of COMPLEX16 data, see DATATYPE-TimeSeries types for more details.
REAL8 f0
The heterodyning frequency, in Hertz (zero if not heterodyned).
COMPLEX16Sequence * data
The sequence of sampled data.
LALUnit sampleUnits
The physical units of the quantity being sampled.
CHAR name[LALNameLength]
The name of the time series.
LIGOTimeGPS epoch
The start time of the time series.
REAL8 deltaT
The time step between samples of the time series in seconds.
Vector of type COMPLEX16, see DATATYPE-Vector types for more details.
UINT4 length
Number of elements in array.
COMPLEX16 * data
Pointer to the data array.
See DATATYPE-FrequencySeries types for documentation.
Time series of COMPLEX8 data, see DATATYPE-TimeSeries types for more details.
CHAR name[LALNameLength]
The name of the time series.
LALUnit sampleUnits
The physical units of the quantity being sampled.
REAL8 f0
The heterodyning frequency, in Hertz (zero if not heterodyned).
REAL8 deltaT
The time step between samples of the time series in seconds.
LIGOTimeGPS epoch
The start time of the time series.
COMPLEX8Sequence * data
The sequence of sampled data.
Vector of type COMPLEX8, see DATATYPE-Vector types for more details.
UINT4 length
Number of elements in array.
COMPLEX8 * data
Pointer to the data array.
LAL status structure, see The LALStatus structure for more details.
This structure stores units in the mksA system (plus Kelvin, Strain, and ADC Count).
Epoch relative to GPS epoch, see LIGOTimeGPS type for more details.
INT4 gpsSeconds
Seconds since 0h UTC 6 Jan 1980.
INT4 gpsNanoSeconds
Residual nanoseconds.
A four-byte rational number, used as a parameter structure for XLALUnitRaiseRAT4().
See DATATYPE-FrequencySeries types for documentation.
Time series of REAL4 data, see DATATYPE-TimeSeries types for more details.
CHAR name[LALNameLength]
The name of the time series.
REAL4Sequence * data
The sequence of sampled data.
LALUnit sampleUnits
The physical units of the quantity being sampled.
REAL8 deltaT
The time step between samples of the time series in seconds.
LIGOTimeGPS epoch
The start time of the time series.
REAL8 f0
The heterodyning frequency, in Hertz (zero if not heterodyned).
Vector of type REAL4, see DATATYPE-Vector types for more details.
REAL4 * data
Pointer to the data array.
UINT4 length
Number of elements in array.
See DATATYPE-FrequencySeries types for documentation.
Time series of REAL8 data, see DATATYPE-TimeSeries types for more details.
REAL8Sequence * data
The sequence of sampled data.
LALUnit sampleUnits
The physical units of the quantity being sampled.
REAL8 f0
The heterodyning frequency, in Hertz (zero if not heterodyned).
REAL8 deltaT
The time step between samples of the time series in seconds.
LIGOTimeGPS epoch
The start time of the time series.
CHAR name[LALNameLength]
The name of the time series.
Vector of type REAL8, see DATATYPE-Vector types for more details.
REAL8 * data
Pointer to the data array.
UINT4 length
Number of elements in array.