def test_zero_size_from_threshold(self): a = [16, 24, 32] sizes = ((100, 0), (0, 100), (0, 0)) for size in sizes: for i in a: surf = pygame.surface.Surface(size, 0, i) surf.fill((100, 50, 200), (20, 20, 20, 20)) mask = pygame.mask.from_threshold(surf, (100, 50, 200, 255), (10, 10, 10, 255)) self.assertEqual(mask.count(), 0) rects = mask.get_bounding_rects() self.assertEqual(rects, []) for i in a: surf = pygame.surface.Surface(size, 0, i) surf2 = pygame.surface.Surface(size, 0, i) surf.fill((100, 100, 100)) surf2.fill((150, 150, 150)) surf2.fill((100, 100, 100), (40, 40, 10, 10)) mask = pygame.mask.from_threshold(surf, (0, 0, 0, 0), (10, 10, 10, 255), surf2) self.assertEqual(mask.count(), 0) rects = mask.get_bounding_rects() self.assertEqual(rects, [])
def test_from_threshold(self): """ Does mask.from_threshold() work correctly? """ a = [16, 24, 32] for i in a: surf = pygame.surface.Surface((70,70), 0, i) surf.fill((100,50,200),(20,20,20,20)) mask = pygame.mask.from_threshold(surf,(100,50,200,255),(10,10,10,255)) rects = mask.get_bounding_rects() self.assertEqual(mask.count(), 400) self.assertEqual(mask.get_bounding_rects(), [pygame.Rect((20,20,20,20))]) for i in a: surf = pygame.surface.Surface((70,70), 0, i) surf2 = pygame.surface.Surface((70,70), 0, i) surf.fill((100,100,100)) surf2.fill((150,150,150)) surf2.fill((100,100,100), (40,40,10,10)) mask = pygame.mask.from_threshold(surf, (0,0,0,0), (10,10,10,255), surf2) self.assertEqual(mask.count(), 100) self.assertEqual(mask.get_bounding_rects(), [pygame.Rect((40,40,10,10))])
def test_zero_mask_count(self): sizes = ((100, 0), (0, 100), (0, 0)) for size in sizes: mask = pygame.mask.Mask(size) mask.fill() self.assertEqual(mask.count(), 0)
def test_count__empty_mask(self): """Ensure an empty mask's set bits are correctly counted.""" expected_count = 0 mask = pygame.mask.Mask((13, 27)) self.assertEqual(mask.count(), expected_count)
def test_count__full_mask(self): """Ensure a full mask's set bits are correctly counted.""" width, height = 17, 97 expected_count = width * height mask = pygame.mask.Mask((width, height), fill=True) self.assertEqual(mask.count(), expected_count)
def test_clear(self): """Ensure a mask can be cleared.""" expected_count = 0 mask = pygame.mask.Mask((13, 27), fill=True) mask.clear() self.assertEqual(mask.count(), expected_count)
def test_fill(self): """Ensure a mask can be filled.""" width, height = 11, 23 expected_count = width * height mask = pygame.mask.Mask((width, height)) mask.fill() self.assertEqual(mask.count(), expected_count)
def test_count(self): """Ensure a mask's set bits are correctly counted.""" side = 67 mask = pygame.mask.Mask((side, side)) expected_count = 0 for i in range(side): expected_count += 1 mask.set_at((i, i)) self.assertEqual(mask.count(), expected_count)
def test_mask__fill_arg(self): """Ensure masks are created correctly using a fill arg.""" width, height = 59, 71 expected_size = (width, height) fill_counts = {True: width * height, False: 0} for fill, expected_count in fill_counts.items(): mask = pygame.mask.Mask(expected_size, fill) self.assertEqual(mask.count(), expected_count, 'fill={}'.format(fill)) self.assertEqual(mask.get_size(), expected_size, 'fill={}'.format(fill))
def test_from_threshold(self): """ Does mask.from_threshold() work correctly? """ a = [16, 24, 32] for i in a: surf = pygame.surface.Surface((70,70), 0, i) surf.fill((100,50,200),(20,20,20,20)) mask = pygame.mask.from_threshold(surf,(100,50,200,255),(10,10,10,255)) self.assertEqual(mask.count(), 400) self.assertEqual(mask.get_bounding_rects(), [pygame.Rect((20,20,20,20))]) for i in a: surf = pygame.surface.Surface((70,70), 0, i) surf2 = pygame.surface.Surface((70,70), 0, i) surf.fill((100,100,100)) surf2.fill((150,150,150)) surf2.fill((100,100,100), (40,40,10,10)) mask = pygame.mask.from_threshold(surf, (0,0,0,0), (10,10,10,255), surf2) self.assertEqual(mask.count(), 100) self.assertEqual(mask.get_bounding_rects(), [pygame.Rect((40,40,10,10))])