|
22 | 22 |
|
23 | 23 | var tape = require( 'tape' ); |
24 | 24 | var AccessorArray = require( './../../../base/accessor' ); |
| 25 | +var Complex128Array = require( './../../../complex128' ); |
| 26 | +var BooleanArray = require( './../../../bool' ); |
25 | 27 | var Float64Array = require( './../../../float64' ); |
26 | 28 | var Int32Array = require( './../../../int32' ); |
| 29 | +var Complex128 = require( '@stdlib/complex/float64/ctor' ); |
27 | 30 | var indexOfSameValue = require( './../lib' ); |
28 | 31 |
|
29 | 32 |
|
@@ -123,6 +126,96 @@ tape( 'the function returns the first index of an element which equals a provide |
123 | 126 | t.end(); |
124 | 127 | }); |
125 | 128 |
|
| 129 | +tape( 'the function returns the first index of an element which equals a provided search element (complex128)', function test( t ) { |
| 130 | + var actual; |
| 131 | + var x; |
| 132 | + |
| 133 | + x = new Complex128Array( [ 1.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 3.0 ] ); // eslint-disable-line max-len |
| 134 | + |
| 135 | + actual = indexOfSameValue( x, new Complex128( 1.0, 1.0 ), 0 ); |
| 136 | + t.strictEqual( actual, 0, 'returns expected value' ); |
| 137 | + |
| 138 | + actual = indexOfSameValue( x, new Complex128( 2.0, 2.0 ), 0 ); |
| 139 | + t.strictEqual( actual, 2, 'returns expected value' ); |
| 140 | + |
| 141 | + actual = indexOfSameValue( x, new Complex128( 3.0, 3.0 ), 0 ); |
| 142 | + t.strictEqual( actual, 4, 'returns expected value' ); |
| 143 | + |
| 144 | + // Nonnegative starting index... |
| 145 | + actual = indexOfSameValue( x, new Complex128( 1.0, 1.0 ), 1 ); |
| 146 | + t.strictEqual( actual, 1, 'returns expected value' ); |
| 147 | + |
| 148 | + actual = indexOfSameValue( x, new Complex128( 2.0, 2.0 ), 3 ); |
| 149 | + t.strictEqual( actual, 3, 'returns expected value' ); |
| 150 | + |
| 151 | + actual = indexOfSameValue( x, new Complex128( 3.0, 3.0 ), 5 ); |
| 152 | + t.strictEqual( actual, 5, 'returns expected value' ); |
| 153 | + |
| 154 | + // Negative starting index... |
| 155 | + actual = indexOfSameValue( x, new Complex128( 1.0, 1.0 ), -10 ); |
| 156 | + t.strictEqual( actual, 0, 'returns expected value' ); |
| 157 | + |
| 158 | + actual = indexOfSameValue( x, new Complex128( 3.0, 3.0 ), -10 ); |
| 159 | + t.strictEqual( actual, 4, 'returns expected value' ); |
| 160 | + |
| 161 | + actual = indexOfSameValue( x, new Complex128( 1.0, 1.0 ), -5 ); |
| 162 | + t.strictEqual( actual, 1, 'returns expected value' ); |
| 163 | + |
| 164 | + actual = indexOfSameValue( x, new Complex128( 2.0, 2.0 ), -3 ); |
| 165 | + t.strictEqual( actual, 3, 'returns expected value' ); |
| 166 | + |
| 167 | + actual = indexOfSameValue( x, new Complex128( 3.0, 3.0 ), -1 ); |
| 168 | + t.strictEqual( actual, 5, 'returns expected value' ); |
| 169 | + |
| 170 | + // Non-complex values: |
| 171 | + actual = indexOfSameValue( x, 1.0, 0 ); |
| 172 | + t.strictEqual( actual, -1, 'returns expected value' ); |
| 173 | + |
| 174 | + t.end(); |
| 175 | +}); |
| 176 | + |
| 177 | +tape( 'the function returns the first index of an element which equals a provided search element (bool)', function test( t ) { |
| 178 | + var actual; |
| 179 | + var x; |
| 180 | + |
| 181 | + x = new BooleanArray( [ true, true, false, false, true, true ] ); |
| 182 | + |
| 183 | + actual = indexOfSameValue( x, true, 0 ); |
| 184 | + t.strictEqual( actual, 0, 'returns expected value' ); |
| 185 | + |
| 186 | + actual = indexOfSameValue( x, false, 0 ); |
| 187 | + t.strictEqual( actual, 2, 'returns expected value' ); |
| 188 | + |
| 189 | + // Nonnegative starting index... |
| 190 | + actual = indexOfSameValue( x, true, 1 ); |
| 191 | + t.strictEqual( actual, 1, 'returns expected value' ); |
| 192 | + |
| 193 | + actual = indexOfSameValue( x, false, 3 ); |
| 194 | + t.strictEqual( actual, 3, 'returns expected value' ); |
| 195 | + |
| 196 | + actual = indexOfSameValue( x, true, 5 ); |
| 197 | + t.strictEqual( actual, 5, 'returns expected value' ); |
| 198 | + |
| 199 | + // Negative starting index... |
| 200 | + actual = indexOfSameValue( x, true, -10 ); |
| 201 | + t.strictEqual( actual, 0, 'returns expected value' ); |
| 202 | + |
| 203 | + actual = indexOfSameValue( x, true, -5 ); |
| 204 | + t.strictEqual( actual, 1, 'returns expected value' ); |
| 205 | + |
| 206 | + actual = indexOfSameValue( x, false, -3 ); |
| 207 | + t.strictEqual( actual, 3, 'returns expected value' ); |
| 208 | + |
| 209 | + actual = indexOfSameValue( x, true, -1 ); |
| 210 | + t.strictEqual( actual, 5, 'returns expected value' ); |
| 211 | + |
| 212 | + // Non-boolean values: |
| 213 | + actual = indexOfSameValue( x, 0, 0 ); |
| 214 | + t.strictEqual( actual, -1, 'returns expected value' ); |
| 215 | + |
| 216 | + t.end(); |
| 217 | +}); |
| 218 | + |
126 | 219 | tape( 'the function returns the first index of an element which equals a provided search element (int32)', function test( t ) { |
127 | 220 | var actual; |
128 | 221 | var x; |
|
0 commit comments