U
    ³[ÖeÏ  ã                   @   s<   d dl mZ ddlmZ G dd„ deƒZG dd„ deƒZdS )	é    )ÚTestCaseé   )ÚMethodicalMachinec                   @   sÈ   e Zd Zeƒ Zejdddd„ ƒZe ¡ dd„ ƒZe ¡ dd„ ƒZe 	¡ d	d
„ ƒZ
e 	¡ dd„ ƒZe 	¡ dd„ ƒZe ¡ dd„ ƒZejZe e
eeg¡ e eeeg¡ e eeg ¡ e eeg ¡ dS )ÚSampleObjectT)Úinitialc                 C   s   dS )zinitial stateN© ©Úselfr   r   úZ/var/www/html/services/stratfitenv/lib/python3.8/site-packages/automat/_test/test_trace.pyÚbegin   s    zSampleObject.beginc                 C   s   dS )zmiddle stateNr   r   r   r   r
   Úmiddle
   s    zSampleObject.middlec                 C   s   dS )z	end stateNr   r   r   r   r
   Úend   s    zSampleObject.endc                 C   s   dS ©zsample inputNr   r   r   r   r
   Úgo1   s    zSampleObject.go1c                 C   s   dS r   r   r   r   r   r
   Úgo2   s    zSampleObject.go2c                 C   s   dS r   r   r   r   r   r
   Úback   s    zSampleObject.backc                 C   s   dS )zsample outputNr   r   r   r   r
   Úout   s    zSampleObject.outN)Ú__name__Ú
__module__Ú__qualname__r   ÚmmÚstater   r   r   Úinputr   r   r   Úoutputr   Z	_setTraceÚsetTraceZuponr   r   r   r
   r      s(   







r   c                   @   s   e Zd Zdd„ Zdd„ ZdS )Ú
TraceTestsc                    sŒ   g ‰ ‡ fdd„}t ƒ }| |¡ | ¡  |  ˆ dg¡ | ¡  |  ˆ ddg¡ | d ¡ | ¡  |  ˆ ddg¡ | ¡  |  ˆ ddg¡ d S )Nc                    s   ˆ   | ||f¡ d S ©N©Úappend)Ú	old_stater   Ú	new_state©Útracesr   r
   Útracer)   s    z+TraceTests.test_only_inputs.<locals>.tracer)r   r   r   )r   r   r   ©r   r   r   ÚassertEqualr   r   ©r	   r#   Úsr   r!   r
   Útest_only_inputs'   s&    
ÿ
ÿÿzTraceTests.test_only_inputsc                    sš   g ‰ ‡ fdd„}t ƒ }| |¡ | ¡  |  ˆ ddg¡ | ¡  |  ˆ ddddg¡ | d ¡ | ¡  |  ˆ ddddg¡ | ¡  |  ˆ ddddg¡ d S )Nc                    s(   ˆ  ˆˆ ˆd f¡ ‡ ‡‡‡fdd„}|S )Nc                    s   ˆ  ˆˆ ˆ| f¡ d S r   r   )r   )r   r    r   r"   r   r
   Útrace_outputsE   s    zITraceTests.test_inputs_and_outputs.<locals>.tracer.<locals>.trace_outputsr   )r   r   r    r)   r!   )r   r    r   r
   r#   C   s    z2TraceTests.test_inputs_and_outputs.<locals>.tracer)r   r   r   N)r   r   r   r   )r   r   r   N)r   r   r   r   r$   r&   r   r!   r
   Útest_inputs_and_outputsA   s6    
ÿý
ýýz"TraceTests.test_inputs_and_outputsN)r   r   r   r(   r*   r   r   r   r
   r   &   s   r   N)Zunittestr   Z_methodicalr   Úobjectr   r   r   r   r   r
   Ú<module>   s   "