| import gc | |
| import numpy as np | |
| import pytest | |
| from pandas import ( | |
| DataFrame, | |
| to_datetime, | |
| ) | |
| def mpl_cleanup(): | |
| # matplotlib/testing/decorators.py#L24 | |
| # 1) Resets units registry | |
| # 2) Resets rc_context | |
| # 3) Closes all figures | |
| mpl = pytest.importorskip("matplotlib") | |
| mpl_units = pytest.importorskip("matplotlib.units") | |
| plt = pytest.importorskip("matplotlib.pyplot") | |
| orig_units_registry = mpl_units.registry.copy() | |
| with mpl.rc_context(): | |
| mpl.use("template") | |
| yield | |
| mpl_units.registry.clear() | |
| mpl_units.registry.update(orig_units_registry) | |
| plt.close("all") | |
| # https://matplotlib.org/stable/users/prev_whats_new/whats_new_3.6.0.html#garbage-collection-is-no-longer-run-on-figure-close # noqa: E501 | |
| gc.collect(1) | |
| def hist_df(): | |
| n = 50 | |
| rng = np.random.default_rng(10) | |
| gender = rng.choice(["Male", "Female"], size=n) | |
| classroom = rng.choice(["A", "B", "C"], size=n) | |
| hist_df = DataFrame( | |
| { | |
| "gender": gender, | |
| "classroom": classroom, | |
| "height": rng.normal(66, 4, size=n), | |
| "weight": rng.normal(161, 32, size=n), | |
| "category": rng.integers(4, size=n), | |
| "datetime": to_datetime( | |
| rng.integers( | |
| 812419200000000000, | |
| 819331200000000000, | |
| size=n, | |
| dtype=np.int64, | |
| ) | |
| ), | |
| } | |
| ) | |
| return hist_df | |