content: 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)
  