B
    ó±ô`Y	  ã               @   s†   d Z ddlmZmZmZ eZddlmZ	 ddlm
Z
mZmZmZmZ e	jrbddlmZmZmZmZ G dd	„ d	e
ƒZd
d„ Zdd„ ZdS )z6Combine integration test target code coverage reports.é    )Úabsolute_importÚdivisionÚprint_functioné   )Útypesé   )ÚCoverageAnalyzeTargetsConfigÚget_target_indexÚmake_reportÚread_reportÚwrite_report)ÚArcsÚIndexedPointsÚLinesÚTargetIndexesc                   s    e Zd ZdZ‡ fdd„Z‡  ZS )Ú#CoverageAnalyzeTargetsCombineConfigzAConfiguration for the `coverage analyze targets combine` command.c                s$   t t| ƒ |¡ |j| _|j| _d S )N)Úsuperr   Ú__init__Z
input_fileÚinput_filesÚoutput_file)ÚselfÚargs)Ú	__class__© úf/home/dcms/DCMS/lib/python3.7/site-packages/ansible_test/_internal/coverage/analyze/targets/combine.pyr      s    z,CoverageAnalyzeTargetsCombineConfig.__init__)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__classcell__r   r   )r   r   r      s   r   c       	      C   sd   i }i }i }x8| j D ].}t|ƒ\}}}t||||ƒ t||||ƒ qW t|||ƒ}t| || jƒ dS )z6Combine integration test target code coverage reports.N)r   r   Úmerge_indexesr
   r   r   )	r   Zcombined_target_indexesZcombined_path_arcsZcombined_path_linesZreport_pathZcovered_targetsZcovered_path_arcsZcovered_path_linesÚreportr   r   r   Ú(command_coverage_analyze_targets_combine!   s    r"   c             C   sl   xf|   ¡ D ]Z\}}| |i ¡}xD|  ¡ D ]8\}}| |tƒ ¡}	x |D ]}
|	 t||
 |ƒ¡ qDW q(W q
W dS )zIMerge indexes from the source into the combined data set (arcs or lines).N)ÚitemsÚ
setdefaultÚsetÚaddr	   )Zsource_dataZsource_indexZcombined_dataZcombined_indexZcovered_pathZcovered_pointsZcombined_pointsZcovered_pointZcovered_target_indexesZcombined_pointZcovered_target_indexr   r   r   r    2   s    
r    N)r   Ú
__future__r   r   r   ÚtypeÚ__metaclass__Ú r   Útr   r	   r
   r   r   ÚTYPE_CHECKINGr   r   r   r   r   r"   r    r   r   r   r   Ú<module>   s   	