Skip to content

Commit 6d22d66

Browse files
API change, fix #1
1 parent 7146000 commit 6d22d66

File tree

7 files changed

+174
-75
lines changed

7 files changed

+174
-75
lines changed

js/dist/array.js

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -337,21 +337,35 @@ exports.split = split;
337337

338338
/* js/src/swap.js */
339339

340+
var swap = function ( a , i , j ) {
340341

341-
var swap = function ( a, ai, aj, b, bi ) {
342+
var tmp ;
342343

343-
var tmp;
344+
tmp = a[i] ;
345+
a[i] = a[j] ;
346+
a[j] = tmp ;
347+
348+
} ;
349+
350+
exports.swap = swap ;
351+
352+
/* js/src/swapranges.js */
344353

345-
for ( ; ai < aj ; ++ai, ++bi ) {
346354

347-
tmp = a[ai];
348-
a[ai] = b[bi];
349-
b[bi] = tmp;
355+
var swapranges = function ( a , ai , aj , b , bi ) {
356+
357+
var tmp ;
358+
359+
for ( ; ai < aj ; ++ai , ++bi ) {
360+
361+
tmp = a[ai] ;
362+
a[ai] = b[bi] ;
363+
b[bi] = tmp ;
350364

351365
}
352366

353-
};
367+
} ;
354368

355-
exports.swap = swap;
369+
exports.swapranges = swapranges ;
356370

357371
})(typeof exports === 'undefined' ? this['array'] = {} : exports);

js/dist/array.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/dist/array.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/src/swap.js

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,12 @@
11

2+
var swap = function ( a , i , j ) {
23

3-
var swap = function ( a, ai, aj, b, bi ) {
4+
var tmp ;
45

5-
var tmp;
6+
tmp = a[i] ;
7+
a[i] = a[j] ;
8+
a[j] = tmp ;
69

7-
for ( ; ai < aj ; ++ai, ++bi ) {
10+
} ;
811

9-
tmp = a[ai];
10-
a[ai] = b[bi];
11-
b[bi] = tmp;
12-
13-
}
14-
15-
};
16-
17-
exports.swap = swap;
12+
exports.swap = swap ;

js/src/swapranges.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
2+
3+
var swapranges = function ( a , ai , aj , b , bi ) {
4+
5+
var tmp ;
6+
7+
for ( ; ai < aj ; ++ai , ++bi ) {
8+
9+
tmp = a[ai] ;
10+
a[ai] = b[bi] ;
11+
b[bi] = tmp ;
12+
13+
}
14+
15+
} ;
16+
17+
exports.swapranges = swapranges ;

test/js/src/swap.js

Lines changed: 39 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,87 +1,73 @@
11

22

3-
var one, util, mem, random, operator;
3+
var one , util , mem , random , operator ;
44

5-
util = require( "util" );
6-
mem = require( "aureooms-js-mem" );
7-
random = require( "aureooms-js-random" );
8-
operator = require( "aureooms-js-operator" );
5+
util = require( "util" ) ;
6+
mem = require( "aureooms-js-mem" ) ;
7+
random = require( "aureooms-js-random" ) ;
8+
operator = require( "aureooms-js-operator" ) ;
99

10-
one = function (calloc) {
10+
one = function ( calloc ) {
1111

12-
test( util.format( "swap (%s)", calloc ), function () {
12+
test( util.format( "swap (%s)" , calloc ) , function ( ) {
1313

14-
var a, b, c, d, i, j, n, ai, aj, bi, resetb;
14+
var a , b , i , j , n , ai , aj ;
1515

16-
n = 100;
17-
ai = 23;
18-
aj = 73;
19-
bi = 49;
16+
n = 100 ;
17+
ai = 23 ;
18+
aj = 73 ;
2019

21-
a = calloc( n );
22-
b = calloc( n );
23-
c = calloc( n );
24-
d = calloc( n );
20+
a = calloc( n ) ;
21+
b = calloc( n ) ;
2522

2623
for ( i = 0 ; i < n ; ++i ) {
27-
a[i] = random.randint( 1, operator.pow( 2, 31 ) );
28-
b[i] = random.randint( 1, operator.pow( 2, 31 ) );
29-
c[i] = a[i];
30-
d[i] = b[i];
24+
a[i] = random.randint( 1 , operator.pow( 2 , 31 ) ) ;
25+
b[i] = a[i] ;
3126
}
3227

33-
array.swap( a, ai, aj, b, bi );
28+
array.swap( a , ai , aj ) ;
3429

3530
for ( i = 0 ; i < n ; ++i ) {
3631

37-
if ( i < ai || i >= aj ) {
38-
deepEqual( a[i], c[i], util.format( "a[%d] === c[%d]", i, i ) );
32+
if ( i === ai || i === aj ) {
33+
j = ai + aj - i ;
34+
deepEqual( a[i], b[j], util.format( "a[%d] === b[%d]", i, j ) );
3935
}
4036

4137
else {
42-
j = i - ai + bi;
43-
deepEqual( a[i], d[j], util.format( "a[%d] === d[%d]", i, j ) );
44-
}
45-
46-
if ( i < bi || i >= bi + aj - ai ) {
47-
deepEqual( b[i], d[i], util.format( "b[%d] === d[%d]", i, i ) );
48-
}
49-
50-
else {
51-
j = i - bi + ai;
52-
deepEqual( b[i], c[j], util.format( "b[%d] === c[%d]", i, j ) );
38+
deepEqual( a[i], b[i], util.format( "a[%d] === b[%d]", i, i ) );
5339
}
5440

5541
}
5642

57-
array.swap( a, ai, aj, b, bi );
43+
array.swap( a , ai , aj ) ;
5844

59-
deepEqual( a, c, "swap back check a" );
60-
deepEqual( b, d, "swap back check b" );
45+
deepEqual( a , b , "swap back" ) ;
6146

62-
array.swap( a, ai, aj, a, ai );
47+
array.swap( a , ai , ai ) ;
6348

64-
deepEqual( a, c, "swap self check a" );
49+
deepEqual( a , b , "swap" ) ;
6550

66-
});
51+
} ) ;
6752

68-
};
53+
} ;
6954

7055
allocators = [
71-
mem.__calloc__(Array),
72-
mem.__calloc__(Int8Array),
73-
mem.__calloc__(Int16Array),
74-
mem.__calloc__(Int32Array),
75-
mem.__calloc__(Uint8Array),
76-
mem.__calloc__(Uint16Array),
77-
mem.__calloc__(Uint32Array),
78-
mem.__calloc__(Uint8ClampedArray),
79-
mem.__calloc__(Float32Array),
56+
mem.__calloc__(Array) ,
57+
mem.__calloc__(Int8Array) ,
58+
mem.__calloc__(Int16Array) ,
59+
mem.__calloc__(Int32Array) ,
60+
mem.__calloc__(Uint8Array) ,
61+
mem.__calloc__(Uint16Array) ,
62+
mem.__calloc__(Uint32Array) ,
63+
mem.__calloc__(Uint8ClampedArray) ,
64+
mem.__calloc__(Float32Array) ,
8065
mem.__calloc__(Float64Array)
81-
];
66+
] ;
8267

8368
allocators.forEach( function ( calloc ) {
8469

85-
one( calloc );
70+
one( calloc ) ;
71+
72+
} ) ;
8673

87-
});

test/js/src/swapranges.js

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
2+
3+
var one, util, mem, random, operator;
4+
5+
util = require( "util" );
6+
mem = require( "aureooms-js-mem" );
7+
random = require( "aureooms-js-random" );
8+
operator = require( "aureooms-js-operator" );
9+
10+
one = function (calloc) {
11+
12+
test( util.format( "swapranges (%s)", calloc ), function () {
13+
14+
var a, b, c, d, i, j, n, ai, aj, bi, resetb;
15+
16+
n = 100;
17+
ai = 23;
18+
aj = 73;
19+
bi = 49;
20+
21+
a = calloc( n );
22+
b = calloc( n );
23+
c = calloc( n );
24+
d = calloc( n );
25+
26+
for ( i = 0 ; i < n ; ++i ) {
27+
a[i] = random.randint( 1, operator.pow( 2, 31 ) );
28+
b[i] = random.randint( 1, operator.pow( 2, 31 ) );
29+
c[i] = a[i];
30+
d[i] = b[i];
31+
}
32+
33+
array.swapranges( a, ai, aj, b, bi );
34+
35+
for ( i = 0 ; i < n ; ++i ) {
36+
37+
if ( i < ai || i >= aj ) {
38+
deepEqual( a[i], c[i], util.format( "a[%d] === c[%d]", i, i ) );
39+
}
40+
41+
else {
42+
j = i - ai + bi;
43+
deepEqual( a[i], d[j], util.format( "a[%d] === d[%d]", i, j ) );
44+
}
45+
46+
if ( i < bi || i >= bi + aj - ai ) {
47+
deepEqual( b[i], d[i], util.format( "b[%d] === d[%d]", i, i ) );
48+
}
49+
50+
else {
51+
j = i - bi + ai;
52+
deepEqual( b[i], c[j], util.format( "b[%d] === c[%d]", i, j ) );
53+
}
54+
55+
}
56+
57+
array.swapranges( a, ai, aj, b, bi );
58+
59+
deepEqual( a, c, "swapranges back check a" );
60+
deepEqual( b, d, "swapranges back check b" );
61+
62+
array.swapranges( a, ai, aj, a, ai );
63+
64+
deepEqual( a, c, "swapranges self check a" );
65+
66+
});
67+
68+
};
69+
70+
allocators = [
71+
mem.__calloc__(Array),
72+
mem.__calloc__(Int8Array),
73+
mem.__calloc__(Int16Array),
74+
mem.__calloc__(Int32Array),
75+
mem.__calloc__(Uint8Array),
76+
mem.__calloc__(Uint16Array),
77+
mem.__calloc__(Uint32Array),
78+
mem.__calloc__(Uint8ClampedArray),
79+
mem.__calloc__(Float32Array),
80+
mem.__calloc__(Float64Array)
81+
];
82+
83+
allocators.forEach( function ( calloc ) {
84+
85+
one( calloc );
86+
87+
});

0 commit comments

Comments
 (0)