comparison assertSize.m @ 988:a72038b1f709

Fix bug in assertSize where dimensions didn't have to match
author Jonatan Werpers <jonatan@werpers.com>
date Tue, 08 Jan 2019 15:00:12 +0100
parents dec0447cbf2c
children
comparison
equal deleted inserted replaced
987:1d70f29c7ab2 988:a72038b1f709
1 % Assert that array A has the size s. 1 % Assert that array A has the size s.
2 function assertSize(A,varargin) 2 function assertSize(A,varargin)
3 if length(varargin) == 1 3 if length(varargin) == 1
4 s = varargin{1}; 4 s = varargin{1};
5 errmsg = sprintf('Expected %s to have size %s, got: %s',inputname(1), toString(s), toString(size(A))); 5 assert(length(size(A)) == length(s), sprintf('Expected ''%s'' to have dimension %d, got %d', inputname(1), length(s), length(size(A))));
6 assert(all(size(A) == s), errmsg); 6 assert(all(size(A) == s), sprintf('Expected ''%s'' to have size %s, got: %s',inputname(1), toString(s), toString(size(A))));
7 elseif length(varargin) == 2 7 elseif length(varargin) == 2
8 dim = varargin{1}; 8 dim = varargin{1};
9 s = varargin{2}; 9 s = varargin{2};
10 10
11 errmsg = sprintf('Expected %s to have size %d along dimension %d, got: %d',inputname(1), s, dim, size(A,dim)); 11 errmsg = sprintf('Expected ''%s'' to have size %d along dimension %d, got: %d',inputname(1), s, dim, size(A,dim));
12 assert(size(A,dim) == s, errmsg); 12 assert(size(A,dim) == s, errmsg);
13 else 13 else
14 error('Expected 2 or 3 arguments to assertSize()'); 14 error('Expected 2 or 3 arguments to assertSize()');
15 end 15 end
16 end 16 end