(self)
| 909 | |
| 910 | @unittest.skipUnless(_pylong, "_pylong module required") |
| 911 | def test_pylong_compute_powers(self): |
| 912 | # Basic sanity tests. See end of _pylong.py for manual heavy tests. |
| 913 | def consumer(w, base, limit, need_hi): |
| 914 | seen = set() |
| 915 | need = set() |
| 916 | def inner(w): |
| 917 | if w <= limit or w in seen: |
| 918 | return |
| 919 | seen.add(w) |
| 920 | lo = w >> 1 |
| 921 | hi = w - lo |
| 922 | need.add(hi if need_hi else lo) |
| 923 | inner(lo) |
| 924 | inner(hi) |
| 925 | inner(w) |
| 926 | d = _pylong.compute_powers(w, base, limit, need_hi=need_hi) |
| 927 | self.assertEqual(d.keys(), need) |
| 928 | for k, v in d.items(): |
| 929 | self.assertEqual(v, base ** k) |
| 930 | |
| 931 | for base in 2, 5: |
| 932 | for need_hi in False, True: |
| 933 | for limit in 1, 11: |
| 934 | for w in range(250, 550): |
| 935 | consumer(w, base, limit, need_hi) |
| 936 | |
| 937 | if __name__ == "__main__": |
| 938 | unittest.main() |
nothing calls this directly
no test coverage detected