2121// MODULES //
2222
2323var tape = require ( 'tape' ) ;
24+ var hasOwnProp = require ( '@stdlib/assert/has-own-property' ) ;
2425var isFunction = require ( '@stdlib/assert/is-function' ) ;
2526var factory = require ( './../lib' ) ;
2627
@@ -43,11 +44,18 @@ tape( 'the `values` method returns an iterator function', function test( t ) {
4344 t . end ( ) ;
4445} ) ;
4546
47+ tape ( 'attached to the prototype of the returned function is a `values` method' , function test ( t ) {
48+ var ctor = factory ( 'float64' ) ;
49+ t . strictEqual ( hasOwnProp ( ctor . prototype , 'values' ) , true , 'has `values` method on the prototype' ) ;
50+ t . strictEqual ( isFunction ( ctor . prototype . values ) , true , '`values` is a function' ) ;
51+ t . end ( ) ;
52+ } ) ;
53+
4654tape ( 'the `values` iterator stops when all elements are iterated' , function test ( t ) {
4755 var iterator ;
4856 var result ;
4957 var ctor = factory ( 'float64' ) ;
50- var arr = new ctor ( 'little-endian' , [ 1.0 , 2.0 , 3.0 , 4.0 , 5.0 ] ) ;
58+ var arr = new ctor ( 'little-endian' , [ 1.0 , 2.0 , 3.0 , 4.0 , 5.0 ] ) ;
5159
5260 iterator = arr . values ( ) ;
5361
@@ -108,7 +116,7 @@ tape( 'the `values` iterator returns the correct value for typed arrays with dif
108116 var iterator ;
109117 var result ;
110118 var ctor = factory ( 'float64' ) ;
111- var arr = new ctor ( 'little-endian' , [ 10.5 , 20.5 , 30.5 ] ) ;
119+ var arr = new ctor ( 'little-endian' , [ 10.5 , 20.5 , 30.5 ] ) ;
112120
113121 iterator = arr . values ( ) ;
114122
@@ -142,21 +150,21 @@ tape( 'the `values` iterator works with `for...of` loop', function test( t ) {
142150 var values = [ ] ;
143151 var value ;
144152 var ctor = factory ( 'float64' ) ;
145- var arr = new ctor ( 'little-endian' , [ 1.0 , 2.0 , 3.0 , 4.0 , 5.0 ] ) ;
153+ var arr = new ctor ( 'little-endian' , [ 1.0 , 2.0 , 3.0 , 4.0 , 5.0 ] ) ;
146154
147155 for ( value of arr . values ( ) ) {
148156 values . push ( value ) ;
149157 }
150158
151- t . deepEqual ( values , [ 1.0 , 2.0 , 3.0 , 4.0 , 5.0 ] , 'correctly iterates over values' ) ;
159+ t . deepEqual ( values , [ 1.0 , 2.0 , 3.0 , 4.0 , 5.0 ] , 'correctly iterates over values' ) ;
152160 t . end ( ) ;
153161} ) ;
154162
155163tape ( 'the `values` iterator supports providing an execution context' , function test ( t ) {
156164 var iterator ;
157165 var result ;
158166 var ctor = factory ( 'float64' ) ;
159- var arr = new ctor ( 'little-endian' , [ 1.0 , 2.0 , 3.0 , 4.0 , 5.0 ] ) ;
167+ var arr = new ctor ( 'little-endian' , [ 1.0 , 2.0 , 3.0 , 4.0 , 5.0 ] ) ;
160168 var ctx = {
161169 'threshold' : 3
162170 } ;
@@ -198,10 +206,10 @@ tape( 'the `values` iterator throws an error when `this` is not a typed array',
198206 ] ;
199207
200208 var ctor = factory ( 'float64' ) ;
201- var arr = new ctor ( 'little-endian' , [ 1.0 , 2.0 , 3.0 , 4.0 ] ) ;
209+ var arr = new ctor ( 'little-endian' , [ 1.0 , 2.0 , 3.0 , 4.0 ] ) ;
202210 var i ;
203211
204- for ( i = 0 ; i < values . length ; i ++ ) {
212+ for ( i = 0 ; i < values . length ; i ++ ) {
205213 t . throws ( badValue ( values [ i ] ) , TypeError , 'throws an error when provided ' + values [ i ] ) ;
206214 }
207215
0 commit comments