blob: fba6a6d49869a44df45ec70d6436e90e98480b5d (
plain)
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
33
34
35
36
|
import pytest
import random
import time
from decimal import Decimal
def bellardBig(n):
# http://en.wikipedia.org/wiki/Bellard%27s_formula
pi = Decimal(0)
k = 0
while k < n:
pi += (Decimal(-1) ** k / (1024 ** k)) * (
Decimal(256) / (10 * k + 1) +
Decimal(1) / (10 * k + 9) -
Decimal(64) / (10 * k + 3) -
Decimal(32) / (4 * k + 1) -
Decimal(4) / (10 * k + 5) -
Decimal(4) / (10 * k + 7) -
Decimal(1) / (4 * k + 3))
k += 1
pi = pi * 1 / (2 ** 6)
return pi
def test_long_operation(monitored_benchmark):
def _long_operation():
sleep = [random.uniform(0.5, 1.5) for _ in xrange(3)]
while sleep:
t = sleep.pop()
time.sleep(t)
bellardBig(int((10 ** 3) * t))
results = monitored_benchmark(_long_operation)
print results
|