d50cbb7c创建于 2024年11月2日历史提交
import unittest



from pyecharts.commons import utils

from pyecharts.datasets import EXTRA





class TestUtils(unittest.TestCase):

    def test_utils_produce_require_dict(self):

        cfg = utils.produce_require_dict(

            utils.OrderedSet("echarts"), "https://example.com"

        )

        self.assertEqual(

            cfg["config_items"], ["'echarts':'https://example.comecharts.min'"]

        )

        self.assertEqual(cfg["libraries"], ["'echarts'"])



        cfg_1 = utils.produce_require_dict(

            utils.OrderedSet("https://api.map.baidu.com"),

            "https://example.com",

        )

        self.assertEqual(

            cfg_1["config_items"],

            ["'baidu_map_api25':'https://api.map.baidu.com'"],

        )

        self.assertEqual(cfg_1["libraries"], ["'baidu_map_api25'"])



        cfg_2 = utils.produce_require_dict(

            utils.OrderedSet("https://webapi.amap.com"),

            "https://example.com",

        )

        self.assertEqual(

            cfg_2["config_items"],

            ["'amap_map_api23':'https://webapi.amap.com'"],

        )

        self.assertEqual(cfg_2["libraries"], ["'amap_map_api23'"])



    def test_utils_produce_require_dict_with_extra(self):

        global EXTRA

        EXTRA["https://api.baidu.com"] = {

            "https://api.baidu.com/test.min": ["https://api.baidu.com/test.min", "css"]

        }

        cfg_0 = utils.produce_require_dict(

            utils.OrderedSet("https://api.baidu.com/test.min"),

            "https://example.com",

        )

        self.assertEqual(cfg_0["libraries"], ["'https://api.baidu.com/test.min'"])



    def test_js_code(self):

        fn = "function() { console.log('test_js_code') }"

        js_code = utils.JsCode(fn)

        self.assertEqual(js_code.js_code, "--x_x--0_0--{}--x_x--0_0--".format(fn))



    def test_ordered_set(self):

        s = utils.OrderedSet()

        s.add("a", "b", "c")

        self.assertEqual(s.items, ["a", "b", "c"])



    def test_utils_remove_key_with_none_value(self):

        mock_data = [1, 2, 3]

        list_res = utils.remove_key_with_none_value(mock_data)

        assert list_res == mock_data



        mock_data_none = None

        none_res = utils.remove_key_with_none_value(mock_data_none)

        assert none_res == mock_data_none



    def test_utils_remove_key_with_none_value_raise_value_error(self):

        import numpy as np

        import pandas as pd



        mock_data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

        mock_numpy_data = np.array(mock_data)

        tmp_df = pd.DataFrame({"x": mock_data})

        mock_series_data = tmp_df["x"]

        try:

            utils.remove_key_with_none_value({"data": mock_numpy_data})

        except ValueError:

            pass



        try:

            utils.remove_key_with_none_value({"data": mock_series_data})

        except ValueError:

            pass