def METHOD_NAME(self):
    '''Test that the Canny filter finds the outlines of a circle'''
    i, j = np.mgrid[-200:200, -200:200].astype(float) / 200
    c = np.abs(np.sqrt(i * i + j * j) - .5) < .02
    result = feature.canny(c.astype(float), 4, 0, 0, np.ones(c.shape, bool))
    #
    # erode and dilate the circle to get rings that should contain the
    # outlines
    #
    cd = binary_dilation(c, iterations=3)
    ce = binary_erosion(c, iterations=3)
    cde = np.logical_and(cd, np.logical_not(ce))
    self.assertTrue(np.all(cde[result]))
    #
    # The circle has a radius of 100. There are two rings here, one
    # for the inside edge and one for the outside. So that's
    # 100 * 2 * 2 * 3 for those places where pi is still 3.
    # The edge contains both pixels if there's a tie, so we
    # bump the count a little.
    point_count = np.sum(result)
    self.assertTrue(point_count > 1200)
    self.assertTrue(point_count < 1600)