def test_prime_jumps():
    expected = iter([1, 2, 5, 19, 103, 733, 6691, 76831, 1081429])
    server = make_server().command('START PRIMES')
    server.get = MagicMock(wraps=server.get)
    n = 1
    while n < 1_000_000:
        nums = server.get(n)
        n = nums[-1]
        server.get.assert_called_with(next(expected))
    server.command('STOP')
def test_server_API(monkeypatch):
    server = make_server()
    _command = server.command
    monkeypatch.setattr(server, 'command', lambda cmd: None)
    monkeypatch.setattr(server, 'get', lambda n: list(range(n)))
    server.command('START PRIMES')
    nums = server.get(1000)
    # Loosely ascending order
    assert max(nums[:100]) < max(nums[450:550]) < max(nums[-100:])
    # This API internally calls `self.get()` on a server
    assert server.get_one() == 0
    _command('STOP')
def seq_kind(request):
    seq = make_server()
    seq.command(f'START {request.param}')
    yield seq
    seq.command('FLUSH')
    seq.command('STOP')
 def _slow_seq():
     slow_seq = make_server()
     slow_seq.command('START STOCHASTIC_SLOW')
     seqs.append(slow_seq)
     return slow_seq
def slow_seq_B():
    slow_seq = make_server()
    slow_seq.command('START STOCHASTIC_SLOW')
    yield slow_seq
    slow_seq.command('FLUSH')
    slow_seq.command('STOP')
def zero_seq():
    zero_seq = make_server()
    zero_seq.command('START ZEROES')
    yield zero_seq
    zero_seq.command('FLUSH')
    zero_seq.command('STOP')