Source code for turbo_turtle._tests.test_geometry_xyplot

"""Test :mod:`turbo_turtle.geometry_xyplot`."""

from unittest.mock import patch

import matplotlib
import numpy

from turbo_turtle import geometry_xyplot
from turbo_turtle._abaqus_python.turbo_turtle_abaqus import parsers


[docs] def test_geometry_xyplot() -> None: """Test :func:`turbo_turtle.geometry_xyplot.geometry_xyplot`.""" kwargs = {} coordinates_list = [numpy.array([[0.0, 0.0], [1.0, 1.0]])] figure = geometry_xyplot.geometry_xyplot(coordinates_list, **kwargs) assert isinstance(figure, matplotlib.pyplot.Figure) kwargs = {"annotate": True} with patch("matplotlib.pyplot.annotate") as mock_annotate: figure = geometry_xyplot.geometry_xyplot(coordinates_list, **kwargs) mock_annotate.assert_called() kwargs = {"scale": True} with patch("matplotlib.axes.Axes.set_aspect") as mock_set_aspect: figure = geometry_xyplot.geometry_xyplot(coordinates_list, **kwargs) mock_set_aspect.assert_called_once_with("equal", adjustable="box")
[docs] def test_main() -> None: """Test :func:`turbo_turtle.geometry_xyplot._main`.""" kwargs = {} expected_call_kwargs = { "unit_conversion": parsers.geometry_xyplot_defaults["unit_conversion"], "euclidean_distance": parsers.geometry_xyplot_defaults["euclidean_distance"], "y_offset": parsers.geometry_xyplot_defaults["y_offset"], "rtol": parsers.geometry_xyplot_defaults["rtol"], "atol": parsers.geometry_xyplot_defaults["atol"], "no_markers": parsers.geometry_xyplot_defaults["no_markers"], "annotate": parsers.geometry_xyplot_defaults["annotate"], "scale": parsers.geometry_xyplot_defaults["scale"], } with ( patch("turbo_turtle._abaqus_python.turbo_turtle_abaqus._mixed_utilities.return_genfromtxt_or_exit"), patch("matplotlib.pyplot.Figure.savefig"), patch("turbo_turtle.geometry_xyplot.geometry_xyplot") as mock_plot, ): geometry_xyplot._main(["dummy.in"], ["dummy.out"], **kwargs) assert mock_plot.call_args.kwargs == expected_call_kwargs