pyecharts/test/test_pie.py
2024-06-07 18:22:28 +08:00

91 lines
3.2 KiB
Python

import unittest
from unittest.mock import patch
from pyecharts import options as opts
from pyecharts.charts import Pie
from pyecharts.faker import Faker
class TestPieChart(unittest.TestCase):
@patch("pyecharts.render.engine.write_utf8_html_file")
def test_pie_base(self, fake_writer):
c = (
Pie()
.add("", [list(z) for z in zip(Faker.choose(), Faker.values())])
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
)
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_pie_item_base(self, fake_writer):
d = [
opts.PieItem(name="河马", value=131),
opts.PieItem(name="蟒蛇", value=89),
opts.PieItem(name="老虎", value=149),
opts.PieItem(name="大象", value=178),
]
c = (
Pie()
.add("", d)
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
)
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_pie_dataset(self, fake_writer):
c = (
Pie()
.add_dataset(
source=[
["product", "2012", "2013", "2014", "2015", "2016", "2017"],
["Matcha Latte", 41.1, 30.4, 65.1, 53.3, 83.8, 98.7],
["Milk Tea", 86.5, 92.1, 85.7, 83.1, 73.4, 55.1],
["Cheese Cocoa", 24.1, 67.2, 79.5, 86.4, 65.2, 82.5],
["Walnut Brownie", 55.2, 67.1, 69.2, 72.4, 53.9, 39.1],
]
)
.add(
series_name="Matcha Latte",
data_pair=[],
radius=60,
center=["25%", "30%"],
encode={"itemName": "product", "value": "2012"},
)
.add(
series_name="Milk Tea",
data_pair=[],
radius=60,
center=["75%", "30%"],
encode={"itemName": "product", "value": "2013"},
)
.add(
series_name="Cheese Cocoa",
data_pair=[],
radius=60,
center=["25%", "75%"],
encode={"itemName": "product", "value": "2014"},
)
.add(
series_name="Walnut Brownie",
data_pair=[],
radius=60,
center=["75%", "75%"],
encode={"itemName": "product", "value": "2015"},
)
.set_global_opts(
title_opts=opts.TitleOpts(title="Dataset simple pie example"),
legend_opts=opts.LegendOpts(pos_left="30%", pos_top="2%"),
)
)
c.render()
_, content = fake_writer.call_args[0]
self.assertEqual(c.theme, "white")
self.assertEqual(c.renderer, "canvas")
self.assertIn("dataset", content)