1 /* GSequencer - Advanced GTK Sequencer
2 * Copyright (C) 2021 Joël Krähemann
3 *
4 * This file is part of GSequencer.
5 *
6 * GSequencer is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * GSequencer is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with GSequencer. If not, see <http://www.gnu.org/licenses/>.
18 */
19
20 #include <glib.h>
21 #include <glib-object.h>
22
23 #include <CUnit/CUnit.h>
24 #include <CUnit/Automated.h>
25 #include <CUnit/Basic.h>
26
27 #include <ags/libags.h>
28 #include <ags/libags-audio.h>
29
30 int ags_resample_util_test_init_suite();
31 int ags_resample_util_test_clean_suite();
32
33 void ags_resample_util_test_alloc();
34 void ags_resample_util_test_copy();
35 void ags_resample_util_test_free();
36 void ags_resample_util_test_get_destination();
37 void ags_resample_util_test_set_destination();
38 void ags_resample_util_test_get_destination_stride();
39 void ags_resample_util_test_set_destination_stride();
40 void ags_resample_util_test_get_source();
41 void ags_resample_util_test_set_source();
42 void ags_resample_util_test_get_source_stride();
43 void ags_resample_util_test_set_source_stride();
44 void ags_resample_util_test_get_buffer_length();
45 void ags_resample_util_test_set_buffer_length();
46 void ags_resample_util_test_get_audio_buffer_util_format();
47 void ags_resample_util_test_set_audio_buffer_util_format();
48 void ags_resample_util_test_get_samplerate();
49 void ags_resample_util_test_set_samplerate();
50 void ags_resample_util_test_get_target_samplerate();
51 void ags_resample_util_test_set_target_samplerate();
52 void ags_resample_util_test_compute_s8();
53 void ags_resample_util_test_compute_s16();
54 void ags_resample_util_test_compute_s24();
55 void ags_resample_util_test_compute_s32();
56 void ags_resample_util_test_compute_s64();
57 void ags_resample_util_test_compute_float();
58 void ags_resample_util_test_compute_double();
59 void ags_resample_util_test_compute_complex();
60 void ags_resample_util_test_compute();
61
62 #define AGS_RESAMPLE_UTIL_TEST_COPY_SOURCE_AUDIO_CHANNELS (2)
63 #define AGS_RESAMPLE_UTIL_TEST_COPY_BUFFER_SIZE (1024)
64 #define AGS_RESAMPLE_UTIL_TEST_COPY_FORMAT (AGS_SOUNDCARD_SIGNED_16_BIT)
65 #define AGS_RESAMPLE_UTIL_TEST_COPY_SAMPLERATE (48000)
66 #define AGS_RESAMPLE_UTIL_TEST_COPY_TARGET_SAMPLERATE (44100)
67
68 #define AGS_RESAMPLE_UTIL_TEST_GET_DESTINATION_BUFFER_SIZE (1024)
69 #define AGS_RESAMPLE_UTIL_TEST_GET_DESTINATION_FORMAT (AGS_SOUNDCARD_SIGNED_16_BIT)
70
71 #define AGS_RESAMPLE_UTIL_TEST_SET_DESTINATION_BUFFER_SIZE (1024)
72 #define AGS_RESAMPLE_UTIL_TEST_SET_DESTINATION_FORMAT (AGS_SOUNDCARD_SIGNED_16_BIT)
73
74 #define AGS_RESAMPLE_UTIL_TEST_GET_SOURCE_BUFFER_SIZE (1024)
75 #define AGS_RESAMPLE_UTIL_TEST_GET_SOURCE_FORMAT (AGS_SOUNDCARD_SIGNED_16_BIT)
76
77 #define AGS_RESAMPLE_UTIL_TEST_SET_SOURCE_BUFFER_SIZE (1024)
78 #define AGS_RESAMPLE_UTIL_TEST_SET_SOURCE_FORMAT (AGS_SOUNDCARD_SIGNED_16_BIT)
79
80 /* The suite initialization function.
81 * Opens the temporary file used by the tests.
82 * Returns zero on success, non-zero otherwise.
83 */
84 int
ags_resample_util_test_init_suite()85 ags_resample_util_test_init_suite()
86 {
87 return(0);
88 }
89
90 /* The suite cleanup function.
91 * Closes the temporary file used by the tests.
92 * Returns zero on success, non-zero otherwise.
93 */
94 int
ags_resample_util_test_clean_suite()95 ags_resample_util_test_clean_suite()
96 {
97 return(0);
98 }
99
100 void
ags_resample_util_test_alloc()101 ags_resample_util_test_alloc()
102 {
103 AgsResampleUtil *resample_util;
104
105 resample_util = ags_resample_util_alloc();
106
107 CU_ASSERT(resample_util != NULL);
108
109 CU_ASSERT(resample_util->destination == NULL);
110 CU_ASSERT(resample_util->destination_stride == 1);
111
112 CU_ASSERT(resample_util->source == NULL);
113 CU_ASSERT(resample_util->source_stride == 1);
114
115 CU_ASSERT(resample_util->buffer_length == 0);
116 CU_ASSERT(resample_util->audio_buffer_util_format == AGS_RESAMPLE_UTIL_DEFAULT_AUDIO_BUFFER_UTIL_FORMAT);
117 CU_ASSERT(resample_util->samplerate == AGS_RESAMPLE_UTIL_DEFAULT_SAMPLERATE);
118
119 CU_ASSERT(resample_util->target_samplerate == AGS_RESAMPLE_UTIL_DEFAULT_TARGET_SAMPLERATE);
120 }
121
122 void
ags_resample_util_test_copy()123 ags_resample_util_test_copy()
124 {
125 AgsResampleUtil resample_util;
126 AgsResampleUtil *copy_resample_util;
127
128 resample_util = (AgsResampleUtil) {
129 .destination = ags_stream_alloc(AGS_RESAMPLE_UTIL_TEST_COPY_BUFFER_SIZE,
130 AGS_RESAMPLE_UTIL_TEST_COPY_FORMAT),
131 .source = ags_stream_alloc(AGS_RESAMPLE_UTIL_TEST_COPY_SOURCE_AUDIO_CHANNELS * AGS_RESAMPLE_UTIL_TEST_COPY_BUFFER_SIZE,
132 AGS_RESAMPLE_UTIL_TEST_COPY_FORMAT),
133 .source_stride = AGS_RESAMPLE_UTIL_TEST_COPY_SOURCE_AUDIO_CHANNELS,
134 .buffer_length = AGS_RESAMPLE_UTIL_TEST_COPY_BUFFER_SIZE,
135 .samplerate = AGS_RESAMPLE_UTIL_TEST_COPY_SAMPLERATE,
136 .target_samplerate = AGS_RESAMPLE_UTIL_TEST_COPY_TARGET_SAMPLERATE
137 };
138
139 copy_resample_util = ags_resample_util_copy(&resample_util);
140
141 CU_ASSERT(copy_resample_util != NULL);
142
143 CU_ASSERT(copy_resample_util->destination == resample_util.destination);
144 CU_ASSERT(copy_resample_util->destination_stride == resample_util.destination_stride);
145
146 CU_ASSERT(copy_resample_util->source == resample_util.source);
147 CU_ASSERT(copy_resample_util->source_stride == resample_util.source_stride);
148
149 CU_ASSERT(copy_resample_util->buffer_length == resample_util.buffer_length);
150 CU_ASSERT(copy_resample_util->audio_buffer_util_format == resample_util.audio_buffer_util_format);
151 CU_ASSERT(copy_resample_util->samplerate == resample_util.samplerate);
152
153 CU_ASSERT(copy_resample_util->target_samplerate == resample_util.target_samplerate);
154 }
155
156 void
ags_resample_util_test_free()157 ags_resample_util_test_free()
158 {
159 AgsResampleUtil *resample_util;
160
161 resample_util = (AgsResampleUtil *) g_new(AgsResampleUtil,
162 1);
163
164 CU_ASSERT(resample_util != NULL);
165
166 resample_util->source = NULL;
167 resample_util->destination = NULL;
168
169 resample_util->secret_rabbit.data_out = NULL;
170 resample_util->secret_rabbit.data_in = NULL;
171
172 ags_resample_util_free(resample_util);
173
174 resample_util = ags_resample_util_alloc();
175
176 CU_ASSERT(resample_util != NULL);
177
178 ags_resample_util_free(resample_util);
179 }
180
181 void
ags_resample_util_test_get_destination()182 ags_resample_util_test_get_destination()
183 {
184 AgsResampleUtil resample_util;
185
186 resample_util.destination = NULL;
187
188 CU_ASSERT(ags_resample_util_get_destination(&resample_util) == NULL);
189
190 resample_util.destination = ags_stream_alloc(AGS_RESAMPLE_UTIL_TEST_GET_DESTINATION_BUFFER_SIZE,
191 AGS_RESAMPLE_UTIL_TEST_GET_DESTINATION_FORMAT);
192
193 CU_ASSERT(ags_resample_util_get_destination(&resample_util) == resample_util.destination);
194 }
195
196 void
ags_resample_util_test_set_destination()197 ags_resample_util_test_set_destination()
198 {
199 AgsResampleUtil resample_util;
200
201 gpointer destination;
202
203 resample_util.destination = NULL;
204
205 destination = ags_stream_alloc(AGS_RESAMPLE_UTIL_TEST_SET_DESTINATION_BUFFER_SIZE,
206 AGS_RESAMPLE_UTIL_TEST_SET_DESTINATION_FORMAT);
207
208 ags_resample_util_set_destination(&resample_util,
209 destination);
210
211 CU_ASSERT(resample_util.destination == destination);
212 }
213
214 void
ags_resample_util_test_get_destination_stride()215 ags_resample_util_test_get_destination_stride()
216 {
217 AgsResampleUtil resample_util;
218
219 resample_util.destination_stride = 0;
220
221 CU_ASSERT(ags_resample_util_get_destination_stride(&resample_util) == 0);
222
223 resample_util.destination_stride = 1;
224
225 CU_ASSERT(ags_resample_util_get_destination_stride(&resample_util) == resample_util.destination_stride);
226 }
227
228 void
ags_resample_util_test_set_destination_stride()229 ags_resample_util_test_set_destination_stride()
230 {
231 AgsResampleUtil resample_util;
232
233 resample_util.destination_stride = 0;
234
235 ags_resample_util_set_destination_stride(&resample_util,
236 1);
237
238 CU_ASSERT(resample_util.destination_stride == 1);
239 }
240
241 void
ags_resample_util_test_get_source()242 ags_resample_util_test_get_source()
243 {
244 AgsResampleUtil resample_util;
245
246 resample_util.source = NULL;
247
248 CU_ASSERT(ags_resample_util_get_source(&resample_util) == NULL);
249
250 resample_util.source = ags_stream_alloc(AGS_RESAMPLE_UTIL_TEST_GET_SOURCE_BUFFER_SIZE,
251 AGS_RESAMPLE_UTIL_TEST_GET_SOURCE_FORMAT);
252
253 CU_ASSERT(ags_resample_util_get_source(&resample_util) == resample_util.source);
254 }
255
256 void
ags_resample_util_test_set_source()257 ags_resample_util_test_set_source()
258 {
259 AgsResampleUtil resample_util;
260
261 gpointer source;
262
263 resample_util.source = NULL;
264
265 source = ags_stream_alloc(AGS_RESAMPLE_UTIL_TEST_SET_SOURCE_BUFFER_SIZE,
266 AGS_RESAMPLE_UTIL_TEST_SET_SOURCE_FORMAT);
267
268 ags_resample_util_set_source(&resample_util,
269 source);
270
271 CU_ASSERT(resample_util.source == source);
272 }
273
274 void
ags_resample_util_test_get_source_stride()275 ags_resample_util_test_get_source_stride()
276 {
277 AgsResampleUtil resample_util;
278
279 resample_util.source_stride = 0;
280
281 CU_ASSERT(ags_resample_util_get_source_stride(&resample_util) == 0);
282
283 resample_util.source_stride = 1;
284
285 CU_ASSERT(ags_resample_util_get_source_stride(&resample_util) == resample_util.source_stride);
286 }
287
288 void
ags_resample_util_test_set_source_stride()289 ags_resample_util_test_set_source_stride()
290 {
291 AgsResampleUtil resample_util;
292
293 resample_util.source_stride = 0;
294
295 ags_resample_util_set_source_stride(&resample_util,
296 1);
297
298 CU_ASSERT(resample_util.source_stride == 1);
299 }
300
301 void
ags_resample_util_test_get_buffer_length()302 ags_resample_util_test_get_buffer_length()
303 {
304 AgsResampleUtil resample_util;
305
306 resample_util.buffer_length = 0;
307
308 CU_ASSERT(ags_resample_util_get_buffer_length(&resample_util) == 0);
309
310 resample_util.buffer_length = 512;
311
312 CU_ASSERT(ags_resample_util_get_buffer_length(&resample_util) == resample_util.buffer_length);
313 }
314
315 void
ags_resample_util_test_set_buffer_length()316 ags_resample_util_test_set_buffer_length()
317 {
318 AgsResampleUtil resample_util;
319
320 resample_util.secret_rabbit.data_in = NULL;
321 resample_util.secret_rabbit.data_out = NULL;
322
323 resample_util.secret_rabbit.src_ratio = 1.0;
324
325 resample_util.buffer_length = 0;
326
327 ags_resample_util_set_buffer_length(&resample_util,
328 512);
329
330 CU_ASSERT(resample_util.buffer_length == 512);
331 }
332
333 void
ags_resample_util_test_get_audio_buffer_util_format()334 ags_resample_util_test_get_audio_buffer_util_format()
335 {
336 AgsResampleUtil resample_util;
337
338 resample_util.audio_buffer_util_format = AGS_AUDIO_BUFFER_UTIL_S16;
339
340 CU_ASSERT(ags_resample_util_get_audio_buffer_util_format(&resample_util) == AGS_AUDIO_BUFFER_UTIL_S16);
341
342 resample_util.audio_buffer_util_format = AGS_AUDIO_BUFFER_UTIL_FLOAT;
343
344 CU_ASSERT(ags_resample_util_get_audio_buffer_util_format(&resample_util) == resample_util.audio_buffer_util_format);
345 }
346
347 void
ags_resample_util_test_set_audio_buffer_util_format()348 ags_resample_util_test_set_audio_buffer_util_format()
349 {
350 AgsResampleUtil resample_util;
351
352 resample_util.audio_buffer_util_format = AGS_AUDIO_BUFFER_UTIL_S16;
353
354 ags_resample_util_set_audio_buffer_util_format(&resample_util,
355 AGS_AUDIO_BUFFER_UTIL_FLOAT);
356
357 CU_ASSERT(resample_util.audio_buffer_util_format == AGS_AUDIO_BUFFER_UTIL_FLOAT);
358 }
359
360 void
ags_resample_util_test_get_samplerate()361 ags_resample_util_test_get_samplerate()
362 {
363 AgsResampleUtil resample_util;
364
365 resample_util.samplerate = 0;
366
367 CU_ASSERT(ags_resample_util_get_samplerate(&resample_util) == 0);
368
369 resample_util.samplerate = 44100;
370
371 CU_ASSERT(ags_resample_util_get_samplerate(&resample_util) == resample_util.samplerate);
372 }
373
374 void
ags_resample_util_test_set_samplerate()375 ags_resample_util_test_set_samplerate()
376 {
377 AgsResampleUtil resample_util;
378
379 resample_util.secret_rabbit.data_out = NULL;
380
381 resample_util.secret_rabbit.src_ratio = 1.0;
382
383 resample_util.buffer_length = 0;
384 resample_util.samplerate = 0;
385 resample_util.target_samplerate = 44100;
386
387 ags_resample_util_set_samplerate(&resample_util,
388 44100);
389
390 CU_ASSERT(resample_util.samplerate == 44100);
391 }
392
393 void
ags_resample_util_test_get_target_samplerate()394 ags_resample_util_test_get_target_samplerate()
395 {
396 AgsResampleUtil resample_util;
397
398 resample_util.target_samplerate = 0;
399
400 CU_ASSERT(ags_resample_util_get_target_samplerate(&resample_util) == 0);
401
402 resample_util.target_samplerate = 44100;
403
404 CU_ASSERT(ags_resample_util_get_target_samplerate(&resample_util) == resample_util.target_samplerate);
405 }
406
407 void
ags_resample_util_test_set_target_samplerate()408 ags_resample_util_test_set_target_samplerate()
409 {
410 AgsResampleUtil resample_util;
411
412 resample_util.secret_rabbit.data_out = NULL;
413
414 resample_util.secret_rabbit.src_ratio = 1.0;
415
416 resample_util.buffer_length = 0;
417 resample_util.samplerate = 44100;
418 resample_util.target_samplerate = 0;
419
420 ags_resample_util_set_target_samplerate(&resample_util,
421 44100);
422
423 CU_ASSERT(resample_util.target_samplerate == 44100);
424 }
425
426 void
ags_resample_util_test_compute_s8()427 ags_resample_util_test_compute_s8()
428 {
429 AgsResampleUtil resample_util;
430
431 gpointer source;
432
433 source = ags_stream_alloc(1024,
434 AGS_SOUNDCARD_SIGNED_8_BIT);
435
436 resample_util = (AgsResampleUtil) {
437 .destination = source,
438 .source = source,
439 .source_stride = 1,
440 .buffer_length = 1024,
441 .audio_buffer_util_format = AGS_AUDIO_BUFFER_UTIL_S8,
442 .samplerate = 48000,
443 .target_samplerate = 44100
444 };
445
446 ags_resample_util_compute_s8(&resample_util);
447 }
448
449 void
ags_resample_util_test_compute_s16()450 ags_resample_util_test_compute_s16()
451 {
452 AgsResampleUtil resample_util;
453
454 gpointer source;
455
456 source = ags_stream_alloc(1024,
457 AGS_SOUNDCARD_SIGNED_16_BIT);
458
459 resample_util = (AgsResampleUtil) {
460 .destination = source,
461 .source = source,
462 .source_stride = 1,
463 .buffer_length = 1024,
464 .audio_buffer_util_format = AGS_AUDIO_BUFFER_UTIL_S16,
465 .samplerate = 48000,
466 .target_samplerate = 44100
467 };
468
469 ags_resample_util_compute_s16(&resample_util);
470 }
471
472 void
ags_resample_util_test_compute_s24()473 ags_resample_util_test_compute_s24()
474 {
475 AgsResampleUtil resample_util;
476
477 gpointer source;
478
479 source = ags_stream_alloc(1024,
480 AGS_SOUNDCARD_SIGNED_24_BIT);
481
482 resample_util = (AgsResampleUtil) {
483 .destination = source,
484 .source = source,
485 .source_stride = 1,
486 .buffer_length = 1024,
487 .audio_buffer_util_format = AGS_AUDIO_BUFFER_UTIL_S24,
488 .samplerate = 48000,
489 .target_samplerate = 44100
490 };
491
492 ags_resample_util_compute_s24(&resample_util);
493 }
494
495 void
ags_resample_util_test_compute_s32()496 ags_resample_util_test_compute_s32()
497 {
498 AgsResampleUtil resample_util;
499
500 gpointer source;
501
502 source = ags_stream_alloc(1024,
503 AGS_SOUNDCARD_SIGNED_32_BIT);
504
505 resample_util = (AgsResampleUtil) {
506 .destination = source,
507 .source = source,
508 .source_stride = 1,
509 .buffer_length = 1024,
510 .audio_buffer_util_format = AGS_AUDIO_BUFFER_UTIL_S32,
511 .samplerate = 48000,
512 .target_samplerate = 44100
513 };
514
515 ags_resample_util_compute_s32(&resample_util);
516 }
517
518 void
ags_resample_util_test_compute_s64()519 ags_resample_util_test_compute_s64()
520 {
521 AgsResampleUtil resample_util;
522
523 gpointer source;
524
525 source = ags_stream_alloc(1024,
526 AGS_SOUNDCARD_SIGNED_64_BIT);
527
528 resample_util = (AgsResampleUtil) {
529 .destination = source,
530 .source = source,
531 .source_stride = 1,
532 .buffer_length = 1024,
533 .audio_buffer_util_format = AGS_AUDIO_BUFFER_UTIL_S64,
534 .samplerate = 48000,
535 .target_samplerate = 44100
536 };
537
538 ags_resample_util_compute_s64(&resample_util);
539 }
540
541 void
ags_resample_util_test_compute_float()542 ags_resample_util_test_compute_float()
543 {
544 AgsResampleUtil resample_util;
545
546 gpointer source;
547
548 source = ags_stream_alloc(1024,
549 AGS_SOUNDCARD_FLOAT);
550
551 resample_util = (AgsResampleUtil) {
552 .destination = source,
553 .source = source,
554 .source_stride = 1,
555 .buffer_length = 1024,
556 .audio_buffer_util_format = AGS_AUDIO_BUFFER_UTIL_FLOAT,
557 .samplerate = 48000,
558 .target_samplerate = 44100
559 };
560
561 ags_resample_util_compute_float(&resample_util);
562 }
563
564 void
ags_resample_util_test_compute_double()565 ags_resample_util_test_compute_double()
566 {
567 AgsResampleUtil resample_util;
568
569 gpointer source;
570
571 source = ags_stream_alloc(1024,
572 AGS_SOUNDCARD_DOUBLE);
573
574 resample_util = (AgsResampleUtil) {
575 .destination = source,
576 .source = source,
577 .source_stride = 1,
578 .buffer_length = 1024,
579 .audio_buffer_util_format = AGS_AUDIO_BUFFER_UTIL_DOUBLE,
580 .samplerate = 48000,
581 .target_samplerate = 44100
582 };
583
584 ags_resample_util_compute_double(&resample_util);
585 }
586
587 void
ags_resample_util_test_compute_complex()588 ags_resample_util_test_compute_complex()
589 {
590 AgsResampleUtil resample_util;
591
592 gpointer source;
593
594 source = ags_stream_alloc(1024,
595 AGS_SOUNDCARD_COMPLEX);
596
597 resample_util = (AgsResampleUtil) {
598 .destination = source,
599 .source = source,
600 .source_stride = 1,
601 .buffer_length = 1024,
602 .audio_buffer_util_format = AGS_AUDIO_BUFFER_UTIL_COMPLEX,
603 .samplerate = 48000,
604 .target_samplerate = 44100
605 };
606
607 ags_resample_util_compute_complex(&resample_util);
608 }
609
610 void
ags_resample_util_test_compute()611 ags_resample_util_test_compute()
612 {
613 AgsResampleUtil resample_util;
614
615 gpointer source;
616
617 source = ags_stream_alloc(1024,
618 AGS_SOUNDCARD_SIGNED_16_BIT);
619
620 resample_util = (AgsResampleUtil) {
621 .destination = source,
622 .source = source,
623 .source_stride = 1,
624 .buffer_length = 1024,
625 .audio_buffer_util_format = AGS_AUDIO_BUFFER_UTIL_S16,
626 .samplerate = 48000,
627 .target_samplerate = 44100
628 };
629
630 ags_resample_util_compute(&resample_util);
631 }
632
633 int
main(int argc,char ** argv)634 main(int argc, char **argv)
635 {
636 CU_pSuite pSuite = NULL;
637
638 /* initialize the CUnit test registry */
639 if(CUE_SUCCESS != CU_initialize_registry()){
640 return CU_get_error();
641 }
642
643 /* add a suite to the registry */
644 pSuite = CU_add_suite("AgsResampleUtilTest", ags_resample_util_test_init_suite, ags_resample_util_test_clean_suite);
645
646 if(pSuite == NULL){
647 CU_cleanup_registry();
648
649 return CU_get_error();
650 }
651
652 /* add the tests to the suite */
653 if((CU_add_test(pSuite, "test of AgsResampleUtil alloc", ags_resample_util_test_alloc) == NULL) ||
654 (CU_add_test(pSuite, "test of AgsResampleUtil copy", ags_resample_util_test_copy) == NULL) ||
655 (CU_add_test(pSuite, "test of AgsResampleUtil free", ags_resample_util_test_free) == NULL) ||
656 (CU_add_test(pSuite, "test of AgsResampleUtil get destination", ags_resample_util_test_get_destination) == NULL) ||
657 (CU_add_test(pSuite, "test of AgsResampleUtil set destination", ags_resample_util_test_set_destination) == NULL) ||
658 (CU_add_test(pSuite, "test of AgsResampleUtil get destination stride", ags_resample_util_test_get_destination_stride) == NULL) ||
659 (CU_add_test(pSuite, "test of AgsResampleUtil set destination stride", ags_resample_util_test_set_destination_stride) == NULL) ||
660 (CU_add_test(pSuite, "test of AgsResampleUtil get source", ags_resample_util_test_get_source) == NULL) ||
661 (CU_add_test(pSuite, "test of AgsResampleUtil set source", ags_resample_util_test_set_source) == NULL) ||
662 (CU_add_test(pSuite, "test of AgsResampleUtil get source stride", ags_resample_util_test_get_source_stride) == NULL) ||
663 (CU_add_test(pSuite, "test of AgsResampleUtil set source stride", ags_resample_util_test_set_source_stride) == NULL) ||
664 (CU_add_test(pSuite, "test of AgsResampleUtil get buffer length", ags_resample_util_test_get_buffer_length) == NULL) ||
665 (CU_add_test(pSuite, "test of AgsResampleUtil set buffer length", ags_resample_util_test_set_buffer_length) == NULL) ||
666 (CU_add_test(pSuite, "test of AgsResampleUtil get audio buffer util format", ags_resample_util_test_get_audio_buffer_util_format) == NULL) ||
667 (CU_add_test(pSuite, "test of AgsResampleUtil set audio buffer util format", ags_resample_util_test_set_audio_buffer_util_format) == NULL) ||
668 (CU_add_test(pSuite, "test of AgsResampleUtil get samplerate", ags_resample_util_test_get_samplerate) == NULL) ||
669 (CU_add_test(pSuite, "test of AgsResampleUtil set samplerate", ags_resample_util_test_set_samplerate) == NULL) ||
670 (CU_add_test(pSuite, "test of AgsResampleUtil get target samplerate", ags_resample_util_test_get_target_samplerate) == NULL) ||
671 (CU_add_test(pSuite, "test of AgsResampleUtil set target samplerate", ags_resample_util_test_set_target_samplerate) == NULL) ||
672 (CU_add_test(pSuite, "test of AgsResampleUtil compute s8", ags_resample_util_test_compute_s8) == NULL) ||
673 (CU_add_test(pSuite, "test of AgsResampleUtil compute s16", ags_resample_util_test_compute_s16) == NULL) ||
674 (CU_add_test(pSuite, "test of AgsResampleUtil compute s24", ags_resample_util_test_compute_s24) == NULL) ||
675 (CU_add_test(pSuite, "test of AgsResampleUtil compute s32", ags_resample_util_test_compute_s32) == NULL) ||
676 (CU_add_test(pSuite, "test of AgsResampleUtil compute s64", ags_resample_util_test_compute_s64) == NULL) ||
677 (CU_add_test(pSuite, "test of AgsResampleUtil compute float", ags_resample_util_test_compute_float) == NULL) ||
678 (CU_add_test(pSuite, "test of AgsResampleUtil compute double", ags_resample_util_test_compute_double) == NULL) ||
679 (CU_add_test(pSuite, "test of AgsResampleUtil compute complex", ags_resample_util_test_compute_complex) == NULL) ||
680 (CU_add_test(pSuite, "test of AgsResampleUtil compute", ags_resample_util_test_compute) == NULL)){
681 CU_cleanup_registry();
682
683 return CU_get_error();
684 }
685
686 /* Run all tests using the CUnit Basic interface */
687 CU_basic_set_mode(CU_BRM_VERBOSE);
688 CU_basic_run_tests();
689
690 CU_cleanup_registry();
691
692 return(CU_get_error());
693 }
694