From 2e9ad511d897939c70e33deea42ec6161815d064 Mon Sep 17 00:00:00 2001 From: David Glasser Date: Mon, 6 May 2013 20:46:07 -0700 Subject: [PATCH] Style cleanup, vars, etc. --- packages/minimongo/minimongo.js | 30 +++++----- packages/minimongo/minimongo_tests.js | 86 +++++++++++++-------------- 2 files changed, 55 insertions(+), 61 deletions(-) diff --git a/packages/minimongo/minimongo.js b/packages/minimongo/minimongo.js index b72370bd56..3195c13743 100644 --- a/packages/minimongo/minimongo.js +++ b/packages/minimongo/minimongo.js @@ -694,32 +694,32 @@ LocalCollection._findInOrderedResults = function (query, doc) { throw Error("object missing from query"); }; -//This binary search puts a value between any equal values, and the first -//lesser value. This is to match the previous insertion behaviour of comparing -//each element and inserting it as soon as it compares less than the -//encountered value. +// This binary search puts a value between any equal values, and the first +// lesser value. This is to match the previous insertion behaviour of comparing +// each element and inserting it as soon as it compares less than the +// encountered value. LocalCollection._binarySearch = function (cmp, array, value) { - if (array.length == 0) return 0; - lower = 0; - upper = array.length - 1; + if (array.length === 0) return 0; + var lower = 0; + var upper = array.length - 1; while (lower <= upper) { - idx = Math.floor( (lower + upper) / 2 ); - comparison = cmp(value, array[idx]); - //console.log("lower:"+lower + " upper:" + upper + " idx:"+idx +" c:"+comparison); - if (lower == upper) { + var idx = Math.floor( (lower + upper) / 2 ); + var comparison = cmp(value, array[idx]); + if (lower === upper) { if (comparison >= 0) idx++; return idx; } - if ( comparison < 0 ) + if (comparison < 0) upper = idx; else lower = idx + 1; } - return idx; -} + // The loop should always end with the lower === upper case. + throw new Error("shouldn't happen"); +}; LocalCollection._insertInSortedList = function (cmp, array, value) { if (array.length === 0) { @@ -727,7 +727,7 @@ LocalCollection._insertInSortedList = function (cmp, array, value) { return 0; } - idx = LocalCollection._binarySearch (cmp, array, value) + var idx = LocalCollection._binarySearch(cmp, array, value); array.splice(idx, 0, value); return idx; }; diff --git a/packages/minimongo/minimongo_tests.js b/packages/minimongo/minimongo_tests.js index 3feaf0477f..0cdb417013 100644 --- a/packages/minimongo/minimongo_tests.js +++ b/packages/minimongo/minimongo_tests.js @@ -1049,66 +1049,60 @@ Tinytest.add("minimongo - array sort", function (test) { }); Tinytest.add("minimongo - binary search", function (test) { - var forward_cmp = function (a, b) { - if (a < b) - return -1; - else if (b < a) - return 1; - else - return 0; + var forwardCmp = function (a, b) { + return a - b; }; - var backward_cmp = function (a, b) { - return -1 * forward_cmp(a, b); + var backwardCmp = function (a, b) { + return -1 * forwardCmp(a, b); }; - var check_search = function (cmp, array, value, expected, message) { - actual = LocalCollection._binarySearch(cmp, array, value); + var checkSearch = function (cmp, array, value, expected, message) { + var actual = LocalCollection._binarySearch(cmp, array, value); if (expected != actual) { test.fail({type: "minimongo-binary-search", - message: message + " : Expected index " + expected + - " but had " + actual + message: message + " : Expected index " + expected + + " but had " + actual }); } }; - var check_search_forward = function (array, value, expected, message) { - check_search(forward_cmp, array, value, expected, message); + var checkSearchForward = function (array, value, expected, message) { + checkSearch(forwardCmp, array, value, expected, message); } - var check_search_backward = function (array, value, expected, message) { - check_search(backward_cmp, array, value, expected, message); + var checkSearchBackward = function (array, value, expected, message) { + checkSearch(backwardCmp, array, value, expected, message); } - check_search_forward([1, 2, 5, 7], 4, 2, "Inner insert"); - check_search_forward([1, 2, 3, 4], 3, 3, "Inner insert, equal value"); - check_search_forward([1, 2, 5], 4, 2, "Inner insert, odd length"); - check_search_forward([1, 3, 5, 6], 9, 4, "End insert"); - check_search_forward([1, 3, 5, 6], 0, 0, "Beginning insert"); - check_search_forward([1], 0, 0, "Single array, less than."); - check_search_forward([1], 1, 1, "Single array, equal."); - check_search_forward([1], 2, 1, "Single array, greater than."); - check_search_forward([], 1, 0, "Empty array"); - check_search_forward([1, 1, 1, 2, 2, 2, 2], 1, 3, "Highly degenerate array, lower"); - check_search_forward([1, 1, 1, 2, 2, 2, 2], 2, 7, "Highly degenerate array, upper"); - check_search_forward([2, 2, 2, 2, 2, 2, 2], 1, 0, "Highly degenerate array, lower"); - check_search_forward([2, 2, 2, 2, 2, 2, 2], 2, 7, "Highly degenerate array, equal"); - check_search_forward([2, 2, 2, 2, 2, 2, 2], 3, 7, "Highly degenerate array, upper"); - - check_search_backward([7, 5, 2, 1], 4, 2, "Backward: Inner insert"); - check_search_backward([4, 3, 2, 1], 3, 2, "Backward: Inner insert, equal value"); - check_search_backward([5, 2, 1], 4, 1, "Backward: Inner insert, odd length"); - check_search_backward([6, 5, 3, 1], 9, 0, "Backward: Beginning insert"); - check_search_backward([6, 5, 3, 1], 0, 4, "Backward: End insert"); - check_search_backward([1], 0, 1, "Backward: Single array, less than."); - check_search_backward([1], 1, 1, "Backward: Single array, equal."); - check_search_backward([1], 2, 0, "Backward: Single array, greater than."); - check_search_backward([], 1, 0, "Backward: Empty array"); - check_search_backward([2, 2, 2, 2, 1, 1, 1], 1, 7, "Backward: Degenerate array, lower"); - check_search_backward([2, 2, 2, 2, 1, 1, 1], 2, 4, "Backward: Degenerate array, upper"); - check_search_backward([2, 2, 2, 2, 2, 2, 2], 1, 7, "Backward: Highly degenerate array, upper"); - check_search_backward([2, 2, 2, 2, 2, 2, 2], 2, 7, "Backward: Highly degenerate array, upper"); - check_search_backward([2, 2, 2, 2, 2, 2, 2], 3, 0, "Backward: Highly degenerate array, upper"); + checkSearchForward([1, 2, 5, 7], 4, 2, "Inner insert"); + checkSearchForward([1, 2, 3, 4], 3, 3, "Inner insert, equal value"); + checkSearchForward([1, 2, 5], 4, 2, "Inner insert, odd length"); + checkSearchForward([1, 3, 5, 6], 9, 4, "End insert"); + checkSearchForward([1, 3, 5, 6], 0, 0, "Beginning insert"); + checkSearchForward([1], 0, 0, "Single array, less than."); + checkSearchForward([1], 1, 1, "Single array, equal."); + checkSearchForward([1], 2, 1, "Single array, greater than."); + checkSearchForward([], 1, 0, "Empty array"); + checkSearchForward([1, 1, 1, 2, 2, 2, 2], 1, 3, "Highly degenerate array, lower"); + checkSearchForward([1, 1, 1, 2, 2, 2, 2], 2, 7, "Highly degenerate array, upper"); + checkSearchForward([2, 2, 2, 2, 2, 2, 2], 1, 0, "Highly degenerate array, lower"); + checkSearchForward([2, 2, 2, 2, 2, 2, 2], 2, 7, "Highly degenerate array, equal"); + checkSearchForward([2, 2, 2, 2, 2, 2, 2], 3, 7, "Highly degenerate array, upper"); + checkSearchBackward([7, 5, 2, 1], 4, 2, "Backward: Inner insert"); + checkSearchBackward([4, 3, 2, 1], 3, 2, "Backward: Inner insert, equal value"); + checkSearchBackward([5, 2, 1], 4, 1, "Backward: Inner insert, odd length"); + checkSearchBackward([6, 5, 3, 1], 9, 0, "Backward: Beginning insert"); + checkSearchBackward([6, 5, 3, 1], 0, 4, "Backward: End insert"); + checkSearchBackward([1], 0, 1, "Backward: Single array, less than."); + checkSearchBackward([1], 1, 1, "Backward: Single array, equal."); + checkSearchBackward([1], 2, 0, "Backward: Single array, greater than."); + checkSearchBackward([], 1, 0, "Backward: Empty array"); + checkSearchBackward([2, 2, 2, 2, 1, 1, 1], 1, 7, "Backward: Degenerate array, lower"); + checkSearchBackward([2, 2, 2, 2, 1, 1, 1], 2, 4, "Backward: Degenerate array, upper"); + checkSearchBackward([2, 2, 2, 2, 2, 2, 2], 1, 7, "Backward: Highly degenerate array, upper"); + checkSearchBackward([2, 2, 2, 2, 2, 2, 2], 2, 7, "Backward: Highly degenerate array, upper"); + checkSearchBackward([2, 2, 2, 2, 2, 2, 2], 3, 0, "Backward: Highly degenerate array, upper"); }); Tinytest.add("minimongo - modify", function (test) {