def test_convolve__out_of_range(self): full = Mask((2,2)) full.fill() self.assertEqual(full.convolve(full, None, ( 0, 3)).count, 0) self.assertEqual(full.convolve(full, None, ( 0, 2)).count, 3) self.assertEqual(full.convolve(full, None, (-2, -2)).count, 1) self.assertEqual(full.convolve(full, None, (-3, -3)).count, 0)
def test_convolve__point_identities(self): """Convolving with a single point is the identity, while convolving a point with something flips it.""" m = random_mask((100,100)) k = Mask((1,1)) k.set_at((0,0)) self.assertMaskEquals(m,m.convolve(k)) self.assertMaskEquals(m,k.convolve(k.convolve(m)))
def test_convolve__size(self): sizes = [(1,1), (31,31), (32,32), (100,100)] for s1 in sizes: m1 = Mask(s1) for s2 in sizes: m2 = Mask(s2) o = m1.convolve(m2) for i in (0,1): self.assertEqual(o.size[i], m1.size[i] + m2.size[i] - 1)