var assert = require('assert'),

nodeuuid = require('../uuid'),
uuidjs = require('uuid-js'),
libuuid = require('uuid').generate,
util = require('util'),
exec = require('child_process').exec,
os = require('os');

// On Mac Os X / macports there's only the ossp-uuid package that provides uuid // On Linux there's uuid-runtime which provides uuidgen var uuidCmd = os.type() === 'Darwin' ? 'uuid -1' : 'uuidgen -t';

function compare(ids) {

console.log(ids);
for (var i = 0; i < ids.length; i++) {
  var id = ids[i].split('-');
  id = [id[2], id[1], id[0]].join('');
  ids[i] = id;
}
var sorted = ([].concat(ids)).sort();

if (sorted.toString() !== ids.toString()) {
  console.log('Warning: sorted !== ids');
} else {
  console.log('everything in order!');
}

}

// Test time order of v1 uuids var ids = []; while (ids.length < 10e3) ids.push(nodeuuid.v1());

var max = 10; console.log('node-uuid:'); ids = []; for (var i = 0; i < max; i++) ids.push(nodeuuid.v1()); compare(ids);

console.log(''); console.log('uuidjs:'); ids = []; for (var i = 0; i < max; i++) ids.push(uuidjs.create(1).toString()); compare(ids);

console.log(''); console.log('libuuid:'); ids = []; var count = 0; var last = function() {

compare(ids);

} var cb = function(err, stdout, stderr) {

ids.push(stdout.substring(0, stdout.length-1));
count++;
if (count < max) {
  return next();
}
last();

}; var next = function() {

exec(uuidCmd, cb);

}; next();