changeset 11124:e79f59d31a74

Add tests for fftconv.m
author Rik <octave@nomad.inbox5.com>
date Wed, 20 Oct 2010 21:01:24 -0700
parents fbec4b3be59f
children 8a8eb099502e
files scripts/ChangeLog scripts/polynomial/conv.m scripts/signal/fftconv.m
diffstat 3 files changed, 51 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/scripts/ChangeLog	Wed Oct 20 22:15:34 2010 -0400
+++ b/scripts/ChangeLog	Wed Oct 20 21:01:24 2010 -0700
@@ -1,3 +1,8 @@
+2010-10-20  Rik  <octave@nomad.inbox5.com>
+
+	* polynomial/conv.m: Remove redundant test.
+	* signal/fftconv.m: Add tests used by conv.m code.
+
 2010-10-20  Olaf Till  <olaf.till@uni-jena.de>
 
 	* optimization/optimset.m: Use cell2struct instead of struct to
--- a/scripts/polynomial/conv.m	Wed Oct 20 22:15:34 2010 -0400
+++ b/scripts/polynomial/conv.m	Wed Oct 20 21:01:24 2010 -0700
@@ -110,13 +110,6 @@
 %!  assert (conv (y, c), [3, 3, 3]);
 %!  assert (conv (b, c), 6);
 
-
-%!test
-%!  a = 1:10;
-%!  b = 1:3;
-%!  assert (size(conv(a,b)), [1, numel(a)+numel(b)-1])
-%!  assert (size(conv(b,a)), [1, numel(a)+numel(b)-1])
-
 %!test
 %!  a = 1:10;
 %!  b = 1:3;
@@ -130,6 +123,12 @@
 
 %!test
 %!  a = 1:10;
+%!  b = (1:3).';
+%!  assert (size(conv(a,b)), [1, numel(a)+numel(b)-1])
+%!  assert (size(conv(b,a)), [1, numel(a)+numel(b)-1])
+
+%!test
+%!  a = 1:10;
 %!  b = 1:3;
 %!  assert (conv(a,b,"full"), conv(a,b))
 %!  assert (conv(b,a,"full"), conv(b,a))
@@ -140,14 +139,9 @@
 %!  assert (conv(a,b,'same'), [4, 10, 16, 22, 28, 34, 40, 46, 52, 47])
 %!  assert (conv(b,a,'same'), [28, 34, 40])
 
-%!test
-%!  a = 1:10;
-%!  b = (1:3).';
-%!  assert (size(conv(a,b)), [1, numel(a)+numel(b)-1])
-%!  assert (size(conv(b,a)), [1, numel(a)+numel(b)-1])
-
 %% Test input validation
 %!error conv (1);
 %!error conv (1,2,3,4);
 %!error conv ([1, 2; 3, 4], 3);
 %!error conv (2, []);
+
--- a/scripts/signal/fftconv.m	Wed Oct 20 22:15:34 2010 -0400
+++ b/scripts/signal/fftconv.m	Wed Oct 20 21:01:24 2010 -0700
@@ -56,7 +56,7 @@
     if (nargin == 2)
       c = fftfilt (a, b);
     else
-      if (! (isscalar (N)))
+      if (! isscalar (N))
         error ("fftconv: N must be a scalar");
       endif
       c = fftfilt (a, b, N);
@@ -66,3 +66,41 @@
 endfunction
 
 %% FIXME: Borrow tests from conv.m.  May need a tolerance on the assert comparison
+%!test
+%!  x = ones(3,1);
+%!  y = ones(1,3);
+%!  b = 2;
+%!  c = 3;
+%!  assert (fftconv (x, x), [1; 2; 3; 2; 1], 5*eps);
+%!  assert (fftconv (y, y), [1, 2, 3, 2, 1], 5*eps);
+%!  assert (fftconv (x, y), [1, 2, 3, 2, 1], 5*eps);
+%!  assert (fftconv (y, x), [1; 2; 3; 2; 1], 5*eps);
+%!  assert (fftconv (c, x), [3; 3; 3], 5*eps);
+%!  assert (fftconv (c, y), [3, 3, 3], 5*eps);
+%!  assert (fftconv (x, c), [3; 3; 3], 5*eps);
+%!  assert (fftconv (y, c), [3, 3, 3], 5*eps);
+%!  assert (fftconv (b, c), 6, 5*eps);
+
+%!test
+%!  a = 1:10;
+%!  b = 1:3;
+%!  assert (size(conv(a,b)), [1, numel(a)+numel(b)-1])
+%!  assert (size(conv(b,a)), [1, numel(a)+numel(b)-1])
+
+%!  a = (1:10).';
+%!  b = 1:3;
+%!  assert (size(conv(a,b)), [numel(a)+numel(b)-1, 1])
+%!  assert (size(conv(b,a)), [numel(a)+numel(b)-1, 1])
+
+%!test
+%!  a = 1:10;
+%!  b = (1:3).';
+%!  assert (size(conv(a,b)), [1, numel(a)+numel(b)-1])
+%!  assert (size(conv(b,a)), [1, numel(a)+numel(b)-1])
+
+%% Test input validation
+%!error fftconv (1);
+%!error fftconv (1,2,3,4);
+%!error fftconv ([1, 2; 3, 4], 3);
+%!error fftconv (2, []);
+%!error fftconv ([1,1], [2,2] , [3, 4]);