serverless-spy
Version:
CDK-based library for writing elegant integration tests on AWS serverless architecture and an additional web console to monitor events in real time.
80 lines (64 loc) • 1.3 kB
JavaScript
/**
* Mnemonist Heap Comparators
* ===========================
*
* Default comparators & functions dealing with comparators reversing etc.
*/
var DEFAULT_COMPARATOR = function(a, b) {
if (a < b)
return -1;
if (a > b)
return 1;
return 0;
};
var DEFAULT_REVERSE_COMPARATOR = function(a, b) {
if (a < b)
return 1;
if (a > b)
return -1;
return 0;
};
/**
* Function used to reverse a comparator.
*/
function reverseComparator(comparator) {
return function(a, b) {
return comparator(b, a);
};
}
/**
* Function returning a tuple comparator.
*/
function createTupleComparator(size) {
if (size === 2) {
return function(a, b) {
if (a[0] < b[0])
return -1;
if (a[0] > b[0])
return 1;
if (a[1] < b[1])
return -1;
if (a[1] > b[1])
return 1;
return 0;
};
}
return function(a, b) {
var i = 0;
while (i < size) {
if (a[i] < b[i])
return -1;
if (a[i] > b[i])
return 1;
i++;
}
return 0;
};
}
/**
* Exporting.
*/
exports.DEFAULT_COMPARATOR = DEFAULT_COMPARATOR;
exports.DEFAULT_REVERSE_COMPARATOR = DEFAULT_REVERSE_COMPARATOR;
exports.reverseComparator = reverseComparator;
exports.createTupleComparator = createTupleComparator;