From 6923c7f04fbafa23766250d710cc6b37373c816f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jouni=20K=2E=20Seppa=CC=88nen?=
Date: Sun, 18 Sep 2011 16:23:20 +0300
Subject: [PATCH] Test nearest and none interpolation better
Changes the baseline file image_interps.pdf to match the current
behavior of the code, and adds a new test for the difference between
"nearest" and "none" interpolation.
---
.../test_image/image_interps.pdf | Bin 115574 -> 116970 bytes
.../test_image/interp_nearest_vs_none.pdf | Bin 0 -> 9141 bytes
.../test_image/interp_nearest_vs_none.svg | 1061 +++++++++++++++++
lib/matplotlib/tests/test_image.py | 20 +
4 files changed, 1081 insertions(+)
create mode 100644 lib/matplotlib/tests/baseline_images/test_image/interp_nearest_vs_none.pdf
create mode 100644 lib/matplotlib/tests/baseline_images/test_image/interp_nearest_vs_none.svg
diff --git a/lib/matplotlib/tests/baseline_images/test_image/image_interps.pdf b/lib/matplotlib/tests/baseline_images/test_image/image_interps.pdf
index 42ea689625a3ef81b6854836ce478c651147a606..eb482fed7fff84d751af4bdb9cb93be95b7e0ca6 100644
GIT binary patch
delta 4001
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
DpHdn&
diff --git a/lib/matplotlib/tests/baseline_images/test_image/interp_nearest_vs_none.pdf b/lib/matplotlib/tests/baseline_images/test_image/interp_nearest_vs_none.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..72148dd959e290bee4ec5d0d71658168a856770d
GIT binary patch
literal 9141
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
literal 0
HcmV?d00001
diff --git a/lib/matplotlib/tests/baseline_images/test_image/interp_nearest_vs_none.svg b/lib/matplotlib/tests/baseline_images/test_image/interp_nearest_vs_none.svg
new file mode 100644
index 000000000000..e80eb2436c91
--- /dev/null
+++ b/lib/matplotlib/tests/baseline_images/test_image/interp_nearest_vs_none.svg
@@ -0,0 +1,1061 @@
+
+
+
+
diff --git a/lib/matplotlib/tests/test_image.py b/lib/matplotlib/tests/test_image.py
index 40bdab5709df..2c9db8a23e17 100644
--- a/lib/matplotlib/tests/test_image.py
+++ b/lib/matplotlib/tests/test_image.py
@@ -1,6 +1,7 @@
import numpy as np
from matplotlib.testing.decorators import image_comparison, knownfailureif, cleanup
+from matplotlib import rcParams
import matplotlib.pyplot as plt
from nose.tools import assert_raises
from numpy.testing import assert_array_equal
@@ -28,6 +29,25 @@ def test_image_interps():
ax3.imshow(X, interpolation='bicubic')
ax3.set_ylabel('bicubic')
+@image_comparison(baseline_images=['interp_nearest_vs_none'], extensions=['pdf', 'svg'])
+def test_interp_nearest_vs_none():
+ 'Test the effect of "nearest" and "none" interpolation'
+ # Setting dpi to something really small makes the difference very
+ # visible. This works fine with pdf, since the dpi setting doesn't
+ # affect anything but images, but the agg output becomes unusably
+ # small.
+ rcParams['savefig.dpi'] = 3
+ X = np.array([[[218, 165, 32], [122, 103, 238]],
+ [[127, 255, 0], [255, 99, 71]]], dtype=np.uint8)
+ fig = plt.figure()
+ ax1 = fig.add_subplot(121)
+ ax1.imshow(X, interpolation='none')
+ ax1.set_title('interpolation none')
+ ax2 = fig.add_subplot(122)
+ ax2.imshow(X, interpolation='nearest')
+ ax2.set_title('interpolation nearest')
+
+
@image_comparison(baseline_images=['figimage-0', 'figimage-1'], extensions=['png'], tol=1.5e-3)
def test_figimage():
'test the figimage method'