ó
"ˆIc           @   só   d  Z  d d l Z d d l Z d d l Z d d l m Z y d d l Z [ Wn e d ƒ ‚ n Xd d l m	 Z	 d d l m
 Z
 d d l m Z d d	 d
 d „ Z d e j f d „  ƒ  YZ e d k rï e j d d ƒ Z e j d e ƒ n  d S(   sâ   Test the creation of graphics of distribution information.

Provides tests for the Graphics.Distribution classes which provide the
ability to create graphics to show the distribution of information about
BACs/chromosomes/etc.
iÿÿÿÿN(   t   MissingExternalDependencyErrors2   Install reportlab if you want to use Bio.Graphics.(   t   BarChartDistribution(   t   LineDistribution(   t   DistributionPageg      Àg      @i2   c         C   sR   t  j d | ƒ } g  } x3 t | ƒ D]% } t  j |  | ƒ } | j | ƒ q% W| S(   s8   Create a series of random distribution information.
    i   (   t   randomt	   randranget   ranget   uniformt   append(   t   mint   maxt   total_itemst	   num_itemst   all_infot   itemt   new_item(    (    s   test_GraphicsDistribution.pyt   random_distribution   s    t   BarChartTestc           B   s)   e  Z d  Z d „  Z d „  Z d „  Z RS(   s6   Test display of BarChart distributions on a page.
    c         C   sO   t  j j t  j ƒ  d d ƒ |  _ t  j j t  j ƒ  d d ƒ |  _ d |  _ d  S(   Nt   Graphicss   simple_bar.pdfs   multi_bar.pdfi   (   t   ost   patht   joint   getcwdt   simple_paget
   multi_paget	   num_multi(   t   self(    (    s   test_GraphicsDistribution.pyt   setUp)   s    !!c         C   sX   g  } t  ƒ  } | j | ƒ t | ƒ } t ƒ  } | j j | ƒ | j |  j d ƒ d S(   s9   Test displaying a page with single distribution.
        s   Test Bar ChartN(   R   R   R   R   t   distributionst   drawR   (   R   t	   dist_infot   new_infot   distributiont	   dist_page(    (    s   test_GraphicsDistribution.pyt   test_simple_page/   s    		c         C   sŒ   t  ƒ  } d | _ x` t |  j ƒ D]O } g  } t ƒ  } | j | ƒ t | ƒ } d | d | _ | j j | ƒ q" W| j	 |  j
 d ƒ d S(   s9   Create a page with multiple distributions on it.
        i   s   Distribution %si   s   Test Multi Bar ChartN(   R   t   number_of_columnsR   R   R   R   R   t   chart_titleR   R   R   (   R   R!   t   multiR   R   R    (    (    s   test_GraphicsDistribution.pyt   test_multi_page<   s    			(   t   __name__t
   __module__t   __doc__R   R"   R&   (    (    (    s   test_GraphicsDistribution.pyR   &   s   		t   __main__t	   verbosityi   t
   testRunner(   R)   R   R   t   unittestt   BioR    t	   reportlabt   rt   Bio.Graphics.DistributionR   R   R   R   t   TestCaseR   R'   t   TextTestRunnert   runnert   main(    (    (    s   test_GraphicsDistribution.pyt   <module>   s$   (