@@ -4310,20 +4310,24 @@ def test_optional_arguments(self):
43104310
43114311
43124312class TestHexbinMapbox (NumpyTestUtilsMixin , TestCaseNoTemplate ):
4313- def assert_dict_almost_equal (self , dict1 , dict2 , decimal = 7 ):
4313+ def compare_list_values (self , list1 , list2 , decimal = 7 ):
4314+ assert len (list1 ) == len (list2 ), "Lists are not of the same length."
4315+ for i in range (len (list1 )):
4316+ if isinstance (list1 [i ], list ):
4317+ self .compare_list_values (list1 [i ], list2 [i ], decimal = decimal )
4318+ elif isinstance (list1 [i ], float ):
4319+ np .testing .assert_almost_equal (list1 [i ], list2 [i ], decimal = decimal )
4320+ else :
4321+ assert (
4322+ list1 [i ] == list2 [i ]
4323+ ), f"Values at index { i } are not equal: { list1 [i ]} != { list2 [i ]} "
4324+
4325+ def compare_dict_values (self , dict1 , dict2 , decimal = 7 ):
43144326 for k , v in dict1 .items ():
43154327 if isinstance (v , dict ):
4316- self .assert_dict_almost_equal (v , dict2 [k ], decimal = decimal )
4328+ self .compare_dict_values (v , dict2 [k ], decimal = decimal )
43174329 elif isinstance (v , list ):
4318- for i in range (len (v )):
4319- if isinstance (v [i ], float ):
4320- np .testing .assert_almost_equal (
4321- v [i ], dict2 [k ][i ], decimal = decimal
4322- )
4323- else :
4324- assert (
4325- v [i ] == dict2 [k ][i ]
4326- ), f"Values at index { i } for key { k } are not equal: { v [i ]} != { dict2 [k ][i ]} "
4330+ self .compare_list_values (v , dict2 [k ], decimal = decimal )
43274331 elif isinstance (v , float ):
43284332 np .testing .assert_almost_equal (v , dict2 [k ], decimal = decimal )
43294333 else :
@@ -4437,7 +4441,7 @@ def test_aggregation(self):
44374441
44384442 actual_agg = [2.0 , 2.0 , 1.0 , 3.0 , 9.0 ]
44394443
4440- self .assert_dict_almost_equal (fig1 .data [0 ].geojson , actual_geojson )
4444+ self .compare_dict_values (fig1 .data [0 ].geojson , actual_geojson )
44414445 assert np .array_equal (fig1 .data [0 ].z , actual_agg )
44424446
44434447 fig2 = ff .create_hexbin_mapbox (
0 commit comments