pyecharts/test/test_utils.py
2024-11-02 10:12:50 +08:00

84 lines
2.9 KiB
Python

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