From 5f996de8bc5344da54961800ccc3017cf2e8b0b6 Mon Sep 17 00:00:00 2001 From: Tim Hoffmann <2836374+timhoffm@users.noreply.github.com> Date: Mon, 18 Jul 2022 02:36:23 +0200 Subject: [PATCH] Backport PR #23430: Fix divide by 0 runtime warning --- lib/mpl_toolkits/mplot3d/proj3d.py | 2 +- lib/mpl_toolkits/tests/test_mplot3d.py | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/mpl_toolkits/mplot3d/proj3d.py b/lib/mpl_toolkits/mplot3d/proj3d.py index c9d5a7d65038..7c8ae74cb93a 100644 --- a/lib/mpl_toolkits/mplot3d/proj3d.py +++ b/lib/mpl_toolkits/mplot3d/proj3d.py @@ -21,7 +21,7 @@ def _line2d_seg_dist(p1, p2, p0): x01 = np.asarray(p0[0]) - p1[0] y01 = np.asarray(p0[1]) - p1[1] - if np.all(p1 == p2): + if np.all(p1[0:2] == p2[0:2]): return np.hypot(x01, y01) x21 = p2[0] - p1[0] diff --git a/lib/mpl_toolkits/tests/test_mplot3d.py b/lib/mpl_toolkits/tests/test_mplot3d.py index ebf3e15cf124..2c7a9feee9e2 100644 --- a/lib/mpl_toolkits/tests/test_mplot3d.py +++ b/lib/mpl_toolkits/tests/test_mplot3d.py @@ -1004,11 +1004,13 @@ def test_lines_dists(): def test_lines_dists_nowarning(): # Smoke test to see that no RuntimeWarning is emitted when two first # arguments are the same, see GH#22624 - p0 = (10, 30) - p1 = (20, 150) - proj3d._line2d_seg_dist(p0, p0, p1) + p0 = (10, 30, 50) + p1 = (10, 30, 20) + p2 = (20, 150) + proj3d._line2d_seg_dist(p0, p0, p2) + proj3d._line2d_seg_dist(p0, p1, p2) p0 = np.array(p0) - proj3d._line2d_seg_dist(p0, p0, p1) + proj3d._line2d_seg_dist(p0, p0, p2) def test_autoscale():