@@ -24,6 +24,10 @@ var tape = require( 'tape' );
24
24
var hasOwnProp = require ( '@stdlib/assert/has-own-property' ) ;
25
25
var hasProp = require ( '@stdlib/assert/has-property' ) ;
26
26
var isFunction = require ( '@stdlib/assert/is-function' ) ;
27
+ var Complex128Array = require ( '@stdlib/array/complex128' ) ;
28
+ var Complex64Array = require ( '@stdlib/array/complex64' ) ;
29
+ var Complex64 = require ( '@stdlib/complex/float32' ) ;
30
+ var Complex128 = require ( '@stdlib/complex/float64' ) ;
27
31
var ndarray = require ( './../lib' ) ;
28
32
29
33
@@ -97,6 +101,68 @@ tape( 'an ndarray constructor returns an instance which has a custom `toString()
97
101
t . end ( ) ;
98
102
} ) ;
99
103
104
+ tape ( 'an ndarray constructor returns an instance which has a custom `toString()` method (complex type)' , function test ( t ) {
105
+ var expected ;
106
+ var strides ;
107
+ var actual ;
108
+ var buffer ;
109
+ var offset ;
110
+ var dtype ;
111
+ var order ;
112
+ var shape ;
113
+ var arr ;
114
+
115
+ dtype = 'complex64' ;
116
+ buffer = new Complex64Array ( [ 1.0 , 2.0 , 3.0 , 4.0 , 5.0 , 6.0 , 7.0 , 8.0 ] ) ;
117
+ shape = [ 2 , 2 ] ;
118
+ order = 'row-major' ;
119
+ strides = [ 2 , 1 ] ;
120
+ offset = 0 ;
121
+
122
+ arr = ndarray ( dtype , buffer , shape , strides , offset , order ) ;
123
+
124
+ t . strictEqual ( hasOwnProp ( arr , 'toString' ) , false , 'does not have own property' ) ;
125
+ t . strictEqual ( hasProp ( arr , 'toString' ) , true , 'has property' ) ;
126
+ t . strictEqual ( isFunction ( arr . toString ) , true , 'has method' ) ;
127
+
128
+ expected = 'ndarray( \'complex64\', new Complex64Array( [ 1, 2, 3, 4, 5, 6, 7, 8 ] ), [ 2, 2 ], [ 2, 1 ], 0, \'row-major\' )' ;
129
+ actual = arr . toString ( ) ;
130
+ t . strictEqual ( actual , expected , 'returns expected value' ) ;
131
+
132
+ t . end ( ) ;
133
+ } ) ;
134
+
135
+ tape ( 'an ndarray constructor returns an instance which has a custom `toString()` method (complex type)' , function test ( t ) {
136
+ var expected ;
137
+ var strides ;
138
+ var actual ;
139
+ var buffer ;
140
+ var offset ;
141
+ var dtype ;
142
+ var order ;
143
+ var shape ;
144
+ var arr ;
145
+
146
+ dtype = 'complex128' ;
147
+ buffer = new Complex128Array ( [ 1.0 , 2.0 , 3.0 , 4.0 , 5.0 , 6.0 , 7.0 , 8.0 ] ) ;
148
+ shape = [ 2 , 2 ] ;
149
+ order = 'row-major' ;
150
+ strides = [ 2 , 1 ] ;
151
+ offset = 0 ;
152
+
153
+ arr = ndarray ( dtype , buffer , shape , strides , offset , order ) ;
154
+
155
+ t . strictEqual ( hasOwnProp ( arr , 'toString' ) , false , 'does not have own property' ) ;
156
+ t . strictEqual ( hasProp ( arr , 'toString' ) , true , 'has property' ) ;
157
+ t . strictEqual ( isFunction ( arr . toString ) , true , 'has method' ) ;
158
+
159
+ expected = 'ndarray( \'complex128\', new Complex128Array( [ 1, 2, 3, 4, 5, 6, 7, 8 ] ), [ 2, 2 ], [ 2, 1 ], 0, \'row-major\' )' ;
160
+ actual = arr . toString ( ) ;
161
+ t . strictEqual ( actual , expected , 'returns expected value' ) ;
162
+
163
+ t . end ( ) ;
164
+ } ) ;
165
+
100
166
tape ( 'an ndarray constructor returns an instance which has a custom `toString()` method (large array)' , function test ( t ) {
101
167
var expected ;
102
168
var strides ;
@@ -135,6 +201,82 @@ tape( 'an ndarray constructor returns an instance which has a custom `toString()
135
201
t . end ( ) ;
136
202
} ) ;
137
203
204
+ tape ( 'an ndarray constructor returns an instance which has a custom `toString()` method (large array; complex type)' , function test ( t ) {
205
+ var expected ;
206
+ var strides ;
207
+ var actual ;
208
+ var buffer ;
209
+ var offset ;
210
+ var dtype ;
211
+ var order ;
212
+ var shape ;
213
+ var arr ;
214
+
215
+ dtype = 'complex64' ;
216
+ buffer = new Complex64Array ( 1e4 ) ;
217
+ shape = [ buffer . length ] ;
218
+ order = 'row-major' ;
219
+ strides = [ 1 ] ;
220
+ offset = 0 ;
221
+
222
+ buffer . set ( new Complex64 ( 1.0 , 1.0 ) , 0 ) ;
223
+ buffer . set ( new Complex64 ( 2.0 , 2.0 ) , 1 ) ;
224
+ buffer . set ( new Complex64 ( 3.0 , 3.0 ) , 2 ) ;
225
+ buffer . set ( new Complex64 ( 4.0 , 4.0 ) , buffer . length - 3 ) ;
226
+ buffer . set ( new Complex64 ( 5.0 , 5.0 ) , buffer . length - 2 ) ;
227
+ buffer . set ( new Complex64 ( 6.0 , 6.0 ) , buffer . length - 1 ) ;
228
+
229
+ arr = ndarray ( dtype , buffer , shape , strides , offset , order ) ;
230
+
231
+ t . strictEqual ( hasOwnProp ( arr , 'toString' ) , false , 'does not have own property' ) ;
232
+ t . strictEqual ( hasProp ( arr , 'toString' ) , true , 'has property' ) ;
233
+ t . strictEqual ( isFunction ( arr . toString ) , true , 'has method' ) ;
234
+
235
+ expected = 'ndarray( \'complex64\', new Complex64Array( [ 1, 1, 2, 2, 3, 3, ..., 4, 4, 5, 5, 6, 6 ] ), [ 10000 ], [ 1 ], 0, \'row-major\' )' ;
236
+ actual = arr . toString ( ) ;
237
+ t . strictEqual ( actual , expected , 'returns expected value' ) ;
238
+
239
+ t . end ( ) ;
240
+ } ) ;
241
+
242
+ tape ( 'an ndarray constructor returns an instance which has a custom `toString()` method (large array; complex type)' , function test ( t ) {
243
+ var expected ;
244
+ var strides ;
245
+ var actual ;
246
+ var buffer ;
247
+ var offset ;
248
+ var dtype ;
249
+ var order ;
250
+ var shape ;
251
+ var arr ;
252
+
253
+ dtype = 'complex128' ;
254
+ buffer = new Complex128Array ( 1e4 ) ;
255
+ shape = [ buffer . length ] ;
256
+ order = 'row-major' ;
257
+ strides = [ 1 ] ;
258
+ offset = 0 ;
259
+
260
+ buffer . set ( new Complex128 ( 1.0 , 1.0 ) , 0 ) ;
261
+ buffer . set ( new Complex128 ( 2.0 , 2.0 ) , 1 ) ;
262
+ buffer . set ( new Complex128 ( 3.0 , 3.0 ) , 2 ) ;
263
+ buffer . set ( new Complex128 ( 4.0 , 4.0 ) , buffer . length - 3 ) ;
264
+ buffer . set ( new Complex128 ( 5.0 , 5.0 ) , buffer . length - 2 ) ;
265
+ buffer . set ( new Complex128 ( 6.0 , 6.0 ) , buffer . length - 1 ) ;
266
+
267
+ arr = ndarray ( dtype , buffer , shape , strides , offset , order ) ;
268
+
269
+ t . strictEqual ( hasOwnProp ( arr , 'toString' ) , false , 'does not have own property' ) ;
270
+ t . strictEqual ( hasProp ( arr , 'toString' ) , true , 'has property' ) ;
271
+ t . strictEqual ( isFunction ( arr . toString ) , true , 'has method' ) ;
272
+
273
+ expected = 'ndarray( \'complex128\', new Complex128Array( [ 1, 1, 2, 2, 3, 3, ..., 4, 4, 5, 5, 6, 6 ] ), [ 10000 ], [ 1 ], 0, \'row-major\' )' ;
274
+ actual = arr . toString ( ) ;
275
+ t . strictEqual ( actual , expected , 'returns expected value' ) ;
276
+
277
+ t . end ( ) ;
278
+ } ) ;
279
+
138
280
tape ( 'an ndarray constructor returns an instance which has a custom `toString()` method (0d)' , function test ( t ) {
139
281
var expected ;
140
282
var strides ;
0 commit comments