History

termination_test.c : Add sanity test to check first output sample after reset.

Erik de Castro Lopo committed 21 years ago

Commit b2cc20f1 parent 4d82b201 file · +17 −8Browse files

Unified · Split

tests/termination_test.c+17−8
@@ -28,7 +28,7 @@ · 27 unmodified lines
28#define LONG_BUFFER_LEN ((1 << 16) - 20)28#define LONG_BUFFER_LEN ((1 << 16) - 20)
29 29
30static void stream_test (int converter, double ratio) ;30static void stream_test (int converter, double ratio) ;
31static void term_test (int converter, double ratio) ;31static void init_term_test (int converter, double ratio) ;
32 32
33static int next_block_length (int reset) ;33static int next_block_length (int reset) ;
34 34
@@ -44,7 +44,7 @@ main (void) · 9 unmodified lines
44 puts ("\n Zero Order Hold interpolator:") ;44 puts ("\n Zero Order Hold interpolator:") ;
45 45
46 for (k = 0 ; k < ARRAY_LEN (src_ratios) ; k++)46 for (k = 0 ; k < ARRAY_LEN (src_ratios) ; k++)
47 term_test (SRC_ZERO_ORDER_HOLD, src_ratios [k]) ;47 init_term_test (SRC_ZERO_ORDER_HOLD, src_ratios [k]) ;
48 puts ("") ;48 puts ("") ;
49 for (k = 0 ; k < ARRAY_LEN (src_ratios) ; k++)49 for (k = 0 ; k < ARRAY_LEN (src_ratios) ; k++)
50 stream_test (SRC_ZERO_ORDER_HOLD, src_ratios [k]) ;50 stream_test (SRC_ZERO_ORDER_HOLD, src_ratios [k]) ;
@@ -52,7 +52,7 @@ main (void) · 1 unmodified line
52 52
53 puts ("\n Linear interpolator:") ;53 puts ("\n Linear interpolator:") ;
54 for (k = 0 ; k < ARRAY_LEN (src_ratios) ; k++)54 for (k = 0 ; k < ARRAY_LEN (src_ratios) ; k++)
55 term_test (SRC_LINEAR, src_ratios [k]) ;55 init_term_test (SRC_LINEAR, src_ratios [k]) ;
56 puts ("") ;56 puts ("") ;
57 for (k = 0 ; k < ARRAY_LEN (src_ratios) ; k++)57 for (k = 0 ; k < ARRAY_LEN (src_ratios) ; k++)
58 stream_test (SRC_LINEAR, src_ratios [k]) ;58 stream_test (SRC_LINEAR, src_ratios [k]) ;
@@ -60,7 +60,7 @@ main (void) · 1 unmodified line
60 60
61 puts ("\n Sinc interpolator:") ;61 puts ("\n Sinc interpolator:") ;
62 for (k = 0 ; k < ARRAY_LEN (src_ratios) ; k++)62 for (k = 0 ; k < ARRAY_LEN (src_ratios) ; k++)
63 term_test (SRC_SINC_FASTEST, src_ratios [k]) ;63 init_term_test (SRC_SINC_FASTEST, src_ratios [k]) ;
64 puts ("") ;64 puts ("") ;
65 for (k = 0 ; k < ARRAY_LEN (src_ratios) ; k++)65 for (k = 0 ; k < ARRAY_LEN (src_ratios) ; k++)
66 stream_test (SRC_SINC_FASTEST, src_ratios [k]) ;66 stream_test (SRC_SINC_FASTEST, src_ratios [k]) ;
@@ -71,14 +71,14 @@ main (void) · 4 unmodified lines
71} /* main */71} /* main */
72 72
73static void73static void
74term_test (int converter, double src_ratio)74init_term_test (int converter, double src_ratio)
75{ static float input [SHORT_BUFFER_LEN], output [SHORT_BUFFER_LEN] ;75{ static float input [SHORT_BUFFER_LEN], output [SHORT_BUFFER_LEN] ;
76 76
77 SRC_DATA src_data ;77 SRC_DATA src_data ;
78 78
79 int input_len, output_len, error, terminate ;79 int k, input_len, output_len, error, terminate ;
80 80
81 printf ("\ttermination_test (SRC ratio = %7.4f) .......... ", src_ratio) ;81 printf ("\tinit_term_test (SRC ratio = %7.4f) .......... ", src_ratio) ;
82 fflush (stdout) ;82 fflush (stdout) ;
83 83
84 /* Calculate maximun input and output lengths. */84 /* Calculate maximun input and output lengths. */
@@ -94,6 +94,9 @@ term_test (int converter, double src_ratio) · 9 unmodified lines
94 /* Reduce input_len by 10 so output is longer than necessary. */94 /* Reduce input_len by 10 so output is longer than necessary. */
95 input_len -= 10 ;95 input_len -= 10 ;
96 96
97 for (k = 0 ; k < ARRAY_LEN (input) ; k++)
98 input [k] = 1.0 ;
99
97 if (output_len > SHORT_BUFFER_LEN)100 if (output_len > SHORT_BUFFER_LEN)
98 { printf ("\n\nLine %d : output_len > SHORT_BUFFER_LEN\n\n", __LINE__) ;101 { printf ("\n\nLine %d : output_len > SHORT_BUFFER_LEN\n\n", __LINE__) ;
99 exit (1) ;102 exit (1) ;
@@ -132,10 +135,16 @@ term_test (int converter, double src_ratio) · 32 unmodified lines
132 exit (1) ;135 exit (1) ;
133 } ;136 } ;
134 137
138 if (fabs (output [0]) < 0.1)
139 { printf ("\n\nLine %d : First output sample is bad.\n\n", __LINE__) ;
140 printf ("\toutput [0] == %f\n\n", output [0]) ;
141 exit (1) ;
142 }
143
135 puts ("ok") ;144 puts ("ok") ;
136 145
137 return ;146 return ;
138} /* term_test */147} /* init_term_test */
139 148
140static void149static void
141stream_test (int converter, double src_ratio)150stream_test (int converter, double src_ratio)

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t