forked from matplotlib/mplfinance
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_renko.py
122 lines (83 loc) · 3.29 KB
/
test_renko.py
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
import os
import os.path
import glob
import mplfinance as mpf
import matplotlib.pyplot as plt
from matplotlib.testing.compare import compare_images
print('mpf.__version__ =',mpf.__version__) # for the record
print("plt.rcParams['backend'] =",plt.rcParams['backend']) # for the record
base='renko'
tdir = os.path.join('tests','test_images')
refd = os.path.join('tests','reference_images')
globpattern = os.path.join(tdir,base+'*.png')
oldtestfiles = glob.glob(globpattern)
for fn in oldtestfiles:
try:
os.remove(fn)
except:
print('Error removing file "'+fn+'"')
# IMGCOMP_TOLERANCE = 7.0 # this works fine for linux
IMGCOMP_TOLERANCE = 11.0 # required for a windows pass. (really 10.25 may do it).
def test_renko01(bolldata):
df = bolldata
fname = base+'01.png'
tname = os.path.join(tdir,fname)
rname = os.path.join(refd,fname)
mpf.plot(df,type='renko',volume=True,savefig=tname)
tsize = os.path.getsize(tname)
print(glob.glob(tname),'[',tsize,'bytes',']')
rsize = os.path.getsize(rname)
print(glob.glob(rname),'[',rsize,'bytes',']')
result = compare_images(rname,tname,tol=IMGCOMP_TOLERANCE)
if result is not None:
print('result=',result)
assert result is None
def test_renko02(bolldata):
df = bolldata
fname = base+'02.png'
tname = os.path.join(tdir,fname)
rname = os.path.join(refd,fname)
mpf.plot(df,type='renko',renko_params=dict(brick_size=4),volume=True,savefig=tname)
tsize = os.path.getsize(tname)
print(glob.glob(tname),'[',tsize,'bytes',']')
rsize = os.path.getsize(rname)
print(glob.glob(rname),'[',rsize,'bytes',']')
result = compare_images(rname,tname,tol=IMGCOMP_TOLERANCE)
if result is not None:
print('result=',result)
assert result is None
def test_renko03(bolldata):
df = bolldata
fname = base+'03.png'
tname = os.path.join(tdir,fname)
rname = os.path.join(refd,fname)
mpf.plot(df,type='renko',renko_params=dict(brick_size='atr',atr_length=2),volume=True,savefig=tname)
tsize = os.path.getsize(tname)
print(glob.glob(tname),'[',tsize,'bytes',']')
rsize = os.path.getsize(rname)
print(glob.glob(rname),'[',rsize,'bytes',']')
result = compare_images(rname,tname,tol=IMGCOMP_TOLERANCE)
if result is not None:
print('result=',result)
assert result is None
def test_renko04(bolldata):
df = bolldata
fname = base+'04.png'
tname = os.path.join(tdir,fname)
rname = os.path.join(refd,fname)
mpf.plot(df,type='renko',renko_params=dict(brick_size='atr',atr_length='total'),mav=(8,20,30),volume=True,savefig=tname)
tsize = os.path.getsize(tname)
print(glob.glob(tname),'[',tsize,'bytes',']')
rsize = os.path.getsize(rname)
print(glob.glob(rname),'[',rsize,'bytes',']')
result = compare_images(rname,tname,tol=IMGCOMP_TOLERANCE)
if result is not None:
print('result=',result)
assert result is None
def test_renkovalues(bolldata):
df = bolldata
rcv = {}
mpf.plot(df,type='renko',return_calculated_values=rcv,returnfig=True)
# returnfig=True above only to prevent "UserWarning: Matplotlib is currently
# using agg, which is a non-GUI backend, so cannot show the figure."
assert rcv['renko_bricks'][-1] == 133.919998