|
1 |
| -import plotly |
2 |
| -from plotly.graph_objs import * |
| 1 | +from unittest import TestCase |
| 2 | +from plotly.graph_objs import graph_objs, Scatter, Data, Marker, Line, Trace |
| 3 | +from plotly.exceptions import PlotlyError |
| 4 | + |
| 5 | +import plotly.plotly as py |
3 | 6 | import plotly.tools as tls
|
4 | 7 | from nose.tools import raises
|
5 |
| -import numpy as np |
6 | 8 |
|
7 | 9 |
|
8 |
| -@raises(Exception) |
9 |
| -def unequal_xy_length(): |
| 10 | +@raises(PlotlyError) |
| 11 | +def test_unequal_xy_length(): |
10 | 12 | data = tls.Quiver(x=[1, 2], y=[1], u=[1, 2], v=[1, 2])
|
11 | 13 |
|
12 | 14 |
|
13 |
| -@raises(Exception) |
14 |
| -def unequal_uv_length(): |
15 |
| - data = tls.Quiver(x=[1, 2], y=[1, 3], u=[1], v=[1, 2]) |
16 |
| - |
17 |
| - |
18 |
| -@raises(Exception) |
19 |
| -def test_wrong_kwarg(): |
20 |
| - data = tls.Quiver(stuff='not gonna work') |
21 |
| - |
22 |
| - |
23 |
| -def test_one_arrow(): |
24 |
| - nan = np.nan |
25 |
| - trace1 = Scatter( |
26 |
| - x=[0., 1., nan], |
27 |
| - y=[0., 1., nan], |
28 |
| - mode='lines', |
29 |
| - name='Barb', |
30 |
| - line=Line(color='rgb(114, 132, 314)', width=1) |
31 |
| - ) |
32 |
| - trace2 = Scatter( |
33 |
| - x=[0.82069826, 1., 0.61548617, nan], |
34 |
| - y=[0.61548617, 1., 0.82069826, nan], |
35 |
| - mode='lines', |
36 |
| - name='Arrow', |
37 |
| - line=Line(color='rgb(114, 132, 314)', width=1) |
38 |
| - ) |
39 |
| - expected = Data([trace1, trace2]) |
40 |
| - |
41 |
| - data = tls.Quiver(x=[0], y=[0], u=[1], v=[1], scale=1) |
42 |
| - |
43 |
| - np.testing.assert_almost_equal(data[0]['y'], expected[0]['y']) |
44 |
| - np.testing.assert_almost_equal(data[0]['x'], expected[0]['x']) |
45 |
| - np.testing.assert_almost_equal(data[1]['y'], expected[1]['y']) |
46 |
| - np.testing.assert_almost_equal(data[1]['x'], expected[1]['x']) |
47 |
| - assert data[0].keys() == expected[0].keys() |
48 |
| - |
49 |
| - |
50 |
| -def test_complicated(): |
51 |
| - nan = np.nan |
52 |
| - trace1 = Scatter( |
53 |
| - x=[0.0, 0.5, nan, 0.0, 0.5, nan, 0.0, 0.5, nan, 0.0, 0.5, nan, 0.0, |
54 |
| - .5, nan, 0.0, 0.5, nan, 0.0, 0.5, nan, 0.5, 0.9387912809451864, |
55 |
| - nan, 0.5, 0.9387912809451864, nan, 0.5, 0.9387912809451864, nan, |
56 |
| - 0.5, 0.9387912809451864, nan, 0.5, 0.9387912809451864, nan, 0.5, |
57 |
| - 0.9387912809451864, nan, 0.5, 0.9387912809451864, nan, 1.0, |
58 |
| - 1.2701511529340699, nan, 1.0, 1.2701511529340699, nan, 1.0, |
59 |
| - 1.2701511529340699, nan, 1.0, 1.2701511529340699, nan, 1.0, |
60 |
| - 1.2701511529340699, nan, 1.0, 1.2701511529340699, nan, 1.0, |
61 |
| - 1.2701511529340699, nan, 1.5, 1.5353686008338514, nan, 1.5, |
62 |
| - 1.5353686008338514, nan, 1.5, 1.5353686008338514, nan, 1.5, |
63 |
| - 1.5353686008338514, nan, 1.5, 1.5353686008338514, nan, 1.5, |
64 |
| - 1.5353686008338514, nan, 1.5, 1.5353686008338514, nan, 2.0, |
65 |
| - 1.7919265817264287, nan, 2.0, 1.7919265817264287, nan, 2.0, |
66 |
| - 1.7919265817264287, nan, 2.0, 1.7919265817264287, nan, 2.0, |
67 |
| - 1.7919265817264287, nan, 2.0, 1.7919265817264287, nan, 2.0, |
68 |
| - 1.7919265817264287, nan, 2.5, 2.099428192226533, nan, 2.5, |
69 |
| - 2.099428192226533, nan, 2.5, 2.099428192226533, nan, 2.5, |
70 |
| - 2.099428192226533, nan, 2.5, 2.099428192226533, nan, 2.5, |
71 |
| - 2.099428192226533, nan, 2.5, 2.099428192226533, nan, 3.0, |
72 |
| - 2.5050037516997774, nan, 3.0, 2.5050037516997774, nan, 3.0, |
73 |
| - 2.5050037516997774, nan, 3.0, 2.5050037516997774, nan, 3.0, |
74 |
| - 2.5050037516997774, nan, 3.0, 2.5050037516997774, nan, 3.0, |
75 |
| - 2.5050037516997774, nan], |
76 |
| - y=[0.0, 0.0, nan, 0.5, 0.7397127693021015, nan, 1.0, |
77 |
| - 1.4207354924039484, nan, 1.5, 1.9987474933020273, nan, 2.0, |
78 |
| - 2.454648713412841, nan, 2.5, 2.799236072051978, nan, 3.0, |
79 |
| - 3.0705600040299337, nan, 0.0, 0.0, nan, 0.5, 0.7397127693021015, |
80 |
| - nan, 1.0, 1.4207354924039484, nan, 1.5, 1.9987474933020273, nan, |
81 |
| - 2.0, 2.454648713412841, nan, 2.5, 2.799236072051978, nan, 3.0, |
82 |
| - 3.0705600040299337, nan, 0.0, 0.0, nan, 0.5, 0.7397127693021015, |
83 |
| - nan, 1.0, 1.4207354924039484, nan, 1.5, 1.9987474933020273, nan, |
84 |
| - 2.0, 2.454648713412841, nan, 2.5, 2.799236072051978, nan, 3.0, |
85 |
| - 3.0705600040299337, nan, 0.0, 0.0, nan, 0.5, 0.7397127693021015, |
86 |
| - nan, 1.0, 1.4207354924039484, nan, 1.5, 1.9987474933020273, nan, |
87 |
| - 2.0, 2.454648713412841, nan, 2.5, 2.799236072051978, nan, 3.0, |
88 |
| - 3.0705600040299337, nan, 0.0, 0.0, nan, 0.5, 0.7397127693021015, |
89 |
| - nan, 1.0, 1.4207354924039484, nan, 1.5, 1.9987474933020273, nan, |
90 |
| - 2.0, 2.454648713412841, nan, 2.5, 2.799236072051978, nan, 3.0, |
91 |
| - 3.0705600040299337, nan, 0.0, 0.0, nan, 0.5, 0.7397127693021015, |
92 |
| - nan, 1.0, 1.4207354924039484, nan, 1.5, 1.9987474933020273, nan, |
93 |
| - 2.0, 2.454648713412841, nan, 2.5, 2.799236072051978, nan, 3.0, |
94 |
| - 3.0705600040299337, nan, 0.0, 0.0, nan, 0.5, 0.7397127693021015, |
95 |
| - nan, 1.0, 1.4207354924039484, nan, 1.5, 1.9987474933020273, nan, |
96 |
| - 2.0, 2.454648713412841, nan, 2.5, 2.799236072051978, nan, 3.0, |
97 |
| - 3.0705600040299337, nan], |
98 |
| - mode='lines', |
99 |
| - name='Barb', |
100 |
| - line=Line(color='rgb(114, 132, 314)', width=2) |
101 |
| - ) |
102 |
| - trace2 = Scatter( |
103 |
| - x=[0.38451505843608913, 0.5, 0.38451505843608913, nan, |
104 |
| - 0.40744858477065643, 0.5, 0.3615815321015219, nan, |
105 |
| - 0.4247671840238289, 0.5, 0.3442629328483494, nan, |
106 |
| - 0.43223065909116526, 0.5, 0.33679945778101306, nan, |
107 |
| - 0.42801169097838865, 0.5, 0.3410184258937896, nan, |
108 |
| - 0.4131432302211637, 0.5, 0.3558868866510146, nan, |
109 |
| - 0.39126559456855653, 0.5, 0.37776452230362173, nan, |
110 |
| - 0.8374437100677695, 0.9387912809451864, 0.8374437100677695, nan, |
111 |
| - 0.8603772364023368, 0.9387912809451864, 0.8145101837332023, nan, |
112 |
| - 0.8776958356555092, 0.9387912809451864, 0.7971915844800297, nan, |
113 |
| - 0.8851593107228456, 0.9387912809451864, 0.7897281094126934, nan, |
114 |
| - 0.880940342610069, 0.9387912809451864, 0.79394707752547, nan, |
115 |
| - 0.8660718818528441, 0.9387912809451864, 0.8088155382826949, nan, |
116 |
| - 0.8441942462002369, 0.9387912809451864, 0.8306931739353021, nan, |
117 |
| - 1.2077543727140414, 1.2701511529340699, 1.2077543727140414, nan, |
118 |
| - 1.2306878990486088, 1.2701511529340699, 1.1848208463794743, nan, |
119 |
| - 1.2480064983017813, 1.2701511529340699, 1.1675022471263017, nan, |
120 |
| - 1.2554699733691175, 1.2701511529340699, 1.1600387720589653, nan, |
121 |
| - 1.251251005256341, 1.2701511529340699, 1.164257740171742, nan, |
122 |
| - 1.236382544499116, 1.2701511529340699, 1.179126200928967, nan, |
123 |
| - 1.214504908846509, 1.2701511529340699, 1.201003836581574, nan, |
124 |
| - 1.5271995192328622, 1.5353686008338514, 1.5271995192328622, nan, |
125 |
| - 1.5501330455674294, 1.5353686008338514, 1.5042659928982949, nan, |
126 |
| - 1.567451644820602, 1.5353686008338514, 1.4869473936451223, nan, |
127 |
| - 1.5749151198879383, 1.5353686008338514, 1.4794839185777862, nan, |
128 |
| - 1.5706961517751616, 1.5353686008338514, 1.4837028866905626, nan, |
129 |
| - 1.5558276910179367, 1.5353686008338514, 1.4985713474477875, nan, |
130 |
| - 1.5339500553653296, 1.5353686008338514, 1.5204489831003947, nan, |
131 |
| - 1.8399852748270817, 1.7919265817264287, 1.8399852748270817, nan, |
132 |
| - 1.862918801161649, 1.7919265817264287, 1.8170517484925146, nan, |
133 |
| - 1.8802374004148217, 1.7919265817264287, 1.799733149239342, nan, |
134 |
| - 1.887700875482158, 1.7919265817264287, 1.7922696741720057, nan, |
135 |
| - 1.8834819073693814, 1.7919265817264287, 1.7964886422847823, nan, |
136 |
| - 1.8686134466121564, 1.7919265817264287, 1.8113571030420073, nan, |
137 |
| - 1.8467358109595493, 1.7919265817264287, 1.8332347386946144, nan, |
138 |
| - 2.1919482158522707, 2.099428192226533, 2.1919482158522707, nan, |
139 |
| - 2.2148817421868383, 2.099428192226533, 2.1690146895177036, nan, |
140 |
| - 2.2322003414400107, 2.099428192226533, 2.1516960902645312, nan, |
141 |
| - 2.2396638165073472, 2.099428192226533, 2.1442326151971947, nan, |
142 |
| - 2.2354448483945704, 2.099428192226533, 2.1484515833099715, nan, |
143 |
| - 2.2205763876373457, 2.099428192226533, 2.1633200440671962, nan, |
144 |
| - 2.1986987519847383, 2.099428192226533, 2.1851976797198036, nan, |
145 |
| - 2.61933297731839, 2.5050037516997774, 2.61933297731839, nan, |
146 |
| - 2.6422665036529573, 2.5050037516997774, 2.5963994509838226, nan, |
147 |
| - 2.6595851029061297, 2.5050037516997774, 2.5790808517306503, nan, |
148 |
| - 2.6670485779734663, 2.5050037516997774, 2.571617376663314, nan, |
149 |
| - 2.6628296098606894, 2.5050037516997774, 2.5758363447760906, nan, |
150 |
| - 2.6479611491034647, 2.5050037516997774, 2.5907048055333153, nan, |
151 |
| - 2.6260835134508573, 2.5050037516997774, 2.6125824411859226, nan |
152 |
| - ], |
153 |
| - y=[-0.04783542904563622, 0.0, 0.04783542904563622, nan, |
154 |
| - 0.6365109099465124, 0.7397127693021015, 0.7321817680377849, |
155 |
| - nan, 1.2757228358500456, 1.4207354924039484, 1.371393693941318, |
156 |
| - nan, 1.835716414018128, 1.9987474933020273, 1.9313872721094003, |
157 |
| - nan, 2.3018031241660264, 2.454648713412841, 2.397473982257299, |
158 |
| - nan, 2.682286122416868, 2.799236072051978, 2.7779569805081405, |
159 |
| - nan, 3.006427339100005, 3.0705600040299337, 3.1020981971912773, |
160 |
| - nan, -0.041979538370994586, 0.0, 0.041979538370994586, nan, |
161 |
| - 0.642366800621154, 0.7397127693021015, 0.7263258773631432, nan, |
162 |
| - 1.2815787265246874, 1.4207354924039484, 1.3655378032666765, |
163 |
| - nan, 1.8415723046927694, 1.9987474933020273, |
164 |
| - 1.9255313814347585, nan, 2.307659014840668, 2.454648713412841, |
165 |
| - 2.3916180915826573, nan, 2.6881420130915097, 2.799236072051978, |
166 |
| - 2.772101089833499, nan, 3.0122832297746465, 3.0705600040299337, |
167 |
| - 3.096242306516636, nan, -0.02584559261554904, 0.0, |
168 |
| - 0.02584559261554904, nan, 0.6585007463765996, |
169 |
| - 0.7397127693021015, 0.7101919316076977, nan, |
170 |
| - 1.2977126722801329, 1.4207354924039484, 1.349403857511231, nan, |
171 |
| - 1.857706250448215, 1.9987474933020273, 1.909397435679313, nan, |
172 |
| - 2.3237929605961134, 2.454648713412841, 2.375484145827212, nan, |
173 |
| - 2.704275958846955, 2.799236072051978, 2.7559671440780535, nan, |
174 |
| - 3.0284171755300924, 3.0705600040299337, 3.0801083607611903, |
175 |
| - nan, -0.003383744391262258, 0.0, 0.003383744391262258, nan, |
176 |
| - 0.6809625946008864, 0.7397127693021015, 0.6877300833834109, |
177 |
| - nan, 1.3201745205044197, 1.4207354924039484, |
178 |
| - 1.3269420092869442, nan, 1.8801680986725018, |
179 |
| - 1.9987474933020273, 1.8869355874550262, nan, |
180 |
| - 2.3462548088204005, 2.454648713412841, 2.3530222976029247, nan, |
181 |
| - 2.7267378070712422, 2.799236072051978, 2.7335052958537664, nan, |
182 |
| - 3.050879023754379, 3.0705600040299337, 3.0576465125369037, nan, |
183 |
| - 0.019906562472216813, 0.0, -0.019906562472216813, nan, |
184 |
| - 0.7042529014643655, 0.7397127693021015, 0.6644397765199318, |
185 |
| - nan, 1.3434648273678986, 1.4207354924039484, 1.303651702423465, |
186 |
| - nan, 1.903458405535981, 1.9987474933020273, 1.863645280591547, |
187 |
| - nan, 2.3695451156838794, 2.454648713412841, 2.329731990739446, |
188 |
| - nan, 2.750028113934721, 2.799236072051978, 2.7102149889902876, |
189 |
| - nan, 3.074169330617858, 3.0705600040299337, 3.0343562056734243, |
190 |
| - nan, 0.03832304857685983, 0.0, -0.03832304857685983, nan, |
191 |
| - 0.7226693875690084, 0.7397127693021015, 0.6460232904152888, |
192 |
| - nan, 1.3618813134725418, 1.4207354924039484, 1.285235216318822, |
193 |
| - nan, 1.9218748916406239, 1.9987474933020273, |
194 |
| - 1.8452287944869041, nan, 2.3879616017885223, 2.454648713412841, |
195 |
| - 2.311315504634803, nan, 2.768444600039364, 2.799236072051978, |
196 |
| - 2.6917985028856446, nan, 3.092585816722501, 3.0705600040299337, |
197 |
| - 3.0159397195687814, nan, 0.04735671582684286, 0.0, |
198 |
| - -0.04735671582684286, nan, 0.7317030548189914, |
199 |
| - 0.7397127693021015, 0.6369896231653058, nan, |
200 |
| - 1.3709149807225247, 1.4207354924039484, 1.276201549068839, nan, |
201 |
| - 1.9309085588906068, 1.9987474933020273, 1.8361951272369212, |
202 |
| - nan, 2.3969952690385052, 2.454648713412841, 2.30228183738482, |
203 |
| - nan, 2.7774782672893474, 2.799236072051978, 2.6827648356356617, |
204 |
| - nan, 3.101619483972484, 3.0705600040299337, 3.0069060523187985, |
205 |
| - nan], |
206 |
| - mode='lines', |
207 |
| - name='Arrow', |
208 |
| - line=Line(color='rgb(114, 132, 314)', width=3) |
209 |
| - ) |
210 |
| - expected = Data([trace1, trace2]) |
211 |
| - |
212 |
| - x, y = np.meshgrid(np.arange(0, np.pi, .5), np.arange(0, np.pi, .5)) |
213 |
| - u = np.cos(x) |
214 |
| - v = np.sin(y) |
215 |
| - data = tls.Quiver(x, y, u, v, scale=.5, angle=np.pi/8, |
216 |
| - arrow_scale=.25, barb_width=2, |
217 |
| - arrow_width=3) |
218 |
| - |
219 |
| - np.testing.assert_almost_equal(data[0]['y'], expected[0]['y']) |
220 |
| - np.testing.assert_almost_equal(data[0]['x'], expected[0]['x']) |
221 |
| - np.testing.assert_almost_equal(data[1]['y'], expected[1]['y']) |
222 |
| - np.testing.assert_almost_equal(data[1]['x'], expected[1]['x']) |
223 |
| - assert data[0].keys() == expected[0].keys() |
| 15 | +@raises(PlotlyError) |
| 16 | +def test_wrong_scale(): |
| 17 | + data = tls.Quiver(x=[1], y=[1], u=[1], v=[1], scale=0) |
| 18 | + |
| 19 | + |
| 20 | +@raises(PlotlyError) |
| 21 | +def test_wrong_arrow_scale(): |
| 22 | + data = tls.Quiver(x=[1], y=[1], u=[1], v=[1], arrow_scale=-1) |
| 23 | + |
| 24 | + |
| 25 | +class TestQuiver(TestCase): |
| 26 | + |
| 27 | + def test_one_arrow(self): |
| 28 | + self.assertAlmostEqual(tls.Quiver(x=[1], y=[1], u=[1], v=[1], scale=1), |
| 29 | + {'y': [1, 2, None, 1.615486170766527, 2, |
| 30 | + 1.820698256761928, None], 'x': [1, 2, None, |
| 31 | + 1.820698256761928, 2, 1.615486170766527, None], |
| 32 | + 'name': 'quiver', 'mode': 'lines'}) |
| 33 | + |
| 34 | + def test_more_kwargs(self): |
| 35 | + self.assertAlmostEqual(tls.Quiver(x=[1, 2], y=[1, 2], |
| 36 | + u=[math.cos(1), math.cos(2)], |
| 37 | + v=[math.sin(1), math.sin(2)], |
| 38 | + arrow_scale=.4, angle=math.pi/6, |
| 39 | + line=Line(color='purple', width=3)), |
| 40 | + {'name': 'quiver', 'mode': 'lines', 'y': [1, |
| 41 | + 1.0841470984807897, None, 2, |
| 42 | + 2.0909297426825684, None, 1.044191642387781, |
| 43 | + 1.0841470984807897, 1.0658037346225067, None, |
| 44 | + 2.0677536925644366, 2.0909297426825684, |
| 45 | + 2.051107819102551, None], 'x': [1, |
| 46 | + 1.0540302305868139, None, 2, |
| 47 | + 1.9583853163452858, None, 1.052143029378767, |
| 48 | + 1.0540302305868139, 1.0184841899864512, None, |
| 49 | + 1.9909870141679737, 1.9583853163452858, |
| 50 | + 1.9546151170949464, None], 'line': {'color': |
| 51 | + 'purple', 'width': 3}, 'type': 'scatter'}) |
0 commit comments