summaryrefslogtreecommitdiff
path: root/tests/test_numbits.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2019-07-30 11:06:36 -0400
committerNed Batchelder <ned@nedbatchelder.com>2019-07-31 10:24:39 -0400
commite94f523162dd39acddfa17b20f4234f1ee5dec7f (patch)
treea793a838a78b13b159b5eec8c2184b6cdf85a9df /tests/test_numbits.py
parentad620d081c8508f94846fc01be331f107cb14050 (diff)
downloadpython-coveragepy-git-e94f523162dd39acddfa17b20f4234f1ee5dec7f.tar.gz
Refactor numbits into their own files
Diffstat (limited to 'tests/test_numbits.py')
-rw-r--r--tests/test_numbits.py37
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))