Mercurial > octave-nkf
annotate test/test_slice.m @ 8975:2e9af3363669
fix tests with ones
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Fri, 13 Mar 2009 16:47:50 +0100 |
parents | eb63fbe60fab |
children | 0677c5d80b77 |
rev | line source |
---|---|
8920 | 1 ## Copyright (C) 2007, 2008 John W. Eaton |
7016 | 2 ## |
3 ## This file is part of Octave. | |
4 ## | |
5 ## Octave is free software; you can redistribute it and/or modify it | |
6 ## under the terms of the GNU General Public License as published by | |
7 ## the Free Software Foundation; either version 3 of the License, or (at | |
8 ## your option) any later version. | |
9 ## | |
10 ## Octave is distributed in the hope that it will be useful, but | |
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
13 ## General Public License for more details. | |
14 ## | |
15 ## You should have received a copy of the GNU General Public License | |
16 ## along with Octave; see the file COPYING. If not, see | |
17 ## <http://www.gnu.org/licenses/>. | |
18 | |
6480 | 19 %!function x = set_slice(size, dim, slice) |
20 %! x = ones(size); | |
21 %! switch dim | |
22 %! case 11 | |
23 %! x(slice) = 2; | |
24 %! case 21 | |
25 %! x(slice, :) = 2; | |
26 %! case 22 | |
27 %! x(:, slice) = 2; | |
28 %! case 31 | |
29 %! x(slice, :, :) = 2; | |
30 %! case 32 | |
31 %! x(:, slice, :) = 2; | |
32 %! case 33 | |
33 %! x(:, :, slice) = 2; | |
34 %! otherwise | |
35 %! error("invalid dim, '%d'", dim); | |
36 %! endswitch | |
37 %! endfunction | |
38 | |
39 ## size = [2 0] | |
40 %!assert(set_slice([2 0], 11, []), zeros([2 0])); | |
8290
7cbe01c21986
improve dense array indexing
Jaroslav Hajek <highegg@gmail.com>
parents:
7016
diff
changeset
|
41 %!error <resize: Invalid.*> set_slice([2 0], 11, 1) |
7cbe01c21986
improve dense array indexing
Jaroslav Hajek <highegg@gmail.com>
parents:
7016
diff
changeset
|
42 %!error <resize: Invalid.*> set_slice([2 0], 11, 2) |
7cbe01c21986
improve dense array indexing
Jaroslav Hajek <highegg@gmail.com>
parents:
7016
diff
changeset
|
43 %!error <resize: Invalid.*> set_slice([2 0], 11, 3) |
6480 | 44 %!assert(set_slice([2 0], 21, []), zeros([2 0])); |
45 %!assert(set_slice([2 0], 21, 1), zeros([2 0])); | |
46 %!assert(set_slice([2 0], 21, 2), zeros([2 0])); | |
47 %!assert(set_slice([2 0], 21, 3), zeros([3 0])); | |
48 %!assert(set_slice([2 0], 22, []), zeros([2 0])); | |
49 %!assert(set_slice([2 0], 22, 1), [2 2]'); | |
50 %!assert(set_slice([2 0], 22, 2), [0 0;2 2]'); | |
51 %!assert(set_slice([2 0], 22, 3), [0 0;0 0;2 2]'); | |
52 %!assert(set_slice([2 0], 31, []), zeros([2 0])); | |
53 %!assert(set_slice([2 0], 31, 1), zeros([2 0])); | |
54 %!assert(set_slice([2 0], 31, 2), zeros([2 0])); | |
55 %!assert(set_slice([2 0], 31, 3), zeros([3 0])); | |
56 %!assert(set_slice([2 0], 32, []), zeros([2 0])); | |
57 %!assert(set_slice([2 0], 32, 1), [2 2]'); | |
58 %!assert(set_slice([2 0], 32, 2), [0 0;2 2]'); | |
59 %!assert(set_slice([2 0], 32, 3), [0 0;0 0;2 2]'); | |
60 %!assert(set_slice([2 0], 33, []), zeros([2 0])); | |
61 %!assert(set_slice([2 0], 33, 1), zeros([2 0])); | |
62 %!assert(set_slice([2 0], 33, 2), zeros([2 0 2])); | |
63 %!assert(set_slice([2 0], 33, 3), zeros([2 0 3])); | |
64 | |
65 ## size = [0 2] | |
66 %!assert(set_slice([0 2], 11, []), zeros([0 2])); | |
6922 | 67 %!assert(set_slice([0 2], 11, 1), 2); |
68 %!assert(set_slice([0 2], 11, 2), [0, 2]); | |
69 %!assert(set_slice([0 2], 11, 3), [0, 0, 2]); | |
6480 | 70 %!assert(set_slice([0 2], 21, []), zeros([0 2])); |
71 %!assert(set_slice([0 2], 21, 1), [2 2]); | |
72 %!assert(set_slice([0 2], 21, 2), [0 0;2 2]); | |
73 %!assert(set_slice([0 2], 21, 3), [0 0;0 0;2 2]); | |
74 %!assert(set_slice([0 2], 22, []), zeros([0 2])); | |
75 %!assert(set_slice([0 2], 22, 1), zeros([0 2])); | |
76 %!assert(set_slice([0 2], 22, 2), zeros([0 2])); | |
77 %!assert(set_slice([0 2], 22, 3), zeros([0 3])); | |
78 %!assert(set_slice([0 2], 31, []), zeros([0 2])); | |
79 %!assert(set_slice([0 2], 31, 1), [2 2]); | |
80 %!assert(set_slice([0 2], 31, 2), [0 0;2 2]); | |
81 %!assert(set_slice([0 2], 31, 3), [0 0;0 0;2 2]); | |
82 %!assert(set_slice([0 2], 32, []), zeros([0 2])); | |
83 %!assert(set_slice([0 2], 32, 1), zeros([0 2])); | |
84 %!assert(set_slice([0 2], 32, 2), zeros([0 2])); | |
85 %!assert(set_slice([0 2], 32, 3), zeros([0 3])); | |
86 %!assert(set_slice([0 2], 33, []), zeros([0 2])); | |
87 %!assert(set_slice([0 2], 33, 1), zeros([0 2])); | |
88 %!assert(set_slice([0 2], 33, 2), zeros([0 2 2])); | |
89 %!assert(set_slice([0 2], 33, 3), zeros([0 2 3])); | |
90 | |
91 ## size = [2 1] | |
92 %!assert(set_slice([2 1], 11, []), ones([2 1])); | |
93 %!assert(set_slice([2 1], 11, 1), [2 1]'); | |
94 %!assert(set_slice([2 1], 11, 2), [1 2]'); | |
95 %!assert(set_slice([2 1], 11, 3), [1 1 2]'); | |
96 %!assert(set_slice([2 1], 11, 4), [1 1 0 2]'); | |
97 %!assert(set_slice([2 1], 21, []), ones([2 1])); | |
98 %!assert(set_slice([2 1], 21, 1), [2 1]'); | |
99 %!assert(set_slice([2 1], 21, 2), [1 2]'); | |
100 %!assert(set_slice([2 1], 21, 3), [1 1 2]'); | |
101 %!assert(set_slice([2 1], 21, 4), [1 1 0 2]'); | |
102 %!assert(set_slice([2 1], 22, []), ones([2 1])); | |
103 %!assert(set_slice([2 1], 22, 1), [2 2]'); | |
104 %!assert(set_slice([2 1], 22, 2), [1 1;2 2]'); | |
105 %!assert(set_slice([2 1], 22, 3), [1 1;0 0;2 2]'); | |
106 %!assert(set_slice([2 1], 31, []), ones([2 1])); | |
107 %!assert(set_slice([2 1], 31, 1), [2 1]'); | |
108 %!assert(set_slice([2 1], 31, 2), [1 2]'); | |
109 %!assert(set_slice([2 1], 31, 3), [1 1 2]'); | |
110 %!assert(set_slice([2 1], 31, 4), [1 1 0 2]'); | |
111 %!assert(set_slice([2 1], 32, []), ones([2 1])); | |
112 %!assert(set_slice([2 1], 32, 1), [2 2]'); | |
113 %!assert(set_slice([2 1], 32, 2), [1 1;2 2]'); | |
114 %!assert(set_slice([2 1], 32, 3), [1 1;0 0;2 2]'); | |
115 %!assert(set_slice([2 1], 33, []), ones([2 1])); | |
116 %!assert(set_slice([2 1], 33, 1), [2 2]'); | |
117 %!assert(set_slice([2 1], 33, 2), reshape([1 1 2 2],[2 1 2])); | |
118 %!assert(set_slice([2 1], 33, 3), reshape([1 1 0 0 2 2],[2 1 3])); | |
119 | |
120 ## size = [1 2] | |
8975 | 121 %!assert(set_slice([1 2], 11, []), full(ones([1 2]))); |
6480 | 122 %!assert(set_slice([1 2], 11, 1), [2 1]); |
123 %!assert(set_slice([1 2], 11, 2), [1 2]); | |
124 %!assert(set_slice([1 2], 11, 3), [1 1 2]); | |
125 %!assert(set_slice([1 2], 11, 4), [1 1 0 2]); | |
8975 | 126 %!assert(set_slice([1 2], 21, []), full(ones([1 2]))); |
6480 | 127 %!assert(set_slice([1 2], 21, 1), [2 2]); |
128 %!assert(set_slice([1 2], 21, 2), [1 1;2 2]); | |
129 %!assert(set_slice([1 2], 21, 3), [1 1;0 0;2 2]); | |
8975 | 130 %!assert(set_slice([1 2], 22, []), full(ones([1 2]))); |
6480 | 131 %!assert(set_slice([1 2], 22, 1), [2 1]); |
132 %!assert(set_slice([1 2], 22, 2), [1 2]); | |
133 %!assert(set_slice([1 2], 22, 3), [1 1 2]); | |
134 %!assert(set_slice([1 2], 22, 4), [1 1 0 2]); | |
8975 | 135 %!assert(set_slice([1 2], 31, []), full(ones([1 2]))); |
6480 | 136 %!assert(set_slice([1 2], 31, 1), [2 2]); |
137 %!assert(set_slice([1 2], 31, 2), [1 1;2 2]); | |
138 %!assert(set_slice([1 2], 31, 3), [1 1;0 0;2 2]); | |
8975 | 139 %!assert(set_slice([1 2], 32, []), full(ones([1 2]))); |
6480 | 140 %!assert(set_slice([1 2], 32, 1), [2 1]); |
141 %!assert(set_slice([1 2], 32, 2), [1 2]); | |
142 %!assert(set_slice([1 2], 32, 3), [1 1 2]); | |
143 %!assert(set_slice([1 2], 32, 4), [1 1 0 2]); | |
8975 | 144 %!assert(set_slice([1 2], 33, []), full(ones([1 2]))); |
6480 | 145 %!assert(set_slice([1 2], 33, 1), [2 2]); |
146 %!assert(set_slice([1 2], 33, 2), reshape([1 1 2 2],[1 2 2])); | |
147 %!assert(set_slice([1 2], 33, 3), reshape([1 1 0 0 2 2],[1 2 3])); | |
148 | |
149 ## size = [2 2] | |
150 %!assert(set_slice([2 2], 11, []), ones([2 2])); | |
151 %!assert(set_slice([2 2], 11, 1), [2 1;1 1]); | |
152 %!assert(set_slice([2 2], 11, 2), [1 1;2 1]); | |
153 %!assert(set_slice([2 2], 11, 3), [1 2;1 1]); | |
154 %!assert(set_slice([2 2], 11, 4), [1 1;1 2]); | |
8290
7cbe01c21986
improve dense array indexing
Jaroslav Hajek <highegg@gmail.com>
parents:
7016
diff
changeset
|
155 %!error <resize: Invalid.*> set_slice([2 2], 11, 5) |
7cbe01c21986
improve dense array indexing
Jaroslav Hajek <highegg@gmail.com>
parents:
7016
diff
changeset
|
156 %!error <resize: Invalid.*> set_slice([2 2], 11, 6) |
6480 | 157 %!assert(set_slice([2 2], 21, []), ones([2 2])); |
158 %!assert(set_slice([2 2], 21, 1), [2 2;1 1]); | |
159 %!assert(set_slice([2 2], 21, 2), [1 1;2 2]); | |
160 %!assert(set_slice([2 2], 21, 3), [1 1;1 1;2 2]); | |
161 %!assert(set_slice([2 2], 21, 4), [1 1;1 1;0 0;2 2]); | |
162 %!assert(set_slice([2 2], 22, []), ones([2 2])); | |
163 %!assert(set_slice([2 2], 22, 1), [2 2;1 1]'); | |
164 %!assert(set_slice([2 2], 22, 2), [1 1;2 2]'); | |
165 %!assert(set_slice([2 2], 22, 3), [1 1;1 1;2 2]'); | |
166 %!assert(set_slice([2 2], 22, 4), [1 1;1 1;0 0;2 2]'); | |
167 %!assert(set_slice([2 2], 31, []), ones([2 2])); | |
168 %!assert(set_slice([2 2], 31, 1), [2 2;1 1]); | |
169 %!assert(set_slice([2 2], 31, 2), [1 1;2 2]); | |
170 %!assert(set_slice([2 2], 31, 3), [1 1;1 1;2 2]); | |
171 %!assert(set_slice([2 2], 31, 4), [1 1;1 1;0 0;2 2]); | |
172 %!assert(set_slice([2 2], 32, []), ones([2 2])); | |
173 %!assert(set_slice([2 2], 32, 1), [2 2;1 1]'); | |
174 %!assert(set_slice([2 2], 32, 2), [1 1;2 2]'); | |
175 %!assert(set_slice([2 2], 32, 3), [1 1;1 1;2 2]'); | |
176 %!assert(set_slice([2 2], 32, 4), [1 1;1 1;0 0;2 2]'); | |
177 %!assert(set_slice([2 2], 33, []), ones([2 2])); | |
178 %!assert(set_slice([2 2], 33, 1), [2 2;2 2]); | |
179 %!assert(set_slice([2 2], 33, 2), reshape([1 1 1 1 2 2 2 2],[2 2 2])); | |
180 %!assert(set_slice([2 2], 33, 3), reshape([1 1 1 1 0 0 0 0 2 2 2 2],[2 2 3])); |