LCOV - code coverage report
Current view: top level - source_maps-0.10.4/lib/src - utils.dart (source / functions) Hit Total Coverage
Test: coverage.lcov Lines: 0 8 0.0 %
Date: 2017-10-10 20:17:03 Functions: 0 0 -

          Line data    Source code
       1             : // Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
       2             : // for details. All rights reserved. Use of this source code is governed by a
       3             : // BSD-style license that can be found in the LICENSE file.
       4             : 
       5             : /// Utilities that shouldn't be in this package.
       6             : library source_maps.utils;
       7             : 
       8             : /// Find the first entry in a sorted [list] that matches a monotonic predicate.
       9             : /// Given a result `n`, that all items before `n` will not match, `n` matches,
      10             : /// and all items after `n` match too. The result is -1 when there are no
      11             : /// items, 0 when all items match, and list.length when none does.
      12             : // TODO(sigmund): remove this function after dartbug.com/5624 is fixed.
      13             : int binarySearch(List list, bool matches(item)) {
      14           0 :   if (list.length == 0) return -1;
      15           0 :   if (matches(list.first)) return 0;
      16           0 :   if (!matches(list.last)) return list.length;
      17             : 
      18             :   int min = 0;
      19           0 :   int max = list.length - 1;
      20           0 :   while (min < max) {
      21           0 :     var half = min + ((max - min) ~/ 2);
      22           0 :     if (matches(list[half])) {
      23             :       max = half;
      24             :     } else {
      25           0 :       min = half + 1;
      26             :     }
      27             :   }
      28             :   return max;
      29             : }

Generated by: LCOV version 1.13