Skip to content

Commit 223077d

Browse files
add some more fill_between tests
1 parent 2960904 commit 223077d

File tree

4 files changed

+86
-46
lines changed

4 files changed

+86
-46
lines changed
26.1 KB
Loading
28.3 KB
Loading
30.1 KB
Loading

tests/test_fill_between.py

Lines changed: 86 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -26,32 +26,39 @@
2626
# IMGCOMP_TOLERANCE = 7.0 # this works fine for linux
2727
IMGCOMP_TOLERANCE = 11.0 # required for a windows pass. (really 10.25 may do it).
2828

29-
def _get_scaled_down_dataset(bolldata):
29+
def _get_data_subset(bolldata,scaled_down=False):
3030
start = int(0.2*len(bolldata))
3131
end = 2*start
3232
df = bolldata.iloc[start:end]
33+
if not scaled_down:
34+
return df
3335
scaled_down_data = df/df['Close'].mean()
3436
scaled_down_data -= 0.9*scaled_down_data['Low'].min()
3537
return scaled_down_data
3638

39+
def _get_file_names(id):
40+
fname = base+id+'.png'
41+
tname = os.path.join(tdir,fname)
42+
rname = os.path.join(refd,fname)
43+
return fname,tname,rname
3744

38-
def test_fill_between01(bolldata):
45+
def _report_file_sizes(tname,rname):
46+
tsize = os.path.getsize(tname)
47+
print(glob.glob(tname),'[',tsize,'bytes',']')
48+
rsize = os.path.getsize(rname)
49+
print(glob.glob(rname),'[',rsize,'bytes',']')
3950

40-
scaled_down_data = _get_scaled_down_dataset(bolldata)
4151

42-
fname = base+'01.png'
43-
tname = os.path.join(tdir,fname)
44-
rname = os.path.join(refd,fname)
52+
def test_fill_between01(bolldata):
53+
54+
scaled_down_data = _get_data_subset(bolldata,True)
55+
fname,tname,rname = _get_file_names('01')
4556

4657
mpf.plot(scaled_down_data,figscale=0.7,
4758
fill_between=scaled_down_data['Close'].values,
4859
savefig=tname)
4960

50-
tsize = os.path.getsize(tname)
51-
print(glob.glob(tname),'[',tsize,'bytes',']')
52-
53-
rsize = os.path.getsize(rname)
54-
print(glob.glob(rname),'[',rsize,'bytes',']')
61+
_report_file_sizes(tname,rname)
5562

5663
result = compare_images(rname,tname,tol=IMGCOMP_TOLERANCE)
5764
if result is not None:
@@ -60,54 +67,87 @@ def test_fill_between01(bolldata):
6067

6168
def test_fill_between02(bolldata):
6269

63-
scaled_down_data = _get_scaled_down_dataset(bolldata)
64-
65-
fname = base+'02.png'
66-
tname = os.path.join(tdir,fname)
67-
rname = os.path.join(refd,fname)
70+
scaled_down_data = _get_data_subset(bolldata,True)
71+
fname,tname,rname = _get_file_names('02')
6872

6973
mpf.plot(scaled_down_data,figscale=0.7,
7074
fill_between={'y1':scaled_down_data['Close'].values,'alpha':0.75},
7175
savefig=tname)
7276

73-
tsize = os.path.getsize(tname)
74-
print(glob.glob(tname),'[',tsize,'bytes',']')
77+
_report_file_sizes(tname,rname)
7578

76-
rsize = os.path.getsize(rname)
77-
print(glob.glob(rname),'[',rsize,'bytes',']')
79+
result = compare_images(rname,tname,tol=IMGCOMP_TOLERANCE)
80+
if result is not None:
81+
print('result=',result)
82+
assert result is None
83+
84+
def test_fill_between03(bolldata):
85+
86+
df = _get_data_subset(bolldata)
87+
fname,tname,rname = _get_file_names('03')
88+
89+
mpf.plot(df,figscale=0.7,
90+
fill_between=dict(y1=df['Close'].mean(),
91+
y2=df['Close'].values,
92+
alpha=0.67),
93+
type='candle',style='yahoo',savefig=tname)
94+
95+
_report_file_sizes(tname,rname)
7896

7997
result = compare_images(rname,tname,tol=IMGCOMP_TOLERANCE)
8098
if result is not None:
8199
print('result=',result)
82100
assert result is None
83101

102+
def test_fill_between04(bolldata):
103+
104+
df = _get_data_subset(bolldata)
105+
fname,tname,rname = _get_file_names('04')
106+
107+
fb_above=dict(y1=df['Close'].mean(),
108+
y2=df['Close'].values,
109+
alpha=0.5,
110+
color='lime',
111+
where=((df['Close'] > df['Close'].mean()).values)
112+
)
113+
114+
fb_below=dict(y1=df['Close'].mean(),
115+
y2=df['Close'].values,
116+
alpha=0.5,
117+
color='magenta',
118+
where=((df['Close'] < df['Close'].mean()).values)
119+
)
120+
121+
mpf.plot(df,figscale=0.7,
122+
fill_between=[fb_above,fb_below],
123+
type='candle',style='yahoo',savefig=tname)
124+
125+
_report_file_sizes(tname,rname)
126+
127+
result = compare_images(rname,tname,tol=IMGCOMP_TOLERANCE)
128+
if result is not None:
129+
print('result=',result)
130+
131+
def test_fill_between05(bolldata):
132+
133+
df = _get_data_subset(bolldata)
134+
fname,tname,rname = _get_file_names('05')
135+
136+
mpf.plot(df,figscale=0.7,
137+
fill_between=dict(y1=df['Low'].values,
138+
y2=df['High'].values,
139+
alpha=0.33),
140+
type='candle',style='yahoo',savefig=tname)
141+
142+
_report_file_sizes(tname,rname)
143+
144+
result = compare_images(rname,tname,tol=IMGCOMP_TOLERANCE)
145+
if result is not None:
146+
print('result=',result)
147+
assert result is None
148+
149+
84150

85-
## import pandas as pd
86-
##
87-
## # ### Read in daily data for the S&P 500 from November of 2019
88-
##
89-
## daily = pd.read_csv('data/SP500_NOV2019_Hist.csv',index_col=0,parse_dates=True)
90-
## daily.index.name = 'Date'
91-
## daily.shape
92-
## daily.head(3)
93-
##
94-
## import mplfinance as mpf
95-
## mpf.__version__
96-
##
97-
## print('''
98-
##
99-
## A single y-value or series **assumes** we fill between ZERO and that single y-value or series.
100-
##
101-
## Therefore, scale down the data, close to zero, so that we can demonstrate specifying
102-
## a single y-value, or single y-series for fill_between:
103-
##
104-
## ''')
105-
## scaled_down_data = (daily/3000)-1.0
106-
##
107-
## mpf.plot(scaled_down_data,figscale=0.7)
108-
## mpf.plot(scaled_down_data,figscale=0.7,fill_between=0.03)
109-
## mpf.plot(scaled_down_data,figscale=0.7,fill_between=scaled_down_data['Close'].values)
110-
##
111151
## print('''
112152
##
113153
## Use a dict to specify two y values, or two series, (y1 and y2) for `fill_between`:

0 commit comments

Comments
 (0)