René's URL Explorer Experiment


Title: matplotlib 3.3.0 debian amd64: tests errors · Issue #11324 · matplotlib/matplotlib · GitHub

Open Graph Title: matplotlib 3.3.0 debian amd64: tests errors · Issue #11324 · matplotlib/matplotlib

X Title: matplotlib 3.3.0 debian amd64: tests errors · Issue #11324 · matplotlib/matplotlib

Description: Hello, i'm reporting here the errors produced by the test suite when running on debian amd64: python 2.7.15: =================================== FAILURES =================================== _____________________________ test_log_scales[p...

Open Graph Description: Hello, i'm reporting here the errors produced by the test suite when running on debian amd64: python 2.7.15: =================================== FAILURES =================================== _______...

X Description: Hello, i'm reporting here the errors produced by the test suite when running on debian amd64: python 2.7.15: =================================== FAILURES =================================== ___...

Opengraph URL: https://github.com/matplotlib/matplotlib/issues/11324

X: @github

direct link

Domain: github.com


Hey, it has json ld scripts:
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"matplotlib 3.3.0 debian amd64: tests errors","articleBody":"Hello,\r\ni'm reporting here the errors produced by the test suite when running on debian amd64:\r\n\r\npython 2.7.15:\r\n```\r\n=================================== FAILURES ===================================\r\n_____________________________ test_log_scales[png] _____________________________\r\n\r\nself = \u003cCallInfo when='call' exception: Image sizes do not match expected size: (600, 800, 3) actual size (600, 800, 4)\u003e\r\nfunc = \u003cfunction \u003clambda\u003e at 0x7f13fab3e410\u003e, when = 'call'\r\n\r\n    def __init__(self, func, when):\r\n        #: context of invocation: one of \"setup\", \"call\",\r\n        #: \"teardown\", \"memocollect\"\r\n        self.when = when\r\n        self.start = time()\r\n        try:\r\n\u003e           self.result = func()\r\n\r\n/usr/lib/python2.7/dist-packages/_pytest/runner.py:189: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\n\u003e   return CallInfo(lambda: ihook(item=item, **kwds), when=when)\r\n\r\n/usr/lib/python2.7/dist-packages/_pytest/runner.py:175: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nself = \u003c_HookCaller 'pytest_runtest_call'\u003e, args = ()\r\nkwargs = {'item': \u003cFunction 'test_log_scales[png]'\u003e}, notincall = set([])\r\n\r\n    def __call__(self, *args, **kwargs):\r\n        if args:\r\n            raise TypeError(\"hook calling supports only keyword arguments\")\r\n        assert not self.is_historic()\r\n        if self.argnames:\r\n            notincall = set(self.argnames) - set(['__multicall__']) - set(\r\n                kwargs.keys())\r\n            if notincall:\r\n                warnings.warn(\r\n                    \"Argument(s) {} which are declared in the hookspec \"\r\n                    \"can not be found in this hook call\"\r\n                    .format(tuple(notincall)),\r\n                    stacklevel=2,\r\n                )\r\n\u003e       return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:617: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nself = \u003c_pytest.config.PytestPluginManager object at 0x7f140b120f50\u003e\r\nhook = \u003c_HookCaller 'pytest_runtest_call'\u003e\r\nmethods = [\u003cpluggy.HookImpl object at 0x7f140a075a10\u003e, \u003cpluggy.HookImpl object at 0x7f1409fb5ad0\u003e, \u003cpluggy.HookImpl object at 0x7f1409fc27d0\u003e]\r\nkwargs = {'item': \u003cFunction 'test_log_scales[png]'\u003e}\r\n\r\n    def _hookexec(self, hook, methods, kwargs):\r\n        # called from all hookcaller instances.\r\n        # enable_tracing will set its own wrapping function at self._inner_hookexec\r\n\u003e       return self._inner_hookexec(hook, methods, kwargs)\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:222: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nhook = \u003c_HookCaller 'pytest_runtest_call'\u003e\r\nmethods = [\u003cpluggy.HookImpl object at 0x7f140a075a10\u003e, \u003cpluggy.HookImpl object at 0x7f1409fb5ad0\u003e, \u003cpluggy.HookImpl object at 0x7f1409fc27d0\u003e]\r\nkwargs = {'item': \u003cFunction 'test_log_scales[png]'\u003e}\r\n\r\n    self._inner_hookexec = lambda hook, methods, kwargs: \\\r\n        hook.multicall(\r\n            methods, kwargs,\r\n\u003e           firstresult=hook.spec_opts.get('firstresult'),\r\n        )\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:216: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nitem = \u003cFunction 'test_log_scales[png]'\u003e\r\n\r\n    def pytest_runtest_call(item):\r\n        _update_current_test_var(item, 'call')\r\n        try:\r\n\u003e           item.runtest()\r\n\r\n/usr/lib/python2.7/dist-packages/_pytest/runner.py:106: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nself = \u003cFunction 'test_log_scales[png]'\u003e\r\n\r\n    def runtest(self):\r\n        \"\"\" execute the underlying test function. \"\"\"\r\n\u003e       self.ihook.pytest_pyfunc_call(pyfuncitem=self)\r\n\r\n/usr/lib/python2.7/dist-packages/_pytest/python.py:1171: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nself = \u003c_HookCaller 'pytest_pyfunc_call'\u003e, args = ()\r\nkwargs = {'pyfuncitem': \u003cFunction 'test_log_scales[png]'\u003e}, notincall = set([])\r\n\r\n    def __call__(self, *args, **kwargs):\r\n        if args:\r\n            raise TypeError(\"hook calling supports only keyword arguments\")\r\n        assert not self.is_historic()\r\n        if self.argnames:\r\n            notincall = set(self.argnames) - set(['__multicall__']) - set(\r\n                kwargs.keys())\r\n            if notincall:\r\n                warnings.warn(\r\n                    \"Argument(s) {} which are declared in the hookspec \"\r\n                    \"can not be found in this hook call\"\r\n                    .format(tuple(notincall)),\r\n                    stacklevel=2,\r\n                )\r\n\u003e       return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:617: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nself = \u003c_pytest.config.PytestPluginManager object at 0x7f140b120f50\u003e\r\nhook = \u003c_HookCaller 'pytest_pyfunc_call'\u003e\r\nmethods = [\u003cpluggy.HookImpl object at 0x7f140a086090\u003e, \u003cpluggy.HookImpl object at 0x7f140a028090\u003e]\r\nkwargs = {'pyfuncitem': \u003cFunction 'test_log_scales[png]'\u003e}\r\n\r\n    def _hookexec(self, hook, methods, kwargs):\r\n        # called from all hookcaller instances.\r\n        # enable_tracing will set its own wrapping function at self._inner_hookexec\r\n\u003e       return self._inner_hookexec(hook, methods, kwargs)\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:222: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nhook = \u003c_HookCaller 'pytest_pyfunc_call'\u003e\r\nmethods = [\u003cpluggy.HookImpl object at 0x7f140a086090\u003e, \u003cpluggy.HookImpl object at 0x7f140a028090\u003e]\r\nkwargs = {'pyfuncitem': \u003cFunction 'test_log_scales[png]'\u003e}\r\n\r\n    self._inner_hookexec = lambda hook, methods, kwargs: \\\r\n        hook.multicall(\r\n            methods, kwargs,\r\n\u003e           firstresult=hook.spec_opts.get('firstresult'),\r\n        )\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:216: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\npyfuncitem = \u003cFunction 'test_log_scales[png]'\u003e\r\n\r\n    @hookimpl(trylast=True)\r\n    def pytest_pyfunc_call(pyfuncitem):\r\n        testfunction = pyfuncitem.obj\r\n        if pyfuncitem._isyieldedfunction():\r\n            testfunction(*pyfuncitem._args)\r\n        else:\r\n            funcargs = pyfuncitem.funcargs\r\n            testargs = {}\r\n            for arg in pyfuncitem._fixtureinfo.argnames:\r\n                testargs[arg] = funcargs[arg]\r\n\u003e           testfunction(**testargs)\r\n\r\n/usr/lib/python2.7/dist-packages/_pytest/python.py:147: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nexpected = '/build/matplotlib-2.2.2/result_images/test_axes/log_scales-expected.png'\r\nactual = '/build/matplotlib-2.2.2/result_images/test_axes/log_scales.png'\r\ntol = 0.306, in_decorator = True\r\n\r\n    def compare_images(expected, actual, tol, in_decorator=False):\r\n        \"\"\"\r\n        Compare two \"image\" files checking differences within a tolerance.\r\n    \r\n        The two given filenames may point to files which are convertible to\r\n        PNG via the `.converter` dictionary. The underlying RMS is calculated\r\n        with the `.calculate_rms` function.\r\n    \r\n        Parameters\r\n        ----------\r\n        expected : str\r\n            The filename of the expected image.\r\n        actual :str\r\n            The filename of the actual image.\r\n        tol : float\r\n            The tolerance (a color value difference, where 255 is the\r\n            maximal difference).  The test fails if the average pixel\r\n            difference is greater than this value.\r\n        in_decorator : bool\r\n            If called from image_comparison decorator, this should be\r\n            True. (default=False)\r\n    \r\n        Examples\r\n        --------\r\n        img1 = \"./baseline/plot.png\"\r\n        img2 = \"./output/plot.png\"\r\n        compare_images( img1, img2, 0.001 ):\r\n    \r\n        \"\"\"\r\n        if not os.path.exists(actual):\r\n            raise Exception(\"Output image %s does not exist.\" % actual)\r\n    \r\n        if os.stat(actual).st_size == 0:\r\n            raise Exception(\"Output image file %s is empty.\" % actual)\r\n    \r\n        # Convert the image to png\r\n        extension = expected.split('.')[-1]\r\n    \r\n        if not os.path.exists(expected):\r\n            raise IOError('Baseline image %r does not exist.' % expected)\r\n    \r\n        if extension != 'png':\r\n            actual = convert(actual, False)\r\n            expected = convert(expected, True)\r\n    \r\n        # open the image files and remove the alpha channel (if it exists)\r\n        expectedImage = _png.read_png_int(expected)\r\n        actualImage = _png.read_png_int(actual)\r\n        expectedImage = expectedImage[:, :, :3]\r\n        actualImage = actualImage[:, :, :3]\r\n    \r\n        actualImage, expectedImage = crop_to_same(\r\n            actual, actualImage, expected, expectedImage)\r\n    \r\n        diff_image = make_test_filename(actual, 'failed-diff')\r\n    \r\n        if tol \u003c= 0.0:\r\n            if np.array_equal(expectedImage, actualImage):\r\n                return None\r\n    \r\n        # convert to signed integers, so that the images can be subtracted without\r\n        # overflow\r\n        expectedImage = expectedImage.astype(np.int16)\r\n        actualImage = actualImage.astype(np.int16)\r\n    \r\n        rms = calculate_rms(expectedImage, actualImage)\r\n    \r\n        if rms \u003c= tol:\r\n            return None\r\n    \r\n\u003e       save_diff_image(expected, actual, diff_image)\r\n\r\nbuild/lib.linux-x86_64-2.7/matplotlib/testing/compare.py:444: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nexpected = '/build/matplotlib-2.2.2/result_images/test_axes/log_scales-expected.png'\r\nactual = '/build/matplotlib-2.2.2/result_images/test_axes/log_scales.png'\r\noutput = '/build/matplotlib-2.2.2/result_images/test_axes/log_scales-failed-diff.png'\r\n\r\n    def save_diff_image(expected, actual, output):\r\n        expectedImage = _png.read_png(expected)\r\n        actualImage = _png.read_png(actual)\r\n        actualImage, expectedImage = crop_to_same(\r\n            actual, actualImage, expected, expectedImage)\r\n        expectedImage = np.array(expectedImage).astype(float)\r\n        actualImage = np.array(actualImage).astype(float)\r\n        if expectedImage.shape != actualImage.shape:\r\n            raise ImageComparisonFailure(\r\n                \"Image sizes do not match expected size: {0} \"\r\n\u003e               \"actual size {1}\".format(expectedImage.shape, actualImage.shape))\r\nE           ImageComparisonFailure: Image sizes do not match expected size: (600, 800, 3) actual size (600, 800, 4)\r\n\r\nbuild/lib.linux-x86_64-2.7/matplotlib/testing/compare.py:471: ImageComparisonFailure\r\n__________________ test_bbox_inches_tight_suptile_legend[png] __________________\r\n\r\nself = \u003cCallInfo when='call' exception: Image sizes do not match expected size: (593, 921, 3) actual size (592, 921, 3)\u003e\r\nfunc = \u003cfunction \u003clambda\u003e at 0x7f13f9af5ed8\u003e, when = 'call'\r\n\r\n    def __init__(self, func, when):\r\n        #: context of invocation: one of \"setup\", \"call\",\r\n        #: \"teardown\", \"memocollect\"\r\n        self.when = when\r\n        self.start = time()\r\n        try:\r\n\u003e           self.result = func()\r\n\r\n/usr/lib/python2.7/dist-packages/_pytest/runner.py:189: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\n\u003e   return CallInfo(lambda: ihook(item=item, **kwds), when=when)\r\n\r\n/usr/lib/python2.7/dist-packages/_pytest/runner.py:175: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nself = \u003c_HookCaller 'pytest_runtest_call'\u003e, args = ()\r\nkwargs = {'item': \u003cFunction 'test_bbox_inches_tight_suptile_legend[png]'\u003e}\r\nnotincall = set([])\r\n\r\n    def __call__(self, *args, **kwargs):\r\n        if args:\r\n            raise TypeError(\"hook calling supports only keyword arguments\")\r\n        assert not self.is_historic()\r\n        if self.argnames:\r\n            notincall = set(self.argnames) - set(['__multicall__']) - set(\r\n                kwargs.keys())\r\n            if notincall:\r\n                warnings.warn(\r\n                    \"Argument(s) {} which are declared in the hookspec \"\r\n                    \"can not be found in this hook call\"\r\n                    .format(tuple(notincall)),\r\n                    stacklevel=2,\r\n                )\r\n\u003e       return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:617: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nself = \u003c_pytest.config.PytestPluginManager object at 0x7f140b120f50\u003e\r\nhook = \u003c_HookCaller 'pytest_runtest_call'\u003e\r\nmethods = [\u003cpluggy.HookImpl object at 0x7f140a075a10\u003e, \u003cpluggy.HookImpl object at 0x7f1409fb5ad0\u003e, \u003cpluggy.HookImpl object at 0x7f1409fc27d0\u003e]\r\nkwargs = {'item': \u003cFunction 'test_bbox_inches_tight_suptile_legend[png]'\u003e}\r\n\r\n    def _hookexec(self, hook, methods, kwargs):\r\n        # called from all hookcaller instances.\r\n        # enable_tracing will set its own wrapping function at self._inner_hookexec\r\n\u003e       return self._inner_hookexec(hook, methods, kwargs)\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:222: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nhook = \u003c_HookCaller 'pytest_runtest_call'\u003e\r\nmethods = [\u003cpluggy.HookImpl object at 0x7f140a075a10\u003e, \u003cpluggy.HookImpl object at 0x7f1409fb5ad0\u003e, \u003cpluggy.HookImpl object at 0x7f1409fc27d0\u003e]\r\nkwargs = {'item': \u003cFunction 'test_bbox_inches_tight_suptile_legend[png]'\u003e}\r\n\r\n    self._inner_hookexec = lambda hook, methods, kwargs: \\\r\n        hook.multicall(\r\n            methods, kwargs,\r\n\u003e           firstresult=hook.spec_opts.get('firstresult'),\r\n        )\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:216: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nitem = \u003cFunction 'test_bbox_inches_tight_suptile_legend[png]'\u003e\r\n\r\n    def pytest_runtest_call(item):\r\n        _update_current_test_var(item, 'call')\r\n        try:\r\n\u003e           item.runtest()\r\n\r\n/usr/lib/python2.7/dist-packages/_pytest/runner.py:106: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nself = \u003cFunction 'test_bbox_inches_tight_suptile_legend[png]'\u003e\r\n\r\n    def runtest(self):\r\n        \"\"\" execute the underlying test function. \"\"\"\r\n\u003e       self.ihook.pytest_pyfunc_call(pyfuncitem=self)\r\n\r\n/usr/lib/python2.7/dist-packages/_pytest/python.py:1171: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nself = \u003c_HookCaller 'pytest_pyfunc_call'\u003e, args = ()\r\nkwargs = {'pyfuncitem': \u003cFunction 'test_bbox_inches_tight_suptile_legend[png]'\u003e}\r\nnotincall = set([])\r\n\r\n    def __call__(self, *args, **kwargs):\r\n        if args:\r\n            raise TypeError(\"hook calling supports only keyword arguments\")\r\n        assert not self.is_historic()\r\n        if self.argnames:\r\n            notincall = set(self.argnames) - set(['__multicall__']) - set(\r\n                kwargs.keys())\r\n            if notincall:\r\n                warnings.warn(\r\n                    \"Argument(s) {} which are declared in the hookspec \"\r\n                    \"can not be found in this hook call\"\r\n                    .format(tuple(notincall)),\r\n                    stacklevel=2,\r\n                )\r\n\u003e       return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:617: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nself = \u003c_pytest.config.PytestPluginManager object at 0x7f140b120f50\u003e\r\nhook = \u003c_HookCaller 'pytest_pyfunc_call'\u003e\r\nmethods = [\u003cpluggy.HookImpl object at 0x7f140a086090\u003e, \u003cpluggy.HookImpl object at 0x7f140a028090\u003e]\r\nkwargs = {'pyfuncitem': \u003cFunction 'test_bbox_inches_tight_suptile_legend[png]'\u003e}\r\n\r\n    def _hookexec(self, hook, methods, kwargs):\r\n        # called from all hookcaller instances.\r\n        # enable_tracing will set its own wrapping function at self._inner_hookexec\r\n\u003e       return self._inner_hookexec(hook, methods, kwargs)\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:222: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nhook = \u003c_HookCaller 'pytest_pyfunc_call'\u003e\r\nmethods = [\u003cpluggy.HookImpl object at 0x7f140a086090\u003e, \u003cpluggy.HookImpl object at 0x7f140a028090\u003e]\r\nkwargs = {'pyfuncitem': \u003cFunction 'test_bbox_inches_tight_suptile_legend[png]'\u003e}\r\n\r\n    self._inner_hookexec = lambda hook, methods, kwargs: \\\r\n        hook.multicall(\r\n            methods, kwargs,\r\n\u003e           firstresult=hook.spec_opts.get('firstresult'),\r\n        )\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:216: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\npyfuncitem = \u003cFunction 'test_bbox_inches_tight_suptile_legend[png]'\u003e\r\n\r\n    @hookimpl(trylast=True)\r\n    def pytest_pyfunc_call(pyfuncitem):\r\n        testfunction = pyfuncitem.obj\r\n        if pyfuncitem._isyieldedfunction():\r\n            testfunction(*pyfuncitem._args)\r\n        else:\r\n            funcargs = pyfuncitem.funcargs\r\n            testargs = {}\r\n            for arg in pyfuncitem._fixtureinfo.argnames:\r\n                testargs[arg] = funcargs[arg]\r\n\u003e           testfunction(**testargs)\r\n\r\n/usr/lib/python2.7/dist-packages/_pytest/python.py:147: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nexpected = '/build/matplotlib-2.2.2/result_images/test_bbox_tight/bbox_inches_tight_suptile_legend-expected.png'\r\nactual = '/build/matplotlib-2.2.2/result_images/test_bbox_tight/bbox_inches_tight_suptile_legend.png'\r\ntol = 0.306, in_decorator = True\r\n\r\n    def compare_images(expected, actual, tol, in_decorator=False):\r\n        \"\"\"\r\n        Compare two \"image\" files checking differences within a tolerance.\r\n    \r\n        The two given filenames may point to files which are convertible to\r\n        PNG via the `.converter` dictionary. The underlying RMS is calculated\r\n        with the `.calculate_rms` function.\r\n    \r\n        Parameters\r\n        ----------\r\n        expected : str\r\n            The filename of the expected image.\r\n        actual :str\r\n            The filename of the actual image.\r\n        tol : float\r\n            The tolerance (a color value difference, where 255 is the\r\n            maximal difference).  The test fails if the average pixel\r\n            difference is greater than this value.\r\n        in_decorator : bool\r\n            If called from image_comparison decorator, this should be\r\n            True. (default=False)\r\n    \r\n        Examples\r\n        --------\r\n        img1 = \"./baseline/plot.png\"\r\n        img2 = \"./output/plot.png\"\r\n        compare_images( img1, img2, 0.001 ):\r\n    \r\n        \"\"\"\r\n        if not os.path.exists(actual):\r\n            raise Exception(\"Output image %s does not exist.\" % actual)\r\n    \r\n        if os.stat(actual).st_size == 0:\r\n            raise Exception(\"Output image file %s is empty.\" % actual)\r\n    \r\n        # Convert the image to png\r\n        extension = expected.split('.')[-1]\r\n    \r\n        if not os.path.exists(expected):\r\n            raise IOError('Baseline image %r does not exist.' % expected)\r\n    \r\n        if extension != 'png':\r\n            actual = convert(actual, False)\r\n            expected = convert(expected, True)\r\n    \r\n        # open the image files and remove the alpha channel (if it exists)\r\n        expectedImage = _png.read_png_int(expected)\r\n        actualImage = _png.read_png_int(actual)\r\n        expectedImage = expectedImage[:, :, :3]\r\n        actualImage = actualImage[:, :, :3]\r\n    \r\n        actualImage, expectedImage = crop_to_same(\r\n            actual, actualImage, expected, expectedImage)\r\n    \r\n        diff_image = make_test_filename(actual, 'failed-diff')\r\n    \r\n        if tol \u003c= 0.0:\r\n            if np.array_equal(expectedImage, actualImage):\r\n                return None\r\n    \r\n        # convert to signed integers, so that the images can be subtracted without\r\n        # overflow\r\n        expectedImage = expectedImage.astype(np.int16)\r\n        actualImage = actualImage.astype(np.int16)\r\n    \r\n\u003e       rms = calculate_rms(expectedImage, actualImage)\r\n\r\nbuild/lib.linux-x86_64-2.7/matplotlib/testing/compare.py:439: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nexpectedImage = array([[[255, 255, 255],\r\n        [255, 255, 255],\r\n        [255, 255, 255],\r\n   ...55, 255, 255],\r\n        [255, 255, 255],\r\n        [255, 255, 255]]], dtype=int16)\r\nactualImage = array([[[255, 255, 255],\r\n        [255, 255, 255],\r\n        [255, 255, 255],\r\n   ...55, 255, 255],\r\n        [255, 255, 255],\r\n        [255, 255, 255]]], dtype=int16)\r\n\r\n    def calculate_rms(expectedImage, actualImage):\r\n        \"Calculate the per-pixel errors, then compute the root mean square error.\"\r\n        if expectedImage.shape != actualImage.shape:\r\n            raise ImageComparisonFailure(\r\n                \"Image sizes do not match expected size: {0} \"\r\n\u003e               \"actual size {1}\".format(expectedImage.shape, actualImage.shape))\r\nE           ImageComparisonFailure: Image sizes do not match expected size: (593, 921, 3) actual size (592, 921, 3)\r\n\r\nbuild/lib.linux-x86_64-2.7/matplotlib/testing/compare.py:369: ImageComparisonFailure\r\n__________________ test_nose_image_comparison[failing figure] __________________\r\n\r\nself = \u003cCallInfo when='call' exception: assert '...' == 'FFF'\r\n  - ...\r\n  + FFF\u003e\r\nfunc = \u003cfunction \u003clambda\u003e at 0x7f13fa2209b0\u003e, when = 'call'\r\n\r\n    def __init__(self, func, when):\r\n        #: context of invocation: one of \"setup\", \"call\",\r\n        #: \"teardown\", \"memocollect\"\r\n        self.when = when\r\n        self.start = time()\r\n        try:\r\n\u003e           self.result = func()\r\n\r\n/usr/lib/python2.7/dist-packages/_pytest/runner.py:189: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\n\u003e   return CallInfo(lambda: ihook(item=item, **kwds), when=when)\r\n\r\n/usr/lib/python2.7/dist-packages/_pytest/runner.py:175: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nself = \u003c_HookCaller 'pytest_runtest_call'\u003e, args = ()\r\nkwargs = {'item': \u003cFunction 'test_nose_image_comparison[failing figure]'\u003e}\r\nnotincall = set([])\r\n\r\n    def __call__(self, *args, **kwargs):\r\n        if args:\r\n            raise TypeError(\"hook calling supports only keyword arguments\")\r\n        assert not self.is_historic()\r\n        if self.argnames:\r\n            notincall = set(self.argnames) - set(['__multicall__']) - set(\r\n                kwargs.keys())\r\n            if notincall:\r\n                warnings.warn(\r\n                    \"Argument(s) {} which are declared in the hookspec \"\r\n                    \"can not be found in this hook call\"\r\n                    .format(tuple(notincall)),\r\n                    stacklevel=2,\r\n                )\r\n\u003e       return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:617: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nself = \u003c_pytest.config.PytestPluginManager object at 0x7f140b120f50\u003e\r\nhook = \u003c_HookCaller 'pytest_runtest_call'\u003e\r\nmethods = [\u003cpluggy.HookImpl object at 0x7f140a075a10\u003e, \u003cpluggy.HookImpl object at 0x7f1409fb5ad0\u003e, \u003cpluggy.HookImpl object at 0x7f1409fc27d0\u003e]\r\nkwargs = {'item': \u003cFunction 'test_nose_image_comparison[failing figure]'\u003e}\r\n\r\n    def _hookexec(self, hook, methods, kwargs):\r\n        # called from all hookcaller instances.\r\n        # enable_tracing will set its own wrapping function at self._inner_hookexec\r\n\u003e       return self._inner_hookexec(hook, methods, kwargs)\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:222: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nhook = \u003c_HookCaller 'pytest_runtest_call'\u003e\r\nmethods = [\u003cpluggy.HookImpl object at 0x7f140a075a10\u003e, \u003cpluggy.HookImpl object at 0x7f1409fb5ad0\u003e, \u003cpluggy.HookImpl object at 0x7f1409fc27d0\u003e]\r\nkwargs = {'item': \u003cFunction 'test_nose_image_comparison[failing figure]'\u003e}\r\n\r\n    self._inner_hookexec = lambda hook, methods, kwargs: \\\r\n        hook.multicall(\r\n            methods, kwargs,\r\n\u003e           firstresult=hook.spec_opts.get('firstresult'),\r\n        )\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:216: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nitem = \u003cFunction 'test_nose_image_comparison[failing figure]'\u003e\r\n\r\n    def pytest_runtest_call(item):\r\n        _update_current_test_var(item, 'call')\r\n        try:\r\n\u003e           item.runtest()\r\n\r\n/usr/lib/python2.7/dist-packages/_pytest/runner.py:106: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nself = \u003cFunction 'test_nose_image_comparison[failing figure]'\u003e\r\n\r\n    def runtest(self):\r\n        \"\"\" execute the underlying test function. \"\"\"\r\n\u003e       self.ihook.pytest_pyfunc_call(pyfuncitem=self)\r\n\r\n/usr/lib/python2.7/dist-packages/_pytest/python.py:1171: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nself = \u003c_HookCaller 'pytest_pyfunc_call'\u003e, args = ()\r\nkwargs = {'pyfuncitem': \u003cFunction 'test_nose_image_comparison[failing figure]'\u003e}\r\nnotincall = set([])\r\n\r\n    def __call__(self, *args, **kwargs):\r\n        if args:\r\n            raise TypeError(\"hook calling supports only keyword arguments\")\r\n        assert not self.is_historic()\r\n        if self.argnames:\r\n            notincall = set(self.argnames) - set(['__multicall__']) - set(\r\n                kwargs.keys())\r\n            if notincall:\r\n                warnings.warn(\r\n                    \"Argument(s) {} which are declared in the hookspec \"\r\n                    \"can not be found in this hook call\"\r\n                    .format(tuple(notincall)),\r\n                    stacklevel=2,\r\n                )\r\n\u003e       return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:617: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nself = \u003c_pytest.config.PytestPluginManager object at 0x7f140b120f50\u003e\r\nhook = \u003c_HookCaller 'pytest_pyfunc_call'\u003e\r\nmethods = [\u003cpluggy.HookImpl object at 0x7f140a086090\u003e, \u003cpluggy.HookImpl object at 0x7f140a028090\u003e]\r\nkwargs = {'pyfuncitem': \u003cFunction 'test_nose_image_comparison[failing figure]'\u003e}\r\n\r\n    def _hookexec(self, hook, methods, kwargs):\r\n        # called from all hookcaller instances.\r\n        # enable_tracing will set its own wrapping function at self._inner_hookexec\r\n\u003e       return self._inner_hookexec(hook, methods, kwargs)\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:222: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nhook = \u003c_HookCaller 'pytest_pyfunc_call'\u003e\r\nmethods = [\u003cpluggy.HookImpl object at 0x7f140a086090\u003e, \u003cpluggy.HookImpl object at 0x7f140a028090\u003e]\r\nkwargs = {'pyfuncitem': \u003cFunction 'test_nose_image_comparison[failing figure]'\u003e}\r\n\r\n    self._inner_hookexec = lambda hook, methods, kwargs: \\\r\n        hook.multicall(\r\n            methods, kwargs,\r\n\u003e           firstresult=hook.spec_opts.get('firstresult'),\r\n        )\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:216: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\npyfuncitem = \u003cFunction 'test_nose_image_comparison[failing figure]'\u003e\r\n\r\n    @hookimpl(trylast=True)\r\n    def pytest_pyfunc_call(pyfuncitem):\r\n        testfunction = pyfuncitem.obj\r\n        if pyfuncitem._isyieldedfunction():\r\n            testfunction(*pyfuncitem._args)\r\n        else:\r\n            funcargs = pyfuncitem.funcargs\r\n            testargs = {}\r\n            for arg in pyfuncitem._fixtureinfo.argnames:\r\n                testargs[arg] = funcargs[arg]\r\n\u003e           testfunction(**testargs)\r\n\r\n/usr/lib/python2.7/dist-packages/_pytest/python.py:147: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nfunc = \u003cfunction nosetest_simple_figure at 0x7f13fa4bc938\u003e\r\nkwargs = {'baseline_images': ['simple'], 'extensions': ['png', 'png', 'png']}\r\nerrors = []\r\nfailures = [(\u003cclass 'matplotlib.testing.exceptions.ImageComparisonFailure'\u003e, 'images not close'), (\u003cclass 'matplotlib.testing.exc...onFailure'\u003e, 'images not close'), (\u003cclass 'matplotlib.testing.exceptions.ImageComparisonFailure'\u003e, 'images not close')]\r\ndots = 'FFF'\r\nmonkeypatch = \u003c_pytest.monkeypatch.MonkeyPatch instance at 0x7f13fb26e128\u003e\r\n\r\n    @pytest.mark.parametrize(\r\n        'func, kwargs, errors, failures, dots',\r\n        [\r\n            (nosetest_empty, {'baseline_images': []}, [], [], ''),\r\n            (nosetest_empty, {'baseline_images': ['foo']},\r\n             [(AssertionError,\r\n               'Test generated 0 images but there are 1 baseline images')],\r\n             [],\r\n             'E'),\r\n            (nosetest_simple_figure,\r\n             {'baseline_images': ['basn3p02'], 'extensions': ['png'],\r\n              'remove_text': True},\r\n             [],\r\n             [(ImageComparisonFailure, 'Image sizes do not match expected size:')],\r\n             'F'),\r\n            (nosetest_simple_figure,\r\n             {'baseline_images': ['simple']},\r\n             [],\r\n             [(ImageComparisonFailure, 'images not close')] * 3,\r\n             'FFF'),\r\n            (nosetest_simple_figure,\r\n             {'baseline_images': ['simple'], 'remove_text': True},\r\n             [],\r\n             [],\r\n             '...'),\r\n            (nosetest_manual_text_removal,\r\n             {'baseline_images': ['simple']},\r\n             [],\r\n             [],\r\n             '...'),\r\n        ],\r\n        ids=[\r\n            'empty',\r\n            'extra baselines',\r\n            'incorrect shape',\r\n            'failing figure',\r\n            'passing figure',\r\n            'manual text removal',\r\n        ])\r\n    def test_nose_image_comparison(func, kwargs, errors, failures, dots,\r\n                                   monkeypatch):\r\n        nose = pytest.importorskip('nose')\r\n        monkeypatch.setattr('matplotlib._called_from_pytest', False)\r\n    \r\n        class TestResultVerifier(nose.result.TextTestResult):\r\n            def __init__(self, *args, **kwargs):\r\n                super(TestResultVerifier, self).__init__(*args, **kwargs)\r\n                self.error_count = 0\r\n                self.failure_count = 0\r\n    \r\n            def addError(self, test, err):\r\n                super(TestResultVerifier, self).addError(test, err)\r\n    \r\n                if self.error_count \u003c len(errors):\r\n                    assert err[0] is errors[self.error_count][0]\r\n                    assert errors[self.error_count][1] in str(err[1])\r\n                else:\r\n                    raise err[1]\r\n                self.error_count += 1\r\n    \r\n            def addFailure(self, test, err):\r\n                super(TestResultVerifier, self).addFailure(test, err)\r\n    \r\n                assert self.failure_count \u003c len(failures), err[1]\r\n                assert err[0] is failures[self.failure_count][0]\r\n                assert failures[self.failure_count][1] in str(err[1])\r\n                self.failure_count += 1\r\n    \r\n        # Make sure that multiple extensions work, but don't require LaTeX or\r\n        # Inkscape to do so.\r\n        kwargs.setdefault('extensions', ['png', 'png', 'png'])\r\n    \r\n        func = image_comparison(**kwargs)(func)\r\n        loader = nose.loader.TestLoader()\r\n        suite = loader.loadTestsFromGenerator(\r\n            func,\r\n            'matplotlib.tests.test_compare_images')\r\n        if six.PY2:\r\n            output = io.BytesIO()\r\n        else:\r\n            output = io.StringIO()\r\n        result = TestResultVerifier(stream=output, descriptions=True, verbosity=1)\r\n        with warnings.catch_warnings():\r\n            # Nose uses deprecated stuff; we don't care about it.\r\n            warnings.simplefilter('ignore', DeprecationWarning)\r\n            suite.run(result=result)\r\n    \r\n\u003e       assert output.getvalue() == dots\r\nE       AssertionError: assert '...' == 'FFF'\r\nE         - ...\r\nE         + FFF\r\n\r\nbuild/lib.linux-x86_64-2.7/matplotlib/tests/test_compare_images.py:199: AssertionError\r\n----------------------------- Captured stdout call -----------------------------\r\nimages not close (RMS 12.955):\r\n\tresult_images/test_compare_images/simple.png\r\n\tresult_images/test_compare_images/simple-expected.png \r\nimages not close (RMS 12.955):\r\n\tresult_images/test_compare_images/simple.png\r\n\tresult_images/test_compare_images/simple-expected.png \r\nimages not close (RMS 12.955):\r\n\tresult_images/test_compare_images/simple.png\r\n\tresult_images/test_compare_images/simple-expected.png \r\n------------------------------ Captured log call -------------------------------\r\nimporter.py                143 DEBUG    Add path /build/matplotlib-2.2.2\r\nsuite.py                   418 DEBUG    Create suite for \u003cfunction generate at 0x7f13fb0b9398\u003e\r\nsuite.py                   420 DEBUG    tests \u003cfunction generate at 0x7f13fb0b9398\u003e context \u003cfunction nosetest_simple_figure at 0x7f13fa4bc938\u003e\r\nsuite.py                   148 DEBUG    Context suite for \u003cfunction generate at 0x7f13fb0b9398\u003e (\u003cfunction nosetest_simple_figure at 0x7f13fa4bc938\u003e) (139723701656336)\r\nsuite.py                   481 DEBUG    suite \u003cnose.suite.ContextSuite context=nosetest_simple_figure\u003e has context nosetest_simple_figure\r\nsuite.py                   435 DEBUG    get ancestry \u003cfunction nosetest_simple_figure at 0x7f13fa4bc938\u003e\r\nsuite.py                   452 DEBUG     \u003cfunction nosetest_simple_figure at 0x7f13fa4bc938\u003e ancestors ['matplotlib', 'tests', 'test_compare_images']\r\nutil.py                    311 DEBUG    __import__ matplotlib.tests.test_compare_images\r\nutil.py                    320 DEBUG    resolve: ['tests', 'test_compare_images'], matplotlib.tests.test_compare_images, \u003cmodule 'matplotlib' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7/matplotlib/__init__.py'\u003e, \u003cmodule 'matplotlib' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7/matplotlib/__init__.py'\u003e\r\nsuite.py                   485 DEBUG    suite \u003cnose.suite.ContextSuite context=nosetest_simple_figure\u003e has ancestor matplotlib.tests.test_compare_images\r\nsuite.py                   452 DEBUG     \u003cfunction nosetest_simple_figure at 0x7f13fa4bc938\u003e ancestors ['matplotlib', 'tests']\r\nutil.py                    311 DEBUG    __import__ matplotlib.tests\r\nutil.py                    320 DEBUG    resolve: ['tests'], matplotlib.tests, \u003cmodule 'matplotlib' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7/matplotlib/__init__.py'\u003e, \u003cmodule 'matplotlib' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7/matplotlib/__init__.py'\u003e\r\nsuite.py                   485 DEBUG    suite \u003cnose.suite.ContextSuite context=nosetest_simple_figure\u003e has ancestor matplotlib.tests\r\nsuite.py                   452 DEBUG     \u003cfunction nosetest_simple_figure at 0x7f13fa4bc938\u003e ancestors ['matplotlib']\r\nutil.py                    311 DEBUG    __import__ matplotlib\r\nutil.py                    320 DEBUG    resolve: [], matplotlib, \u003cmodule 'matplotlib' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7/matplotlib/__init__.py'\u003e, \u003cmodule 'matplotlib' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7/matplotlib/__init__.py'\u003e\r\nsuite.py                   485 DEBUG    suite \u003cnose.suite.ContextSuite context=nosetest_simple_figure\u003e has ancestor matplotlib\r\nsuite.py                   201 DEBUG    suite 139723701656336 (\u003cnose.suite.ContextSuite context=nosetest_simple_figure\u003e) run called, tests: \u003cgenerator object _get_wrapped_tests at 0x7f13f9f8eaf0\u003e\r\nsuite.py                   269 DEBUG    suite 139723701656336 setUp called, tests: \u003cgenerator object _get_wrapped_tests at 0x7f13fa3ce4b0\u003e\r\nsuite.py                    79 DEBUG    tests in 139723701656336?\r\nsuite.py                   288 DEBUG    ancestor \u003cmodule 'matplotlib' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7/matplotlib/__init__.py'\u003e may need setup\r\nsuite.py                   291 DEBUG    ancestor \u003cmodule 'matplotlib' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7/matplotlib/__init__.py'\u003e does need setup\r\nsuite.py                   302 DEBUG    \u003cnose.suite.ContextSuite context=nosetest_simple_figure\u003e setup context \u003cmodule 'matplotlib' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7/matplotlib/__init__.py'\u003e\r\nsuite.py                   288 DEBUG    ancestor \u003cmodule 'matplotlib.tests' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7/matplotlib/tests/__init__.py'\u003e may need setup\r\nsuite.py                   291 DEBUG    ancestor \u003cmodule 'matplotlib.tests' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7/matplotlib/tests/__init__.py'\u003e does need setup\r\nsuite.py                   302 DEBUG    \u003cnose.suite.ContextSuite context=nosetest_simple_figure\u003e setup context \u003cmodule 'matplotlib.tests' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7/matplotlib/tests/__init__.py'\u003e\r\nutil.py                    470 DEBUG    call fixture \u003cmodule 'matplotlib.tests' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7/matplotlib/tests/__init__.py'\u003e.setup\r\nsuite.py                   288 DEBUG    ancestor \u003cmodule 'matplotlib.tests.test_compare_images' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7/matplotlib/tests/test_compare_images.py'\u003e may need setup\r\nsuite.py                   291 DEBUG    ancestor \u003cmodule 'matplotlib.tests.test_compare_images' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7/matplotlib/tests/test_compare_images.py'\u003e does need setup\r\nsuite.py                   302 DEBUG    \u003cnose.suite.ContextSuite context=nosetest_simple_figure\u003e setup context \u003cmodule 'matplotlib.tests.test_compare_images' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7/matplotlib/tests/test_compare_images.py'\u003e\r\nsuite.py                   288 DEBUG    ancestor \u003cfunction nosetest_simple_figure at 0x7f13fa4bc938\u003e may need setup\r\nsuite.py                   291 DEBUG    ancestor \u003cfunction nosetest_simple_figure at 0x7f13fa4bc938\u003e does need setup\r\nsuite.py                   302 DEBUG    \u003cnose.suite.ContextSuite context=nosetest_simple_figure\u003e setup context \u003cfunction nosetest_simple_figure at 0x7f13fa4bc938\u003e\r\nutil.py                    470 DEBUG    call fixture \u003cfunction nosetest_simple_figure at 0x7f13fa4bc938\u003e.setup\r\nsuite.py                   298 DEBUG    completed suite setup\r\nsuite.py                    94 DEBUG    precache is [matplotlib.tests.test_compare_images.nosetest_simple_figure(0, 'simple', 'png')]\r\nsuite.py                   323 DEBUG    context teardown\r\nsuite.py                   341 DEBUG    ancestor \u003cfunction nosetest_simple_figure at 0x7f13fa4bc938\u003e may need teardown\r\nsuite.py                   349 DEBUG    \u003cnose.suite.ContextSuite context=nosetest_simple_figure\u003e setup ancestor \u003cfunction nosetest_simple_figure at 0x7f13fa4bc938\u003e\r\nsuite.py                   356 DEBUG    \u003cnose.suite.ContextSuite context=nosetest_simple_figure\u003e teardown context \u003cfunction nosetest_simple_figure at 0x7f13fa4bc938\u003e\r\nutil.py                    470 DEBUG    call fixture \u003cfunction nosetest_simple_figure at 0x7f13fa4bc938\u003e.teardown\r\nsuite.py                   341 DEBUG    ancestor \u003cmodule 'matplotlib.tests.test_compare_images' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7/matplotlib/tests/test_compare_images.py'\u003e may need teardown\r\nsuite.py                   349 DEBUG    \u003cnose.suite.ContextSuite context=nosetest_simple_figure\u003e setup ancestor \u003cmodule 'matplotlib.tests.test_compare_images' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7/matplotlib/tests/test_compare_images.py'\u003e\r\nsuite.py                   356 DEBUG    \u003cnose.suite.ContextSuite context=nosetest_simple_figure\u003e teardown context \u003cmodule 'matplotlib.tests.test_compare_images' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7/matplotlib/tests/test_compare_images.py'\u003e\r\nsuite.py                   341 DEBUG    ancestor \u003cmodule 'matplotlib.tests' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7/matplotlib/tests/__init__.py'\u003e may need teardown\r\nsuite.py                   349 DEBUG    \u003cnose.suite.ContextSuite context=nosetest_simple_figure\u003e setup ancestor \u003cmodule 'matplotlib.tests' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7/matplotlib/tests/__init__.py'\u003e\r\nsuite.py                   356 DEBUG    \u003cnose.suite.ContextSuite context=nosetest_simple_figure\u003e teardown context \u003cmodule 'matplotlib.tests' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7/matplotlib/tests/__init__.py'\u003e\r\nsuite.py                   341 DEBUG    ancestor \u003cmodule 'matplotlib' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7/matplotlib/__init__.py'\u003e may need teardown\r\nsuite.py                   349 DEBUG    \u003cnose.suite.ContextSuite context=nosetest_simple_figure\u003e setup ancestor \u003cmodule 'matplotlib' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7/matplotlib/__init__.py'\u003e\r\nsuite.py                   356 DEBUG    \u003cnose.suite.ContextSuite context=nosetest_simple_figure\u003e teardown context \u003cmodule 'matplotlib' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7/matplotlib/__init__.py'\u003e\r\nsuite.py                   341 DEBUG    ancestor \u003cfunction nosetest_simple_figure at 0x7f13fa4bc938\u003e may need teardown\r\nsuite.py                   346 DEBUG    ancestor \u003cfunction nosetest_simple_figure at 0x7f13fa4bc938\u003e already torn down\r\n=============================== warnings summary ===============================\r\nbuild/lib.linux-x86_64-2.7/matplotlib/tests/test_axes.py::test_fill_units[png]\r\n  /build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7/matplotlib/axes/_base.py:2504: RuntimeWarning: invalid value encountered in double_scalars\r\n    delta = (x1t - x0t) * margin\r\n\r\nbuild/lib.linux-x86_64-2.7/matplotlib/tests/test_axes.py::test_pyplot_axes\r\n  /build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7/matplotlib/cbook/deprecation.py:107: MatplotlibDeprecationWarning: Using pyplot.axes(ax) with ax an Axes argument is deprecated. Please use pyplot.sca(ax) instead.\r\n    warnings.warn(message, mplDeprecation, stacklevel=1)\r\n\r\nbuild/lib.linux-x86_64-2.7/matplotlib/tests/test_image.py::test_empty_imshow[make_norm2]\r\n  /build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7/matplotlib/colors.py:1133: RuntimeWarning: invalid value encountered in greater\r\n    masked = np.abs(a) \u003e self.linthresh\r\n\r\nbuild/lib.linux-x86_64-2.7/matplotlib/tests/test_image.py::test_full_invalid\r\n  /build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7/matplotlib/image.py:405: UserWarning: Warning: converting a masked element to nan.\r\n    dv = (np.float64(self.norm.vmax) -\r\n  /build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7/matplotlib/image.py:406: UserWarning: Warning: converting a masked element to nan.\r\n    np.float64(self.norm.vmin))\r\n  /build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7/matplotlib/image.py:412: UserWarning: Warning: converting a masked element to nan.\r\n    a_min = np.float64(newmin)\r\n  /build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7/matplotlib/image.py:417: UserWarning: Warning: converting a masked element to nan.\r\n    a_max = np.float64(newmax)\r\n  /build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7/matplotlib/colors.py:916: UserWarning: Warning: converting a masked element to nan.\r\n    dtype = np.min_scalar_type(value)\r\n  /usr/lib/python2.7/dist-packages/numpy/ma/core.py:716: UserWarning: Warning: converting a masked element to nan.\r\n    data = np.array(a, copy=False, subok=subok)\r\n\r\n-- Docs: http://doc.pytest.org/en/latest/warnings.html\r\n```\r\n\r\npython 2.7.15 debug flavor:\r\n```\r\n=================================== FAILURES ===================================\r\n_______________ test_save_animation_smoketest[pillow-movie.gif] ________________\r\n\r\nself = \u003cCallInfo when='call' exception: list index out of range\u003e\r\nfunc = \u003cfunction \u003clambda\u003e at 0x7f4fd42b1e28\u003e, when = 'call'\r\n\r\n    def __init__(self, func, when):\r\n        #: context of invocation: one of \"setup\", \"call\",\r\n        #: \"teardown\", \"memocollect\"\r\n        self.when = when\r\n        self.start = time()\r\n        try:\r\n\u003e           self.result = func()\r\n\r\n/usr/lib/python2.7/dist-packages/_pytest/runner.py:189: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\n\u003e   return CallInfo(lambda: ihook(item=item, **kwds), when=when)\r\n\r\n/usr/lib/python2.7/dist-packages/_pytest/runner.py:175: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nself = \u003c_HookCaller 'pytest_runtest_call'\u003e, args = ()\r\nkwargs = {'item': \u003cFunction 'test_save_animation_smoketest[pillow-movie.gif]'\u003e}\r\nnotincall = set([])\r\n\r\n    def __call__(self, *args, **kwargs):\r\n        if args:\r\n            raise TypeError(\"hook calling supports only keyword arguments\")\r\n        assert not self.is_historic()\r\n        if self.argnames:\r\n            notincall = set(self.argnames) - set(['__multicall__']) - set(\r\n                kwargs.keys())\r\n            if notincall:\r\n                warnings.warn(\r\n                    \"Argument(s) {} which are declared in the hookspec \"\r\n                    \"can not be found in this hook call\"\r\n                    .format(tuple(notincall)),\r\n                    stacklevel=2,\r\n                )\r\n\u003e       return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:617: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nself = \u003c_pytest.config.PytestPluginManager object at 0x7f4fdcda3b50\u003e\r\nhook = \u003c_HookCaller 'pytest_runtest_call'\u003e\r\nmethods = [\u003cpluggy.HookImpl object at 0x7f4fdba3a370\u003e, \u003cpluggy.HookImpl object at 0x7f4fdb93c530\u003e, \u003cpluggy.HookImpl object at 0x7f4fdb944bc0\u003e]\r\nkwargs = {'item': \u003cFunction 'test_save_animation_smoketest[pillow-movie.gif]'\u003e}\r\n\r\n    def _hookexec(self, hook, methods, kwargs):\r\n        # called from all hookcaller instances.\r\n        # enable_tracing will set its own wrapping function at self._inner_hookexec\r\n\u003e       return self._inner_hookexec(hook, methods, kwargs)\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:222: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nhook = \u003c_HookCaller 'pytest_runtest_call'\u003e\r\nmethods = [\u003cpluggy.HookImpl object at 0x7f4fdba3a370\u003e, \u003cpluggy.HookImpl object at 0x7f4fdb93c530\u003e, \u003cpluggy.HookImpl object at 0x7f4fdb944bc0\u003e]\r\nkwargs = {'item': \u003cFunction 'test_save_animation_smoketest[pillow-movie.gif]'\u003e}\r\n\r\n    self._inner_hookexec = lambda hook, methods, kwargs: \\\r\n        hook.multicall(\r\n            methods, kwargs,\r\n\u003e           firstresult=hook.spec_opts.get('firstresult'),\r\n        )\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:216: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nitem = \u003cFunction 'test_save_animation_smoketest[pillow-movie.gif]'\u003e\r\n\r\n    def pytest_runtest_call(item):\r\n        _update_current_test_var(item, 'call')\r\n        try:\r\n\u003e           item.runtest()\r\n\r\n/usr/lib/python2.7/dist-packages/_pytest/runner.py:106: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nself = \u003cFunction 'test_save_animation_smoketest[pillow-movie.gif]'\u003e\r\n\r\n    def runtest(self):\r\n        \"\"\" execute the underlying test function. \"\"\"\r\n\u003e       self.ihook.pytest_pyfunc_call(pyfuncitem=self)\r\n\r\n/usr/lib/python2.7/dist-packages/_pytest/python.py:1171: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nself = \u003c_HookCaller 'pytest_pyfunc_call'\u003e, args = ()\r\nkwargs = {'pyfuncitem': \u003cFunction 'test_save_animation_smoketest[pillow-movie.gif]'\u003e}\r\nnotincall = set([])\r\n\r\n    def __call__(self, *args, **kwargs):\r\n        if args:\r\n            raise TypeError(\"hook calling supports only keyword arguments\")\r\n        assert not self.is_historic()\r\n        if self.argnames:\r\n            notincall = set(self.argnames) - set(['__multicall__']) - set(\r\n                kwargs.keys())\r\n            if notincall:\r\n                warnings.warn(\r\n                    \"Argument(s) {} which are declared in the hookspec \"\r\n                    \"can not be found in this hook call\"\r\n                    .format(tuple(notincall)),\r\n                    stacklevel=2,\r\n                )\r\n\u003e       return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:617: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nself = \u003c_pytest.config.PytestPluginManager object at 0x7f4fdcda3b50\u003e\r\nhook = \u003c_HookCaller 'pytest_pyfunc_call'\u003e\r\nmethods = [\u003cpluggy.HookImpl object at 0x7f4fdba3ae60\u003e, \u003cpluggy.HookImpl object at 0x7f4fdb9f7290\u003e]\r\nkwargs = {'pyfuncitem': \u003cFunction 'test_save_animation_smoketest[pillow-movie.gif]'\u003e}\r\n\r\n    def _hookexec(self, hook, methods, kwargs):\r\n        # called from all hookcaller instances.\r\n        # enable_tracing will set its own wrapping function at self._inner_hookexec\r\n\u003e       return self._inner_hookexec(hook, methods, kwargs)\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:222: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nhook = \u003c_HookCaller 'pytest_pyfunc_call'\u003e\r\nmethods = [\u003cpluggy.HookImpl object at 0x7f4fdba3ae60\u003e, \u003cpluggy.HookImpl object at 0x7f4fdb9f7290\u003e]\r\nkwargs = {'pyfuncitem': \u003cFunction 'test_save_animation_smoketest[pillow-movie.gif]'\u003e}\r\n\r\n    self._inner_hookexec = lambda hook, methods, kwargs: \\\r\n        hook.multicall(\r\n            methods, kwargs,\r\n\u003e           firstresult=hook.spec_opts.get('firstresult'),\r\n        )\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:216: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\npyfuncitem = \u003cFunction 'test_save_animation_smoketest[pillow-movie.gif]'\u003e\r\n\r\n    @hookimpl(trylast=True)\r\n    def pytest_pyfunc_call(pyfuncitem):\r\n        testfunction = pyfuncitem.obj\r\n        if pyfuncitem._isyieldedfunction():\r\n            testfunction(*pyfuncitem._args)\r\n        else:\r\n            funcargs = pyfuncitem.funcargs\r\n            testargs = {}\r\n            for arg in pyfuncitem._fixtureinfo.argnames:\r\n                testargs[arg] = funcargs[arg]\r\n\u003e           testfunction(**testargs)\r\n\r\n/usr/lib/python2.7/dist-packages/_pytest/python.py:147: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\ntmpdir = local('/tmp/pytest-of-pbuilder/pytest-1/test_save_animation_smoketest_6')\r\nwriter = 'pillow', output = 'movie.gif'\r\n\r\n    @pytest.mark.parametrize('writer, output', WRITER_OUTPUT)\r\n    def test_save_animation_smoketest(tmpdir, writer, output):\r\n        try:\r\n            # for ImageMagick the rcparams must be patched to account for\r\n            # 'convert' being a built in MS tool, not the imagemagick\r\n            # tool.\r\n            writer._init_from_registry()\r\n        except AttributeError:\r\n            pass\r\n        if not animation.writers.is_available(writer):\r\n            pytest.skip(\"writer '%s' not available on this system\" % writer)\r\n        fig, ax = plt.subplots()\r\n        line, = ax.plot([], [])\r\n    \r\n        ax.set_xlim(0, 10)\r\n        ax.set_ylim(-1, 1)\r\n    \r\n        dpi = None\r\n        codec = None\r\n        if writer == 'ffmpeg':\r\n            # Issue #8253\r\n            fig.set_size_inches((10.85, 9.21))\r\n            dpi = 100.\r\n            codec = 'h264'\r\n    \r\n        def init():\r\n            line.set_data([], [])\r\n            return line,\r\n    \r\n        def animate(i):\r\n            x = np.linspace(0, 10, 100)\r\n            y = np.sin(x + i)\r\n            line.set_data(x, y)\r\n            return line,\r\n    \r\n        # Use temporary directory for the file-based writers, which produce a file\r\n        # per frame with known names.\r\n        with tmpdir.as_cwd():\r\n            anim = animation.FuncAnimation(fig, animate, init_func=init, frames=5)\r\n            try:\r\n                anim.save(output, fps=30, writer=writer, bitrate=500, dpi=dpi,\r\n\u003e                         codec=codec)\r\n\r\nbuild/lib.linux-x86_64-2.7-pydebug/matplotlib/tests/test_animation.py:174: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nself = \u003cmatplotlib.animation.FuncAnimation object at 0x7f4fcf6047d0\u003e\r\nfilename = 'movie.gif'\r\nwriter = \u003cmatplotlib.animation.PillowWriter object at 0x7f4fcf604b50\u003e, fps = 30\r\ndpi = 100.0, codec = 'mpeg4', bitrate = 500, extra_args = None, metadata = None\r\nextra_anim = None, savefig_kwargs = {}\r\n\r\n    def save(self, filename, writer=None, fps=None, dpi=None, codec=None,\r\n             bitrate=None, extra_args=None, metadata=None, extra_anim=None,\r\n             savefig_kwargs=None):\r\n        '''Saves a movie file by drawing every frame.\r\n    \r\n            Parameters\r\n            ----------\r\n    \r\n            filename : str\r\n                The output filename, e.g., :file:`mymovie.mp4`.\r\n    \r\n            writer : :class:`MovieWriter` or str, optional\r\n                A `MovieWriter` instance to use or a key that identifies a\r\n                class to use, such as 'ffmpeg'. If ``None``, defaults to\r\n                :rc:`animation.writer`.\r\n    \r\n            fps : number, optional\r\n               Frames per second in the movie. Defaults to ``None``, which will use\r\n               the animation's specified interval to set the frames per second.\r\n    \r\n            dpi : number, optional\r\n               Controls the dots per inch for the movie frames.  This combined with\r\n               the figure's size in inches controls the size of the movie.  If\r\n               ``None``, defaults to :rc:`savefig.dpi`.\r\n    \r\n            codec : str, optional\r\n               The video codec to be used. Not all codecs are supported\r\n               by a given :class:`MovieWriter`. If ``None``, default to\r\n               :rc:`animation.codec`.\r\n    \r\n            bitrate : number, optional\r\n               Specifies the number of bits used per second in the compressed\r\n               movie, in kilobits per second. A higher number means a higher\r\n               quality movie, but at the cost of increased file size. If ``None``,\r\n               defaults to :rc:`animation.bitrate`.\r\n    \r\n            extra_args : list, optional\r\n               List of extra string arguments to be passed to the underlying movie\r\n               utility. If ``None``, defaults to :rc:`animation.extra_args`.\r\n    \r\n            metadata : Dict[str, str], optional\r\n               Dictionary of keys and values for metadata to include in\r\n               the output file. Some keys that may be of use include:\r\n               title, artist, genre, subject, copyright, srcform, comment.\r\n    \r\n            extra_anim : list, optional\r\n               Additional `Animation` objects that should be included\r\n               in the saved movie file. These need to be from the same\r\n               `matplotlib.figure.Figure` instance. Also, animation frames will\r\n               just be simply combined, so there should be a 1:1 correspondence\r\n               between the frames from the different animations.\r\n    \r\n            savefig_kwargs : dict, optional\r\n               Is a dictionary containing keyword arguments to be passed\r\n               on to the `savefig` command which is called repeatedly to\r\n               save the individual frames.\r\n    \r\n            Notes\r\n            -----\r\n            fps, codec, bitrate, extra_args, metadata are used to\r\n            construct a :class:`MovieWriter` instance and can only be\r\n            passed if `writer` is a string.  If they are passed as\r\n            non-`None` and ``writer`` is a :class:`MovieWriter`, a\r\n            `RuntimeError` will be raised.\r\n    \r\n            '''\r\n        # If the writer is None, use the rc param to find the name of the one\r\n        # to use\r\n        if writer is None:\r\n            writer = rcParams['animation.writer']\r\n        elif (not isinstance(writer, six.string_types) and\r\n                any(arg is not None\r\n                    for arg in (fps, codec, bitrate, extra_args, metadata))):\r\n            raise RuntimeError('Passing in values for arguments '\r\n                               'fps, codec, bitrate, extra_args, or metadata '\r\n                               'is not supported when writer is an existing '\r\n                               'MovieWriter instance. These should instead be '\r\n                               'passed as arguments when creating the '\r\n                               'MovieWriter instance.')\r\n    \r\n        if savefig_kwargs is None:\r\n            savefig_kwargs = {}\r\n    \r\n        # Need to disconnect the first draw callback, since we'll be doing\r\n        # draws. Otherwise, we'll end up starting the animation.\r\n        if self._first_draw_id is not None:\r\n            self._fig.canvas.mpl_disconnect(self._first_draw_id)\r\n            reconnect_first_draw = True\r\n        else:\r\n            reconnect_first_draw = False\r\n    \r\n        if fps is None and hasattr(self, '_interval'):\r\n            # Convert interval in ms to frames per second\r\n            fps = 1000. / self._interval\r\n    \r\n        # Re-use the savefig DPI for ours if none is given\r\n        if dpi is None:\r\n            dpi = rcParams['savefig.dpi']\r\n        if dpi == 'figure':\r\n            dpi = self._fig.dpi\r\n    \r\n        if codec is None:\r\n            codec = rcParams['animation.codec']\r\n    \r\n        if bitrate is None:\r\n            bitrate = rcParams['animation.bitrate']\r\n    \r\n        all_anim = [self]\r\n        if extra_anim is not None:\r\n            all_anim.extend(anim\r\n                            for anim\r\n                            in extra_anim if anim._fig is self._fig)\r\n    \r\n        # If we have the name of a writer, instantiate an instance of the\r\n        # registered class.\r\n        if isinstance(writer, six.string_types):\r\n            if writer in writers.avail:\r\n                writer = writers[writer](fps, codec, bitrate,\r\n                                         extra_args=extra_args,\r\n                                         metadata=metadata)\r\n            else:\r\n                _log.warning(\"MovieWriter %s unavailable.\", writer)\r\n    \r\n                try:\r\n                    writer = writers[writers.list()[0]](fps, codec, bitrate,\r\n                                                        extra_args=extra_args,\r\n                                                        metadata=metadata)\r\n                except IndexError:\r\n                    raise ValueError(\"Cannot save animation: no writers are \"\r\n                                     \"available. Please install ffmpeg to \"\r\n                                     \"save animations.\")\r\n        _log.info('Animation.save using %s', type(writer))\r\n    \r\n        if 'bbox_inches' in savefig_kwargs:\r\n            _log.warning(\"Warning: discarding the 'bbox_inches' argument in \"\r\n                         \"'savefig_kwargs' as it may cause frame size \"\r\n                         \"to vary, which is inappropriate for animation.\")\r\n            savefig_kwargs.pop('bbox_inches')\r\n    \r\n        # Create a new sequence of frames for saved data. This is different\r\n        # from new_frame_seq() to give the ability to save 'live' generated\r\n        # frame information to be saved later.\r\n        # TODO: Right now, after closing the figure, saving a movie won't work\r\n        # since GUI widgets are gone. Either need to remove extra code to\r\n        # allow for this non-existent use case or find a way to make it work.\r\n        with rc_context():\r\n            if rcParams['savefig.bbox'] == 'tight':\r\n                _log.info(\"Disabling savefig.bbox = 'tight', as it may cause \"\r\n                          \"frame size to vary, which is inappropriate for \"\r\n                          \"animation.\")\r\n                rcParams['savefig.bbox'] = None\r\n            with writer.saving(self._fig, filename, dpi):\r\n                for anim in all_anim:\r\n                    # Clear the initial frame\r\n                    anim._init_draw()\r\n                for data in zip(*[a.new_saved_frame_seq() for a in all_anim]):\r\n                    for anim, d in zip(all_anim, data):\r\n                        # TODO: See if turning off blit is really necessary\r\n                        anim._draw_next_frame(d, blit=False)\r\n\u003e                   writer.grab_frame(**savefig_kwargs)\r\n\r\nbuild/lib.linux-x86_64-2.7-pydebug/matplotlib/animation.py:1200: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nself = \u003ccontextlib.GeneratorContextManager object at 0x7f4fcf604ca0\u003e\r\ntype = \u003ctype 'exceptions.ImportError'\u003e\r\nvalue = ImportError('/usr/lib/python2.7/dist-packages/PIL/_imaging.x86_64-linux-gnu.so: undefined symbol: Py_InitModule4_64',)\r\ntraceback = \u003ctraceback object at 0x7f4fcf4b8588\u003e\r\n\r\n    def __exit__(self, type, value, traceback):\r\n        if type is None:\r\n            try:\r\n                self.gen.next()\r\n            except StopIteration:\r\n                return\r\n            else:\r\n                raise RuntimeError(\"generator didn't stop\")\r\n        else:\r\n            if value is None:\r\n                # Need to force instantiation so we can reliably\r\n                # tell if we get the same exception back\r\n                value = type()\r\n            try:\r\n\u003e               self.gen.throw(type, value, traceback)\r\n\r\n/usr/lib/python2.7/contextlib.py:35: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nself = \u003cmatplotlib.animation.PillowWriter object at 0x7f4fcf604b50\u003e\r\nfig = \u003cFigure size 640x480 with 1 Axes\u003e, outfile = 'movie.gif', dpi = 100.0\r\nargs = (), kwargs = {}\r\n\r\n    @contextlib.contextmanager\r\n    def saving(self, fig, outfile, dpi, *args, **kwargs):\r\n        '''\r\n            Context manager to facilitate writing the movie file.\r\n    \r\n            ``*args, **kw`` are any parameters that should be passed to `setup`.\r\n            '''\r\n        # This particular sequence is what contextlib.contextmanager wants\r\n        self.setup(fig, outfile, dpi, *args, **kwargs)\r\n        try:\r\n            yield self\r\n        finally:\r\n\u003e           self.finish()\r\n\r\nbuild/lib.linux-x86_64-2.7-pydebug/matplotlib/animation.py:241: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nself = \u003cmatplotlib.animation.PillowWriter object at 0x7f4fcf604b50\u003e\r\n\r\n    def finish(self):\r\n\u003e       self._frames[0].save(\r\n            self._outfile, save_all=True, append_images=self._frames[1:],\r\n            duration=int(1000 / self.fps))\r\nE       IndexError: list index out of range\r\n\r\nbuild/lib.linux-x86_64-2.7-pydebug/matplotlib/animation.py:610: IndexError\r\n------------------------------ Captured log call -------------------------------\r\nanimation.py              1172 INFO     Animation.save using \u003cclass 'matplotlib.animation.PillowWriter'\u003e\r\n_____________________________ test_log_scales[png] _____________________________\r\n\r\nself = \u003cCallInfo when='call' exception: Image sizes do not match expected size: (600, 800, 3) actual size (600, 800, 4)\u003e\r\nfunc = \u003cfunction \u003clambda\u003e at 0x7f4fd446c258\u003e, when = 'call'\r\n\r\n    def __init__(self, func, when):\r\n        #: context of invocation: one of \"setup\", \"call\",\r\n        #: \"teardown\", \"memocollect\"\r\n        self.when = when\r\n        self.start = time()\r\n        try:\r\n\u003e           self.result = func()\r\n\r\n/usr/lib/python2.7/dist-packages/_pytest/runner.py:189: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\n\u003e   return CallInfo(lambda: ihook(item=item, **kwds), when=when)\r\n\r\n/usr/lib/python2.7/dist-packages/_pytest/runner.py:175: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nself = \u003c_HookCaller 'pytest_runtest_call'\u003e, args = ()\r\nkwargs = {'item': \u003cFunction 'test_log_scales[png]'\u003e}, notincall = set([])\r\n\r\n    def __call__(self, *args, **kwargs):\r\n        if args:\r\n            raise TypeError(\"hook calling supports only keyword arguments\")\r\n        assert not self.is_historic()\r\n        if self.argnames:\r\n            notincall = set(self.argnames) - set(['__multicall__']) - set(\r\n                kwargs.keys())\r\n            if notincall:\r\n                warnings.warn(\r\n                    \"Argument(s) {} which are declared in the hookspec \"\r\n                    \"can not be found in this hook call\"\r\n                    .format(tuple(notincall)),\r\n                    stacklevel=2,\r\n                )\r\n\u003e       return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:617: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nself = \u003c_pytest.config.PytestPluginManager object at 0x7f4fdcda3b50\u003e\r\nhook = \u003c_HookCaller 'pytest_runtest_call'\u003e\r\nmethods = [\u003cpluggy.HookImpl object at 0x7f4fdba3a370\u003e, \u003cpluggy.HookImpl object at 0x7f4fdb93c530\u003e, \u003cpluggy.HookImpl object at 0x7f4fdb944bc0\u003e]\r\nkwargs = {'item': \u003cFunction 'test_log_scales[png]'\u003e}\r\n\r\n    def _hookexec(self, hook, methods, kwargs):\r\n        # called from all hookcaller instances.\r\n        # enable_tracing will set its own wrapping function at self._inner_hookexec\r\n\u003e       return self._inner_hookexec(hook, methods, kwargs)\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:222: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nhook = \u003c_HookCaller 'pytest_runtest_call'\u003e\r\nmethods = [\u003cpluggy.HookImpl object at 0x7f4fdba3a370\u003e, \u003cpluggy.HookImpl object at 0x7f4fdb93c530\u003e, \u003cpluggy.HookImpl object at 0x7f4fdb944bc0\u003e]\r\nkwargs = {'item': \u003cFunction 'test_log_scales[png]'\u003e}\r\n\r\n    self._inner_hookexec = lambda hook, methods, kwargs: \\\r\n        hook.multicall(\r\n            methods, kwargs,\r\n\u003e           firstresult=hook.spec_opts.get('firstresult'),\r\n        )\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:216: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nitem = \u003cFunction 'test_log_scales[png]'\u003e\r\n\r\n    def pytest_runtest_call(item):\r\n        _update_current_test_var(item, 'call')\r\n        try:\r\n\u003e           item.runtest()\r\n\r\n/usr/lib/python2.7/dist-packages/_pytest/runner.py:106: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nself = \u003cFunction 'test_log_scales[png]'\u003e\r\n\r\n    def runtest(self):\r\n        \"\"\" execute the underlying test function. \"\"\"\r\n\u003e       self.ihook.pytest_pyfunc_call(pyfuncitem=self)\r\n\r\n/usr/lib/python2.7/dist-packages/_pytest/python.py:1171: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nself = \u003c_HookCaller 'pytest_pyfunc_call'\u003e, args = ()\r\nkwargs = {'pyfuncitem': \u003cFunction 'test_log_scales[png]'\u003e}, notincall = set([])\r\n\r\n    def __call__(self, *args, **kwargs):\r\n        if args:\r\n            raise TypeError(\"hook calling supports only keyword arguments\")\r\n        assert not self.is_historic()\r\n        if self.argnames:\r\n            notincall = set(self.argnames) - set(['__multicall__']) - set(\r\n                kwargs.keys())\r\n            if notincall:\r\n                warnings.warn(\r\n                    \"Argument(s) {} which are declared in the hookspec \"\r\n                    \"can not be found in this hook call\"\r\n                    .format(tuple(notincall)),\r\n                    stacklevel=2,\r\n                )\r\n\u003e       return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:617: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nself = \u003c_pytest.config.PytestPluginManager object at 0x7f4fdcda3b50\u003e\r\nhook = \u003c_HookCaller 'pytest_pyfunc_call'\u003e\r\nmethods = [\u003cpluggy.HookImpl object at 0x7f4fdba3ae60\u003e, \u003cpluggy.HookImpl object at 0x7f4fdb9f7290\u003e]\r\nkwargs = {'pyfuncitem': \u003cFunction 'test_log_scales[png]'\u003e}\r\n\r\n    def _hookexec(self, hook, methods, kwargs):\r\n        # called from all hookcaller instances.\r\n        # enable_tracing will set its own wrapping function at self._inner_hookexec\r\n\u003e       return self._inner_hookexec(hook, methods, kwargs)\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:222: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nhook = \u003c_HookCaller 'pytest_pyfunc_call'\u003e\r\nmethods = [\u003cpluggy.HookImpl object at 0x7f4fdba3ae60\u003e, \u003cpluggy.HookImpl object at 0x7f4fdb9f7290\u003e]\r\nkwargs = {'pyfuncitem': \u003cFunction 'test_log_scales[png]'\u003e}\r\n\r\n    self._inner_hookexec = lambda hook, methods, kwargs: \\\r\n        hook.multicall(\r\n            methods, kwargs,\r\n\u003e           firstresult=hook.spec_opts.get('firstresult'),\r\n        )\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:216: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\npyfuncitem = \u003cFunction 'test_log_scales[png]'\u003e\r\n\r\n    @hookimpl(trylast=True)\r\n    def pytest_pyfunc_call(pyfuncitem):\r\n        testfunction = pyfuncitem.obj\r\n        if pyfuncitem._isyieldedfunction():\r\n            testfunction(*pyfuncitem._args)\r\n        else:\r\n            funcargs = pyfuncitem.funcargs\r\n            testargs = {}\r\n            for arg in pyfuncitem._fixtureinfo.argnames:\r\n                testargs[arg] = funcargs[arg]\r\n\u003e           testfunction(**testargs)\r\n\r\n/usr/lib/python2.7/dist-packages/_pytest/python.py:147: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nexpected = '/build/matplotlib-2.2.2/result_images/test_axes/log_scales-expected.png'\r\nactual = '/build/matplotlib-2.2.2/result_images/test_axes/log_scales.png'\r\ntol = 0.306, in_decorator = True\r\n\r\n    def compare_images(expected, actual, tol, in_decorator=False):\r\n        \"\"\"\r\n        Compare two \"image\" files checking differences within a tolerance.\r\n    \r\n        The two given filenames may point to files which are convertible to\r\n        PNG via the `.converter` dictionary. The underlying RMS is calculated\r\n        with the `.calculate_rms` function.\r\n    \r\n        Parameters\r\n        ----------\r\n        expected : str\r\n            The filename of the expected image.\r\n        actual :str\r\n            The filename of the actual image.\r\n        tol : float\r\n            The tolerance (a color value difference, where 255 is the\r\n            maximal difference).  The test fails if the average pixel\r\n            difference is greater than this value.\r\n        in_decorator : bool\r\n            If called from image_comparison decorator, this should be\r\n            True. (default=False)\r\n    \r\n        Examples\r\n        --------\r\n        img1 = \"./baseline/plot.png\"\r\n        img2 = \"./output/plot.png\"\r\n        compare_images( img1, img2, 0.001 ):\r\n    \r\n        \"\"\"\r\n        if not os.path.exists(actual):\r\n            raise Exception(\"Output image %s does not exist.\" % actual)\r\n    \r\n        if os.stat(actual).st_size == 0:\r\n            raise Exception(\"Output image file %s is empty.\" % actual)\r\n    \r\n        # Convert the image to png\r\n        extension = expected.split('.')[-1]\r\n    \r\n        if not os.path.exists(expected):\r\n            raise IOError('Baseline image %r does not exist.' % expected)\r\n    \r\n        if extension != 'png':\r\n            actual = convert(actual, False)\r\n            expected = convert(expected, True)\r\n    \r\n        # open the image files and remove the alpha channel (if it exists)\r\n        expectedImage = _png.read_png_int(expected)\r\n        actualImage = _png.read_png_int(actual)\r\n        expectedImage = expectedImage[:, :, :3]\r\n        actualImage = actualImage[:, :, :3]\r\n    \r\n        actualImage, expectedImage = crop_to_same(\r\n            actual, actualImage, expected, expectedImage)\r\n    \r\n        diff_image = make_test_filename(actual, 'failed-diff')\r\n    \r\n        if tol \u003c= 0.0:\r\n            if np.array_equal(expectedImage, actualImage):\r\n                return None\r\n    \r\n        # convert to signed integers, so that the images can be subtracted without\r\n        # overflow\r\n        expectedImage = expectedImage.astype(np.int16)\r\n        actualImage = actualImage.astype(np.int16)\r\n    \r\n        rms = calculate_rms(expectedImage, actualImage)\r\n    \r\n        if rms \u003c= tol:\r\n            return None\r\n    \r\n\u003e       save_diff_image(expected, actual, diff_image)\r\n\r\nbuild/lib.linux-x86_64-2.7-pydebug/matplotlib/testing/compare.py:444: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nexpected = '/build/matplotlib-2.2.2/result_images/test_axes/log_scales-expected.png'\r\nactual = '/build/matplotlib-2.2.2/result_images/test_axes/log_scales.png'\r\noutput = '/build/matplotlib-2.2.2/result_images/test_axes/log_scales-failed-diff.png'\r\n\r\n    def save_diff_image(expected, actual, output):\r\n        expectedImage = _png.read_png(expected)\r\n        actualImage = _png.read_png(actual)\r\n        actualImage, expectedImage = crop_to_same(\r\n            actual, actualImage, expected, expectedImage)\r\n        expectedImage = np.array(expectedImage).astype(float)\r\n        actualImage = np.array(actualImage).astype(float)\r\n        if expectedImage.shape != actualImage.shape:\r\n            raise ImageComparisonFailure(\r\n                \"Image sizes do not match expected size: {0} \"\r\n\u003e               \"actual size {1}\".format(expectedImage.shape, actualImage.shape))\r\nE           ImageComparisonFailure: Image sizes do not match expected size: (600, 800, 3) actual size (600, 800, 4)\r\n\r\nbuild/lib.linux-x86_64-2.7-pydebug/matplotlib/testing/compare.py:471: ImageComparisonFailure\r\n__________________ test_bbox_inches_tight_suptile_legend[png] __________________\r\n\r\nself = \u003cCallInfo when='call' exception: Image sizes do not match expected size: (593, 921, 3) actual size (592, 921, 3)\u003e\r\nfunc = \u003cfunction \u003clambda\u003e at 0x7f4fd3bdf1b0\u003e, when = 'call'\r\n\r\n    def __init__(self, func, when):\r\n        #: context of invocation: one of \"setup\", \"call\",\r\n        #: \"teardown\", \"memocollect\"\r\n        self.when = when\r\n        self.start = time()\r\n        try:\r\n\u003e           self.result = func()\r\n\r\n/usr/lib/python2.7/dist-packages/_pytest/runner.py:189: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\n\u003e   return CallInfo(lambda: ihook(item=item, **kwds), when=when)\r\n\r\n/usr/lib/python2.7/dist-packages/_pytest/runner.py:175: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nself = \u003c_HookCaller 'pytest_runtest_call'\u003e, args = ()\r\nkwargs = {'item': \u003cFunction 'test_bbox_inches_tight_suptile_legend[png]'\u003e}\r\nnotincall = set([])\r\n\r\n    def __call__(self, *args, **kwargs):\r\n        if args:\r\n            raise TypeError(\"hook calling supports only keyword arguments\")\r\n        assert not self.is_historic()\r\n        if self.argnames:\r\n            notincall = set(self.argnames) - set(['__multicall__']) - set(\r\n                kwargs.keys())\r\n            if notincall:\r\n                warnings.warn(\r\n                    \"Argument(s) {} which are declared in the hookspec \"\r\n                    \"can not be found in this hook call\"\r\n                    .format(tuple(notincall)),\r\n                    stacklevel=2,\r\n                )\r\n\u003e       return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:617: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nself = \u003c_pytest.config.PytestPluginManager object at 0x7f4fdcda3b50\u003e\r\nhook = \u003c_HookCaller 'pytest_runtest_call'\u003e\r\nmethods = [\u003cpluggy.HookImpl object at 0x7f4fdba3a370\u003e, \u003cpluggy.HookImpl object at 0x7f4fdb93c530\u003e, \u003cpluggy.HookImpl object at 0x7f4fdb944bc0\u003e]\r\nkwargs = {'item': \u003cFunction 'test_bbox_inches_tight_suptile_legend[png]'\u003e}\r\n\r\n    def _hookexec(self, hook, methods, kwargs):\r\n        # called from all hookcaller instances.\r\n        # enable_tracing will set its own wrapping function at self._inner_hookexec\r\n\u003e       return self._inner_hookexec(hook, methods, kwargs)\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:222: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nhook = \u003c_HookCaller 'pytest_runtest_call'\u003e\r\nmethods = [\u003cpluggy.HookImpl object at 0x7f4fdba3a370\u003e, \u003cpluggy.HookImpl object at 0x7f4fdb93c530\u003e, \u003cpluggy.HookImpl object at 0x7f4fdb944bc0\u003e]\r\nkwargs = {'item': \u003cFunction 'test_bbox_inches_tight_suptile_legend[png]'\u003e}\r\n\r\n    self._inner_hookexec = lambda hook, methods, kwargs: \\\r\n        hook.multicall(\r\n            methods, kwargs,\r\n\u003e           firstresult=hook.spec_opts.get('firstresult'),\r\n        )\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:216: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nitem = \u003cFunction 'test_bbox_inches_tight_suptile_legend[png]'\u003e\r\n\r\n    def pytest_runtest_call(item):\r\n        _update_current_test_var(item, 'call')\r\n        try:\r\n\u003e           item.runtest()\r\n\r\n/usr/lib/python2.7/dist-packages/_pytest/runner.py:106: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nself = \u003cFunction 'test_bbox_inches_tight_suptile_legend[png]'\u003e\r\n\r\n    def runtest(self):\r\n        \"\"\" execute the underlying test function. \"\"\"\r\n\u003e       self.ihook.pytest_pyfunc_call(pyfuncitem=self)\r\n\r\n/usr/lib/python2.7/dist-packages/_pytest/python.py:1171: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nself = \u003c_HookCaller 'pytest_pyfunc_call'\u003e, args = ()\r\nkwargs = {'pyfuncitem': \u003cFunction 'test_bbox_inches_tight_suptile_legend[png]'\u003e}\r\nnotincall = set([])\r\n\r\n    def __call__(self, *args, **kwargs):\r\n        if args:\r\n            raise TypeError(\"hook calling supports only keyword arguments\")\r\n        assert not self.is_historic()\r\n        if self.argnames:\r\n            notincall = set(self.argnames) - set(['__multicall__']) - set(\r\n                kwargs.keys())\r\n            if notincall:\r\n                warnings.warn(\r\n                    \"Argument(s) {} which are declared in the hookspec \"\r\n                    \"can not be found in this hook call\"\r\n                    .format(tuple(notincall)),\r\n                    stacklevel=2,\r\n                )\r\n\u003e       return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:617: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nself = \u003c_pytest.config.PytestPluginManager object at 0x7f4fdcda3b50\u003e\r\nhook = \u003c_HookCaller 'pytest_pyfunc_call'\u003e\r\nmethods = [\u003cpluggy.HookImpl object at 0x7f4fdba3ae60\u003e, \u003cpluggy.HookImpl object at 0x7f4fdb9f7290\u003e]\r\nkwargs = {'pyfuncitem': \u003cFunction 'test_bbox_inches_tight_suptile_legend[png]'\u003e}\r\n\r\n    def _hookexec(self, hook, methods, kwargs):\r\n        # called from all hookcaller instances.\r\n        # enable_tracing will set its own wrapping function at self._inner_hookexec\r\n\u003e       return self._inner_hookexec(hook, methods, kwargs)\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:222: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nhook = \u003c_HookCaller 'pytest_pyfunc_call'\u003e\r\nmethods = [\u003cpluggy.HookImpl object at 0x7f4fdba3ae60\u003e, \u003cpluggy.HookImpl object at 0x7f4fdb9f7290\u003e]\r\nkwargs = {'pyfuncitem': \u003cFunction 'test_bbox_inches_tight_suptile_legend[png]'\u003e}\r\n\r\n    self._inner_hookexec = lambda hook, methods, kwargs: \\\r\n        hook.multicall(\r\n            methods, kwargs,\r\n\u003e           firstresult=hook.spec_opts.get('firstresult'),\r\n        )\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:216: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\npyfuncitem = \u003cFunction 'test_bbox_inches_tight_suptile_legend[png]'\u003e\r\n\r\n    @hookimpl(trylast=True)\r\n    def pytest_pyfunc_call(pyfuncitem):\r\n        testfunction = pyfuncitem.obj\r\n        if pyfuncitem._isyieldedfunction():\r\n            testfunction(*pyfuncitem._args)\r\n        else:\r\n            funcargs = pyfuncitem.funcargs\r\n            testargs = {}\r\n            for arg in pyfuncitem._fixtureinfo.argnames:\r\n                testargs[arg] = funcargs[arg]\r\n\u003e           testfunction(**testargs)\r\n\r\n/usr/lib/python2.7/dist-packages/_pytest/python.py:147: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nexpected = '/build/matplotlib-2.2.2/result_images/test_bbox_tight/bbox_inches_tight_suptile_legend-expected.png'\r\nactual = '/build/matplotlib-2.2.2/result_images/test_bbox_tight/bbox_inches_tight_suptile_legend.png'\r\ntol = 0.306, in_decorator = True\r\n\r\n    def compare_images(expected, actual, tol, in_decorator=False):\r\n        \"\"\"\r\n        Compare two \"image\" files checking differences within a tolerance.\r\n    \r\n        The two given filenames may point to files which are convertible to\r\n        PNG via the `.converter` dictionary. The underlying RMS is calculated\r\n        with the `.calculate_rms` function.\r\n    \r\n        Parameters\r\n        ----------\r\n        expected : str\r\n            The filename of the expected image.\r\n        actual :str\r\n            The filename of the actual image.\r\n        tol : float\r\n            The tolerance (a color value difference, where 255 is the\r\n            maximal difference).  The test fails if the average pixel\r\n            difference is greater than this value.\r\n        in_decorator : bool\r\n            If called from image_comparison decorator, this should be\r\n            True. (default=False)\r\n    \r\n        Examples\r\n        --------\r\n        img1 = \"./baseline/plot.png\"\r\n        img2 = \"./output/plot.png\"\r\n        compare_images( img1, img2, 0.001 ):\r\n    \r\n        \"\"\"\r\n        if not os.path.exists(actual):\r\n            raise Exception(\"Output image %s does not exist.\" % actual)\r\n    \r\n        if os.stat(actual).st_size == 0:\r\n            raise Exception(\"Output image file %s is empty.\" % actual)\r\n    \r\n        # Convert the image to png\r\n        extension = expected.split('.')[-1]\r\n    \r\n        if not os.path.exists(expected):\r\n            raise IOError('Baseline image %r does not exist.' % expected)\r\n    \r\n        if extension != 'png':\r\n            actual = convert(actual, False)\r\n            expected = convert(expected, True)\r\n    \r\n        # open the image files and remove the alpha channel (if it exists)\r\n        expectedImage = _png.read_png_int(expected)\r\n        actualImage = _png.read_png_int(actual)\r\n        expectedImage = expectedImage[:, :, :3]\r\n        actualImage = actualImage[:, :, :3]\r\n    \r\n        actualImage, expectedImage = crop_to_same(\r\n            actual, actualImage, expected, expectedImage)\r\n    \r\n        diff_image = make_test_filename(actual, 'failed-diff')\r\n    \r\n        if tol \u003c= 0.0:\r\n            if np.array_equal(expectedImage, actualImage):\r\n                return None\r\n    \r\n        # convert to signed integers, so that the images can be subtracted without\r\n        # overflow\r\n        expectedImage = expectedImage.astype(np.int16)\r\n        actualImage = actualImage.astype(np.int16)\r\n    \r\n\u003e       rms = calculate_rms(expectedImage, actualImage)\r\n\r\nbuild/lib.linux-x86_64-2.7-pydebug/matplotlib/testing/compare.py:439: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nexpectedImage = array([[[255, 255, 255],\r\n        [255, 255, 255],\r\n        [255, 255, 255],\r\n   ...55, 255, 255],\r\n        [255, 255, 255],\r\n        [255, 255, 255]]], dtype=int16)\r\nactualImage = array([[[255, 255, 255],\r\n        [255, 255, 255],\r\n        [255, 255, 255],\r\n   ...55, 255, 255],\r\n        [255, 255, 255],\r\n        [255, 255, 255]]], dtype=int16)\r\n\r\n    def calculate_rms(expectedImage, actualImage):\r\n        \"Calculate the per-pixel errors, then compute the root mean square error.\"\r\n        if expectedImage.shape != actualImage.shape:\r\n            raise ImageComparisonFailure(\r\n                \"Image sizes do not match expected size: {0} \"\r\n\u003e               \"actual size {1}\".format(expectedImage.shape, actualImage.shape))\r\nE           ImageComparisonFailure: Image sizes do not match expected size: (593, 921, 3) actual size (592, 921, 3)\r\n\r\nbuild/lib.linux-x86_64-2.7-pydebug/matplotlib/testing/compare.py:369: ImageComparisonFailure\r\n__________________ test_nose_image_comparison[failing figure] __________________\r\n\r\nself = \u003cCallInfo when='call' exception: assert '...' == 'FFF'\r\n  - ...\r\n  + FFF\u003e\r\nfunc = \u003cfunction \u003clambda\u003e at 0x7f4fd45b0a38\u003e, when = 'call'\r\n\r\n    def __init__(self, func, when):\r\n        #: context of invocation: one of \"setup\", \"call\",\r\n        #: \"teardown\", \"memocollect\"\r\n        self.when = when\r\n        self.start = time()\r\n        try:\r\n\u003e           self.result = func()\r\n\r\n/usr/lib/python2.7/dist-packages/_pytest/runner.py:189: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\n\u003e   return CallInfo(lambda: ihook(item=item, **kwds), when=when)\r\n\r\n/usr/lib/python2.7/dist-packages/_pytest/runner.py:175: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nself = \u003c_HookCaller 'pytest_runtest_call'\u003e, args = ()\r\nkwargs = {'item': \u003cFunction 'test_nose_image_comparison[failing figure]'\u003e}\r\nnotincall = set([])\r\n\r\n    def __call__(self, *args, **kwargs):\r\n        if args:\r\n            raise TypeError(\"hook calling supports only keyword arguments\")\r\n        assert not self.is_historic()\r\n        if self.argnames:\r\n            notincall = set(self.argnames) - set(['__multicall__']) - set(\r\n                kwargs.keys())\r\n            if notincall:\r\n                warnings.warn(\r\n                    \"Argument(s) {} which are declared in the hookspec \"\r\n                    \"can not be found in this hook call\"\r\n                    .format(tuple(notincall)),\r\n                    stacklevel=2,\r\n                )\r\n\u003e       return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:617: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nself = \u003c_pytest.config.PytestPluginManager object at 0x7f4fdcda3b50\u003e\r\nhook = \u003c_HookCaller 'pytest_runtest_call'\u003e\r\nmethods = [\u003cpluggy.HookImpl object at 0x7f4fdba3a370\u003e, \u003cpluggy.HookImpl object at 0x7f4fdb93c530\u003e, \u003cpluggy.HookImpl object at 0x7f4fdb944bc0\u003e]\r\nkwargs = {'item': \u003cFunction 'test_nose_image_comparison[failing figure]'\u003e}\r\n\r\n    def _hookexec(self, hook, methods, kwargs):\r\n        # called from all hookcaller instances.\r\n        # enable_tracing will set its own wrapping function at self._inner_hookexec\r\n\u003e       return self._inner_hookexec(hook, methods, kwargs)\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:222: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nhook = \u003c_HookCaller 'pytest_runtest_call'\u003e\r\nmethods = [\u003cpluggy.HookImpl object at 0x7f4fdba3a370\u003e, \u003cpluggy.HookImpl object at 0x7f4fdb93c530\u003e, \u003cpluggy.HookImpl object at 0x7f4fdb944bc0\u003e]\r\nkwargs = {'item': \u003cFunction 'test_nose_image_comparison[failing figure]'\u003e}\r\n\r\n    self._inner_hookexec = lambda hook, methods, kwargs: \\\r\n        hook.multicall(\r\n            methods, kwargs,\r\n\u003e           firstresult=hook.spec_opts.get('firstresult'),\r\n        )\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:216: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nitem = \u003cFunction 'test_nose_image_comparison[failing figure]'\u003e\r\n\r\n    def pytest_runtest_call(item):\r\n        _update_current_test_var(item, 'call')\r\n        try:\r\n\u003e           item.runtest()\r\n\r\n/usr/lib/python2.7/dist-packages/_pytest/runner.py:106: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nself = \u003cFunction 'test_nose_image_comparison[failing figure]'\u003e\r\n\r\n    def runtest(self):\r\n        \"\"\" execute the underlying test function. \"\"\"\r\n\u003e       self.ihook.pytest_pyfunc_call(pyfuncitem=self)\r\n\r\n/usr/lib/python2.7/dist-packages/_pytest/python.py:1171: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nself = \u003c_HookCaller 'pytest_pyfunc_call'\u003e, args = ()\r\nkwargs = {'pyfuncitem': \u003cFunction 'test_nose_image_comparison[failing figure]'\u003e}\r\nnotincall = set([])\r\n\r\n    def __call__(self, *args, **kwargs):\r\n        if args:\r\n            raise TypeError(\"hook calling supports only keyword arguments\")\r\n        assert not self.is_historic()\r\n        if self.argnames:\r\n            notincall = set(self.argnames) - set(['__multicall__']) - set(\r\n                kwargs.keys())\r\n            if notincall:\r\n                warnings.warn(\r\n                    \"Argument(s) {} which are declared in the hookspec \"\r\n                    \"can not be found in this hook call\"\r\n                    .format(tuple(notincall)),\r\n                    stacklevel=2,\r\n                )\r\n\u003e       return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:617: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nself = \u003c_pytest.config.PytestPluginManager object at 0x7f4fdcda3b50\u003e\r\nhook = \u003c_HookCaller 'pytest_pyfunc_call'\u003e\r\nmethods = [\u003cpluggy.HookImpl object at 0x7f4fdba3ae60\u003e, \u003cpluggy.HookImpl object at 0x7f4fdb9f7290\u003e]\r\nkwargs = {'pyfuncitem': \u003cFunction 'test_nose_image_comparison[failing figure]'\u003e}\r\n\r\n    def _hookexec(self, hook, methods, kwargs):\r\n        # called from all hookcaller instances.\r\n        # enable_tracing will set its own wrapping function at self._inner_hookexec\r\n\u003e       return self._inner_hookexec(hook, methods, kwargs)\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:222: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nhook = \u003c_HookCaller 'pytest_pyfunc_call'\u003e\r\nmethods = [\u003cpluggy.HookImpl object at 0x7f4fdba3ae60\u003e, \u003cpluggy.HookImpl object at 0x7f4fdb9f7290\u003e]\r\nkwargs = {'pyfuncitem': \u003cFunction 'test_nose_image_comparison[failing figure]'\u003e}\r\n\r\n    self._inner_hookexec = lambda hook, methods, kwargs: \\\r\n        hook.multicall(\r\n            methods, kwargs,\r\n\u003e           firstresult=hook.spec_opts.get('firstresult'),\r\n        )\r\n\r\n/usr/lib/python2.7/dist-packages/pluggy/__init__.py:216: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\npyfuncitem = \u003cFunction 'test_nose_image_comparison[failing figure]'\u003e\r\n\r\n    @hookimpl(trylast=True)\r\n    def pytest_pyfunc_call(pyfuncitem):\r\n        testfunction = pyfuncitem.obj\r\n        if pyfuncitem._isyieldedfunction():\r\n            testfunction(*pyfuncitem._args)\r\n        else:\r\n            funcargs = pyfuncitem.funcargs\r\n            testargs = {}\r\n            for arg in pyfuncitem._fixtureinfo.argnames:\r\n                testargs[arg] = funcargs[arg]\r\n\u003e           testfunction(**testargs)\r\n\r\n/usr/lib/python2.7/dist-packages/_pytest/python.py:147: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\nfunc = \u003cfunction nosetest_simple_figure at 0x7f4fd4d83ae0\u003e\r\nkwargs = {'baseline_images': ['simple'], 'extensions': ['png', 'png', 'png']}\r\nerrors = []\r\nfailures = [(\u003cclass 'matplotlib.testing.exceptions.ImageComparisonFailure'\u003e, 'images not close'), (\u003cclass 'matplotlib.testing.exc...onFailure'\u003e, 'images not close'), (\u003cclass 'matplotlib.testing.exceptions.ImageComparisonFailure'\u003e, 'images not close')]\r\ndots = 'FFF'\r\nmonkeypatch = \u003c_pytest.monkeypatch.MonkeyPatch instance at 0x7f4fd5651420\u003e\r\n\r\n    @pytest.mark.parametrize(\r\n        'func, kwargs, errors, failures, dots',\r\n        [\r\n            (nosetest_empty, {'baseline_images': []}, [], [], ''),\r\n            (nosetest_empty, {'baseline_images': ['foo']},\r\n             [(AssertionError,\r\n               'Test generated 0 images but there are 1 baseline images')],\r\n             [],\r\n             'E'),\r\n            (nosetest_simple_figure,\r\n             {'baseline_images': ['basn3p02'], 'extensions': ['png'],\r\n              'remove_text': True},\r\n             [],\r\n             [(ImageComparisonFailure, 'Image sizes do not match expected size:')],\r\n             'F'),\r\n            (nosetest_simple_figure,\r\n             {'baseline_images': ['simple']},\r\n             [],\r\n             [(ImageComparisonFailure, 'images not close')] * 3,\r\n             'FFF'),\r\n            (nosetest_simple_figure,\r\n             {'baseline_images': ['simple'], 'remove_text': True},\r\n             [],\r\n             [],\r\n             '...'),\r\n            (nosetest_manual_text_removal,\r\n             {'baseline_images': ['simple']},\r\n             [],\r\n             [],\r\n             '...'),\r\n        ],\r\n        ids=[\r\n            'empty',\r\n            'extra baselines',\r\n            'incorrect shape',\r\n            'failing figure',\r\n            'passing figure',\r\n            'manual text removal',\r\n        ])\r\n    def test_nose_image_comparison(func, kwargs, errors, failures, dots,\r\n                                   monkeypatch):\r\n        nose = pytest.importorskip('nose')\r\n        monkeypatch.setattr('matplotlib._called_from_pytest', False)\r\n    \r\n        class TestResultVerifier(nose.result.TextTestResult):\r\n            def __init__(self, *args, **kwargs):\r\n                super(TestResultVerifier, self).__init__(*args, **kwargs)\r\n                self.error_count = 0\r\n                self.failure_count = 0\r\n    \r\n            def addError(self, test, err):\r\n                super(TestResultVerifier, self).addError(test, err)\r\n    \r\n                if self.error_count \u003c len(errors):\r\n                    assert err[0] is errors[self.error_count][0]\r\n                    assert errors[self.error_count][1] in str(err[1])\r\n                else:\r\n                    raise err[1]\r\n                self.error_count += 1\r\n    \r\n            def addFailure(self, test, err):\r\n                super(TestResultVerifier, self).addFailure(test, err)\r\n    \r\n                assert self.failure_count \u003c len(failures), err[1]\r\n                assert err[0] is failures[self.failure_count][0]\r\n                assert failures[self.failure_count][1] in str(err[1])\r\n                self.failure_count += 1\r\n    \r\n        # Make sure that multiple extensions work, but don't require LaTeX or\r\n        # Inkscape to do so.\r\n        kwargs.setdefault('extensions', ['png', 'png', 'png'])\r\n    \r\n        func = image_comparison(**kwargs)(func)\r\n        loader = nose.loader.TestLoader()\r\n        suite = loader.loadTestsFromGenerator(\r\n            func,\r\n            'matplotlib.tests.test_compare_images')\r\n        if six.PY2:\r\n            output = io.BytesIO()\r\n        else:\r\n            output = io.StringIO()\r\n        result = TestResultVerifier(stream=output, descriptions=True, verbosity=1)\r\n        with warnings.catch_warnings():\r\n            # Nose uses deprecated stuff; we don't care about it.\r\n            warnings.simplefilter('ignore', DeprecationWarning)\r\n            suite.run(result=result)\r\n    \r\n\u003e       assert output.getvalue() == dots\r\nE       AssertionError: assert '...' == 'FFF'\r\nE         - ...\r\nE         + FFF\r\n\r\nbuild/lib.linux-x86_64-2.7-pydebug/matplotlib/tests/test_compare_images.py:199: AssertionError\r\n----------------------------- Captured stdout call -----------------------------\r\nimages not close (RMS 12.955):\r\n\tresult_images/test_compare_images/simple.png\r\n\tresult_images/test_compare_images/simple-expected.png \r\nimages not close (RMS 12.955):\r\n\tresult_images/test_compare_images/simple.png\r\n\tresult_images/test_compare_images/simple-expected.png \r\nimages not close (RMS 12.955):\r\n\tresult_images/test_compare_images/simple.png\r\n\tresult_images/test_compare_images/simple-expected.png \r\n------------------------------ Captured log call -------------------------------\r\nimporter.py                143 DEBUG    Add path /build/matplotlib-2.2.2\r\nsuite.py                   418 DEBUG    Create suite for \u003cfunction generate at 0x7f4fd49e3d80\u003e\r\nsuite.py                   420 DEBUG    tests \u003cfunction generate at 0x7f4fd49e3d80\u003e context \u003cfunction nosetest_simple_figure at 0x7f4fd4d83ae0\u003e\r\nsuite.py                   148 DEBUG    Context suite for \u003cfunction generate at 0x7f4fd49e3d80\u003e (\u003cfunction nosetest_simple_figure at 0x7f4fd4d83ae0\u003e) (139980834420128)\r\nsuite.py                   481 DEBUG    suite \u003cnose.suite.ContextSuite context=nosetest_simple_figure\u003e has context nosetest_simple_figure\r\nsuite.py                   435 DEBUG    get ancestry \u003cfunction nosetest_simple_figure at 0x7f4fd4d83ae0\u003e\r\nsuite.py                   452 DEBUG     \u003cfunction nosetest_simple_figure at 0x7f4fd4d83ae0\u003e ancestors ['matplotlib', 'tests', 'test_compare_images']\r\nutil.py                    311 DEBUG    __import__ matplotlib.tests.test_compare_images\r\nutil.py                    320 DEBUG    resolve: ['tests', 'test_compare_images'], matplotlib.tests.test_compare_images, \u003cmodule 'matplotlib' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7-pydebug/matplotlib/__init__.py'\u003e, \u003cmodule 'matplotlib' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7-pydebug/matplotlib/__init__.py'\u003e\r\nsuite.py                   485 DEBUG    suite \u003cnose.suite.ContextSuite context=nosetest_simple_figure\u003e has ancestor matplotlib.tests.test_compare_images\r\nsuite.py                   452 DEBUG     \u003cfunction nosetest_simple_figure at 0x7f4fd4d83ae0\u003e ancestors ['matplotlib', 'tests']\r\nutil.py                    311 DEBUG    __import__ matplotlib.tests\r\nutil.py                    320 DEBUG    resolve: ['tests'], matplotlib.tests, \u003cmodule 'matplotlib' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7-pydebug/matplotlib/__init__.py'\u003e, \u003cmodule 'matplotlib' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7-pydebug/matplotlib/__init__.py'\u003e\r\nsuite.py                   485 DEBUG    suite \u003cnose.suite.ContextSuite context=nosetest_simple_figure\u003e has ancestor matplotlib.tests\r\nsuite.py                   452 DEBUG     \u003cfunction nosetest_simple_figure at 0x7f4fd4d83ae0\u003e ancestors ['matplotlib']\r\nutil.py                    311 DEBUG    __import__ matplotlib\r\nutil.py                    320 DEBUG    resolve: [], matplotlib, \u003cmodule 'matplotlib' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7-pydebug/matplotlib/__init__.py'\u003e, \u003cmodule 'matplotlib' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7-pydebug/matplotlib/__init__.py'\u003e\r\nsuite.py                   485 DEBUG    suite \u003cnose.suite.ContextSuite context=nosetest_simple_figure\u003e has ancestor matplotlib\r\nsuite.py                   201 DEBUG    suite 139980834420128 (\u003cnose.suite.ContextSuite context=nosetest_simple_figure\u003e) run called, tests: \u003cgenerator object _get_wrapped_tests at 0x7f4fd5629ce0\u003e\r\nsuite.py                   269 DEBUG    suite 139980834420128 setUp called, tests: \u003cgenerator object _get_wrapped_tests at 0x7f4fd3a837e0\u003e\r\nsuite.py                    79 DEBUG    tests in 139980834420128?\r\nsuite.py                   288 DEBUG    ancestor \u003cmodule 'matplotlib' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7-pydebug/matplotlib/__init__.py'\u003e may need setup\r\nsuite.py                   291 DEBUG    ancestor \u003cmodule 'matplotlib' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7-pydebug/matplotlib/__init__.py'\u003e does need setup\r\nsuite.py                   302 DEBUG    \u003cnose.suite.ContextSuite context=nosetest_simple_figure\u003e setup context \u003cmodule 'matplotlib' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7-pydebug/matplotlib/__init__.py'\u003e\r\nsuite.py                   288 DEBUG    ancestor \u003cmodule 'matplotlib.tests' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7-pydebug/matplotlib/tests/__init__.py'\u003e may need setup\r\nsuite.py                   291 DEBUG    ancestor \u003cmodule 'matplotlib.tests' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7-pydebug/matplotlib/tests/__init__.py'\u003e does need setup\r\nsuite.py                   302 DEBUG    \u003cnose.suite.ContextSuite context=nosetest_simple_figure\u003e setup context \u003cmodule 'matplotlib.tests' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7-pydebug/matplotlib/tests/__init__.py'\u003e\r\nutil.py                    470 DEBUG    call fixture \u003cmodule 'matplotlib.tests' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7-pydebug/matplotlib/tests/__init__.py'\u003e.setup\r\nsuite.py                   288 DEBUG    ancestor \u003cmodule 'matplotlib.tests.test_compare_images' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7-pydebug/matplotlib/tests/test_compare_images.py'\u003e may need setup\r\nsuite.py                   291 DEBUG    ancestor \u003cmodule 'matplotlib.tests.test_compare_images' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7-pydebug/matplotlib/tests/test_compare_images.py'\u003e does need setup\r\nsuite.py                   302 DEBUG    \u003cnose.suite.ContextSuite context=nosetest_simple_figure\u003e setup context \u003cmodule 'matplotlib.tests.test_compare_images' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7-pydebug/matplotlib/tests/test_compare_images.py'\u003e\r\nsuite.py                   288 DEBUG    ancestor \u003cfunction nosetest_simple_figure at 0x7f4fd4d83ae0\u003e may need setup\r\nsuite.py                   291 DEBUG    ancestor \u003cfunction nosetest_simple_figure at 0x7f4fd4d83ae0\u003e does need setup\r\nsuite.py                   302 DEBUG    \u003cnose.suite.ContextSuite context=nosetest_simple_figure\u003e setup context \u003cfunction nosetest_simple_figure at 0x7f4fd4d83ae0\u003e\r\nutil.py                    470 DEBUG    call fixture \u003cfunction nosetest_simple_figure at 0x7f4fd4d83ae0\u003e.setup\r\nsuite.py                   298 DEBUG    completed suite setup\r\nsuite.py                    94 DEBUG    precache is [matplotlib.tests.test_compare_images.nosetest_simple_figure(0, 'simple', 'png')]\r\nsuite.py                   323 DEBUG    context teardown\r\nsuite.py                   341 DEBUG    ancestor \u003cfunction nosetest_simple_figure at 0x7f4fd4d83ae0\u003e may need teardown\r\nsuite.py                   349 DEBUG    \u003cnose.suite.ContextSuite context=nosetest_simple_figure\u003e setup ancestor \u003cfunction nosetest_simple_figure at 0x7f4fd4d83ae0\u003e\r\nsuite.py                   356 DEBUG    \u003cnose.suite.ContextSuite context=nosetest_simple_figure\u003e teardown context \u003cfunction nosetest_simple_figure at 0x7f4fd4d83ae0\u003e\r\nutil.py                    470 DEBUG    call fixture \u003cfunction nosetest_simple_figure at 0x7f4fd4d83ae0\u003e.teardown\r\nsuite.py                   341 DEBUG    ancestor \u003cmodule 'matplotlib.tests.test_compare_images' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7-pydebug/matplotlib/tests/test_compare_images.py'\u003e may need teardown\r\nsuite.py                   349 DEBUG    \u003cnose.suite.ContextSuite context=nosetest_simple_figure\u003e setup ancestor \u003cmodule 'matplotlib.tests.test_compare_images' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7-pydebug/matplotlib/tests/test_compare_images.py'\u003e\r\nsuite.py                   356 DEBUG    \u003cnose.suite.ContextSuite context=nosetest_simple_figure\u003e teardown context \u003cmodule 'matplotlib.tests.test_compare_images' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7-pydebug/matplotlib/tests/test_compare_images.py'\u003e\r\nsuite.py                   341 DEBUG    ancestor \u003cmodule 'matplotlib.tests' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7-pydebug/matplotlib/tests/__init__.py'\u003e may need teardown\r\nsuite.py                   349 DEBUG    \u003cnose.suite.ContextSuite context=nosetest_simple_figure\u003e setup ancestor \u003cmodule 'matplotlib.tests' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7-pydebug/matplotlib/tests/__init__.py'\u003e\r\nsuite.py                   356 DEBUG    \u003cnose.suite.ContextSuite context=nosetest_simple_figure\u003e teardown context \u003cmodule 'matplotlib.tests' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7-pydebug/matplotlib/tests/__init__.py'\u003e\r\nsuite.py                   341 DEBUG    ancestor \u003cmodule 'matplotlib' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7-pydebug/matplotlib/__init__.py'\u003e may need teardown\r\nsuite.py                   349 DEBUG    \u003cnose.suite.ContextSuite context=nosetest_simple_figure\u003e setup ancestor \u003cmodule 'matplotlib' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7-pydebug/matplotlib/__init__.py'\u003e\r\nsuite.py                   356 DEBUG    \u003cnose.suite.ContextSuite context=nosetest_simple_figure\u003e teardown context \u003cmodule 'matplotlib' from '/build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7-pydebug/matplotlib/__init__.py'\u003e\r\nsuite.py                   341 DEBUG    ancestor \u003cfunction nosetest_simple_figure at 0x7f4fd4d83ae0\u003e may need teardown\r\nsuite.py                   346 DEBUG    ancestor \u003cfunction nosetest_simple_figure at 0x7f4fd4d83ae0\u003e already torn down\r\n=============================== warnings summary ===============================\r\nbuild/lib.linux-x86_64-2.7-pydebug/matplotlib/tests/test_axes.py::test_fill_units[png]\r\n  /build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7-pydebug/matplotlib/axes/_base.py:2504: RuntimeWarning: invalid value encountered in double_scalars\r\n    delta = (x1t - x0t) * margin\r\n\r\nbuild/lib.linux-x86_64-2.7-pydebug/matplotlib/tests/test_axes.py::test_pyplot_axes\r\n  /build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7-pydebug/matplotlib/cbook/deprecation.py:107: MatplotlibDeprecationWarning: Using pyplot.axes(ax) with ax an Axes argument is deprecated. Please use pyplot.sca(ax) instead.\r\n    warnings.warn(message, mplDeprecation, stacklevel=1)\r\n\r\nbuild/lib.linux-x86_64-2.7-pydebug/matplotlib/tests/test_image.py::test_empty_imshow[make_norm2]\r\n  /build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7-pydebug/matplotlib/colors.py:1133: RuntimeWarning: invalid value encountered in greater\r\n    masked = np.abs(a) \u003e self.linthresh\r\n\r\nbuild/lib.linux-x86_64-2.7-pydebug/matplotlib/tests/test_image.py::test_full_invalid\r\n  /build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7-pydebug/matplotlib/image.py:405: UserWarning: Warning: converting a masked element to nan.\r\n    dv = (np.float64(self.norm.vmax) -\r\n  /build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7-pydebug/matplotlib/image.py:406: UserWarning: Warning: converting a masked element to nan.\r\n    np.float64(self.norm.vmin))\r\n  /build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7-pydebug/matplotlib/image.py:412: UserWarning: Warning: converting a masked element to nan.\r\n    a_min = np.float64(newmin)\r\n  /build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7-pydebug/matplotlib/image.py:417: UserWarning: Warning: converting a masked element to nan.\r\n    a_max = np.float64(newmax)\r\n  /build/matplotlib-2.2.2/build/lib.linux-x86_64-2.7-pydebug/matplotlib/colors.py:916: UserWarning: Warning: converting a masked element to nan.\r\n    dtype = np.min_scalar_type(value)\r\n  /usr/lib/python2.7/dist-packages/numpy/ma/core.py:716: UserWarning: Warning: converting a masked element to nan.\r\n    data = np.array(a, copy=False, subok=subok)\r\n\r\n-- Docs: http://doc.pytest.org/en/latest/warnings.html\r\n\r\n```\r\n\r\npython 3.6.5\r\n```\r\n ERROR collecting build/lib.linux-x86_64-3.6/mpl_toolkits/tests/test_axisartist_angle_helper.py \r\n/usr/lib/python3/dist-packages/_pytest/python.py:403: in _importtestmodule\r\n    mod = self.fspath.pyimport(ensuresyspath=importmode)\r\n/usr/lib/python3/dist-packages/py/_path/local.py:668: in pyimport\r\n    __import__(modname)\r\n\u003cfrozen importlib._bootstrap\u003e:971: in _find_and_load\r\n    ???\r\n\u003cfrozen importlib._bootstrap\u003e:955: in _find_and_load_unlocked\r\n    ???\r\n\u003cfrozen importlib._bootstrap\u003e:656: in _load_unlocked\r\n    ???\r\n\u003cfrozen importlib._bootstrap\u003e:626: in _load_backward_compatible\r\n    ???\r\n/usr/lib/python3/dist-packages/_pytest/assertion/rewrite.py:213: in load_module\r\n    py.builtin.exec_(co, mod.__dict__)\r\nbuild/lib.linux-x86_64-3.6/mpl_toolkits/tests/test_axisartist_angle_helper.py:9: in \u003cmodule\u003e\r\n    from mpl_toolkits.axisartist.angle_helper import (\r\nE     File \"/build/matplotlib-2.2.2/build/lib.linux-x86_64-3.6/mpl_toolkits/axisartist/angle_helper.py\", line 212\r\nE       deg_mark = \"^{\\circ}\"\r\nE                 ^\r\nE   SyntaxError: invalid escape sequence \\c\r\n ERROR collecting build/lib.linux-x86_64-3.6/mpl_toolkits/tests/test_axisartist_floating_axes.py \r\n/usr/lib/python3/dist-packages/_pytest/python.py:403: in _importtestmodule\r\n    mod = self.fspath.pyimport(ensuresyspath=importmode)\r\n/usr/lib/python3/dist-packages/py/_path/local.py:668: in pyimport\r\n    __import__(modname)\r\n\u003cfrozen importlib._bootstrap\u003e:971: in _find_and_load\r\n    ???\r\n\u003cfrozen importlib._bootstrap\u003e:955: in _find_and_load_unlocked\r\n    ???\r\n\u003cfrozen importlib._bootstrap\u003e:656: in _load_unlocked\r\n    ???\r\n\u003cfrozen importlib._bootstrap\u003e:626: in _load_backward_compatible\r\n    ???\r\n/usr/lib/python3/dist-packages/_pytest/assertion/rewrite.py:213: in load_module\r\n    py.builtin.exec_(co, mod.__dict__)\r\nbuild/lib.linux-x86_64-3.6/mpl_toolkits/tests/test_axisartist_floating_axes.py:15: in \u003cmodule\u003e\r\n    from mpl_toolkits.axisartist import angle_helper\r\nE     File \"/build/matplotlib-2.2.2/build/lib.linux-x86_64-3.6/mpl_toolkits/axisartist/angle_helper.py\", line 212\r\nE       deg_mark = \"^{\\circ}\"\r\nE                 ^\r\nE   SyntaxError: invalid escape sequence \\c\r\n ERROR collecting build/lib.linux-x86_64-3.6/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py \r\n/usr/lib/python3/dist-packages/_pytest/python.py:403: in _importtestmodule\r\n    mod = self.fspath.pyimport(ensuresyspath=importmode)\r\n/usr/lib/python3/dist-packages/py/_path/local.py:668: in pyimport\r\n    __import__(modname)\r\n\u003cfrozen importlib._bootstrap\u003e:971: in _find_and_load\r\n    ???\r\n\u003cfrozen importlib._bootstrap\u003e:955: in _find_and_load_unlocked\r\n    ???\r\n\u003cfrozen importlib._bootstrap\u003e:656: in _load_unlocked\r\n    ???\r\n\u003cfrozen importlib._bootstrap\u003e:626: in _load_backward_compatible\r\n    ???\r\n/usr/lib/python3/dist-packages/_pytest/assertion/rewrite.py:213: in load_module\r\n    py.builtin.exec_(co, mod.__dict__)\r\nbuild/lib.linux-x86_64-3.6/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py:15: in \u003cmodule\u003e\r\n    from mpl_toolkits.axisartist import angle_helper\r\nE     File \"/build/matplotlib-2.2.2/build/lib.linux-x86_64-3.6/mpl_toolkits/axisartist/angle_helper.py\", line 212\r\nE       deg_mark = \"^{\\circ}\"\r\nE                 ^\r\nE   SyntaxError: invalid escape sequence \\c\r\n------------------------------- Captured stderr --------------------------------\r\n/build/matplotlib-2.2.2/build/lib.linux-x86_64-3.6/matplotlib/cbook/deprecation.py:107: MatplotlibDeprecationWarning: The mpl_toolkits.axes_grid module was deprecated in version 2.1. Use mpl_toolkits.axes_grid1 and mpl_toolkits.axisartist provies the same functionality instead.\r\n  warnings.warn(message, mplDeprecation, stacklevel=1)\r\n!!!!!!!!!!!!!!!!!!! Interrupted: 3 errors during collection !!!!!!!!!!!!!!!!!!!!\r\n```","author":{"url":"https://github.com/sandrotosi","@type":"Person","name":"sandrotosi"},"datePublished":"2018-05-28T16:53:19.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":13},"url":"https://github.com/11324/matplotlib/issues/11324"}

route-pattern/_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format)
route-controllervoltron_issues_fragments
route-actionissue_layout
fetch-noncev2:ac648b0d-d9ab-ee97-837f-03ca23ca380f
current-catalog-service-hash81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114
request-idE89E:25F3E7:351231:4A2386:6A53738C
html-safe-nonceb2f96a96e313ad995224469c771d4d8d98dac082133992290a007f82cc9599d4
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJFODlFOjI1RjNFNzozNTEyMzE6NEEyMzg2OjZBNTM3MzhDIiwidmlzaXRvcl9pZCI6Ijg4NDAxODAyNDA1MTUwMzYwNDQiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==
visitor-hmac91e08922641613a89dd7a91fe796561eb242f83167af8bf3321759b9becd7d6c
hovercard-subject-tagissue:327078866
github-keyboard-shortcutsrepository,issues,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///voltron/issues_fragments/issue_layout
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/matplotlib/matplotlib/11324/issue_layout
twitter:imagehttps://opengraph.githubassets.com/8e88dd2beeb5fda102b5a122fb33bbe0519a213732e6c1760ea11a030fd285de/matplotlib/matplotlib/issues/11324
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/8e88dd2beeb5fda102b5a122fb33bbe0519a213732e6c1760ea11a030fd285de/matplotlib/matplotlib/issues/11324
og:image:altHello, i'm reporting here the errors produced by the test suite when running on debian amd64: python 2.7.15: =================================== FAILURES =================================== _______...
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
og:author:usernamesandrotosi
hostnamegithub.com
expected-hostnamegithub.com
Noneb9a586c06a05a7a86fc7e3f4dbd03e42f6869085879aa184aa6369456dbd50fb
turbo-cache-controlno-preview
go-importgithub.com/matplotlib/matplotlib git https://github.com/matplotlib/matplotlib.git
octolytics-dimension-user_id215947
octolytics-dimension-user_loginmatplotlib
octolytics-dimension-repository_id1385122
octolytics-dimension-repository_nwomatplotlib/matplotlib
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id1385122
octolytics-dimension-repository_network_root_nwomatplotlib/matplotlib
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release07a982c1d40157c619b364352b704c3ce66bb332
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/matplotlib/matplotlib/issues/11324#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmatplotlib%2Fmatplotlib%2Fissues%2F11324
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/open-source/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/open-source/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmatplotlib%2Fmatplotlib%2Fissues%2F11324
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fvoltron%2Fissues_fragments%2Fissue_layout&source=header-repo&source_repo=matplotlib%2Fmatplotlib
Reloadhttps://github.com/matplotlib/matplotlib/issues/11324
Reloadhttps://github.com/matplotlib/matplotlib/issues/11324
Reloadhttps://github.com/matplotlib/matplotlib/issues/11324
Please reload this pagehttps://github.com/matplotlib/matplotlib/issues/11324
matplotlib https://github.com/matplotlib
matplotlibhttps://github.com/matplotlib/matplotlib
Please reload this pagehttps://github.com/matplotlib/matplotlib/issues/11324
Notifications https://github.com/login?return_to=%2Fmatplotlib%2Fmatplotlib
Fork 8.4k https://github.com/login?return_to=%2Fmatplotlib%2Fmatplotlib
Star 23k https://github.com/login?return_to=%2Fmatplotlib%2Fmatplotlib
Code https://github.com/matplotlib/matplotlib
Issues 1.1k https://github.com/matplotlib/matplotlib/issues
Pull requests 408 https://github.com/matplotlib/matplotlib/pulls
Actions https://github.com/matplotlib/matplotlib/actions
Projects https://github.com/matplotlib/matplotlib/projects
Wiki https://github.com/matplotlib/matplotlib/wiki
Security and quality 0 https://github.com/matplotlib/matplotlib/security
Insights https://github.com/matplotlib/matplotlib/pulse
Code https://github.com/matplotlib/matplotlib
Issues https://github.com/matplotlib/matplotlib/issues
Pull requests https://github.com/matplotlib/matplotlib/pulls
Actions https://github.com/matplotlib/matplotlib/actions
Projects https://github.com/matplotlib/matplotlib/projects
Wiki https://github.com/matplotlib/matplotlib/wiki
Security and quality https://github.com/matplotlib/matplotlib/security
Insights https://github.com/matplotlib/matplotlib/pulse
matplotlib 3.3.0 debian amd64: tests errorshttps://github.com/matplotlib/matplotlib/issues/11324#top
https://github.com/sandrotosi
sandrotosihttps://github.com/sandrotosi
on May 28, 2018https://github.com/matplotlib/matplotlib/issues/11324#issue-327078866
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.