Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(446)

Side by Side Diff: chrome/test/functional/ispy/image_tools_test.py

Issue 16855010: Python Tools for Pixel-by-Pixel Image Comparison (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: modified comments and fixed split code paths Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 # Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 import unittest
6 from PIL import Image
7
8 import image_tools
9
10
11 def _GenImage(size, color):
12 return Image.new('RGB', size, color)
13
14
15 def _AllPixelsOfColor(image, color):
16 return not any(px != color for px in image.getdata())
17
18
19 class ImageToolsTest(unittest.TestCase):
20
21 def testAreTheSameSize(self):
22 black25x25 = _GenImage((25, 25), (0, 0, 0))
23 white25x25 = _GenImage((25, 25), (255, 255, 255))
24 black50x50 = _GenImage((50, 50), (0, 0, 0))
25 white50x50 = _GenImage((50, 50), (255, 255, 255))
26
27 self.assertTrue(image_tools._AreTheSameSize([black25x25, black25x25]))
28 self.assertTrue(image_tools._AreTheSameSize([white25x25, white25x25]))
29 self.assertTrue(image_tools._AreTheSameSize([black50x50, black50x50]))
30 self.assertTrue(image_tools._AreTheSameSize([white50x50, white50x50]))
31 self.assertTrue(image_tools._AreTheSameSize([black25x25, white25x25]))
32 self.assertTrue(image_tools._AreTheSameSize([black50x50, white50x50]))
33
34 self.assertFalse(image_tools._AreTheSameSize([black50x50, black25x25]))
35 self.assertFalse(image_tools._AreTheSameSize([white50x50, white25x25]))
36 self.assertFalse(image_tools._AreTheSameSize([black25x25, white50x50]))
37 self.assertFalse(image_tools._AreTheSameSize([black50x50, white25x25]))
38
39 self.assertRaises(Exception, image_tools._AreTheSameSize, [])
40 self.assertRaises(Exception, image_tools._AreTheSameSize, [black50x50])
41
42 def testGetDifferenceWithMask(self):
43 black25x25 = _GenImage((25, 25), (0, 0, 0))
44 white25x25 = _GenImage((25, 25), (255, 255, 255))
45 black50x50 = _GenImage((50, 50), (0, 0, 0))
46 self.assertTrue(_AllPixelsOfColor(image_tools._GetDifferenceWithMask(
47 black25x25, black25x25), (0, 0, 0)))
48 self.assertTrue(_AllPixelsOfColor(image_tools._GetDifferenceWithMask(
49 white25x25, white25x25), (0, 0, 0)))
50 self.assertTrue(_AllPixelsOfColor(image_tools._GetDifferenceWithMask(
51 white25x25, black25x25), (255, 255, 255)))
52 self.assertTrue(_AllPixelsOfColor(image_tools._GetDifferenceWithMask(
53 black25x25, black25x25, mask=black25x25), (0, 0, 0)))
54 self.assertTrue(_AllPixelsOfColor(image_tools._GetDifferenceWithMask(
55 black25x25, black25x25, mask=white25x25), (0, 0, 0)))
56 self.assertTrue(_AllPixelsOfColor(image_tools._GetDifferenceWithMask(
57 black25x25, white25x25, mask=black25x25), (255, 255, 255)))
58 self.assertTrue(_AllPixelsOfColor(image_tools._GetDifferenceWithMask(
59 black25x25, white25x25, mask=white25x25), (0, 0, 0)))
60 self.assertTrue(_AllPixelsOfColor(image_tools._GetDifferenceWithMask(
61 black25x25, white25x25, different_color=(255, 0, 0)), (255, 0, 0)))
62 self.assertTrue(_AllPixelsOfColor(image_tools._GetDifferenceWithMask(
63 white25x25, white25x25, same_color=(255, 0, 0)), (255, 0, 0)))
64 self.assertTrue(_AllPixelsOfColor(image_tools._GetDifferenceWithMask(
65 white25x25, white25x25,
66 mask=white25x25, masked_color=(255, 0, 0)), (255, 0, 0)))
67 self.assertRaises(Exception, image_tools._GetDifferenceWithMask,
68 white25x25,
69 black50x50)
70 self.assertRaises(Exception, image_tools._GetDifferenceWithMask,
71 white25x25,
72 white25x25,
73 mask=black50x50)
74
75 def testCreateMask(self):
76 black25x25 = _GenImage((25, 25), (0, 0, 0))
77 white25x25 = _GenImage((25, 25), (255, 255, 255))
78
79 m1 = image_tools.CreateMask([black25x25, white25x25])
80 self.assertTrue(_AllPixelsOfColor(m1, (255, 255, 255)))
81 m2 = image_tools.CreateMask([black25x25, black25x25])
82 self.assertTrue(_AllPixelsOfColor(m2, (0, 0, 0)))
83 m3 = image_tools.CreateMask([white25x25, white25x25])
84 self.assertTrue(_AllPixelsOfColor(m3, (0, 0, 0)))
85
86 def testTotalDifferentPixels(self):
87 white25x25 = _GenImage((25, 25), (255, 255, 255))
88 white50x50 = _GenImage((50, 50), (255, 255, 255))
89 black25x25 = _GenImage((25, 25), (0, 0, 0))
90
91 self.assertEquals(image_tools.TotalDifferentPixels(white25x25,
92 white25x25),
93 0)
94 self.assertEquals(image_tools.TotalDifferentPixels(black25x25,
95 black25x25),
96 0)
97 self.assertEquals(image_tools.TotalDifferentPixels(white25x25,
98 black25x25),
99 25*25)
100 self.assertEquals(image_tools.TotalDifferentPixels(white25x25,
101 black25x25,
102 mask=white25x25),
103 0)
104 self.assertEquals(image_tools.TotalDifferentPixels(white25x25,
105 white25x25,
106 mask=white25x25),
107 0)
108 self.assertEquals(image_tools.TotalDifferentPixels(white25x25,
109 black25x25,
110 mask=black25x25),
111 25*25)
112 self.assertEquals(image_tools.TotalDifferentPixels(white25x25,
113 white25x25,
114 mask=black25x25),
115 0)
116 self.assertRaises(Exception, image_tools.TotalDifferentPixels,
117 white25x25, white50x50)
118 self.assertRaises(Exception, image_tools.TotalDifferentPixels,
119 white25x25, white25x25, mask=white50x50)
120
121 def testSameImage(self):
122 white25x25 = _GenImage((25, 25), (255, 255, 255))
123 black25x25 = _GenImage((25, 25), (0, 0, 0))
124 white50x50 = _GenImage((50, 50), (255, 255, 255))
125
126 self.assertTrue(image_tools.SameImage(white25x25, white25x25,
127 max_different_pixels=0))
128 self.assertTrue(image_tools.SameImage(white25x25, black25x25,
129 max_different_pixels=25*25))
130 self.assertFalse(image_tools.SameImage(black25x25, black25x25,
131 max_different_pixels=-1))
132
133 self.assertTrue(image_tools.SameImage(white25x25, black25x25,
134 max_different_pixels=25*25,
135 mask=white25x25))
136 self.assertTrue(image_tools.SameImage(white25x25, white25x25,
137 max_different_pixels=0,
138 mask=white25x25))
139 self.assertFalse(image_tools.SameImage(white25x25, white25x25,
140 max_different_pixels=-1,
141 mask=white25x25))
142
143 self.assertRaises(Exception, image_tools.SameImage,
144 white25x25, white50x50,
145 max_different_pixels=1)
146 self.assertRaises(Exception, image_tools.SameImage,
147 white25x25, white25x25,
148 max_different_pixels=1, mask=white50x50)
149
150 def testVisualizeImageDifferences(self):
151 white25x25 = _GenImage((25, 25), (255, 255, 255))
152 black25x25 = _GenImage((25, 25), (0, 0, 0))
153 white50x50 = _GenImage((50, 50), (255, 255, 255))
154 self.assertTrue(_AllPixelsOfColor(image_tools.VisualizeImageDifferences(
155 white25x25, black25x25), (255, 255, 255)))
156 self.assertTrue(_AllPixelsOfColor(image_tools.VisualizeImageDifferences(
157 white25x25, white25x25), (0, 0, 0)))
158 self.assertTrue(_AllPixelsOfColor(image_tools.VisualizeImageDifferences(
159 black25x25, black25x25), (0, 0, 0)))
160 self.assertTrue(_AllPixelsOfColor(image_tools.VisualizeImageDifferences(
161 white25x25, black25x25, mask=white25x25), (0, 0, 0)))
162 self.assertTrue(_AllPixelsOfColor(image_tools.VisualizeImageDifferences(
163 white25x25, black25x25, mask=black25x25), (255, 255, 255)))
164 self.assertTrue(_AllPixelsOfColor(image_tools.VisualizeImageDifferences(
165 white25x25, white25x25, mask=white25x25), (0, 0, 0)))
166 self.assertTrue(_AllPixelsOfColor(image_tools.VisualizeImageDifferences(
167 white25x25, white25x25, mask=black25x25), (0, 0, 0)))
168 self.assertTrue(_AllPixelsOfColor(image_tools.VisualizeImageDifferences(
169 black25x25, black25x25, mask=black25x25), (0, 0, 0)))
170 self.assertTrue(_AllPixelsOfColor(image_tools.VisualizeImageDifferences(
171 black25x25, black25x25, mask=white25x25), (0, 0, 0)))
172
173 self.assertRaises(Exception,
174 image_tools.VisualizeImageDifferences,
175 white25x25,
176 white50x50)
177 self.assertRaises(Exception,
178 image_tools.VisualizeImageDifferences,
179 white25x25,
180 black25x25,
181 mask=white50x50)
182
183
184 if __name__ == '__main__':
185 unittest.main()
OLDNEW
« chrome/test/functional/ispy/image_tools.py ('K') | « chrome/test/functional/ispy/image_tools.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698