OLD | NEW |
(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() |
OLD | NEW |