annotate test/transform_test.py @ 3194:9fcb7abf3185 default tip

Remove some gcc 4.7.2 compiler warnings
author Lenard Lindstrom <len-l@telus.net>
date Tue, 23 Apr 2013 19:53:36 -0700
parents 1ea8ab9129a0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1418
af8675f5e463 test suite now pygame.tests subpackage as well
Lenard Lindstrom <len-l@telus.net>
parents: 1370
diff changeset
1 if __name__ == '__main__':
af8675f5e463 test suite now pygame.tests subpackage as well
Lenard Lindstrom <len-l@telus.net>
parents: 1370
diff changeset
2 import sys
af8675f5e463 test suite now pygame.tests subpackage as well
Lenard Lindstrom <len-l@telus.net>
parents: 1370
diff changeset
3 import os
af8675f5e463 test suite now pygame.tests subpackage as well
Lenard Lindstrom <len-l@telus.net>
parents: 1370
diff changeset
4 pkg_dir = os.path.split(os.path.abspath(__file__))[0]
af8675f5e463 test suite now pygame.tests subpackage as well
Lenard Lindstrom <len-l@telus.net>
parents: 1370
diff changeset
5 parent_dir, pkg_name = os.path.split(pkg_dir)
af8675f5e463 test suite now pygame.tests subpackage as well
Lenard Lindstrom <len-l@telus.net>
parents: 1370
diff changeset
6 is_pygame_pkg = (pkg_name == 'tests' and
af8675f5e463 test suite now pygame.tests subpackage as well
Lenard Lindstrom <len-l@telus.net>
parents: 1370
diff changeset
7 os.path.split(parent_dir)[1] == 'pygame')
af8675f5e463 test suite now pygame.tests subpackage as well
Lenard Lindstrom <len-l@telus.net>
parents: 1370
diff changeset
8 if not is_pygame_pkg:
af8675f5e463 test suite now pygame.tests subpackage as well
Lenard Lindstrom <len-l@telus.net>
parents: 1370
diff changeset
9 sys.path.insert(0, parent_dir)
af8675f5e463 test suite now pygame.tests subpackage as well
Lenard Lindstrom <len-l@telus.net>
parents: 1370
diff changeset
10 else:
af8675f5e463 test suite now pygame.tests subpackage as well
Lenard Lindstrom <len-l@telus.net>
parents: 1370
diff changeset
11 is_pygame_pkg = __name__.startswith('pygame.tests.')
1148
1d1ed35fb837 Added in many test stubs, hopefully some test faeries will fill some of them out.
akalias
parents: 862
diff changeset
12
1418
af8675f5e463 test suite now pygame.tests subpackage as well
Lenard Lindstrom <len-l@telus.net>
parents: 1370
diff changeset
13 if is_pygame_pkg:
af8675f5e463 test suite now pygame.tests subpackage as well
Lenard Lindstrom <len-l@telus.net>
parents: 1370
diff changeset
14 from pygame.tests import test_utils
af8675f5e463 test suite now pygame.tests subpackage as well
Lenard Lindstrom <len-l@telus.net>
parents: 1370
diff changeset
15 from pygame.tests.test_utils import test_not_implemented, unittest
af8675f5e463 test suite now pygame.tests subpackage as well
Lenard Lindstrom <len-l@telus.net>
parents: 1370
diff changeset
16 else:
af8675f5e463 test suite now pygame.tests subpackage as well
Lenard Lindstrom <len-l@telus.net>
parents: 1370
diff changeset
17 from test import test_utils
af8675f5e463 test suite now pygame.tests subpackage as well
Lenard Lindstrom <len-l@telus.net>
parents: 1370
diff changeset
18 from test.test_utils import test_not_implemented, unittest
af8675f5e463 test suite now pygame.tests subpackage as well
Lenard Lindstrom <len-l@telus.net>
parents: 1370
diff changeset
19 import pygame
af8675f5e463 test suite now pygame.tests subpackage as well
Lenard Lindstrom <len-l@telus.net>
parents: 1370
diff changeset
20 import pygame.transform
862
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
21 from pygame.locals import *
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
22
1330
67fd4fb4bf12 Allow the VC build of transform.c use the MMX/SSE enhanced smoothscale code.
Lenard Lindstrom <len-l@telus.net>
parents: 1319
diff changeset
23 import platform
67fd4fb4bf12 Allow the VC build of transform.c use the MMX/SSE enhanced smoothscale code.
Lenard Lindstrom <len-l@telus.net>
parents: 1319
diff changeset
24
862
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
25 def show_image(s, images = []):
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
26 #pygame.display.init()
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
27 size = s.get_rect()[2:]
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
28 screen = pygame.display.set_mode(size)
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
29 screen.blit(s, (0,0))
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
30 pygame.display.flip()
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
31 pygame.event.pump()
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
32 going = True
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
33 idx = 0
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
34 while going:
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
35 events = pygame.event.get()
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
36 for e in events:
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
37 if e.type == QUIT:
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
38 going = False
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
39 if e.type == KEYDOWN:
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
40 if e.key in [K_s, K_a]:
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
41 if e.key == K_s: idx += 1
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
42 if e.key == K_a: idx -= 1
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
43 s = images[idx]
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
44 screen.blit(s, (0,0))
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
45 pygame.display.flip()
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
46 pygame.event.pump()
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
47 else:
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
48 going = False
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
49 pygame.display.quit()
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
50 pygame.display.init()
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
51
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
52 def threshold(return_surf, surf, color, threshold = (0,0,0), diff_color = (0,0,0), change_return = True ):
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
53 """ given the color it makes return_surf only have areas with the given colour.
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
54 """
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
55
862
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
56 width, height =surf.get_width(), surf.get_height()
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
57
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
58 if change_return:
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
59 return_surf.fill(diff_color)
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
60
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
61 try:
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
62 r, g, b = color
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
63 except ValueError:
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
64 r, g, b, a = color
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
65
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
66
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
67 try:
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
68 tr, tg, tb = color
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
69 except ValueError:
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
70 tr, tg, tb, ta = color
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
71
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
72
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
73
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
74 similar = 0
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
75 for y in xrange(height):
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
76 for x in xrange(width):
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
77 c1 = surf.get_at((x,y))
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
78
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
79 if ( (abs(c1[0] - r) < tr) &
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
80 (abs(c1[1] - g) < tg) &
862
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
81 (abs(c1[2] - b) < tb) ):
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
82 # this pixel is within the threshold.
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
83 if change_return:
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
84 return_surf.set_at((x,y), c1)
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
85 similar += 1
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
86 #else:
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
87 # print c1, c2
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
88
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
89
862
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
90 return similar
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
91
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
92
1148
1d1ed35fb837 Added in many test stubs, hopefully some test faeries will fill some of them out.
akalias
parents: 862
diff changeset
93 class TransformModuleTest( unittest.TestCase ):
1360
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
94 #class TransformModuleTest( object ):
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
95
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
96 #def assertEqual(self, x,x2):
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
97 # print x,x2
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
98
1148
1d1ed35fb837 Added in many test stubs, hopefully some test faeries will fill some of them out.
akalias
parents: 862
diff changeset
99 def test_scale__alpha( self ):
697
ea7bec2fca9f Added a test for set_alpha() use and transform.scale.
Rene Dudfield <renesd@gmail.com>
parents:
diff changeset
100 """ see if set_alpha information is kept.
ea7bec2fca9f Added a test for set_alpha() use and transform.scale.
Rene Dudfield <renesd@gmail.com>
parents:
diff changeset
101 """
ea7bec2fca9f Added a test for set_alpha() use and transform.scale.
Rene Dudfield <renesd@gmail.com>
parents:
diff changeset
102
ea7bec2fca9f Added a test for set_alpha() use and transform.scale.
Rene Dudfield <renesd@gmail.com>
parents:
diff changeset
103 s = pygame.Surface((32,32))
ea7bec2fca9f Added a test for set_alpha() use and transform.scale.
Rene Dudfield <renesd@gmail.com>
parents:
diff changeset
104 s.set_alpha(55)
ea7bec2fca9f Added a test for set_alpha() use and transform.scale.
Rene Dudfield <renesd@gmail.com>
parents:
diff changeset
105 self.assertEqual(s.get_alpha(),55)
ea7bec2fca9f Added a test for set_alpha() use and transform.scale.
Rene Dudfield <renesd@gmail.com>
parents:
diff changeset
106
ea7bec2fca9f Added a test for set_alpha() use and transform.scale.
Rene Dudfield <renesd@gmail.com>
parents:
diff changeset
107 s = pygame.Surface((32,32))
ea7bec2fca9f Added a test for set_alpha() use and transform.scale.
Rene Dudfield <renesd@gmail.com>
parents:
diff changeset
108 s.set_alpha(55)
ea7bec2fca9f Added a test for set_alpha() use and transform.scale.
Rene Dudfield <renesd@gmail.com>
parents:
diff changeset
109 s2 = pygame.transform.scale(s, (64,64))
ea7bec2fca9f Added a test for set_alpha() use and transform.scale.
Rene Dudfield <renesd@gmail.com>
parents:
diff changeset
110 s3 = s.copy()
ea7bec2fca9f Added a test for set_alpha() use and transform.scale.
Rene Dudfield <renesd@gmail.com>
parents:
diff changeset
111 self.assertEqual(s.get_alpha(),s3.get_alpha())
ea7bec2fca9f Added a test for set_alpha() use and transform.scale.
Rene Dudfield <renesd@gmail.com>
parents:
diff changeset
112 self.assertEqual(s.get_alpha(),s2.get_alpha())
ea7bec2fca9f Added a test for set_alpha() use and transform.scale.
Rene Dudfield <renesd@gmail.com>
parents:
diff changeset
113
ea7bec2fca9f Added a test for set_alpha() use and transform.scale.
Rene Dudfield <renesd@gmail.com>
parents:
diff changeset
114
1148
1d1ed35fb837 Added in many test stubs, hopefully some test faeries will fill some of them out.
akalias
parents: 862
diff changeset
115 def test_scale__destination( self ):
740
bc4b1b23d8c9 Added support to transform.scale and transform.scale2x so that a destination
Rene Dudfield <renesd@gmail.com>
parents: 697
diff changeset
116 """ see if the destination surface can be passed in to use.
bc4b1b23d8c9 Added support to transform.scale and transform.scale2x so that a destination
Rene Dudfield <renesd@gmail.com>
parents: 697
diff changeset
117 """
bc4b1b23d8c9 Added support to transform.scale and transform.scale2x so that a destination
Rene Dudfield <renesd@gmail.com>
parents: 697
diff changeset
118
bc4b1b23d8c9 Added support to transform.scale and transform.scale2x so that a destination
Rene Dudfield <renesd@gmail.com>
parents: 697
diff changeset
119 s = pygame.Surface((32,32))
bc4b1b23d8c9 Added support to transform.scale and transform.scale2x so that a destination
Rene Dudfield <renesd@gmail.com>
parents: 697
diff changeset
120 s2 = pygame.transform.scale(s, (64,64))
bc4b1b23d8c9 Added support to transform.scale and transform.scale2x so that a destination
Rene Dudfield <renesd@gmail.com>
parents: 697
diff changeset
121 s3 = s2.copy()
bc4b1b23d8c9 Added support to transform.scale and transform.scale2x so that a destination
Rene Dudfield <renesd@gmail.com>
parents: 697
diff changeset
122
bc4b1b23d8c9 Added support to transform.scale and transform.scale2x so that a destination
Rene Dudfield <renesd@gmail.com>
parents: 697
diff changeset
123 s3 = pygame.transform.scale(s, (64,64), s3)
bc4b1b23d8c9 Added support to transform.scale and transform.scale2x so that a destination
Rene Dudfield <renesd@gmail.com>
parents: 697
diff changeset
124 pygame.transform.scale(s, (64,64), s2)
bc4b1b23d8c9 Added support to transform.scale and transform.scale2x so that a destination
Rene Dudfield <renesd@gmail.com>
parents: 697
diff changeset
125
bc4b1b23d8c9 Added support to transform.scale and transform.scale2x so that a destination
Rene Dudfield <renesd@gmail.com>
parents: 697
diff changeset
126 # the wrong size surface is past in. Should raise an error.
bc4b1b23d8c9 Added support to transform.scale and transform.scale2x so that a destination
Rene Dudfield <renesd@gmail.com>
parents: 697
diff changeset
127 self.assertRaises(ValueError, pygame.transform.scale, s, (33,64), s3)
bc4b1b23d8c9 Added support to transform.scale and transform.scale2x so that a destination
Rene Dudfield <renesd@gmail.com>
parents: 697
diff changeset
128
834
714963434e23 Added smoothscale function from Richard Goedeken.
Rene Dudfield <renesd@gmail.com>
parents: 740
diff changeset
129 if 1:
714963434e23 Added smoothscale function from Richard Goedeken.
Rene Dudfield <renesd@gmail.com>
parents: 740
diff changeset
130 s = pygame.Surface((32,32))
714963434e23 Added smoothscale function from Richard Goedeken.
Rene Dudfield <renesd@gmail.com>
parents: 740
diff changeset
131 s2 = pygame.transform.smoothscale(s, (64,64))
714963434e23 Added smoothscale function from Richard Goedeken.
Rene Dudfield <renesd@gmail.com>
parents: 740
diff changeset
132 s3 = s2.copy()
740
bc4b1b23d8c9 Added support to transform.scale and transform.scale2x so that a destination
Rene Dudfield <renesd@gmail.com>
parents: 697
diff changeset
133
834
714963434e23 Added smoothscale function from Richard Goedeken.
Rene Dudfield <renesd@gmail.com>
parents: 740
diff changeset
134 s3 = pygame.transform.smoothscale(s, (64,64), s3)
714963434e23 Added smoothscale function from Richard Goedeken.
Rene Dudfield <renesd@gmail.com>
parents: 740
diff changeset
135 pygame.transform.smoothscale(s, (64,64), s2)
714963434e23 Added smoothscale function from Richard Goedeken.
Rene Dudfield <renesd@gmail.com>
parents: 740
diff changeset
136
714963434e23 Added smoothscale function from Richard Goedeken.
Rene Dudfield <renesd@gmail.com>
parents: 740
diff changeset
137 # the wrong size surface is past in. Should raise an error.
714963434e23 Added smoothscale function from Richard Goedeken.
Rene Dudfield <renesd@gmail.com>
parents: 740
diff changeset
138 self.assertRaises(ValueError, pygame.transform.smoothscale, s, (33,64), s3)
740
bc4b1b23d8c9 Added support to transform.scale and transform.scale2x so that a destination
Rene Dudfield <renesd@gmail.com>
parents: 697
diff changeset
139
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
140
1221
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
141 def test_threshold__honors_third_surface(self):
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
142 # __doc__ for threshold as of Tue 07/15/2008
697
ea7bec2fca9f Added a test for set_alpha() use and transform.scale.
Rene Dudfield <renesd@gmail.com>
parents:
diff changeset
143
1221
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
144 # pygame.transform.threshold(DestSurface, Surface, color, threshold =
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
145 # (0,0,0,0), diff_color = (0,0,0,0), change_return = True, Surface =
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
146 # None): return num_threshold_pixels
862
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
147
1221
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
148 # When given the optional third
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
149 # surface, it would use the colors in that rather than the "color"
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
150 # specified in the function to check against.
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
151
1221
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
152 # New in pygame 1.8
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
153
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
154 ################################################################
1221
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
155 # Sizes
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
156 (w, h) = size = (32, 32)
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
157
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
158 # the original_color is within the threshold of the threshold_color
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
159 threshold = (20, 20, 20, 20)
1222
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
160
1221
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
161 original_color = (25,25,25,25)
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
162 threshold_color = (10, 10, 10, 10)
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
163
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
164 # Surfaces
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
165 original_surface = pygame.Surface(size, pygame.SRCALPHA, 32)
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
166 dest_surface = pygame.Surface(size, pygame.SRCALPHA, 32)
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
167
1221
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
168 # Third surface is used in lieu of 3rd position arg color
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
169 third_surface = pygame.Surface(size, pygame.SRCALPHA, 32)
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
170
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
171 # Color filling
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
172 original_surface.fill(original_color)
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
173 third_surface.fill(threshold_color)
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
174
1222
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
175 ################################################################
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
176 # All pixels for color should be within threshold
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
177 #
1221
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
178 pixels_within_threshold = pygame.transform.threshold (
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
179 dest_surface, original_surface, threshold_color,
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
180 threshold,
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
181 0, # diff_color
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
182 0 # change_return
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
183 )
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
184
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
185 self.assertEqual(w*h, pixels_within_threshold)
1222
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
186
1360
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
187 ################################################################
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
188 # This should respect third_surface colors in place of 3rd arg
1222
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
189 # color Should be the same as: surface.fill(threshold_color)
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
190 # all within threshold
1360
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
191
1221
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
192 pixels_within_threshold = pygame.transform.threshold (
1360
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
193 dest_surface,
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
194 original_surface,
1222
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
195 0, # color (would fail if honored)
1221
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
196 threshold,
1360
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
197 0, # diff_color
1222
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
198 0, # change_return
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
199 third_surface,
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
200 )
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
201 self.assertEqual(w*h, pixels_within_threshold)
1360
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
202
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
203
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
204 ################################################################
1222
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
205 # Change dest_surface on return (not expected)
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
206
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
207 change_color = (255, 10, 10, 10)
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
208
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
209 pixels_within_threshold = pygame.transform.threshold (
1360
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
210 dest_surface,
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
211 original_surface,
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
212 0, # color
1222
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
213 threshold,
1360
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
214 change_color, # diff_color
1222
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
215 1, # change_return
1221
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
216 third_surface,
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
217 )
1360
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
218
1222
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
219 # Return, of pixels within threshold is correct
1221
25886fe3a0e8 Bugfix and test for transform.threshold, updated docs (thanks Nirav), added basic tagging to run_tests.py/test_runner.py.
akalias
parents: 1220
diff changeset
220 self.assertEqual(w*h, pixels_within_threshold)
1360
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
221
1222
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
222 # Size of dest surface is correct
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
223 dest_rect = dest_surface.get_rect()
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
224 dest_size = dest_rect.size
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
225 self.assertEqual(size, dest_size)
1360
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
226
1222
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
227 # The color is not the change_color specified for every pixel As all
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
228 # pixels are within threshold
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
229
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
230 for pt in test_utils.rect_area_pts(dest_rect):
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
231 self.assert_(dest_surface.get_at(pt) != change_color)
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
232
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
233 ################################################################
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
234 # Lowering the threshold, expecting changed surface
1222
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
235
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
236 pixels_within_threshold = pygame.transform.threshold (
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
237 dest_surface,
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
238 original_surface,
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
239 0, # color
1222
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
240 0, # threshold
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
241 change_color, # diff_color
1222
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
242 1, # change_return
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
243 third_surface,
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
244 )
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
245
1222
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
246 # Return, of pixels within threshold is correct
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
247 self.assertEqual(0, pixels_within_threshold)
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
248
1222
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
249 # Size of dest surface is correct
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
250 dest_rect = dest_surface.get_rect()
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
251 dest_size = dest_rect.size
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
252 self.assertEqual(size, dest_size)
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
253
1222
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
254 # The color is the change_color specified for every pixel As all
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
255 # pixels are not within threshold
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
256
1222
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
257 for pt in test_utils.rect_area_pts(dest_rect):
1229
ccd774a754ac test for uneven colors for transform.threshold
akalias
parents: 1227
diff changeset
258 self.assertEqual(dest_surface.get_at(pt), change_color)
ccd774a754ac test for uneven colors for transform.threshold
akalias
parents: 1227
diff changeset
259
ccd774a754ac test for uneven colors for transform.threshold
akalias
parents: 1227
diff changeset
260
1360
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
261
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
262 #XXX
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
263 def test_threshold_non_src_alpha(self):
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
264
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
265 result = pygame.Surface((10,10))
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
266 s1 = pygame.Surface((10,10))
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
267 s2 = pygame.Surface((10,10))
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
268 s3 = pygame.Surface((10,10))
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
269 s4 = pygame.Surface((10,10))
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
270 result = pygame.Surface((10,10))
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
271 x = s1.fill((0,0,0))
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
272 x = s2.fill((0,20,0))
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
273 x = s3.fill((0,0,0))
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
274 x = s4.fill((0,0,0))
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
275 s1.set_at((0,0), (32, 20, 0 ))
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
276 s2.set_at((0,0), (33, 21, 0 ))
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
277 s2.set_at((3,0), (63, 61, 0 ))
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
278 s3.set_at((0,0), (112, 31, 0 ))
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
279 s4.set_at((0,0), (11, 31, 0 ))
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
280 s4.set_at((1,1), (12, 31, 0 ))
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
281
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
282 self.assertEqual( s1.get_at((0,0)), (32, 20, 0, 255) )
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
283 self.assertEqual( s2.get_at((0,0)), (33, 21, 0, 255) )
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
284 self.assertEqual( (0,0), (s1.get_flags(), s2.get_flags()))
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
285
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
286
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
287
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
288 #All one hundred of the pixels should be within the threshold.
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
289
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
290 #>>> object_tracking.diff_image(result, s1, s2, threshold = 20)
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
291 #100
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
292
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
293 similar_color = (255, 255, 255,255)
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
294 diff_color=(222,0,0,255)
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
295 threshold_color = (20,20,20,255)
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
296
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
297 rr = pygame.transform.threshold(result, s1, similar_color, threshold_color, diff_color, 1, s2)
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
298 self.assertEqual(rr, 99)
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
299
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
300 self.assertEqual( result.get_at((0,0)), (255,255,255, 255) )
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
301
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
302
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
303
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
304 rr = pygame.transform.threshold(result, s1, similar_color,
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
305 threshold_color, diff_color, 2, s2)
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
306 self.assertEqual(rr, 99)
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
307
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
308 self.assertEqual( result.get_at((0,0)), (32, 20, 0, 255) )
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
309
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
310
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
311
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
312
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
313 # this is within the threshold,
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
314 # so the color is copied from the s1 surface.
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
315 self.assertEqual( result.get_at((1,0)), (0, 0, 0, 255) )
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
316
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
317 # this color was not in the threshold so it has been set to diff_color
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
318 self.assertEqual( result.get_at((3,0)), (222, 0, 0, 255) )
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
319
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
320
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
321
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
322
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
323
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
324
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
325
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
326
1229
ccd774a754ac test for uneven colors for transform.threshold
akalias
parents: 1227
diff changeset
327 def test_threshold__uneven_colors(self):
ccd774a754ac test for uneven colors for transform.threshold
akalias
parents: 1227
diff changeset
328 (w,h) = size = (16, 16)
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
329
1229
ccd774a754ac test for uneven colors for transform.threshold
akalias
parents: 1227
diff changeset
330 original_surface = pygame.Surface(size, pygame.SRCALPHA, 32)
ccd774a754ac test for uneven colors for transform.threshold
akalias
parents: 1227
diff changeset
331 dest_surface = pygame.Surface(size, pygame.SRCALPHA, 32)
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
332
1229
ccd774a754ac test for uneven colors for transform.threshold
akalias
parents: 1227
diff changeset
333 original_surface.fill(0)
ccd774a754ac test for uneven colors for transform.threshold
akalias
parents: 1227
diff changeset
334
ccd774a754ac test for uneven colors for transform.threshold
akalias
parents: 1227
diff changeset
335 threshold_color_template = [5, 5, 5, 5]
ccd774a754ac test for uneven colors for transform.threshold
akalias
parents: 1227
diff changeset
336 threshold_template = [6, 6, 6, 6]
1222
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
337
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
338 ################################################################
1222
2c1e80696ca2 Extra tests for transform.threshold, updated WHATSNEW
akalias
parents: 1221
diff changeset
339
1229
ccd774a754ac test for uneven colors for transform.threshold
akalias
parents: 1227
diff changeset
340 for pos in range(len('rgb')):
ccd774a754ac test for uneven colors for transform.threshold
akalias
parents: 1227
diff changeset
341 threshold_color = threshold_color_template[:]
1261
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
342 threshold = threshold_template[:]
1229
ccd774a754ac test for uneven colors for transform.threshold
akalias
parents: 1227
diff changeset
343
ccd774a754ac test for uneven colors for transform.threshold
akalias
parents: 1227
diff changeset
344 threshold_color[pos] = 45
ccd774a754ac test for uneven colors for transform.threshold
akalias
parents: 1227
diff changeset
345 threshold[pos] = 50
ccd774a754ac test for uneven colors for transform.threshold
akalias
parents: 1227
diff changeset
346
ccd774a754ac test for uneven colors for transform.threshold
akalias
parents: 1227
diff changeset
347 pixels_within_threshold = pygame.transform.threshold (
ccd774a754ac test for uneven colors for transform.threshold
akalias
parents: 1227
diff changeset
348 dest_surface, original_surface, threshold_color,
ccd774a754ac test for uneven colors for transform.threshold
akalias
parents: 1227
diff changeset
349 threshold,
ccd774a754ac test for uneven colors for transform.threshold
akalias
parents: 1227
diff changeset
350 0, # diff_color
ccd774a754ac test for uneven colors for transform.threshold
akalias
parents: 1227
diff changeset
351 0 # change_return
ccd774a754ac test for uneven colors for transform.threshold
akalias
parents: 1227
diff changeset
352 )
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
353
1229
ccd774a754ac test for uneven colors for transform.threshold
akalias
parents: 1227
diff changeset
354 self.assertEqual(w*h, pixels_within_threshold)
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
355
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
356 ################################################################
862
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
357
1148
1d1ed35fb837 Added in many test stubs, hopefully some test faeries will fill some of them out.
akalias
parents: 862
diff changeset
358 def test_threshold__surface(self):
862
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
359 """
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
360 """
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
361
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
362 #pygame.transform.threshold(DestSurface, Surface, color, threshold = (0,0,0,0), diff_color = (0,0,0,0), change_return = True): return num_threshold_pixels
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
363 threshold = pygame.transform.threshold
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
364
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
365 s1 = pygame.Surface((32,32), SRCALPHA, 32)
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
366 s2 = pygame.Surface((32,32), SRCALPHA, 32)
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
367 s3 = pygame.Surface((1,1), SRCALPHA, 32)
862
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
368
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
369 s1.fill((40,40,40))
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
370 s2.fill((255,255,255))
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
371
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
372
1360
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
373
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
374
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
375 dest_surface = s2
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
376 surface1 = s1
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
377 color = (30,30,30)
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
378 the_threshold = (11,11,11)
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
379 diff_color = (255,0,0)
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
380 change_return = 2
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
381
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
382 # set the similar pixels in destination surface to the color
1360
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
383 # in the first surface.
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
384 num_threshold_pixels = threshold(dest_surface, surface1, color,
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
385 the_threshold, diff_color,
1360
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
386 change_return)
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
387
862
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
388 #num_threshold_pixels = threshold(s2, s1, (30,30,30))
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
389 self.assertEqual(num_threshold_pixels, s1.get_height() * s1.get_width())
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
390 self.assertEqual(s2.get_at((0,0)), (40, 40, 40, 255))
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
391
1360
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
392
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
393
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
394
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
395
862
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
396 if 1:
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
397
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
398 # only one pixel should not be changed.
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
399 s1.fill((40,40,40))
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
400 s2.fill((255,255,255))
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
401 s1.set_at( (0,0), (170, 170, 170) )
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
402 # set the similar pixels in destination surface to the color
1360
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
403 # in the first surface.
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
404 num_threshold_pixels = threshold(s2, s1, (30,30,30), (11,11,11),
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
405 (0,0,0), 2)
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
406
862
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
407 #num_threshold_pixels = threshold(s2, s1, (30,30,30))
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
408 self.assertEqual(num_threshold_pixels, (s1.get_height() * s1.get_width()) -1)
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
409 self.assertEqual(s2.get_at((0,0)), (0,0,0, 255))
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
410 self.assertEqual(s2.get_at((0,1)), (40, 40, 40, 255))
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
411 self.assertEqual(s2.get_at((17,1)), (40, 40, 40, 255))
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
412
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
413
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
414 # abs(40 - 255) < 100
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
415 #(abs(c1[0] - r) < tr)
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
416
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
417 if 1:
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
418 s1.fill((160,160,160))
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
419 s2.fill((255,255,255))
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
420 num_threshold_pixels = threshold(s2, s1, (255,255,255), (100,100,100), (0,0,0), True)
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
421
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
422 self.assertEqual(num_threshold_pixels, (s1.get_height() * s1.get_width()))
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
423
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
424
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
425
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
426
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
427 if 1:
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
428 # only one pixel should not be changed.
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
429 s1.fill((40,40,40))
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
430 s2.fill((255,255,255))
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
431 s1.set_at( (0,0), (170, 170, 170) )
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
432 num_threshold_pixels = threshold(s3, s1, (30,30,30), (11,11,11), (0,0,0), False)
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
433 #num_threshold_pixels = threshold(s2, s1, (30,30,30))
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
434 self.assertEqual(num_threshold_pixels, (s1.get_height() * s1.get_width()) -1)
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
435
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
436
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
437 if 1:
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
438 # test end markers. 0, and 255
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
439
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
440 # the pixels are different by 1.
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
441 s1.fill((254,254,254))
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
442 s2.fill((255,255,255))
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
443 s3.fill((255,255,255))
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
444 s1.set_at( (0,0), (170, 170, 170) )
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
445 num_threshold_pixels = threshold(s3, s1, (254,254,254), (1,1,1),
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
446 (44,44,44,255), False)
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
447 self.assertEqual(num_threshold_pixels, (s1.get_height() * s1.get_width()) -1)
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
448
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
449
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
450 # compare the two surfaces. Should be all but one matching.
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
451 num_threshold_pixels = threshold(s3, s1, 0, (1,1,1),
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
452 (44,44,44,255), False, s2)
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
453 self.assertEqual(num_threshold_pixels, (s1.get_height() * s1.get_width()) -1)
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
454
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
455
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
456 # within (0,0,0) threshold? Should match no pixels.
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
457 num_threshold_pixels = threshold(s3, s1, (253,253,253), (0,0,0),
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
458 (44,44,44,255), False)
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
459 self.assertEqual(num_threshold_pixels, 0)
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
460
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
461
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
462 # other surface within (0,0,0) threshold? Should match no pixels.
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
463 num_threshold_pixels = threshold(s3, s1, 0, (0,0,0),
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
464 (44,44,44,255), False, s2)
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
465 self.assertEqual(num_threshold_pixels, 0)
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
466
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
467
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
468
862
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
469
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
470 def test_laplacian(self):
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
471 """
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
472 """
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
473
862
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
474 SIZE = 32
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
475 s1 = pygame.Surface((SIZE, SIZE))
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
476 s2 = pygame.Surface((SIZE, SIZE))
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
477 s1.fill((10,10,70))
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
478 pygame.draw.line(s1, (255,0,0), (3,10), (20,20))
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
479
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
480 # a line at the last row of the image.
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
481 pygame.draw.line(s1, (255,0,0), (0,31), (31,31))
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
482
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
483
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
484 pygame.transform.laplacian(s1,s2)
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
485
862
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
486 #show_image(s1)
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
487 #show_image(s2)
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
488
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
489 self.assertEqual(s2.get_at((0,0)), (0, 0, 0, 255))
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
490 self.assertEqual(s2.get_at((3,10)), (255,0,0,255))
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
491 self.assertEqual(s2.get_at((0,31)), (255,0,0,255))
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
492 self.assertEqual(s2.get_at((31,31)), (255,0,0,255))
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
493
862
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
494
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
495 # here we create the return surface.
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
496 s2 = pygame.transform.laplacian(s1)
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
497
862
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
498 self.assertEqual(s2.get_at((0,0)), (0, 0, 0, 255))
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
499 self.assertEqual(s2.get_at((3,10)), (255,0,0,255))
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
500 self.assertEqual(s2.get_at((0,31)), (255,0,0,255))
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
501 self.assertEqual(s2.get_at((31,31)), (255,0,0,255))
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
502
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
503 def test_average_surfaces(self):
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
504 """
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
505 """
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
506
862
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
507 SIZE = 32
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
508 s1 = pygame.Surface((SIZE, SIZE))
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
509 s2 = pygame.Surface((SIZE, SIZE))
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
510 s3 = pygame.Surface((SIZE, SIZE))
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
511 s1.fill((10,10,70))
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
512 s2.fill((10,20,70))
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
513 s3.fill((10,130,10))
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
514
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
515 surfaces = [s1, s2, s3]
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
516 surfaces = [s1, s2]
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
517 sr = pygame.transform.average_surfaces(surfaces)
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
518
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
519 self.assertEqual(sr.get_at((0,0)), (10,15,70,255))
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
520
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
521
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
522 self.assertRaises(TypeError, pygame.transform.average_surfaces, 1)
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
523 self.assertRaises(TypeError, pygame.transform.average_surfaces, [])
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
524
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
525 self.assertRaises(TypeError, pygame.transform.average_surfaces, [1])
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
526 self.assertRaises(TypeError, pygame.transform.average_surfaces, [s1, 1])
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
527 self.assertRaises(TypeError, pygame.transform.average_surfaces, [1, s1])
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
528 self.assertRaises(TypeError, pygame.transform.average_surfaces, [s1, s2, 1])
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
529
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
530 self.assertRaises(TypeError, pygame.transform.average_surfaces, (s for s in [s1, s2,s3] ))
1319
287251be9d21 Test for average_surfaces in 24 bit mode.
Rene Dudfield <renesd@gmail.com>
parents: 1303
diff changeset
531
287251be9d21 Test for average_surfaces in 24 bit mode.
Rene Dudfield <renesd@gmail.com>
parents: 1303
diff changeset
532
287251be9d21 Test for average_surfaces in 24 bit mode.
Rene Dudfield <renesd@gmail.com>
parents: 1303
diff changeset
533
287251be9d21 Test for average_surfaces in 24 bit mode.
Rene Dudfield <renesd@gmail.com>
parents: 1303
diff changeset
534 def test_average_surfaces__24(self):
287251be9d21 Test for average_surfaces in 24 bit mode.
Rene Dudfield <renesd@gmail.com>
parents: 1303
diff changeset
535
287251be9d21 Test for average_surfaces in 24 bit mode.
Rene Dudfield <renesd@gmail.com>
parents: 1303
diff changeset
536 SIZE = 32
287251be9d21 Test for average_surfaces in 24 bit mode.
Rene Dudfield <renesd@gmail.com>
parents: 1303
diff changeset
537 depth = 24
287251be9d21 Test for average_surfaces in 24 bit mode.
Rene Dudfield <renesd@gmail.com>
parents: 1303
diff changeset
538 s1 = pygame.Surface((SIZE, SIZE), 0, depth)
287251be9d21 Test for average_surfaces in 24 bit mode.
Rene Dudfield <renesd@gmail.com>
parents: 1303
diff changeset
539 s2 = pygame.Surface((SIZE, SIZE), 0, depth)
287251be9d21 Test for average_surfaces in 24 bit mode.
Rene Dudfield <renesd@gmail.com>
parents: 1303
diff changeset
540 s3 = pygame.Surface((SIZE, SIZE), 0, depth)
287251be9d21 Test for average_surfaces in 24 bit mode.
Rene Dudfield <renesd@gmail.com>
parents: 1303
diff changeset
541 s1.fill((10,10,70, 255))
287251be9d21 Test for average_surfaces in 24 bit mode.
Rene Dudfield <renesd@gmail.com>
parents: 1303
diff changeset
542 s2.fill((10,20,70, 255))
287251be9d21 Test for average_surfaces in 24 bit mode.
Rene Dudfield <renesd@gmail.com>
parents: 1303
diff changeset
543 s3.fill((10,130,10, 255))
287251be9d21 Test for average_surfaces in 24 bit mode.
Rene Dudfield <renesd@gmail.com>
parents: 1303
diff changeset
544
287251be9d21 Test for average_surfaces in 24 bit mode.
Rene Dudfield <renesd@gmail.com>
parents: 1303
diff changeset
545 surfaces = [s1, s2, s3]
287251be9d21 Test for average_surfaces in 24 bit mode.
Rene Dudfield <renesd@gmail.com>
parents: 1303
diff changeset
546 sr = pygame.transform.average_surfaces(surfaces)
287251be9d21 Test for average_surfaces in 24 bit mode.
Rene Dudfield <renesd@gmail.com>
parents: 1303
diff changeset
547 self.assertEqual( sr.get_masks(), s1.get_masks() )
287251be9d21 Test for average_surfaces in 24 bit mode.
Rene Dudfield <renesd@gmail.com>
parents: 1303
diff changeset
548 self.assertEqual( sr.get_flags(), s1.get_flags() )
287251be9d21 Test for average_surfaces in 24 bit mode.
Rene Dudfield <renesd@gmail.com>
parents: 1303
diff changeset
549 self.assertEqual( sr.get_losses(), s1.get_losses() )
287251be9d21 Test for average_surfaces in 24 bit mode.
Rene Dudfield <renesd@gmail.com>
parents: 1303
diff changeset
550
1822
1ea8ab9129a0 Added palette_colors to mask.from_threshold. TODO notes to some functions.
Rene Dudfield <renesd@gmail.com>
parents: 1418
diff changeset
551 if 0:
1ea8ab9129a0 Added palette_colors to mask.from_threshold. TODO notes to some functions.
Rene Dudfield <renesd@gmail.com>
parents: 1418
diff changeset
552 print ( sr, s1 )
1ea8ab9129a0 Added palette_colors to mask.from_threshold. TODO notes to some functions.
Rene Dudfield <renesd@gmail.com>
parents: 1418
diff changeset
553 print ( sr.get_masks(), s1.get_masks() )
1ea8ab9129a0 Added palette_colors to mask.from_threshold. TODO notes to some functions.
Rene Dudfield <renesd@gmail.com>
parents: 1418
diff changeset
554 print ( sr.get_flags(), s1.get_flags() )
1ea8ab9129a0 Added palette_colors to mask.from_threshold. TODO notes to some functions.
Rene Dudfield <renesd@gmail.com>
parents: 1418
diff changeset
555 print ( sr.get_losses(), s1.get_losses() )
1ea8ab9129a0 Added palette_colors to mask.from_threshold. TODO notes to some functions.
Rene Dudfield <renesd@gmail.com>
parents: 1418
diff changeset
556 print ( sr.get_shifts(), s1.get_shifts() )
1319
287251be9d21 Test for average_surfaces in 24 bit mode.
Rene Dudfield <renesd@gmail.com>
parents: 1303
diff changeset
557
287251be9d21 Test for average_surfaces in 24 bit mode.
Rene Dudfield <renesd@gmail.com>
parents: 1303
diff changeset
558 self.assertEqual(sr.get_at((0,0)), (10,53,50,255))
287251be9d21 Test for average_surfaces in 24 bit mode.
Rene Dudfield <renesd@gmail.com>
parents: 1303
diff changeset
559
287251be9d21 Test for average_surfaces in 24 bit mode.
Rene Dudfield <renesd@gmail.com>
parents: 1303
diff changeset
560
287251be9d21 Test for average_surfaces in 24 bit mode.
Rene Dudfield <renesd@gmail.com>
parents: 1303
diff changeset
561
287251be9d21 Test for average_surfaces in 24 bit mode.
Rene Dudfield <renesd@gmail.com>
parents: 1303
diff changeset
562
287251be9d21 Test for average_surfaces in 24 bit mode.
Rene Dudfield <renesd@gmail.com>
parents: 1303
diff changeset
563
287251be9d21 Test for average_surfaces in 24 bit mode.
Rene Dudfield <renesd@gmail.com>
parents: 1303
diff changeset
564
287251be9d21 Test for average_surfaces in 24 bit mode.
Rene Dudfield <renesd@gmail.com>
parents: 1303
diff changeset
565
287251be9d21 Test for average_surfaces in 24 bit mode.
Rene Dudfield <renesd@gmail.com>
parents: 1303
diff changeset
566
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
567
1303
cd7e5886a1f1 unittests for mask and transform and a mask bug fix
Nirav Patel <nrp@eclecti.cc>
parents: 1261
diff changeset
568 def test_average_color(self):
cd7e5886a1f1 unittests for mask and transform and a mask bug fix
Nirav Patel <nrp@eclecti.cc>
parents: 1261
diff changeset
569 """
cd7e5886a1f1 unittests for mask and transform and a mask bug fix
Nirav Patel <nrp@eclecti.cc>
parents: 1261
diff changeset
570 """
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
571
1303
cd7e5886a1f1 unittests for mask and transform and a mask bug fix
Nirav Patel <nrp@eclecti.cc>
parents: 1261
diff changeset
572 a = [24, 32]
cd7e5886a1f1 unittests for mask and transform and a mask bug fix
Nirav Patel <nrp@eclecti.cc>
parents: 1261
diff changeset
573 for i in a:
cd7e5886a1f1 unittests for mask and transform and a mask bug fix
Nirav Patel <nrp@eclecti.cc>
parents: 1261
diff changeset
574 s = pygame.Surface((32,32), 0, i)
cd7e5886a1f1 unittests for mask and transform and a mask bug fix
Nirav Patel <nrp@eclecti.cc>
parents: 1261
diff changeset
575 s.fill((0,100,200))
cd7e5886a1f1 unittests for mask and transform and a mask bug fix
Nirav Patel <nrp@eclecti.cc>
parents: 1261
diff changeset
576 s.fill((10,50,100), (0,0,16,32))
cd7e5886a1f1 unittests for mask and transform and a mask bug fix
Nirav Patel <nrp@eclecti.cc>
parents: 1261
diff changeset
577
cd7e5886a1f1 unittests for mask and transform and a mask bug fix
Nirav Patel <nrp@eclecti.cc>
parents: 1261
diff changeset
578 self.assertEqual(pygame.transform.average_color(s),(5,75,150,0))
cd7e5886a1f1 unittests for mask and transform and a mask bug fix
Nirav Patel <nrp@eclecti.cc>
parents: 1261
diff changeset
579 self.assertEqual(pygame.transform.average_color(s, (16,0,16,32)), (0,100,200,0))
862
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
580
1261
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
581 def todo_test_rotate(self):
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
582
1148
1d1ed35fb837 Added in many test stubs, hopefully some test faeries will fill some of them out.
akalias
parents: 862
diff changeset
583 # __doc__ (as of 2008-06-25) for pygame.transform.rotate:
1d1ed35fb837 Added in many test stubs, hopefully some test faeries will fill some of them out.
akalias
parents: 862
diff changeset
584
1d1ed35fb837 Added in many test stubs, hopefully some test faeries will fill some of them out.
akalias
parents: 862
diff changeset
585 # pygame.transform.rotate(Surface, angle): return Surface
1d1ed35fb837 Added in many test stubs, hopefully some test faeries will fill some of them out.
akalias
parents: 862
diff changeset
586 # rotate an image
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
587
1212
89a1c912feaa Added a redirect stderr/stdout mode to test runner. Only output unittest results and not test noise
akalias
parents: 1158
diff changeset
588 # color = (128, 128, 128, 255)
89a1c912feaa Added a redirect stderr/stdout mode to test runner. Only output unittest results and not test noise
akalias
parents: 1158
diff changeset
589 # s = pygame.Surface((3, 3))
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
590
1212
89a1c912feaa Added a redirect stderr/stdout mode to test runner. Only output unittest results and not test noise
akalias
parents: 1158
diff changeset
591 # s.set_at((2, 0), color)
1148
1d1ed35fb837 Added in many test stubs, hopefully some test faeries will fill some of them out.
akalias
parents: 862
diff changeset
592
1212
89a1c912feaa Added a redirect stderr/stdout mode to test runner. Only output unittest results and not test noise
akalias
parents: 1158
diff changeset
593 # self.assert_(s.get_at((0, 0)) != color)
89a1c912feaa Added a redirect stderr/stdout mode to test runner. Only output unittest results and not test noise
akalias
parents: 1158
diff changeset
594 # s = pygame.transform.rotate(s, 90)
89a1c912feaa Added a redirect stderr/stdout mode to test runner. Only output unittest results and not test noise
akalias
parents: 1158
diff changeset
595 # self.assert_(s.get_at((0, 0)) == color)
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
596
1261
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
597 self.fail()
1158
03126e47fc31 Added a transform.rotate 90 degrees lossless test, moved some helpers to test_utils.py, added a groupcollide test to sprite_test.py.
akalias
parents: 1150
diff changeset
598
03126e47fc31 Added a transform.rotate 90 degrees lossless test, moved some helpers to test_utils.py, added a groupcollide test to sprite_test.py.
akalias
parents: 1150
diff changeset
599 def test_rotate__lossless_at_90_degrees(self):
03126e47fc31 Added a transform.rotate 90 degrees lossless test, moved some helpers to test_utils.py, added a groupcollide test to sprite_test.py.
akalias
parents: 1150
diff changeset
600 w, h = 32, 32
03126e47fc31 Added a transform.rotate 90 degrees lossless test, moved some helpers to test_utils.py, added a groupcollide test to sprite_test.py.
akalias
parents: 1150
diff changeset
601 s = pygame.Surface((w, h), pygame.SRCALPHA)
03126e47fc31 Added a transform.rotate 90 degrees lossless test, moved some helpers to test_utils.py, added a groupcollide test to sprite_test.py.
akalias
parents: 1150
diff changeset
602
03126e47fc31 Added a transform.rotate 90 degrees lossless test, moved some helpers to test_utils.py, added a groupcollide test to sprite_test.py.
akalias
parents: 1150
diff changeset
603 gradient = list(test_utils.gradient(w, h))
03126e47fc31 Added a transform.rotate 90 degrees lossless test, moved some helpers to test_utils.py, added a groupcollide test to sprite_test.py.
akalias
parents: 1150
diff changeset
604
03126e47fc31 Added a transform.rotate 90 degrees lossless test, moved some helpers to test_utils.py, added a groupcollide test to sprite_test.py.
akalias
parents: 1150
diff changeset
605 for pt, color in gradient: s.set_at(pt, color)
03126e47fc31 Added a transform.rotate 90 degrees lossless test, moved some helpers to test_utils.py, added a groupcollide test to sprite_test.py.
akalias
parents: 1150
diff changeset
606
1212
89a1c912feaa Added a redirect stderr/stdout mode to test runner. Only output unittest results and not test noise
akalias
parents: 1158
diff changeset
607 for rotation in (90, -90):
1158
03126e47fc31 Added a transform.rotate 90 degrees lossless test, moved some helpers to test_utils.py, added a groupcollide test to sprite_test.py.
akalias
parents: 1150
diff changeset
608 s = pygame.transform.rotate(s,rotation)
03126e47fc31 Added a transform.rotate 90 degrees lossless test, moved some helpers to test_utils.py, added a groupcollide test to sprite_test.py.
akalias
parents: 1150
diff changeset
609
03126e47fc31 Added a transform.rotate 90 degrees lossless test, moved some helpers to test_utils.py, added a groupcollide test to sprite_test.py.
akalias
parents: 1150
diff changeset
610 for pt, color in gradient:
03126e47fc31 Added a transform.rotate 90 degrees lossless test, moved some helpers to test_utils.py, added a groupcollide test to sprite_test.py.
akalias
parents: 1150
diff changeset
611 self.assert_(s.get_at(pt) == color)
1148
1d1ed35fb837 Added in many test stubs, hopefully some test faeries will fill some of them out.
akalias
parents: 862
diff changeset
612
1d1ed35fb837 Added in many test stubs, hopefully some test faeries will fill some of them out.
akalias
parents: 862
diff changeset
613 def test_scale2x(self):
1d1ed35fb837 Added in many test stubs, hopefully some test faeries will fill some of them out.
akalias
parents: 862
diff changeset
614
1d1ed35fb837 Added in many test stubs, hopefully some test faeries will fill some of them out.
akalias
parents: 862
diff changeset
615 # __doc__ (as of 2008-06-25) for pygame.transform.scale2x:
1d1ed35fb837 Added in many test stubs, hopefully some test faeries will fill some of them out.
akalias
parents: 862
diff changeset
616
1d1ed35fb837 Added in many test stubs, hopefully some test faeries will fill some of them out.
akalias
parents: 862
diff changeset
617 # pygame.transform.scale2x(Surface, DestSurface = None): Surface
1d1ed35fb837 Added in many test stubs, hopefully some test faeries will fill some of them out.
akalias
parents: 862
diff changeset
618 # specialized image doubler
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
619
1261
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
620 w, h = 32, 32
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
621 s = pygame.Surface((w, h), pygame.SRCALPHA, 32)
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
622
1261
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
623 # s.set_at((0,0), (20, 20, 20, 255))
1148
1d1ed35fb837 Added in many test stubs, hopefully some test faeries will fill some of them out.
akalias
parents: 862
diff changeset
624
1261
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
625 s2 = pygame.transform.scale2x(s)
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
626 self.assertEquals(s2.get_rect().size, (64, 64))
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
627
1330
67fd4fb4bf12 Allow the VC build of transform.c use the MMX/SSE enhanced smoothscale code.
Lenard Lindstrom <len-l@telus.net>
parents: 1319
diff changeset
628 def test_get_smoothscale_backend(self):
67fd4fb4bf12 Allow the VC build of transform.c use the MMX/SSE enhanced smoothscale code.
Lenard Lindstrom <len-l@telus.net>
parents: 1319
diff changeset
629 filter_type = pygame.transform.get_smoothscale_backend()
67fd4fb4bf12 Allow the VC build of transform.c use the MMX/SSE enhanced smoothscale code.
Lenard Lindstrom <len-l@telus.net>
parents: 1319
diff changeset
630 self.failUnless(filter_type in ['GENERIC', 'MMX', 'SSE'])
1333
1ed215141bdd Fixed transform build and test problems
Lenard Lindstrom <len-l@telus.net>
parents: 1332
diff changeset
631 # It would be nice to test if a non-generic type corresponds to an x86
1ed215141bdd Fixed transform build and test problems
Lenard Lindstrom <len-l@telus.net>
parents: 1332
diff changeset
632 # processor. But there is no simple test for this. platform.machine()
1ed215141bdd Fixed transform build and test problems
Lenard Lindstrom <len-l@telus.net>
parents: 1332
diff changeset
633 # returns process version specific information, like 'i686'.
1367
4be2e6337c3f add additional smoothscale testing capability to transform
Lenard Lindstrom <len-l@telus.net>
parents: 1360
diff changeset
634
4be2e6337c3f add additional smoothscale testing capability to transform
Lenard Lindstrom <len-l@telus.net>
parents: 1360
diff changeset
635 def test_set_smoothscale_backend(self):
4be2e6337c3f add additional smoothscale testing capability to transform
Lenard Lindstrom <len-l@telus.net>
parents: 1360
diff changeset
636 # All machines should allow 'GENERIC'.
4be2e6337c3f add additional smoothscale testing capability to transform
Lenard Lindstrom <len-l@telus.net>
parents: 1360
diff changeset
637 original_type = pygame.transform.get_smoothscale_backend()
4be2e6337c3f add additional smoothscale testing capability to transform
Lenard Lindstrom <len-l@telus.net>
parents: 1360
diff changeset
638 pygame.transform.set_smoothscale_backend('GENERIC')
4be2e6337c3f add additional smoothscale testing capability to transform
Lenard Lindstrom <len-l@telus.net>
parents: 1360
diff changeset
639 filter_type = pygame.transform.get_smoothscale_backend()
4be2e6337c3f add additional smoothscale testing capability to transform
Lenard Lindstrom <len-l@telus.net>
parents: 1360
diff changeset
640 self.failUnlessEqual(filter_type, 'GENERIC')
4be2e6337c3f add additional smoothscale testing capability to transform
Lenard Lindstrom <len-l@telus.net>
parents: 1360
diff changeset
641 # All machines should allow returning to original value.
4be2e6337c3f add additional smoothscale testing capability to transform
Lenard Lindstrom <len-l@telus.net>
parents: 1360
diff changeset
642 # Also check that keyword argument works.
4be2e6337c3f add additional smoothscale testing capability to transform
Lenard Lindstrom <len-l@telus.net>
parents: 1360
diff changeset
643 pygame.transform.set_smoothscale_backend(type=original_type)
4be2e6337c3f add additional smoothscale testing capability to transform
Lenard Lindstrom <len-l@telus.net>
parents: 1360
diff changeset
644 # Something invalid.
4be2e6337c3f add additional smoothscale testing capability to transform
Lenard Lindstrom <len-l@telus.net>
parents: 1360
diff changeset
645 def change():
4be2e6337c3f add additional smoothscale testing capability to transform
Lenard Lindstrom <len-l@telus.net>
parents: 1360
diff changeset
646 pygame.transform.set_smoothscale_backend('mmx')
4be2e6337c3f add additional smoothscale testing capability to transform
Lenard Lindstrom <len-l@telus.net>
parents: 1360
diff changeset
647 self.failUnlessRaises(ValueError, change)
4be2e6337c3f add additional smoothscale testing capability to transform
Lenard Lindstrom <len-l@telus.net>
parents: 1360
diff changeset
648 # Invalid argument keyword.
4be2e6337c3f add additional smoothscale testing capability to transform
Lenard Lindstrom <len-l@telus.net>
parents: 1360
diff changeset
649 def change():
4be2e6337c3f add additional smoothscale testing capability to transform
Lenard Lindstrom <len-l@telus.net>
parents: 1360
diff changeset
650 pygame.transform.set_smoothscale_backend(t='GENERIC')
4be2e6337c3f add additional smoothscale testing capability to transform
Lenard Lindstrom <len-l@telus.net>
parents: 1360
diff changeset
651 self.failUnlessRaises(TypeError, change)
4be2e6337c3f add additional smoothscale testing capability to transform
Lenard Lindstrom <len-l@telus.net>
parents: 1360
diff changeset
652 # Invalid argument type.
4be2e6337c3f add additional smoothscale testing capability to transform
Lenard Lindstrom <len-l@telus.net>
parents: 1360
diff changeset
653 def change():
4be2e6337c3f add additional smoothscale testing capability to transform
Lenard Lindstrom <len-l@telus.net>
parents: 1360
diff changeset
654 pygame.transform.set_smoothscale_backend(1)
4be2e6337c3f add additional smoothscale testing capability to transform
Lenard Lindstrom <len-l@telus.net>
parents: 1360
diff changeset
655 self.failUnlessRaises(TypeError, change)
4be2e6337c3f add additional smoothscale testing capability to transform
Lenard Lindstrom <len-l@telus.net>
parents: 1360
diff changeset
656 # Unsupported type, if possible.
4be2e6337c3f add additional smoothscale testing capability to transform
Lenard Lindstrom <len-l@telus.net>
parents: 1360
diff changeset
657 if original_type != 'SSE':
4be2e6337c3f add additional smoothscale testing capability to transform
Lenard Lindstrom <len-l@telus.net>
parents: 1360
diff changeset
658 def change():
4be2e6337c3f add additional smoothscale testing capability to transform
Lenard Lindstrom <len-l@telus.net>
parents: 1360
diff changeset
659 pygame.transform.set_smoothscale_backend('SSE')
4be2e6337c3f add additional smoothscale testing capability to transform
Lenard Lindstrom <len-l@telus.net>
parents: 1360
diff changeset
660 self.failUnlessRaises(ValueError, change)
4be2e6337c3f add additional smoothscale testing capability to transform
Lenard Lindstrom <len-l@telus.net>
parents: 1360
diff changeset
661 # Should be back where we started.
4be2e6337c3f add additional smoothscale testing capability to transform
Lenard Lindstrom <len-l@telus.net>
parents: 1360
diff changeset
662 filter_type = pygame.transform.get_smoothscale_backend()
4be2e6337c3f add additional smoothscale testing capability to transform
Lenard Lindstrom <len-l@telus.net>
parents: 1360
diff changeset
663 self.failUnlessEqual(filter_type, original_type)
4be2e6337c3f add additional smoothscale testing capability to transform
Lenard Lindstrom <len-l@telus.net>
parents: 1360
diff changeset
664
1261
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
665 def todo_test_chop(self):
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
666
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
667 # __doc__ (as of 2008-08-02) for pygame.transform.chop:
1148
1d1ed35fb837 Added in many test stubs, hopefully some test faeries will fill some of them out.
akalias
parents: 862
diff changeset
668
1261
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
669 # pygame.transform.chop(Surface, rect): return Surface
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
670 # gets a copy of an image with an interior area removed
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
671 #
1261
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
672 # Extracts a portion of an image. All vertical and horizontal pixels
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
673 # surrounding the given rectangle area are removed. The corner areas
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
674 # (diagonal to the rect) are then brought together. (The original
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
675 # image is not altered by this operation.)
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
676 #
1261
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
677 # NOTE: If you want a "crop" that returns the part of an image within
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
678 # a rect, you can blit with a rect to a new surface or copy a
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
679 # subsurface.
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
680
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
681 self.fail()
1261
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
682
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
683 def todo_test_flip(self):
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
684
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
685 # __doc__ (as of 2008-08-02) for pygame.transform.flip:
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
686
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
687 # pygame.transform.flip(Surface, xbool, ybool): return Surface
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
688 # flip vertically and horizontally
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
689 #
1261
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
690 # This can flip a Surface either vertically, horizontally, or both.
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
691 # Flipping a Surface is nondestructive and returns a new Surface with
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
692 # the same dimensions.
1148
1d1ed35fb837 Added in many test stubs, hopefully some test faeries will fill some of them out.
akalias
parents: 862
diff changeset
693
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
694 self.fail()
1261
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
695
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
696 def todo_test_rotozoom(self):
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
697
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
698 # __doc__ (as of 2008-08-02) for pygame.transform.rotozoom:
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
699
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
700 # pygame.transform.rotozoom(Surface, angle, scale): return Surface
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
701 # filtered scale and rotation
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
702 #
1261
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
703 # This is a combined scale and rotation transform. The resulting
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
704 # Surface will be a filtered 32-bit Surface. The scale argument is a
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
705 # floating point value that will be multiplied by the current
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
706 # resolution. The angle argument is a floating point value that
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
707 # represents the counterclockwise degrees to rotate. A negative
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
708 # rotation angle will rotate clockwise.
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
709
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
710 self.fail()
1148
1d1ed35fb837 Added in many test stubs, hopefully some test faeries will fill some of them out.
akalias
parents: 862
diff changeset
711
1261
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
712 def todo_test_smoothscale(self):
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
713 # __doc__ (as of 2008-08-02) for pygame.transform.smoothscale:
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
714
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
715 # pygame.transform.smoothscale(Surface, (width, height), DestSurface =
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
716 # None): return Surface
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
717 #
1148
1d1ed35fb837 Added in many test stubs, hopefully some test faeries will fill some of them out.
akalias
parents: 862
diff changeset
718 # scale a surface to an arbitrary size smoothly
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
719 #
1261
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
720 # Uses one of two different algorithms for scaling each dimension of
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
721 # the input surface as required. For shrinkage, the output pixels are
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
722 # area averages of the colors they cover. For expansion, a bilinear
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
723 # filter is used. For the amd64 and i686 architectures, optimized MMX
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
724 # routines are included and will run much faster than other machine
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
725 # types. The size is a 2 number sequence for (width, height). This
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
726 # function only works for 24-bit or 32-bit surfaces. An exception
f3691359950b Made all unimplemented tests use todo_test_xxxx naming and updated the __doc__'s. Run's only implemented tests by default.
akalias
parents: 1239
diff changeset
727 # will be thrown if the input surface bit depth is less than 24.
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
728 #
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
729 # New in pygame 1.8
1148
1d1ed35fb837 Added in many test stubs, hopefully some test faeries will fill some of them out.
akalias
parents: 862
diff changeset
730
1370
bda5e621e79b added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents: 1367
diff changeset
731 self.fail()
862
57ac2edacc4d Mask can now get bounding rects of set bits.
Rene Dudfield <renesd@gmail.com>
parents: 834
diff changeset
732
697
ea7bec2fca9f Added a test for set_alpha() use and transform.scale.
Rene Dudfield <renesd@gmail.com>
parents:
diff changeset
733 if __name__ == '__main__':
1360
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
734 #tt = TransformModuleTest()
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
735 #tt.test_threshold_non_src_alpha()
7b18b561457f Changed pygame.transform.threshold to behave like pygame 1.8 again.
Rene Dudfield <renesd@gmail.com>
parents: 1333
diff changeset
736
1303
cd7e5886a1f1 unittests for mask and transform and a mask bug fix
Nirav Patel <nrp@eclecti.cc>
parents: 1261
diff changeset
737 unittest.main()