text: 'use strict';
  
  var assert = require('assert');
  var timeSafeCompare = require('../../lib/index');
  
  process.on('error', function (e) {
  	console.log('caught: ' + e);
  });
  
  function testEqual(a, b) {
  	assert(timeSafeCompare(a, b));
  
  	// lets also do a parity check with the strict equal to operator
  	assert(a === b);
  }
  
  function testNotEqual(a, b) {
  	assert(!timeSafeCompare(a, b));
  
  	// lets also do a parity check with the strict not equal to operator
  	assert(a !== b);
  }
  
  // note: lets also make sure tsscmp can be inline replaced for any types -
  // just incase if anyone is interested
  
  // positive tests
  testEqual('127e6fbfe24a750e72930c220a8e138275656b8e5d8f48a98c3c92df2caba935',
  	'127e6fbfe24a750e72930c220a8e138275656b8e5d8f48a98c3c92df2caba935',
  	'test ');
  testEqual('a', 'a');
  testEqual('', '');
  testEqual(undefined, undefined);
  testEqual(true, true);
  testEqual(false, false);
  (function () {
  	var a = { a: 1 };
  	testEqual(a, a);
  })();
  (function () {
  	function f1() { return 1; };
  	testEqual(f1, f1);
  })();
  
  // negative tests
  testNotEqual('');
  testNotEqual('a', 'b');
  testNotEqual('a', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa');
  testNotEqual('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'a');
  testNotEqual('alpha', 'beta');
  testNotEqual(false, true);
  testNotEqual(false, undefined);
  testNotEqual(function () { }, function () { });
  testNotEqual({}, {});
  testNotEqual({ a: 1 }, { a: 1 });
  testNotEqual({ a: 1 }, { a: 2 });
  testNotEqual([1, 2], [1, 2]);
  testNotEqual([1, 2], [1, 2, 3]);
  (function () {
  	var a = { p: 1 };
  	var b = { p: 1 };
  	testNotEqual(a, b);
  })();
  (function () {
  	function f1() { return 1; };
  	function f2() { return 1; };
  	testNotEqual(f1, f2);
  })();
  console.log('Success: all tests complete.');
  