diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2019-07-30 11:06:36 -0400 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2019-07-31 10:24:39 -0400 |
commit | e94f523162dd39acddfa17b20f4234f1ee5dec7f (patch) | |
tree | a793a838a78b13b159b5eec8c2184b6cdf85a9df /tests/test_numbits.py | |
parent | ad620d081c8508f94846fc01be331f107cb14050 (diff) | |
download | python-coveragepy-git-e94f523162dd39acddfa17b20f4234f1ee5dec7f.tar.gz |
Refactor numbits into their own files
Diffstat (limited to 'tests/test_numbits.py')
-rw-r--r-- | tests/test_numbits.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/test_numbits.py b/tests/test_numbits.py new file mode 100644 index 00000000..b54f65df --- /dev/null +++ b/tests/test_numbits.py @@ -0,0 +1,37 @@ +# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0 +# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt + +"""Tests for coverage.numbits""" + +import random + +from coverage.numbits import nums_to_numbits, numbits_to_nums, merge_numbits + +from tests.coveragetest import CoverageTest + +class NumbitsOpTest(CoverageTest): + """Tests of the numbits operations in numbits.py.""" + + run_in_temp_dir = False + + def numbers(self, r): + """Produce a list of numbers from a Random object.""" + return list(set(r.randint(1, 1000) for _ in range(r.randint(100, 200)))) + + def test_conversion(self): + r = random.Random(1792) + for _ in range(10): + nums = self.numbers(r) + numbits = nums_to_numbits(nums) + self.assertEqual(sorted(numbits_to_nums(numbits)), sorted(nums)) + + def test_merging(self): + r = random.Random(314159) + for _ in range(10): + nums1 = self.numbers(r) + nums2 = self.numbers(r) + merged = numbits_to_nums(merge_numbits(nums_to_numbits(nums1), nums_to_numbits(nums2))) + all_nums = set() + all_nums.update(nums1) + all_nums.update(nums2) + self.assertEqual(sorted(all_nums), sorted(merged)) |