Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit bed3bec

Browse filesBrowse files
committed
Lock down test_dendrogram_random_matrix test.
1 parent fc7ce40 commit bed3bec
Copy full SHA for bed3bec

File tree

Expand file treeCollapse file tree

1 file changed

+90
-2
lines changed
Filter options
Expand file treeCollapse file tree

1 file changed

+90
-2
lines changed

‎plotly/tests/test_optional/test_opt_tracefactory.py

Copy file name to clipboardExpand all lines: plotly/tests/test_optional/test_opt_tracefactory.py
+90-2Lines changed: 90 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -322,16 +322,104 @@ def test_default_dendrogram(self):
322322
self.assert_dict_equal(dendro['layout'], expected_dendro['layout'])
323323

324324
def test_dendrogram_random_matrix(self):
325+
325326
# create a random uncorrelated matrix
326327
X = np.random.rand(5, 5)
328+
327329
# variable 2 is correlated with all the other variables
328330
X[2, :] = sum(X, 0)
329331

330332
names = ['Jack', 'Oxana', 'John', 'Chelsea', 'Mark']
331333
dendro = tls.FigureFactory.create_dendrogram(X, labels=names)
332334

333-
# Check that 2 is in a separate cluster and it's labelled correctly
334-
self.assertEqual(dendro['layout']['xaxis']['ticktext'][0], 'John')
335+
expected_dendro = go.Figure(
336+
data=go.Data([
337+
go.Scatter(
338+
marker=go.Marker(color='rgb(61,153,112)'),
339+
mode='lines',
340+
xaxis='x',
341+
yaxis='y'
342+
),
343+
go.Scatter(
344+
marker=go.Marker(
345+
color='rgb(61,153,112)'
346+
),
347+
mode='lines',
348+
xaxis='x',
349+
yaxis='y'
350+
),
351+
go.Scatter(
352+
marker=go.Marker(color='rgb(61,153,112)'),
353+
mode='lines',
354+
xaxis='x',
355+
yaxis='y'
356+
),
357+
go.Scatter(
358+
marker=go.Marker(color='rgb(0,116,217)'),
359+
mode='lines',
360+
xaxis='x',
361+
yaxis='y'
362+
)
363+
]),
364+
layout=go.Layout(
365+
autosize=False,
366+
height='100%',
367+
hovermode='closest',
368+
showlegend=False,
369+
width='100%',
370+
xaxis=go.XAxis(
371+
mirror='allticks',
372+
rangemode='tozero',
373+
showgrid=False,
374+
showline=True,
375+
showticklabels=True,
376+
tickmode='array',
377+
ticks='outside',
378+
tickvals=[5.0, 15.0, 25.0, 35.0, 45.0],
379+
type='linear',
380+
zeroline=False
381+
),
382+
yaxis=go.YAxis(
383+
mirror='allticks',
384+
rangemode='tozero',
385+
showgrid=False,
386+
showline=True,
387+
showticklabels=True,
388+
ticks='outside',
389+
type='linear',
390+
zeroline=False
391+
)
392+
)
393+
)
394+
395+
self.assertEqual(len(dendro['data']), 4)
396+
397+
# it's random, so we can only check that the values aren't equal
398+
y_vals = [dendro['data'][0].pop('y'), dendro['data'][1].pop('y'),
399+
dendro['data'][2].pop('y'), dendro['data'][3].pop('y')]
400+
for i in range(len(y_vals)):
401+
for j in range(len(y_vals)):
402+
if i != j:
403+
self.assertFalse(np.allclose(y_vals[i], y_vals[j]))
404+
405+
x_vals = [dendro['data'][0].pop('x'), dendro['data'][1].pop('x'),
406+
dendro['data'][2].pop('x'), dendro['data'][3].pop('x')]
407+
for i in range(len(x_vals)):
408+
for j in range(len(x_vals)):
409+
if i != j:
410+
self.assertFalse(np.allclose(x_vals[i], x_vals[j]))
411+
412+
# we also need to check the ticktext manually
413+
xaxis_ticktext = dendro['layout']['xaxis'].pop('ticktext')
414+
self.assertEqual(xaxis_ticktext[0], 'John')
415+
416+
# this is actually a bit clearer when debugging tests.
417+
self.assert_dict_equal(dendro['data'][0], expected_dendro['data'][0])
418+
self.assert_dict_equal(dendro['data'][1], expected_dendro['data'][1])
419+
self.assert_dict_equal(dendro['data'][2], expected_dendro['data'][2])
420+
self.assert_dict_equal(dendro['data'][3], expected_dendro['data'][3])
421+
422+
self.assert_dict_equal(dendro['layout'], expected_dendro['layout'])
335423

336424
def test_dendrogram_orientation(self):
337425
X = np.random.rand(5, 5)

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.