@@ -151,6 +151,66 @@ Rebol [
151
151
152
152
===end-group===
153
153
154
+ ===start-group=== "VECTOR compact construction"
155
+ ;@@ https://github.com/rebol/rebol-issues/issues/2396
156
+ --test-- "Compact construction syntax (empty)"
157
+ --assert (mold #[si8!]) = "make vector! [integer! 8 0 []]"
158
+ --assert (mold #[si16!]) = "make vector! [integer! 16 0 []]"
159
+ --assert (mold #[si32!]) = "make vector! [integer! 32 0 []]"
160
+ --assert (mold #[si64!]) = "make vector! [integer! 64 0 []]"
161
+ --assert (mold #[ui8!]) = "make vector! [unsigned integer! 8 0 []]"
162
+ --assert (mold #[ui16!]) = "make vector! [unsigned integer! 16 0 []]"
163
+ --assert (mold #[ui32!]) = "make vector! [unsigned integer! 32 0 []]"
164
+ --assert (mold #[ui64!]) = "make vector! [unsigned integer! 64 0 []]"
165
+ --assert (mold #[f32!]) = "make vector! [decimal! 32 0 []]"
166
+ --assert (mold #[f64!]) = "make vector! [decimal! 64 0 []]"
167
+
168
+ --test-- "Compact construction syntax (size)"
169
+ --assert (mold #[si8! 3 ]) = "make vector! [integer! 8 3 [0 0 0]]"
170
+ --assert (mold #[si16! 3 ]) = "make vector! [integer! 16 3 [0 0 0]]"
171
+ --assert (mold #[si32! 3 ]) = "make vector! [integer! 32 3 [0 0 0]]"
172
+ --assert (mold #[si64! 3 ]) = "make vector! [integer! 64 3 [0 0 0]]"
173
+ --assert (mold #[ui8! 3 ]) = "make vector! [unsigned integer! 8 3 [0 0 0]]"
174
+ --assert (mold #[ui16! 3 ]) = "make vector! [unsigned integer! 16 3 [0 0 0]]"
175
+ --assert (mold #[ui32! 3 ]) = "make vector! [unsigned integer! 32 3 [0 0 0]]"
176
+ --assert (mold #[ui64! 3 ]) = "make vector! [unsigned integer! 64 3 [0 0 0]]"
177
+ --assert (mold #[f32! 3 ]) = "make vector! [decimal! 32 3 [0.0 0.0 0.0]]"
178
+ --assert (mold #[f64! 3 ]) = "make vector! [decimal! 64 3 [0.0 0.0 0.0]]"
179
+
180
+ --test-- "Compact construction syntax (data)"
181
+ --assert (mold #[si8! [1 2 ]]) = "make vector! [integer! 8 2 [1 2]]"
182
+ --assert (mold #[si16! [1 2 ]]) = "make vector! [integer! 16 2 [1 2]]"
183
+ --assert (mold #[si32! [1 2 ]]) = "make vector! [integer! 32 2 [1 2]]"
184
+ --assert (mold #[si64! [1 2 ]]) = "make vector! [integer! 64 2 [1 2]]"
185
+ --assert (mold #[ui8! [1 2 ]]) = "make vector! [unsigned integer! 8 2 [1 2]]"
186
+ --assert (mold #[ui16! [1 2 ]]) = "make vector! [unsigned integer! 16 2 [1 2]]"
187
+ --assert (mold #[ui32! [1 2 ]]) = "make vector! [unsigned integer! 32 2 [1 2]]"
188
+ --assert (mold #[ui64! [1 2 ]]) = "make vector! [unsigned integer! 64 2 [1 2]]"
189
+ --assert (mold #[f32! [1 2 ]]) = "make vector! [decimal! 32 2 [1.0 2.0]]"
190
+ --assert (mold #[f64! [1 2 ]]) = "make vector! [decimal! 64 2 [1.0 2.0]]"
191
+
192
+ --test-- "Compact construction syntax (data with index)"
193
+ --assert (mold v: #[si8! [1 2 ] 2 ]) = "make vector! [integer! 8 1 [2]]"
194
+ --assert 2 = index? v
195
+ --assert (mold v: #[si16! [1 2 ] 2 ]) = "make vector! [integer! 16 1 [2]]"
196
+ --assert 2 = index? v
197
+ --assert (mold v: #[si32! [1 2 ] 2 ]) = "make vector! [integer! 32 1 [2]]"
198
+ --assert 2 = index? v
199
+ --assert (mold v: #[si64! [1 2 ] 2 ]) = "make vector! [integer! 64 1 [2]]"
200
+ --assert 2 = index? v
201
+ --assert (mold v: #[ui8! [1 2 ] 2 ]) = "make vector! [unsigned integer! 8 1 [2]]"
202
+ --assert 2 = index? v
203
+ --assert (mold v: #[ui16! [1 2 ] 2 ]) = "make vector! [unsigned integer! 16 1 [2]]"
204
+ --assert 2 = index? v
205
+ --assert (mold v: #[ui32! [1 2 ] 2 ]) = "make vector! [unsigned integer! 32 1 [2]]"
206
+ --assert 2 = index? v
207
+ --assert (mold v: #[ui64! [1 2 ] 2 ]) = "make vector! [unsigned integer! 64 1 [2]]"
208
+ --assert 2 = index? v
209
+ --assert (mold v: #[f32! [1 2 ] 2 ]) = "make vector! [decimal! 32 1 [2.0]]"
210
+ --assert 2 = index? v
211
+ --assert (mold v: #[f64! [1 2 ] 2 ]) = "make vector! [decimal! 64 1 [2.0]]"
212
+ --assert 2 = index? v
213
+
154
214
155
215
===start-group=== "VECTOR math"
156
216
0 commit comments