77import unittest .mock as mock
88from plotly .express ._core import build_dataframe
99from pandas .testing import assert_frame_equal
10-
10+ from plotly . tests . b64 import b64 , _b64
1111
1212# Fixtures
1313# --------
@@ -26,8 +26,9 @@ def add_interchange_module_for_old_pandas():
2626
2727def test_numpy ():
2828 fig = px .scatter (x = [1 , 2 , 3 ], y = [2 , 3 , 4 ], color = [1 , 3 , 9 ])
29- assert np .all (fig .data [0 ].x == np .array ([1 , 2 , 3 ]))
30- assert np .all (fig .data [0 ].y == np .array ([2 , 3 , 4 ]))
29+
30+ assert np .all (fig .data [0 ].x == b64 (np .array ([1 , 2 , 3 ])))
31+ assert np .all (fig .data [0 ].y == b64 (np .array ([2 , 3 , 4 ])))
3132 assert np .all (fig .data [0 ].marker .color == np .array ([1 , 3 , 9 ]))
3233
3334
@@ -99,16 +100,16 @@ def test_several_dataframes():
99100 df = pd .DataFrame (dict (x = [0 , 1 ], y = [3 , 4 ]))
100101 df2 = pd .DataFrame (dict (x = [3 , 5 ], y = [23 , 24 ]))
101102 fig = px .scatter (x = df .y , y = df2 .y )
102- assert np .all (fig .data [0 ].x == np .array ([3 , 4 ]))
103- assert np .all (fig .data [0 ].y == np .array ([23 , 24 ]))
103+ assert np .all (fig .data [0 ].x == b64 ( np .array ([3 , 4 ]) ))
104+ assert np .all (fig .data [0 ].y == b64 ( np .array ([23 , 24 ]) ))
104105 assert fig .data [0 ].hovertemplate == "x=%{x}<br>y=%{y}<extra></extra>"
105106
106107 df = pd .DataFrame (dict (x = [0 , 1 ], y = [3 , 4 ]))
107108 df2 = pd .DataFrame (dict (x = [3 , 5 ], y = [23 , 24 ]))
108109 df3 = pd .DataFrame (dict (y = [0.1 , 0.2 ]))
109110 fig = px .scatter (x = df .y , y = df2 .y , size = df3 .y )
110- assert np .all (fig .data [0 ].x == np .array ([3 , 4 ]))
111- assert np .all (fig .data [0 ].y == np .array ([23 , 24 ]))
111+ assert np .all (fig .data [0 ].x == b64 ( np .array ([3 , 4 ]) ))
112+ assert np .all (fig .data [0 ].y == b64 ( np .array ([23 , 24 ]) ))
112113 assert (
113114 fig .data [0 ].hovertemplate
114115 == "x=%{x}<br>y=%{y}<br>size=%{marker.size}<extra></extra>"
@@ -118,8 +119,8 @@ def test_several_dataframes():
118119 df2 = pd .DataFrame (dict (x = [3 , 5 ], y = [23 , 24 ]))
119120 df3 = pd .DataFrame (dict (y = [0.1 , 0.2 ]))
120121 fig = px .scatter (x = df .y , y = df2 .y , hover_data = [df3 .y ])
121- assert np .all (fig .data [0 ].x == np .array ([3 , 4 ]))
122- assert np .all (fig .data [0 ].y == np .array ([23 , 24 ]))
122+ assert np .all (fig .data [0 ].x == b64 ( np .array ([3 , 4 ]) ))
123+ assert np .all (fig .data [0 ].y == b64 ( np .array ([23 , 24 ]) ))
123124 assert (
124125 fig .data [0 ].hovertemplate
125126 == "x=%{x}<br>y=%{y}<br>hover_data_0=%{customdata[0]}<extra></extra>"
@@ -129,8 +130,8 @@ def test_several_dataframes():
129130def test_name_heuristics ():
130131 df = pd .DataFrame (dict (x = [0 , 1 ], y = [3 , 4 ], z = [0.1 , 0.2 ]))
131132 fig = px .scatter (df , x = df .y , y = df .x , size = df .y )
132- assert np .all (fig .data [0 ].x == np .array ([3 , 4 ]))
133- assert np .all (fig .data [0 ].y == np .array ([0 , 1 ]))
133+ assert np .all (fig .data [0 ].x == b64 ( np .array ([3 , 4 ]) ))
134+ assert np .all (fig .data [0 ].y == b64 ( np .array ([0 , 1 ]) ))
134135 assert fig .data [0 ].hovertemplate == "y=%{marker.size}<br>x=%{y}<extra></extra>"
135136
136137
@@ -401,27 +402,27 @@ def test_splom_case():
401402 assert len (fig .data [0 ].dimensions ) == len (iris .columns )
402403 dic = {"a" : [1 , 2 , 3 ], "b" : [4 , 5 , 6 ], "c" : [7 , 8 , 9 ]}
403404 fig = px .scatter_matrix (dic )
404- assert np .all (fig .data [0 ].dimensions [0 ].values == np .array (dic ["a" ]))
405+ assert np .all (fig .data [0 ].dimensions [0 ].values == b64 ( np .array (dic ["a" ]) ))
405406 ar = np .arange (9 ).reshape ((3 , 3 ))
406407 fig = px .scatter_matrix (ar )
407- assert np .all (fig .data [0 ].dimensions [0 ].values == ar [:, 0 ])
408+ assert np .all (fig .data [0 ].dimensions [0 ].values == b64 ( ar [:, 0 ]) )
408409
409410
410411def test_int_col_names ():
411412 # DataFrame with int column names
412413 lengths = pd .DataFrame (np .random .random (100 ))
413414 fig = px .histogram (lengths , x = 0 )
414- assert np .all (np .array (lengths ).flatten () == fig .data [0 ].x )
415+ assert np .all (b64 ( np .array (lengths ).flatten () ) == fig .data [0 ].x )
415416 # Numpy array
416417 ar = np .arange (100 ).reshape ((10 , 10 ))
417418 fig = px .scatter (ar , x = 2 , y = 8 )
418- assert np .all (fig .data [0 ].x == ar [:, 2 ])
419+ assert np .all (fig .data [0 ].x == b64 ( ar [:, 2 ]) )
419420
420421
421422def test_data_frame_from_dict ():
422423 fig = px .scatter ({"time" : [0 , 1 ], "money" : [1 , 2 ]}, x = "time" , y = "money" )
423424 assert fig .data [0 ].hovertemplate == "time=%{x}<br>money=%{y}<extra></extra>"
424- assert np .all (fig .data [0 ].x == [0 , 1 ])
425+ assert np .all (fig .data [0 ].x == _b64 ( [0 , 1 ]) )
425426
426427
427428def test_arguments_not_modified ():
@@ -485,13 +486,11 @@ def test_identity_map():
485486
486487def test_constants ():
487488 fig = px .scatter (x = px .Constant (1 ), y = [1 , 2 ])
488- assert fig .data [0 ].x [0 ] == 1
489- assert fig .data [0 ].x [1 ] == 1
489+ assert fig .data [0 ].x == _b64 ([1 , 1 ])
490490 assert "x=" in fig .data [0 ].hovertemplate
491491
492492 fig = px .scatter (x = px .Constant (1 , label = "time" ), y = [1 , 2 ])
493- assert fig .data [0 ].x [0 ] == 1
494- assert fig .data [0 ].x [1 ] == 1
493+ assert fig .data [0 ].x == _b64 ([1 , 1 ])
495494 assert "x=" not in fig .data [0 ].hovertemplate
496495 assert "time=" in fig .data [0 ].hovertemplate
497496
@@ -515,15 +514,12 @@ def test_constants():
515514
516515def test_ranges ():
517516 fig = px .scatter (x = px .Range (), y = [1 , 2 ], hover_data = [px .Range ()])
518- assert fig .data [0 ].x [0 ] == 0
519- assert fig .data [0 ].x [1 ] == 1
520- assert fig .data [0 ].customdata [0 ][0 ] == 0
521- assert fig .data [0 ].customdata [1 ][0 ] == 1
517+ assert fig .data [0 ].x == _b64 ([0 , 1 ])
518+ assert fig .data [0 ].customdata == _b64 ([[0 ], [1 ]])
522519 assert "x=" in fig .data [0 ].hovertemplate
523520
524521 fig = px .scatter (x = px .Range (label = "time" ), y = [1 , 2 ])
525- assert fig .data [0 ].x [0 ] == 0
526- assert fig .data [0 ].x [1 ] == 1
522+ assert fig .data [0 ].x == _b64 ([0 , 1 ])
527523 assert "x=" not in fig .data [0 ].hovertemplate
528524 assert "time=" in fig .data [0 ].hovertemplate
529525
@@ -613,54 +609,54 @@ def test_x_or_y(fn):
613609 categorical_df = pd .DataFrame (dict (col = categorical ), index = index )
614610
615611 fig = fn (x = numerical )
616- assert list ( fig .data [0 ].x ) == numerical
617- assert list ( fig .data [0 ].y ) == range_4
612+ assert fig .data [0 ].x == _b64 ( numerical )
613+ assert fig .data [0 ].y == _b64 ( range_4 )
618614 assert fig .data [0 ].orientation == "h"
619615 fig = fn (y = numerical )
620- assert list ( fig .data [0 ].x ) == range_4
621- assert list ( fig .data [0 ].y ) == numerical
616+ assert fig .data [0 ].x == _b64 ( range_4 )
617+ assert fig .data [0 ].y == _b64 ( numerical )
622618 assert fig .data [0 ].orientation == "v"
623619 fig = fn (numerical_df , x = "col" )
624- assert list ( fig .data [0 ].x ) == numerical
625- assert list ( fig .data [0 ].y ) == index
620+ assert fig .data [0 ].x == _b64 ( numerical )
621+ assert fig .data [0 ].y == _b64 ( index )
626622 assert fig .data [0 ].orientation == "h"
627623 fig = fn (numerical_df , y = "col" )
628- assert list ( fig .data [0 ].x ) == index
629- assert list ( fig .data [0 ].y ) == numerical
624+ assert fig .data [0 ].x == _b64 ( index )
625+ assert fig .data [0 ].y == _b64 ( numerical )
630626 assert fig .data [0 ].orientation == "v"
631627
632628 if fn != px .bar :
633629 fig = fn (x = categorical )
634630 assert list (fig .data [0 ].x ) == categorical
635- assert list ( fig .data [0 ].y ) == range_4
631+ assert fig .data [0 ].y == _b64 ( range_4 )
636632 assert fig .data [0 ].orientation == "h"
637633 fig = fn (y = categorical )
638- assert list ( fig .data [0 ].x ) == range_4
634+ assert fig .data [0 ].x == _b64 ( range_4 )
639635 assert list (fig .data [0 ].y ) == categorical
640636 assert fig .data [0 ].orientation == "v"
641637 fig = fn (categorical_df , x = "col" )
642638 assert list (fig .data [0 ].x ) == categorical
643- assert list ( fig .data [0 ].y ) == index
639+ assert fig .data [0 ].y == _b64 ( index )
644640 assert fig .data [0 ].orientation == "h"
645641 fig = fn (categorical_df , y = "col" )
646- assert list ( fig .data [0 ].x ) == index
642+ assert fig .data [0 ].x == _b64 ( index )
647643 assert list (fig .data [0 ].y ) == categorical
648644 assert fig .data [0 ].orientation == "v"
649645
650646 else :
651647 fig = fn (x = categorical )
652648 assert list (fig .data [0 ].x ) == categorical
653- assert list ( fig .data [0 ].y ) == constant
649+ assert fig .data [0 ].y == _b64 ( constant )
654650 assert fig .data [0 ].orientation == "v"
655651 fig = fn (y = categorical )
656- assert list ( fig .data [0 ].x ) == constant
652+ assert fig .data [0 ].x == _b64 ( constant )
657653 assert list (fig .data [0 ].y ) == categorical
658654 assert fig .data [0 ].orientation == "h"
659655 fig = fn (categorical_df , x = "col" )
660656 assert list (fig .data [0 ].x ) == categorical
661- assert list ( fig .data [0 ].y ) == constant
657+ assert fig .data [0 ].y == _b64 ( constant )
662658 assert fig .data [0 ].orientation == "v"
663659 fig = fn (categorical_df , y = "col" )
664- assert list ( fig .data [0 ].x ) == constant
660+ assert fig .data [0 ].x == _b64 ( constant )
665661 assert list (fig .data [0 ].y ) == categorical
666662 assert fig .data [0 ].orientation == "h"
0 commit comments