From: <as...@us...> - 2009-09-07 20:05:48
|
Revision: 7696 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7696&view=rev Author: astraw Date: 2009-09-07 20:05:42 +0000 (Mon, 07 Sep 2009) Log Message: ----------- test conversion: move old-style test to new-style test Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/__init__.py Added Paths: ----------- trunk/matplotlib/lib/matplotlib/tests/test_agg.py Removed Paths: ------------- trunk/matplotlib/test/test_backends/TestAgg.py Modified: trunk/matplotlib/lib/matplotlib/__init__.py =================================================================== --- trunk/matplotlib/lib/matplotlib/__init__.py 2009-09-07 20:05:29 UTC (rev 7695) +++ trunk/matplotlib/lib/matplotlib/__init__.py 2009-09-07 20:05:42 UTC (rev 7696) @@ -877,6 +877,7 @@ # we don't want to assume all -d flags are backends, eg -debug default_test_modules = [ + 'matplotlib.tests.test_agg', 'matplotlib.tests.test_basic', 'matplotlib.tests.test_transforms', 'matplotlib.tests.test_axes', Added: trunk/matplotlib/lib/matplotlib/tests/test_agg.py =================================================================== --- trunk/matplotlib/lib/matplotlib/tests/test_agg.py (rev 0) +++ trunk/matplotlib/lib/matplotlib/tests/test_agg.py 2009-09-07 20:05:42 UTC (rev 7696) @@ -0,0 +1,64 @@ +import os + +def report_memory(i): + pid = os.getpid() + a2 = os.popen('ps -p %d -o rss,sz' % pid).readlines() + print i, ' ', a2[1], + return int(a2[1].split()[0]) + +# This test is disabled -- it uses old API. -ADS 2009-09-07 +## def test_memleak(): +## """Test agg backend for memory leaks.""" +## from matplotlib.ft2font import FT2Font +## from numpy.random import rand +## from matplotlib.backend_bases import GraphicsContextBase +## from matplotlib.backends._backend_agg import RendererAgg + +## fontname = '/usr/local/share/matplotlib/Vera.ttf' + +## N = 200 +## for i in range( N ): +## gc = GraphicsContextBase() +## gc.set_clip_rectangle( [20, 20, 20, 20] ) +## o = RendererAgg( 400, 400, 72 ) + +## for j in range( 50 ): +## xs = [ 400*int(rand()) for k in range(8) ] +## ys = [ 400*int(rand()) for k in range(8) ] +## rgb = (1, 0, 0) +## pnts = zip( xs, ys ) +## o.draw_polygon( gc, rgb, pnts ) +## o.draw_polygon( gc, None, pnts ) + +## for j in range( 50 ): +## x = [ 400*int(rand()) for k in range(4) ] +## y = [ 400*int(rand()) for k in range(4) ] +## o.draw_lines( gc, x, y ) + +## for j in range( 50 ): +## args = [ 400*int(rand()) for k in range(4) ] +## rgb = (1, 0, 0) +## o.draw_rectangle( gc, rgb, *args ) + +## if 1: # add text +## font = FT2Font( fontname ) +## font.clear() +## font.set_text( 'hi mom', 60 ) +## font.set_size( 12, 72 ) +## o.draw_text_image( font.get_image(), 30, 40, gc ) + +## fname = "agg_memleak_%05d.png" +## o.write_png( fname % i ) +## val = report_memory( i ) +## if i==1: start = val + +## end = val +## avgMem = (end - start) / float(N) +## print 'Average memory consumed per loop: %1.4f\n' % (avgMem) + +## #TODO: Verify the expected mem usage and approximate tolerance that should be used +## #self.checkClose( 0.32, avgMem, absTol = 0.1 ) + +## # w/o text and w/o write_png: Average memory consumed per loop: 0.02 +## # w/o text and w/ write_png : Average memory consumed per loop: 0.3400 +## # w/ text and w/ write_png : Average memory consumed per loop: 0.32 Deleted: trunk/matplotlib/test/test_backends/TestAgg.py =================================================================== --- trunk/matplotlib/test/test_backends/TestAgg.py 2009-09-07 20:05:29 UTC (rev 7695) +++ trunk/matplotlib/test/test_backends/TestAgg.py 2009-09-07 20:05:42 UTC (rev 7696) @@ -1,106 +0,0 @@ -#======================================================================= -"""The Agg backend unit-test class implementation.""" -#======================================================================= - -from mplTest import * - -#======================================================================= -# Add import modules below. -# import matplotlib -# matplotlib.use( "Agg", warn = False ) - -import sys, time, os -from matplotlib.ft2font import FT2Font -from numpy.random import rand -from matplotlib.backend_bases import GraphicsContextBase -from matplotlib.backends._backend_agg import RendererAgg - -# -#======================================================================= - -#======================================================================= -def report_memory(i): - pid = os.getpid() - a2 = os.popen('ps -p %d -o rss,sz' % pid).readlines() - print i, ' ', a2[1], - return int(a2[1].split()[0]) - -#======================================================================= -class TestAgg( MplTestCase ): - """Agg backend unit test class.""" - - # Uncomment any appropriate tags - tags = [ - # 'gui', # requires the creation of a gui window - 'agg', # uses agg in the backend - 'agg-only', # uses only agg in the backend - # 'wx', # uses wx in the backend - # 'qt', # uses qt in the backend - # 'ps', # uses the postscript backend - # 'units', # uses units in the test - # 'PIL', # uses PIL for image comparison - ] - - #-------------------------------------------------------------------- - def setUp( self ): - """Setup any data needed for the unit test.""" - pass - - #-------------------------------------------------------------------- - def tearDown( self ): - """Clean-up any generated files here.""" - pass - - #-------------------------------------------------------------------- - def DISABLED_memleak( self ): - """Test agg backend for memory leaks.""" - - fontname = '/usr/local/share/matplotlib/Vera.ttf' - fname = self.outFile( "agg_memleak_%05d.png" ) - - N = 200 - for i in range( N ): - gc = GraphicsContextBase() - gc.set_clip_rectangle( [20, 20, 20, 20] ) - o = RendererAgg( 400, 400, 72 ) - - for j in range( 50 ): - xs = [ 400*int(rand()) for k in range(8) ] - ys = [ 400*int(rand()) for k in range(8) ] - rgb = (1, 0, 0) - pnts = zip( xs, ys ) - o.draw_polygon( gc, rgb, pnts ) - o.draw_polygon( gc, None, pnts ) - - for j in range( 50 ): - x = [ 400*int(rand()) for k in range(4) ] - y = [ 400*int(rand()) for k in range(4) ] - o.draw_lines( gc, x, y ) - - for j in range( 50 ): - args = [ 400*int(rand()) for k in range(4) ] - rgb = (1, 0, 0) - o.draw_rectangle( gc, rgb, *args ) - - if 1: # add text - font = FT2Font( fontname ) - font.clear() - font.set_text( 'hi mom', 60 ) - font.set_size( 12, 72 ) - o.draw_text_image( font.get_image(), 30, 40, gc ) - - - o.write_png( fname % i ) - val = report_memory( i ) - if i==1: start = val - - end = val - avgMem = (end - start) / float(N) - print 'Average memory consumed per loop: %1.4f\n' % (avgMem) - - #TODO: Verify the expected mem usage and approximate tolerance that should be used - self.checkClose( 0.32, avgMem, absTol = 0.1 ) - - # w/o text and w/o write_png: Average memory consumed per loop: 0.02 - # w/o text and w/ write_png : Average memory consumed per loop: 0.3400 - # w/ text and w/ write_png : Average memory consumed per loop: 0.32 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |