You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.2 KiB
55 lines
1.2 KiB
var bytewise = require('../'); |
|
var typewise = require('typewise-core'); |
|
var util = require('typewise-core/test/util'); |
|
var tape = require('tape'); |
|
|
|
var expected = [ |
|
-4, |
|
-0.304958230, |
|
0, |
|
0.304958230, |
|
4, |
|
'bar', |
|
'baz', |
|
'foo', |
|
[ 0, 0, 'foo' ], |
|
[ 0, 1, 'foo' ], |
|
[ 0, 1, 'foo', 0 ], |
|
[ 0, 1, 'foo', 1 ], |
|
[ 0, 'bar', 'baz' ], |
|
[ 0, 'foo' ], |
|
[ 0, 'foo', 'bar' ], |
|
[ 0, 'foo', [] ], |
|
[ 0, 'foo', [ 'bar' ] ], |
|
[ 0, 'foo', [ 'bar' ], [] ], |
|
[ 0, 'foo', [ 'bar' ], [ 'foo' ] ], |
|
[ 0, 'foo', [ 'bar', 'baz' ] ], |
|
[ 1, 'bar', 'baz' ], |
|
[ 1, 'bar', 'baz' ], |
|
[ 'foo', 'bar', 'baz' ], |
|
[ 'foo', [ 'bar', 'baz' ] ], |
|
[ 'foo', [ 'bar', [ 'baz' ] ] ], |
|
]; |
|
|
|
var shuffled = util.shuffle(expected.slice()); |
|
|
|
tape('sorts in expected order', function (t) { |
|
t.equal( |
|
bytewise.encode(shuffled.sort(typewise.compare)).toString('hex'), |
|
bytewise.encode(expected).toString('hex') |
|
); |
|
t.end(); |
|
}); |
|
|
|
tape('sorts with same order when encoded', function (t) { |
|
var decoded = shuffled |
|
.map(bytewise.encode) |
|
.sort(bytewise.compare) |
|
.map(bytewise.decode); |
|
|
|
t.equal( |
|
bytewise.encode(decoded).toString('hex'), |
|
bytewise.encode(expected).toString('hex') |
|
); |
|
t.end(); |
|
});
|
|
|