mirror of
https://github.com/pyecharts/pyecharts.git
synced 2025-12-08 20:59:23 +00:00
95 lines
3.2 KiB
Python
95 lines
3.2 KiB
Python
import unittest
|
|
from unittest.mock import patch
|
|
|
|
from pyecharts import options as opts
|
|
from pyecharts.charts import Boxplot
|
|
|
|
|
|
class TestBoxplotChart(unittest.TestCase):
|
|
|
|
@patch("pyecharts.render.engine.write_utf8_html_file")
|
|
def test_boxplot_base(self, fake_writer):
|
|
v1 = [
|
|
[850, 740, 900, 1070, 930, 850, 950, 980, 980, 880, 1000, 980],
|
|
[960, 940, 960, 940, 880, 800, 850, 880, 900, 840, 830, 790],
|
|
]
|
|
v2 = [
|
|
[890, 810, 810, 820, 800, 770, 760, 740, 750, 760, 910, 920],
|
|
[890, 840, 780, 810, 760, 810, 790, 810, 820, 850, 870, 870],
|
|
]
|
|
c = Boxplot()
|
|
c.add_xaxis(["expr1", "expr2"]).add_yaxis(
|
|
"A", c.prepare_data(v1), box_width=40
|
|
).add_yaxis("B", c.prepare_data(v2))
|
|
c.render()
|
|
_, content = fake_writer.call_args[0]
|
|
self.assertEqual(c.theme, "white")
|
|
self.assertEqual(c.renderer, "canvas")
|
|
self.assertIn("boxWidth", content)
|
|
|
|
@patch("pyecharts.render.engine.write_utf8_html_file")
|
|
def test_boxplot_base_v1(self, fake_writer):
|
|
v1 = [
|
|
[1000, 1000, 1000],
|
|
[200, 200, 200],
|
|
]
|
|
v2 = [
|
|
[1000, 1000, 1000],
|
|
[200, 200, 200],
|
|
]
|
|
c = Boxplot()
|
|
c.add_xaxis(["expr1", "expr2"]).add_yaxis(
|
|
"A", c.prepare_data(v1), box_width=40
|
|
).add_yaxis("B", c.prepare_data(v2))
|
|
c.render()
|
|
_, content = fake_writer.call_args[0]
|
|
self.assertEqual(c.theme, "white")
|
|
self.assertEqual(c.renderer, "canvas")
|
|
self.assertIn("boxWidth", content)
|
|
|
|
@patch("pyecharts.render.engine.write_utf8_html_file")
|
|
def test_boxplot_base_v2(self, fake_writer):
|
|
v1 = [
|
|
None,
|
|
[200, 200, 200],
|
|
]
|
|
v2 = [
|
|
[1000, None, 1000],
|
|
[200, 200, 200],
|
|
]
|
|
c = Boxplot()
|
|
c.add_xaxis(["expr1", "expr2"]).add_yaxis(
|
|
"A", c.prepare_data(v1), box_width=40
|
|
).add_yaxis("B", c.prepare_data(v2))
|
|
c.render()
|
|
_, content = fake_writer.call_args[0]
|
|
self.assertEqual(c.theme, "white")
|
|
self.assertEqual(c.renderer, "canvas")
|
|
self.assertIn("boxWidth", content)
|
|
|
|
@patch("pyecharts.render.engine.write_utf8_html_file")
|
|
def test_boxplot_item_base(self, fake_writer):
|
|
x_axis = ["expr1", "expr2"]
|
|
v1 = [
|
|
[850, 740, 900, 1070, 930, 850, 950, 980, 980, 880, 1000, 980],
|
|
[960, 940, 960, 940, 880, 800, 850, 880, 900, 840, 830, 790],
|
|
]
|
|
v2 = [
|
|
[890, 810, 810, 820, 800, 770, 760, 740, 750, 760, 910, 920],
|
|
[890, 840, 780, 810, 760, 810, 790, 810, 820, 850, 870, 870],
|
|
]
|
|
c = Boxplot()
|
|
|
|
series_a = [
|
|
opts.BoxplotItem(name=x_axis[0], value=d) for d in c.prepare_data(v1)
|
|
]
|
|
series_b = [
|
|
opts.BoxplotItem(name=x_axis[1], value=d) for d in c.prepare_data(v2)
|
|
]
|
|
|
|
c.add_xaxis(xaxis_data=x_axis).add_yaxis("A", series_a).add_yaxis("B", series_b)
|
|
c.render()
|
|
_, content = fake_writer.call_args[0]
|
|
self.assertEqual(c.theme, "white")
|
|
self.assertEqual(c.renderer, "canvas")
|