Mercurial > pygame
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 |
| 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 | 258 self.assertEqual(dest_surface.get_at(pt), change_color) |
| 259 | |
| 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 | 327 def test_threshold__uneven_colors(self): |
| 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 | 330 original_surface = pygame.Surface(size, pygame.SRCALPHA, 32) |
| 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 | 333 original_surface.fill(0) |
| 334 | |
| 335 threshold_color_template = [5, 5, 5, 5] | |
| 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 | 340 for pos in range(len('rgb')): |
| 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 | 343 |
| 344 threshold_color[pos] = 45 | |
| 345 threshold[pos] = 50 | |
| 346 | |
| 347 pixels_within_threshold = pygame.transform.threshold ( | |
| 348 dest_surface, original_surface, threshold_color, | |
| 349 threshold, | |
| 350 0, # diff_color | |
| 351 0 # change_return | |
| 352 ) | |
|
1370
bda5e621e79b
added a few more tests for transform.threshold
Rene Dudfield <renesd@gmail.com>
parents:
1367
diff
changeset
|
353 |
| 1229 | 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() |
