
    ~b                     H    d dl mZ ddlmZ  G d de      Z G d de      Zy)	    )TestCase   )MethodicalMachinec                      e Zd Z e       Zej                  d      d        Zej                         d        Zej                         d        Zej                         d        Z
ej                         d        Zej                         d        Zej                         d	        Zej                  Zej#                  e
eeg       ej#                  eeeg       ej#                  eeg        ej#                  eeg        y
)SampleObjectT)initialc                      y)zinitial stateN selfs    :/usr/lib/python3/dist-packages/automat/_test/test_trace.pybeginzSampleObject.begin           c                      y)zmiddle stateNr
   r   s    r   middlezSampleObject.middle
   r   r   c                      y)z	end stateNr
   r   s    r   endzSampleObject.end   r   r   c                      yzsample inputNr
   r   s    r   go1zSampleObject.go1   r   r   c                      yr   r
   r   s    r   go2zSampleObject.go2   r   r   c                      yr   r
   r   s    r   backzSampleObject.back   r   r   c                      y)zsample outputNr
   r   s    r   outzSampleObject.out   r   r   N)__name__
__module____qualname__r   mmstater   r   r   inputr   r   r   outputr   	_setTracesetTraceuponr
   r   r   r   r      s
   		BXXdX XXZ XXZ  XXZ XXZ XXZ  YY[  ||H	JJsFSE"
KKS3% HHT62
KKeR r   r   c                       e Zd Zd Zd Zy)
TraceTestsc                    g fd}t               }|j                  |       |j                          | j                  dg       |j	                          | j                  ddg       |j                  d        |j                          | j                  ddg       |j	                          | j                  ddg       y )Nc                 .    j                  | ||f       y Nappend)	old_stater#   	new_statetracess      r   tracerz+TraceTests.test_only_inputs.<locals>.tracer)   s    MM9eY78r   )r   r   r   )r   r   r   r   r&   r   assertEqualr   r   r   r2   sr1   s      @r   test_only_inputszTraceTests.test_only_inputs'   s    	 N	

6	"< "$ 	% 	
"<":"$ 	% 	


4	"<":"$ 	% 	
"<":"$ 	%r   c                    g fd}t               }|j                  |       |j                          | j                  ddg       |j	                          | j                  g d       |j                  d        |j                          | j                  g d       |j	                          | j                  g d       y )Nc                 H     j                   d f        fd}|S )Nc                 0    j                  | f       y r,   r-   )r$   r#   r0   r/   r1   s    r   trace_outputszITraceTests.test_inputs_and_outputs.<locals>.tracer.<locals>.trace_outputsE   s    y%FCDr   r-   )r/   r#   r0   r;   r1   s   ``` r   r2   z2TraceTests.test_inputs_and_outputs.<locals>.tracerC   s$    MM9eY=>E  r   r   r   r   Nr   r   r   r   )r<   r=   )r   r   r   N)r   r   r   r   r3   r5   s      @r   test_inputs_and_outputsz"TraceTests.test_inputs_and_outputsA   s    	!
 N	

6	"B"C"$ 	% 	
 "$ 	%
 	


4	 "$ 	%
 	
 "$ 	%r   N)r   r   r    r7   r>   r
   r   r   r)   r)   &   s    %4!%r   r)   N)unittestr   _methodicalr   objectr   r)   r
   r   r   <module>rB      s$     + !6  !D<% <%r   