From 48b296aecd0d8724eeb88d59b0015482b2196705 Mon Sep 17 00:00:00 2001 From: Maximilian Albert Date: Wed, 9 Jan 2013 00:57:17 +0100 Subject: [PATCH] Add new test for automatic legend placement to check that vertices are indeed taken into account. --- .../test_legend/legend_auto3.pdf | Bin 0 -> 6925 bytes .../test_legend/legend_auto3.png | Bin 0 -> 6947 bytes .../test_legend/legend_auto3.svg | 607 ++++++++++++++++++ lib/matplotlib/tests/test_legend.py | 13 + 4 files changed, 620 insertions(+) create mode 100644 lib/matplotlib/tests/baseline_images/test_legend/legend_auto3.pdf create mode 100644 lib/matplotlib/tests/baseline_images/test_legend/legend_auto3.png create mode 100644 lib/matplotlib/tests/baseline_images/test_legend/legend_auto3.svg diff --git a/lib/matplotlib/tests/baseline_images/test_legend/legend_auto3.pdf b/lib/matplotlib/tests/baseline_images/test_legend/legend_auto3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..dfc06c42b71b91663ad0a2fad08b89c5f5fccf99 GIT binary patch literal 6925 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 literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_legend/legend_auto3.png b/lib/matplotlib/tests/baseline_images/test_legend/legend_auto3.png new file mode 100644 index 0000000000000000000000000000000000000000..34f1c4d951d849582bb72847457fbc37f8fa3dcc GIT binary patch literal 6947 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 literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_legend/legend_auto3.svg b/lib/matplotlib/tests/baseline_images/test_legend/legend_auto3.svg new file mode 100644 index 000000000000..455b5fd9abe1 --- /dev/null +++ b/lib/matplotlib/tests/baseline_images/test_legend/legend_auto3.svg @@ -0,0 +1,607 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/matplotlib/tests/test_legend.py b/lib/matplotlib/tests/test_legend.py index f192fb4b23af..cc8e589db2b7 100644 --- a/lib/matplotlib/tests/test_legend.py +++ b/lib/matplotlib/tests/test_legend.py @@ -26,6 +26,19 @@ def test_legend_auto2(): ax.legend([b1[0], b2[0]], ['up', 'down'], loc=0) +@image_comparison(baseline_images=['legend_auto3']) +def test_legend_auto3(): + 'Test automatic legend placement' + fig = plt.figure() + ax = fig.add_subplot(111) + x = [0.9, 0.1, 0.1, 0.9, 0.9, 0.5] + y = [0.95, 0.95, 0.05, 0.05, 0.5, 0.5] + ax.plot(x, y, 'o-', label='line') + ax.set_xlim(0.0, 1.0) + ax.set_ylim(0.0, 1.0) + ax.legend(loc=0) + + @image_comparison(baseline_images=['legend_various_labels'], remove_text=True) def test_various_labels(): # tests all sorts of label types