annotate assertSize.m @ 1198:2924b3a9b921 feature/d2_compatible

Add OpSet for fully compatible D2Variable, created from regular D2Variable by replacing d1 by first row of D1. Formal reduction by one order of accuracy at the boundary point.
author Martin Almquist <malmquist@stanford.edu>
date Fri, 16 Aug 2019 14:30:28 -0700
parents a72038b1f709
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
766
afd20f023928 Rename assert_size to assertSize
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
1 % Assert that array A has the size s.
768
dec0447cbf2c Make assertSize more general, allow picking dimensions
Jonatan Werpers <jonatan@werpers.com>
parents: 767
diff changeset
2 function assertSize(A,varargin)
dec0447cbf2c Make assertSize more general, allow picking dimensions
Jonatan Werpers <jonatan@werpers.com>
parents: 767
diff changeset
3 if length(varargin) == 1
dec0447cbf2c Make assertSize more general, allow picking dimensions
Jonatan Werpers <jonatan@werpers.com>
parents: 767
diff changeset
4 s = varargin{1};
988
a72038b1f709 Fix bug in assertSize where dimensions didn't have to match
Jonatan Werpers <jonatan@werpers.com>
parents: 768
diff changeset
5 assert(length(size(A)) == length(s), sprintf('Expected ''%s'' to have dimension %d, got %d', inputname(1), length(s), length(size(A))));
a72038b1f709 Fix bug in assertSize where dimensions didn't have to match
Jonatan Werpers <jonatan@werpers.com>
parents: 768
diff changeset
6 assert(all(size(A) == s), sprintf('Expected ''%s'' to have size %s, got: %s',inputname(1), toString(s), toString(size(A))));
768
dec0447cbf2c Make assertSize more general, allow picking dimensions
Jonatan Werpers <jonatan@werpers.com>
parents: 767
diff changeset
7 elseif length(varargin) == 2
dec0447cbf2c Make assertSize more general, allow picking dimensions
Jonatan Werpers <jonatan@werpers.com>
parents: 767
diff changeset
8 dim = varargin{1};
dec0447cbf2c Make assertSize more general, allow picking dimensions
Jonatan Werpers <jonatan@werpers.com>
parents: 767
diff changeset
9 s = varargin{2};
dec0447cbf2c Make assertSize more general, allow picking dimensions
Jonatan Werpers <jonatan@werpers.com>
parents: 767
diff changeset
10
988
a72038b1f709 Fix bug in assertSize where dimensions didn't have to match
Jonatan Werpers <jonatan@werpers.com>
parents: 768
diff changeset
11 errmsg = sprintf('Expected ''%s'' to have size %d along dimension %d, got: %d',inputname(1), s, dim, size(A,dim));
768
dec0447cbf2c Make assertSize more general, allow picking dimensions
Jonatan Werpers <jonatan@werpers.com>
parents: 767
diff changeset
12 assert(size(A,dim) == s, errmsg);
dec0447cbf2c Make assertSize more general, allow picking dimensions
Jonatan Werpers <jonatan@werpers.com>
parents: 767
diff changeset
13 else
dec0447cbf2c Make assertSize more general, allow picking dimensions
Jonatan Werpers <jonatan@werpers.com>
parents: 767
diff changeset
14 error('Expected 2 or 3 arguments to assertSize()');
dec0447cbf2c Make assertSize more general, allow picking dimensions
Jonatan Werpers <jonatan@werpers.com>
parents: 767
diff changeset
15 end
766
afd20f023928 Rename assert_size to assertSize
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
16 end