18233
|
1 ## Don't alter the spacing in the command_test lines. These are |
|
2 ## specifically testing for possible differences in things like |
|
3 ## A(X) or A( X ) or A (X) or A ( X ) |
|
4 |
|
5 %!function command_test (varargin) |
|
6 %! assignin ('caller', 'cmd_out', ['|', sprintf('%s|', varargin{:})]); |
|
7 %!endfunction |
|
8 |
|
9 %!function gobble_command (varargin) |
|
10 %!endfunction |
|
11 |
|
12 ## 0, 1, 2, 3 simple arguments |
|
13 %!test |
|
14 %! command_test |
|
15 %! assert (cmd_out, '|') |
|
16 %!test |
|
17 %! command_test a |
|
18 %! assert (cmd_out, '|a|') |
|
19 %!test |
|
20 %! command_test aa b |
|
21 %! assert (cmd_out, '|aa|b|') |
|
22 %!test |
|
23 %! command_test aaa bb c |
|
24 %! assert (cmd_out, '|aaa|bb|c|') |
|
25 |
|
26 ## continuation |
|
27 %!test |
|
28 %! command_test a... |
|
29 %! bb ccc |
|
30 %! assert (cmd_out, '|a|bb|ccc|') |
|
31 %!test |
|
32 %! command_test a ... |
|
33 %! bb ccc |
|
34 %! assert (cmd_out, '|a|bb|ccc|') |
|
35 %!test |
|
36 %! command_test aa(... |
|
37 %! bb cc |
|
38 %! assert (cmd_out, '|aa(|bb|cc|') |
|
39 %!test |
|
40 %! command_test aa( ... |
|
41 %! bb cc |
|
42 %! assert (cmd_out, '|aa( |bb|cc|') |
|
43 |
|
44 ## comments |
|
45 %!test |
|
46 %! command_test aa bb cc%comment |
|
47 %! assert (cmd_out, '|aa|bb|cc|') |
|
48 %!test |
|
49 %! command_test aa bb cc#comment |
|
50 %! assert (cmd_out, '|aa|bb|cc|') |
|
51 %!test |
|
52 %! command_test aa bb cc %comment |
|
53 %! assert (cmd_out, '|aa|bb|cc|') |
|
54 %!test |
|
55 %! command_test aa bb cc #comment |
|
56 %! assert (cmd_out, '|aa|bb|cc|') |
|
57 %!test |
|
58 %! command_test aa bb cc( %comment |
|
59 %! assert (cmd_out, '|aa|bb|cc( |') |
|
60 %!test |
|
61 %! command_test aa bb cc( #comment |
|
62 %! assert (cmd_out, '|aa|bb|cc( |') |
|
63 |
|
64 ## semicolons and commas; multiple commands |
|
65 %!test |
|
66 %! command_test aa bb, gobble_command cc |
|
67 %! assert (cmd_out, '|aa|bb|') |
|
68 %!test |
|
69 %! command_test aa bb ; gobble_command cc |
|
70 %! assert (cmd_out, '|aa|bb|') |
|
71 %!test |
|
72 %! command_test aa bb ; command_test cc dd |
|
73 %! assert (cmd_out, '|cc|dd|') |
|
74 %!test |
|
75 %! command_test aa bb |
|
76 %!test |
|
77 %! command_test cc dd |
|
78 %! assert (cmd_out, '|cc|dd|') |
|
79 |
|
80 ## parenthesis matching |
|
81 %!test |
|
82 %! command_test aa(bb,cc,dd) ee(ff,gg) hh |
|
83 %! assert (cmd_out, '|aa(bb,cc,dd)|ee(ff,gg)|hh|') |
|
84 %!test |
|
85 %! command_test aa([bb,cc)] |
|
86 %! assert (cmd_out, '|aa([bb,cc)]|') |
|
87 %!test |
|
88 %! command_test aa(,@!$@"bb"'cc' |
|
89 %! assert (cmd_out, '|aa(,@!$@"bb"''cc''|') |
|
90 %!test |
|
91 %! command_test aa(bb,cc,dd) |
|
92 %! assert (cmd_out, '|aa(bb,cc,dd)|') |
|
93 %!test |
|
94 %! command_test aa( bb,cc,dd ) |
|
95 %! assert (cmd_out, '|aa( bb,cc,dd )|') |
|
96 %!test |
|
97 %! command_test aa (bb,cc,dd) |
|
98 %! assert (cmd_out, '|aa|(bb,cc,dd)|') |
|
99 %!test |
|
100 %! command_test aa ( bb,cc,dd ) |
|
101 %! assert (cmd_out, '|aa|( bb,cc,dd )|') |
|
102 %!test |
|
103 %! command_test aa(bb, cc, dd) |
|
104 %! assert (cmd_out, '|aa(bb, cc, dd)|') |
|
105 %!test |
|
106 %! command_test aa( bb, cc, dd ) |
|
107 %! assert (cmd_out, '|aa( bb, cc, dd )|') |
|
108 %!test |
|
109 %! command_test aa (bb, cc, dd) |
|
110 %! assert (cmd_out, '|aa|(bb, cc, dd)|') |
|
111 %!test |
|
112 %! command_test aa ( bb, cc, dd ) |
|
113 %! assert (cmd_out, '|aa|( bb, cc, dd )|') |
|
114 |
|
115 ## single and double quotes |
|
116 %!test |
|
117 %! command_test "aa" 'bb' cc |
|
118 %! assert (cmd_out, '|aa|bb|cc|') |
|
119 %!test |
|
120 %! command_test "aa"'bb'cc |
|
121 %! assert (cmd_out, '|aabbcc|') |
|
122 %!test |
|
123 %! command_test aa'bb'"cc" |
|
124 %! assert (cmd_out, '|aabbcc|') |
|
125 %!test |
|
126 %! command_test "aa"bb'cc' |
|
127 %! assert (cmd_out, '|aabbcc|') |
|
128 |
|
129 ## CVX-inspired |
|
130 %!test |
|
131 %! command_test Z(n,n) hermitian toeplitz |
|
132 %! assert (cmd_out, '|Z(n,n)|hermitian|toeplitz|') |
|
133 %!test |
|
134 %! command_test X( n, n ) symmetric |
|
135 %! assert (cmd_out, '|X( n, n )|symmetric|') |
|
136 %!test |
|
137 %! command_test xw( nm-1, nv ); |
|
138 %! assert (cmd_out, '|xw( nm-1, nv )|') |
|
139 %!test |
|
140 %! command_test x( sx ) y( sx ) z( sx ) |
|
141 %! assert (cmd_out, '|x( sx )|y( sx )|z( sx )|') |
|
142 %!test |
|
143 %! command_test coeffs(deg+1) complex; |
|
144 %! assert (cmd_out, '|coeffs(deg+1)|complex|') |
|
145 %!test |
|
146 %! command_test w( 1, npairs * nv ) v( 1, npairs * nv ) |
|
147 %! assert (cmd_out, '|w( 1, npairs * nv )|v( 1, npairs * nv )|') |
|
148 %!test |
|
149 %! command_test w(m,1) % edge weights |
|
150 %! assert (cmd_out, '|w(m,1)|') |
|
151 %!test |
|
152 %! command_test x2( size( x ) ) |
|
153 %! assert (cmd_out, '|x2( size( x ) )|') |
|
154 |