+
    Q�i™  ã                   ó<   € ^ RI Ht ^RIHtHtHt  ! R R]4      tR# )é    )ÚTestCase)Ú	AutomatonÚNoTransitionÚTransitionerc                   óT   a € ] tR t^t o RtR tV 3R lR ltR tR tR t	R t
R	tV tR
# )Ú	CoreTestszF
Tests for Automat's (currently private, implementation detail) core.
c                óP  € V P                  \        4      ;_uu_ 4        \        4        RRR4       RpRp\        WR7      pV P                  VP                  V4       V P                  V\        V4      4       V P                  V\        V4      4       R#   + '       g   i     Lt; i)zR
A L{NoTransition} exception describes the state and input symbol
that caused it.
Nzcurrent-stateztransitionless-symbol)ÚstateÚsymbol)ÚassertRaisesÚ	TypeErrorr   ÚassertIsr   ÚassertInÚstr)Úselfr
   r   ÚnoTransitionExceptions   &   Ú9/usr/lib/python3/dist-packages/automat/_test/test_core.pyÚtest_NoTransitionÚCoreTests.test_NoTransition   s|   € ð ×Ñœy×)Õ)ÜŒN÷ *ð  ˆØ(ˆÜ ,°5Ô HÐà�‰Ð+×2Ñ2°FÔ;à�‰�eœSÐ!6Ó7Ô8Ø�‰�fœcÐ"7Ó8Ö9÷ *×)ús   žBÂB%	c                ó   <€ V ^8„  d   QhRR/# )é   ÚreturnN© )ÚformatÚ__classdict__s   "€r   Ú__annotate__ÚCoreTests.__annotate__   s   ø€ ÷ Mñ M¨$ñ Mó    c                ó’  € \        R4      pVP                  RRR\        R.4      4       VP                  RR.4       \	        VR4      pV P                  VP                  R4      \        R.4      R34       V P                  VP                  R4      R.R34       V P                  VP                  R4      \        R.4      R34       R# )zh
Automaton.unhandledTransition sets the outputs and end-state to be used
for all unhandled transitions.
Ústartz
oops-stateÚcheckÚcheckedzoops-outN)r   ÚaddTransitionÚtupleÚunhandledTransitionr   ÚassertEqualÚ
transition)r   ÚaÚts   &  r   Útest_unhandledTransitionÚ"CoreTests.test_unhandledTransition   s¯   € ô
 '0°Ó&8ˆØ	�‰˜ g¨w¼¸y¸kÓ8JÔKØ	×Ñ˜l¨Z¨LÔ9Ü˜˜GÓ$ˆØ×Ñ˜Ÿ™ gÓ.´¸
°|Ó1DÀdÐ0KÔLØ×Ñ˜Ÿ™ gÓ.°)°¸dÐ0CÔDØ×Ñ˜Ÿ™ gÓ.´¸
°|Ó1DÀdÐ0KÖLr   c                ó^   € \        4       pV P                  \        VP                  RR4       R# )z`
L{Automaton.outputForInput} raises L{NoTransition} if no
transition for that input is defined.
zno-statez	no-symbolN)r   r   r   ÚoutputForInput©r   r(   s   & r   Útest_noOutputForInputÚCoreTests.test_noOutputForInput*   s%   € ô
 ‹KˆØ×Ñœ,¨×(8Ñ(8¸*ÀkÖRr   c                óV  € \        4       pVP                  RRRR.4       V P                  VP                  4       R04       V P                  VP	                  4       R04       V P                  VP                  RR4      RR.34       V P                  VP                  4       RR04       R# )zÝ
L{Automaton.addTransition} adds its input symbol to
L{Automaton.inputAlphabet}, all its outputs to
L{Automaton.outputAlphabet}, and causes L{Automaton.outputForInput} to
start returning the new state and output symbols.
Ú	beginningÚbeginÚendingÚendN)r   r#   r&   ÚinputAlphabetÚoutputAlphabetr-   Ústatesr.   s   & r   Útest_oneTransitionÚCoreTests.test_oneTransition2   s’   € ô ‹KˆØ	�‰˜ W¨h¸¸Ô@Ø×Ñ˜Ÿ™Ó*¨W¨IÔ6Ø×Ñ˜×)Ñ)Ó+¨e¨WÔ5Ø×Ñ˜×)Ñ)¨+°wÓ?À(ÈUÈGÐATÔUØ×Ñ˜Ÿ™› k°8Ð%<Ö=r   c                ó^  € \        4       p^pV P                  \        VP                  RRRV4       V P	                  VP                  4       4       V P	                  VP                  4       4       V P	                  VP                  4       4       V P	                  VP                  4       4       R# )zx
L{Automaton.addTransition} raises a TypeError when given outputs
that aren't iterable and doesn't add any transitions.
Ú	fromStateÚ	viaSymbolÚtoStateN)	r   r   r   r#   ÚassertFalser6   r7   r8   ÚallTransitions)r   r(   ÚnonIterableOutputss   &  r   Ú%test_oneTransition_nonIterableOutputsÚ/CoreTests.test_oneTransition_nonIterableOutputs@   sŽ   € ô
 ‹KˆØÐØ×ÑÜØ�O‰OØØØØô	
ð 	×Ñ˜Ÿ™Ó*Ô+Ø×Ñ˜×)Ñ)Ó+Ô,Ø×Ñ˜Ÿ™›Ô$Ø×Ñ˜×)Ñ)Ó+Ö,r   c                óâ   € \        4       pRVn        V P                  VP                  R4       V P                  \        4      ;_uu_ 4        RVn        RRR4       R#   + '       g   i     R# ; i)z€
L{Automaton.initialState} is a descriptor that sets the initial
state if it's not yet set, and raises L{ValueError} if it is.

za statezanother stateN)r   ÚinitialStater&   r   Ú
ValueErrorr.   s   & r   Útest_initialStateÚCoreTests.test_initialStateT   sM   € ô ‹KˆØ"ˆŒØ×Ñ˜Ÿ™¨Ô3Ø×Ñœz×*Õ*Ø,ˆAŒN÷ +×*×*Ò*ús   ÁAÁA.	r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r*   r/   r9   rB   rG   Ú__static_attributes__Ú__classdictcell__)r   s   @r   r   r      s5   ø‡ € ñò:÷$Mð MòSò>ò-÷(
-ð 
-r   r   N)Úunittestr   Ú_corer   r   r   r   r   r   r   Ú<module>rR      s   ðÝ ç 9Ñ 9ôX-�ö X-r   