comunic/3rdparty/pdf.js/test/unit/ui_utils_spec.js

38 lines
1.3 KiB
JavaScript
Raw Normal View History

2016-11-19 11:08:12 +00:00
/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
/* globals expect, it, describe, binarySearchFirstItem */
'use strict';
describe('ui_utils', function() {
describe('binary search', function() {
function isTrue(boolean) {
return boolean;
}
function isGreater3(number) {
return number > 3;
}
it('empty array', function() {
expect(binarySearchFirstItem([], isTrue)).toEqual(0);
});
it('single boolean entry', function() {
expect(binarySearchFirstItem([false], isTrue)).toEqual(1);
expect(binarySearchFirstItem([true], isTrue)).toEqual(0);
});
it('three boolean entries', function() {
expect(binarySearchFirstItem([true, true, true], isTrue)).toEqual(0);
expect(binarySearchFirstItem([false, true, true], isTrue)).toEqual(1);
expect(binarySearchFirstItem([false, false, true], isTrue)).toEqual(2);
expect(binarySearchFirstItem([false, false, false], isTrue)).toEqual(3);
});
it('three numeric entries', function() {
expect(binarySearchFirstItem([0, 1, 2], isGreater3)).toEqual(3);
expect(binarySearchFirstItem([2, 3, 4], isGreater3)).toEqual(2);
expect(binarySearchFirstItem([4, 5, 6], isGreater3)).toEqual(0);
});
});
});