pyecharts/test/test_map.py

226 lines
11 KiB
Python

import unittest
from unittest.mock import patch
import simplejson as json
from pyecharts import options as opts
from pyecharts.charts import Map
from pyecharts.faker import Faker
class TestMapChart(unittest.TestCase):
@patch("pyecharts.render.engine.write_utf8_html_file")
def test_map_base(self, fake_writer):
c = Map().add(
"商家A", [list(z) for z in zip(Faker.provinces, Faker.values())], "china"
)
c.render()
_, content = fake_writer.call_args[0]
self.assertEqual(c.theme, "white")
self.assertEqual(c.renderer, "canvas")
@patch("pyecharts.render.engine.write_utf8_html_file")
def test_map_item_base(self, fake_writer):
location_name = ["广东"]
location_data = [[100, 200, 300, 400]]
mock_data = [
opts.MapItem(name=d[0], value=d[1])
for d in list(zip(location_name, location_data))
]
c = Map().add("商家A", mock_data, "china")
c.render()
_, content = fake_writer.call_args[0]
self.assertEqual(c.theme, "white")
self.assertEqual(c.renderer, "canvas")
def test_map_emphasis(self):
c = Map().add(
"商家A",
[list(z) for z in zip(Faker.provinces, Faker.values())],
"china",
emphasis_label_opts=opts.LabelOpts(is_show=False),
emphasis_itemstyle_opts=opts.ItemStyleOpts(
border_color="white", area_color="red"
),
)
options = json.loads(c.dump_options())
expected = {
"label": {"show": False, "margin": 8, "valueAnimation": False},
"itemStyle": {"borderColor": "white", "areaColor": "red"},
}
self.assertEqual(expected, options["series"][0]["emphasis"])
def test_map_add_geo_json(self):
geo_json = {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {},
"geometry": {
"coordinates": [
[
[118.57812, 26.557402],
[118.590394, 26.553081],
[118.617087, 26.553059],
[118.616111, 26.527755],
[118.604148, 26.504904],
[118.608376, 26.497294],
[118.59623, 26.478385],
[118.578807, 26.473754],
[118.56458, 26.465373],
[118.554474, 26.445927],
[118.566533, 26.432851],
[118.54632, 26.417928],
[118.548079, 26.396854],
[118.560868, 26.378456],
[118.566104, 26.358824],
[118.589836, 26.373463],
[118.590222, 26.359802],
[118.595801, 26.347859],
[118.60369, 26.350515],
[118.621191, 26.361783],
[118.631475, 26.354788],
[118.656162, 26.340797],
[118.662964, 26.322656],
[118.653222, 26.313452],
[118.661204, 26.296272],
[118.664809, 26.270524],
[118.678076, 26.279442],
[118.68585, 26.28836],
[118.697277, 26.287725],
[118.693599, 26.305557],
[118.699533, 26.311078],
[118.724644, 26.337465],
[118.75152, 26.330542],
[118.76682, 26.327157],
[118.775794, 26.325234],
[118.797129, 26.340542],
[118.800059, 26.357136],
[118.785137, 26.365115],
[118.771085, 26.385377],
[118.750534, 26.390836],
[118.761617, 26.420202],
[118.745161, 26.427236],
[118.732826, 26.437957],
[118.734248, 26.45448],
[118.737767, 26.472405],
[118.748152, 26.481723],
[118.754353, 26.487893],
[118.748195, 26.494063],
[118.748238, 26.506403],
[118.762057, 26.508959],
[118.780881, 26.504741],
[118.784598, 26.491919],
[118.798615, 26.484013],
[118.805766, 26.474876],
[118.794544, 26.459227],
[118.809178, 26.445137],
[118.805487, 26.430479],
[118.822825, 26.420838],
[118.85278, 26.438461],
[118.878615, 26.469605],
[118.898227, 26.473649],
[118.91784, 26.472777],
[118.949511, 26.464885],
[118.951619, 26.487056],
[118.943747, 26.493838],
[118.942741, 26.507994],
[118.962064, 26.530816],
[118.997866, 26.528448],
[119.000968, 26.556946],
[119.009563, 26.560258],
[119.015767, 26.581621],
[119.032957, 26.594999],
[119.062507, 26.602235],
[119.075945, 26.587083],
[119.06329, 26.569473],
[119.076433, 26.569869],
[119.092152, 26.562702],
[119.101005, 26.572732],
[119.103604, 26.555941],
[119.119788, 26.539555],
[119.132, 26.538732],
[119.144213, 26.536681],
[119.171383, 26.548551],
[119.194922, 26.568383],
[119.212185, 26.547589],
[119.218757, 26.53412],
[119.229448, 26.526792],
[119.251174, 26.53241],
[119.253859, 26.546561],
[119.272336, 26.541055],
[119.281139, 26.534343],
[119.287711, 26.577995],
[119.301835, 26.593391],
[119.329006, 26.578699],
[119.354338, 26.599587],
[119.363191, 26.603281],
[119.376544, 26.604515],
[119.381656, 26.62171],
[119.397376, 26.627859],
[119.387272, 26.641423],
[119.375795, 26.639028],
[119.358824, 26.632951],
[119.351467, 26.648969],
[119.326158, 26.676212],
[119.261119, 26.690807],
[119.241593, 26.742684],
[119.226535, 26.728854],
[119.204611, 26.727288],
[119.182686, 26.729403],
[119.167628, 26.711891],
[119.146452, 26.731884],
[119.115663, 26.73961],
[119.047905, 26.728693],
[119.045955, 26.74669],
[119.054992, 26.764685],
[119.051092, 26.776147],
[119.042385, 26.776575],
[119.033679, 26.770872],
[119.012146, 26.761305],
[118.982497, 26.773075],
[118.945981, 26.77013],
[118.926007, 26.749652],
[118.882686, 26.738982],
[118.887478, 26.757469],
[118.903255, 26.76737],
[118.923824, 26.795751],
[118.890803, 26.813278],
[118.843328, 26.798569],
[118.827143, 26.786924],
[118.795852, 26.783859],
[118.771428, 26.805618],
[118.741511, 26.818793],
[118.728195, 26.830895],
[118.722432, 26.851573],
[118.739746, 26.856167],
[118.696095, 26.869031],
[118.664633, 26.86214],
[118.63317, 26.855248],
[118.620069, 26.839818],
[118.635807, 26.832963],
[118.638444, 26.810674],
[118.625974, 26.788073],
[118.623117, 26.769147],
[118.600382, 26.7093],
[118.582339, 26.703842],
[118.569788, 26.680592],
[118.57902, 26.673354],
[118.594415, 26.673546],
[118.594991, 26.656748],
[118.587905, 26.631739],
[118.57812, 26.557402],
]
],
"type": "Polygon",
},
}
],
}
c = Map()
c.add_geo_json(geo_json=geo_json)
self.assertEqual(c._geo_json, geo_json)