Mercurial > hg > octave-nkf
comparison src/oct-map.cc @ 12022:bf661469a039 release-3-2-x
Add tests for preservation of key order
author | Thorsten Meyer <thorsten.meyier@gmx.de> |
---|---|
date | Thu, 25 Jun 2009 06:36:42 +0200 |
parents | 00b55509f5b5 |
children | b4fdfee405b5 |
comparison
equal
deleted
inserted
replaced
12021:2e4cec91015a | 12022:bf661469a039 |
---|---|
68 retval.key_list = key_list; | 68 retval.key_list = key_list; |
69 | 69 |
70 return retval; | 70 return retval; |
71 } | 71 } |
72 | 72 |
73 /* | |
74 %!# test preservation of keys by squeeze | |
75 %!test | |
76 %! x(1,1,1,1).d = 10; x(3,5,1,7).a = "b"; x(2,4,1,7).f = 27; | |
77 %! assert (fieldnames (squeeze (x)), {"d"; "a"; "f"}); | |
78 */ | |
79 | |
73 Octave_map | 80 Octave_map |
74 Octave_map::permute (const Array<int>& vec, bool inv) const | 81 Octave_map::permute (const Array<int>& vec, bool inv) const |
75 { | 82 { |
76 Octave_map retval (dims ()); | 83 Octave_map retval (dims ()); |
77 | 84 |
88 // Preserve order of keys. | 95 // Preserve order of keys. |
89 retval.key_list = key_list; | 96 retval.key_list = key_list; |
90 | 97 |
91 return retval; | 98 return retval; |
92 } | 99 } |
100 | |
101 /* | |
102 %!# test preservation of key order by permute | |
103 %!test | |
104 %! x(1,1,1,1).d = 10; x(3,5,1,7).a = "b"; x(2,4,1,7).f = 27; | |
105 %! assert (fieldnames (permute (x, [3, 4, 1, 2])), {"d"; "a"; "f"}); | |
106 */ | |
93 | 107 |
94 Cell& | 108 Cell& |
95 Octave_map::contents (const std::string& k) | 109 Octave_map::contents (const std::string& k) |
96 { | 110 { |
97 maybe_add_to_key_list (k); | 111 maybe_add_to_key_list (k); |
163 retval.key_list = key_list; | 177 retval.key_list = key_list; |
164 | 178 |
165 return retval; | 179 return retval; |
166 } | 180 } |
167 | 181 |
182 /* | |
183 %!# test preservation of key order by transpose | |
184 %!test | |
185 %! x(1,1).d = 10; x(3,5).a = "b"; x(2,4).f = 27; | |
186 %! assert (fieldnames (transpose (x)), {"d"; "a"; "f"}); | |
187 %! assert (fieldnames (x'), {"d"; "a"; "f"}); | |
188 %! assert (fieldnames (x.'), {"d"; "a"; "f"}); | |
189 */ | |
190 | |
168 Octave_map | 191 Octave_map |
169 Octave_map::reshape (const dim_vector& new_dims) const | 192 Octave_map::reshape (const dim_vector& new_dims) const |
170 { | 193 { |
171 Octave_map retval; | 194 Octave_map retval; |
172 | 195 |
183 else | 206 else |
184 retval = *this; | 207 retval = *this; |
185 | 208 |
186 return retval; | 209 return retval; |
187 } | 210 } |
211 | |
212 /* | |
213 %!# test preservation of key order by reshape | |
214 %!test | |
215 %! x(1,1).d = 10; x(4,6).a = "b"; x(2,4).f = 27; | |
216 %! assert (fieldnames (reshape (x, 3, 8)), {"d"; "a"; "f"}); | |
217 */ | |
188 | 218 |
189 void | 219 void |
190 Octave_map::resize (const dim_vector& dv, bool fill) | 220 Octave_map::resize (const dim_vector& dv, bool fill) |
191 { | 221 { |
192 if (dv != dims ()) | 222 if (dv != dims ()) |
254 } | 284 } |
255 | 285 |
256 return retval; | 286 return retval; |
257 } | 287 } |
258 | 288 |
289 /* | |
290 %!# test preservation of key order by concatenation | |
291 %!test | |
292 %! x(1, 1).d = 10; x(4, 6).a = "b"; x(2, 4).f = 27; | |
293 %! y(1, 6).f = 11; y(1, 6).a = "c"; y(1, 6).d = 33; | |
294 %! assert (fieldnames ([x; y]), {"d"; "a"; "f"}); | |
295 */ | |
296 | |
259 static bool | 297 static bool |
260 keys_ok (const Octave_map& a, const Octave_map& b, string_vector& keys) | 298 keys_ok (const Octave_map& a, const Octave_map& b, string_vector& keys) |
261 { | 299 { |
262 bool retval = false; | 300 bool retval = false; |
263 | 301 |
488 | 526 |
489 return retval; | 527 return retval; |
490 } | 528 } |
491 | 529 |
492 /* | 530 /* |
531 %!# test preservation of key order by indexing | |
532 %!test | |
533 %! x(1, 1).d = 10; x(4, 6).a = "b"; x(2, 4).f = 27; | |
534 %! assert (fieldnames (x([1, 2], [2:5])), {"d"; "a"; "f"}); | |
535 */ | |
536 | |
537 /* | |
493 ;;; Local Variables: *** | 538 ;;; Local Variables: *** |
494 ;;; mode: C++ *** | 539 ;;; mode: C++ *** |
495 ;;; End: *** | 540 ;;; End: *** |
496 */ | 541 */ |