From 2d7ad503f60f982d6431870663238a76e5a28b56 Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Thu, 1 Aug 2019 10:56:21 -0400 Subject: Fix a bug in num_in_numbits. --- coverage/numbits.py | 2 +- tests/test_numbits.py | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/coverage/numbits.py b/coverage/numbits.py index c044073c..abe40f41 100644 --- a/coverage/numbits.py +++ b/coverage/numbits.py @@ -51,6 +51,6 @@ def numbits_any_intersection(numbits1, numbits2): def num_in_numbits(num, numbits): """Does the integer `num` appear in `numbits`?""" nbyte, nbit = divmod(num, 8) - if nbyte > len(numbits): + if nbyte >= len(numbits): return False return bool(byte_to_int(numbits[nbyte]) & (1 << nbit)) diff --git a/tests/test_numbits.py b/tests/test_numbits.py index 27b79d02..a556869b 100644 --- a/tests/test_numbits.py +++ b/tests/test_numbits.py @@ -3,7 +3,7 @@ """Tests for coverage.numbits""" -from hypothesis import given, settings +from hypothesis import example, given, settings from hypothesis.strategies import sets, integers from coverage import env @@ -52,6 +52,7 @@ class NumbitsOpTest(CoverageTest): @given(line_numbers, line_number_sets) @settings(default_settings) + @example(152, {144}) def test_num_in_numbits(self, num, nums): numbits = nums_to_numbits(nums) is_in = num_in_numbits(num, numbits) -- cgit v1.2.1