File: primes_test.py

package info (click to toggle)
kiwi 10.2.41-1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 7,592 kB
  • sloc: python: 69,585; sh: 4,230; xml: 3,386; ansic: 391; makefile: 360
file content (32 lines) | stat: -rw-r--r-- 1,023 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
from pytest import mark

from kiwi.utils.primes import primes, factors


class TestPrimes:
    @mark.parametrize('highest,number,tail', [
        [10, 4, [3, 5, 7]],
        [11, 5, [5, 7, 11]],
        [100, 25, [83, 89, 97]],
        [1000, 168, [983, 991, 997]],
        [8192, 1028, [8171, 8179, 8191]],
        [9000, 1117, [8969, 8971, 8999]]])
    def test_primes(self, highest, number, tail):
        _primes = list(primes(highest))
        assert number == len(_primes)
        assert tail == _primes[-3:]

    @mark.parametrize('number,threshold,result', [
        [1, None, []],
        [3, None, [3]],
        [21, None, [3, 7]],
        [100, None, [2, 2, 5, 5]],
        [1000, None, [2, 2, 2, 5, 5, 5]],
        [8191, None, [8191]],
        [8191, 8192, [8191]],
        [8999, None, [8999]],
        [8999, 8192, []],
        [9000, None, [2, 2, 2, 3, 3, 5, 5, 5]]])
    def test_factors(self, number, threshold, result):
        _result = list(factors(number, threshold))
        assert result == _result