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