* Bug 15907 fixed: filter was corrupting its input state array
[scilab.git] / scilab / modules / signal_processing / tests / nonreg_tests / bug_15907.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2018 - St├ęphane Mottelet
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 //
8 // <-- CLI SHELL MODE -->
9 // <-- NO CHECK REF -->
10 //
11 // <-- Non-regression test for bug 15907 -->
12 //
13 // <-- Bugzilla URL -->
14 // http://bugzilla.scilab.org/15907
15 //
16 // <-- Short Description -->
17 // filter is corrupting its input state array (Scilab 6 regression)
18
19 [cells fact zzeros zpoles] = eqiir('lp','ellip',[2*%pi/10,4*%pi/10],0.02,0.001);
20 h = fact*poly(zzeros,'z')/poly(zpoles,'z');
21 b = coeff(h.num)($:-1:1);
22 a = coeff(h.den)($:-1:1);
23 si=zeros(max(length(a),length(b))-1,1);
24 pulse=zeros(1000,1);
25 pulse(5)=1;
26 [impulse_response so]=filter(b,a,pulse,si);
27    
28 assert_checkequal(si,zeros(max(length(a),length(b))-1,1));