def test_histogram(): 'It test our histogram implementation' numbers = [0, 1, 2, 3, 4, 4, 4, 5, 6, 7, 8, 9, 10] bins = 5 numpy_distrib = ([2, 2, 4, 2, 3], [0, 2, 4, 6, 8, 10]) our_distrib = histogram(numbers, bins=bins) for num1, num2 in zip(numpy_distrib[0], our_distrib[0]): assert num1 == num2 for num1, num2 in zip(numpy_distrib[1], our_distrib[1]): assert num1 == num2 assert isinstance(num2, int) #with floats numbers = [0.0, 1, 2, 3, 4, 4, 4, 5, 6, 7, 8, 9, 10] bins = 5 numpy_distrib = ([2, 2, 4, 2, 3], [0.0, 2.0, 4.0, 6.0, 8.0, 10.0]) our_distrib = histogram(numbers, bins=bins) for num1, num2 in zip(numpy_distrib[0], our_distrib[0]): assert num1 == num2 for num1, num2 in zip(numpy_distrib[1], our_distrib[1]): assert num1 == num2 assert isinstance(num2, float) #now we draw the histogram #draw_histogram(our_distrib[0], our_distrib[1]) png_file = tempfile.NamedTemporaryFile(suffix='.png') #draw_histogram(our_distrib[0], our_distrib[1], fhand=png_file) #assert 'PNG' in open(png_file.name).read(4) svg_file = tempfile.NamedTemporaryFile(suffix='.svg') draw_histogram(our_distrib[0], our_distrib[1], fhand=svg_file) svg_file.flush() assert 'xml' in open(svg_file.name).read(5).lower()
def test_remove_outliers(): 'It tests the histogram removing the outliers' numbers = [random.gauss(5, 1) for index in range(100)] numbers.append(5000) bins = 10 distrib = histogram(numbers, bins=bins, remove_outliers=True) assert int(distrib[1][-1]) < 20