§
    Ètºfé7  ã                   ó  — d dl Z d dlmZ d dlmZ d dlmZmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ d d	lmZ d
Z G d„ de¦  «        Zd„ Zd„ Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        ZdS )é    N)Úpartial)ÚBytesIO)ÚmainÚprotocol)ÚStringTransport)Úfailure)Ú	iterbytes)Úbanana)ÚTestCasel   ÿÿÿÿ c                   ó   — e Zd Zd„ ZdS )Ú	MathTestsc                 ó–  — t          t          dd¦  «        ¦  «        t          t          dd¦  «        ¦  «        z   t          t          dd¦  «        ¦  «        z   dgz   }|D ]h}t          ¦   «         }t          j        ||j        ¦  «         |                     ¦   «         }t          j        |¦  «        }|                      ||¦  «         Œid S )Nr   éd   iè  iL  i@B i¤B l                )	ÚlistÚranger   r
   Úint2b128ÚwriteÚgetvalueÚb1282intÚassertEqual)ÚselfÚ	funkylistÚiÚxÚvÚys         ú^/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/spread/test/test_banana.pyÚtest_int2b128zMathTests.test_int2b128   sÇ   € å•�q˜#‘”ÑÔÝ•5˜˜tÑ$Ô$Ñ%Ô%ñ&å•5˜ 'Ñ*Ô*Ñ+Ô+ñ,ð ˆjñð 	ð ð 	#ð 	#ˆAÝ‘	”	ˆAÝŒO˜A˜qœwÑ'Ô'Ð'Ø—
’
‘”ˆAÝ” Ñ"Ô"ˆAØ×Ò˜Q Ñ"Ô"Ð"Ð"ð	#ð 	#ó    N)Ú__name__Ú
__module__Ú__qualname__r   © r   r   r   r      s#   € € € € € ð#ð #ð #ð #ð #r   r   c                 ó&   —  | j         |¦  «         dS )zÜ
    Dictate a Banana dialect to use.

    @param protocol: A L{banana.Banana} instance which has not yet had a
        dialect negotiated.

    @param dialect: A L{bytes} instance naming a Banana dialect to select.
    N)Ú_selectDialect)r   Údialects     r   ÚselectDialectr'   #   s   € ð €HÔ˜GÑ$Ô$Ð$Ð$Ð$r   c                 óÂ   — t          ¦   «         } | ¦   «         } |j        |¦  «         |                     ¦   «           |j        |¦  «         |                     ¦   «         S )a«  
    Banana encode an object using L{banana.Banana.sendEncoded}.

    @param bananaFactory: A no-argument callable which will return a new,
        unconnected protocol instance to use to do the encoding (this should
        most likely be a L{banana.Banana} instance).

    @param obj: The object to encode.
    @type obj: Any type supported by Banana.

    @return: A L{bytes} instance giving the encoded form of C{obj}.
    )r   ÚmakeConnectionÚclearÚsendEncodedÚvalue)ÚbananaFactoryÚobjÚ	transportr
   s       r   Úencoder0   2   s`   € õ  Ñ!Ô!€IØˆ]‰_Œ_€FØ€FÔ˜)Ñ$Ô$Ð$Ø‡O‚OÑÔÐà€FÔ�sÑÔÐØ�?Š?ÑÔÐr   c                   ó2   — e Zd ZdZej        Zd„ Zd„ Zd„ Z	dS )ÚBananaTestBasezn
    The base for test classes. It defines commonly used things and sets up a
    connection for testing.
    c                 óJ  — t          ¦   «         | _        |                      ¦   «         | _        | j                             t          j        | j        ¦  «        ¦  «         t          | j        d¦  «         | j        | j        _	        t          t          | j        ¦  «        | _        d S )Ns   none)r   ÚioÚencClassÚencr)   r   ÚFileWrapperr'   Ú	putResultÚexpressionReceivedr   r0   ©r   s    r   ÚsetUpzBananaTestBase.setUpP   st   € Ý‘)”)ˆŒØ—=’=‘?”?ˆŒØŒ×Ò¥Ô 4°T´WÑ =Ô =Ñ>Ô>Ð>Ý�d”h Ñ(Ô(Ð(Ø&*¤nˆŒÔ#Ý�f d¤mÑ4Ô4ˆŒˆˆr   c                 ó   — || _         dS )z¨
        Store an expression received by C{self.enc}.

        @param result: The object that was received.
        @type result: Any type supported by Banana.
        N)Úresult)r   r=   s     r   r8   zBananaTestBase.putResultX   s   € ð ˆŒˆˆr   c                 óv   — | j                              t          j        t          j        ¦  «        ¦  «         | ` d S ©N)r6   ÚconnectionLostr   ÚFailurer   ÚCONNECTION_DONEr:   s    r   ÚtearDownzBananaTestBase.tearDowna   s.   € ØŒ×Ò¥¤µÔ0DÑ EÔ EÑFÔFÐFØˆHˆHˆHr   N)
r    r!   r"   Ú__doc__r
   ÚBananar5   r;   r8   rC   r#   r   r   r2   r2   H   sT   € € € € € ðð ð
 Œ}€Hð5ð 5ð 5ðð ð ðð ð ð ð r   r2   c                   óœ   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚBananaTestsz
    General banana tests.
    c                 ó¶   — | j                              d¦  «         | j                              | j                             ¦   «         ¦  «         | j        dk    sJ ‚d S )Ns   hello)r6   r+   ÚdataReceivedr4   r   r=   r:   s    r   Útest_stringzBananaTests.test_stringk   sU   € ØŒ×Ò˜XÑ&Ô&Ð&ØŒ×Ò˜dœg×.Ò.Ñ0Ô0Ñ1Ô1Ð1ØŒ{˜hÒ&Ð&Ð&Ð&Ð&Ð&r   c                 ó2   — |                       dd¦  «         dS )z”
        Banana does not support unicode.  ``Banana.sendEncoded`` raises
        ``BananaError`` if called with an instance of ``unicode``.
        Úhellozbuiltins.strN)Ú_unsupportedTypeTestr:   s    r   Útest_unsupportedUnicodez#BananaTests.test_unsupportedUnicodep   s    € ð
 	×!Ò! '¨>Ñ:Ô:Ð:Ð:Ð:r   c                 ó<   — |                       t          d¦  «         dS )zÀ
        Banana does not support arbitrary builtin types like L{type}.
        L{banana.Banana.sendEncoded} raises L{banana.BananaError} if called
        with an instance of L{type}.
        zbuiltins.typeN)rM   Útyper:   s    r   Útest_unsupportedBuiltinTypez'BananaTests.test_unsupportedBuiltinTypew   s    € ð 	×!Ò!¥$¨Ñ8Ô8Ð8Ð8Ð8r   c                 óZ   — |                       t          ¦   «         t          dz   ¦  «         dS )zæ
        Banana does not support arbitrary user-defined types (such as those
        defined with the ``class`` statement).  ``Banana.sendEncoded`` raises
        ``BananaError`` if called with an instance of such a type.
        z
.MathTestsN)rM   r   r    r:   s    r   Útest_unsupportedUserTypez$BananaTests.test_unsupportedUserType€   s)   € ð 	×!Ò!¥)¡+¤+­x¸,Ñ/FÑGÔGÐGÐGÐGr   c                 óª   — |                       t          j        | j        j        |¦  «        }|                      d|› d�t          |¦  «        ¦  «         dS )aû  
        Assert that L{banana.Banana.sendEncoded} raises L{banana.BananaError}
        if called with the given object.

        @param obj: Some object that Banana does not support.
        @param name: The name of the type of the object.

        @raise: The failure exception is raised if L{Banana.sendEncoded} does
            not raise L{banana.BananaError} or if the message associated with the
            exception is not formatted to include the type of the unsupported
            object.
        zBanana cannot send z objectsN)ÚassertRaisesr
   ÚBananaErrorr6   r+   ÚassertInÚstr)r   r.   ÚnameÚexcs       r   rM   z BananaTests._unsupportedTypeTestˆ   sO   € ð ×Ò¥Ô 2°D´HÔ4HÈ#ÑNÔNˆØ�ŠÐ:¨DÐ:Ð:Ð:½CÀ¹H¼HÑEÔEÐEÐEÐEr   c                 ó  — | j                              d¦  «         | j                              | j                             ¦   «         ¦  «         |                      | j        d¦  «         |                      | j        t          ¦  «         dS )z×
        A positive integer less than 2 ** 32 should round-trip through
        banana without changing value and should come out represented
        as an C{int} (regardless of the type which was encoded).
        i§'  N)	r6   r+   rI   r4   r   r   r=   ÚassertIsInstanceÚintr:   s    r   Útest_intzBananaTests.test_int˜   st   € ð 	Œ×Ò˜UÑ#Ô#Ð#ØŒ×Ò˜dœg×.Ò.Ñ0Ô0Ñ1Ô1Ð1Ø×Ò˜œ eÑ,Ô,Ð,Ø×Ò˜dœk­3Ñ/Ô/Ð/Ð/Ð/r   c                 óB   — | j         j        }|dz  }d|z  dz
  }|dz   }|S )Né   é   é   )r6   ÚprefixLimit)r   ÚbytesÚbitsÚlargestÚsmallests        r   Ú_getSmallestzBananaTests._getSmallest£   s2   € à”Ô$ˆð �q‰yˆà�T‘'˜A‘+ˆà˜Q‘;ˆØˆr   c                 ó„   — |                       ¦   «         }|                      t          j        | j        j        |¦  «         dS )zz
        Test that a long above the implementation-specific limit is rejected
        as too large to be encoded.
        N)rh   rU   r
   rV   r6   r+   )r   rg   s     r   Útest_encodeTooLargeLongz#BananaTests.test_encodeTooLargeLong¯   s;   € ð
 ×$Ò$Ñ&Ô&ˆØ×Ò�&Ô,¨d¬hÔ.BÀHÑMÔMÐMÐMÐMr   c                 óº  — |                       ¦   «         }| j                             | j        j        dz  ¦  «         | j                             |¦  «         | j                             ¦   «         }| j                             d¦  «         | j                             | j        j        dz  ¦  «         |                      t          j
        | j        j        |¦  «         dS )zz
        Test that a long above the implementation specific limit is rejected
        as too large to be decoded.
        ra   r   N)rh   r6   ÚsetPrefixLimitrc   r+   r4   r   ÚtruncaterU   r
   rV   rI   )r   rg   Úencodeds      r   Útest_decodeTooLargeLongz#BananaTests.test_decodeTooLargeLong·   sº   € ð
 ×$Ò$Ñ&Ô&ˆØŒ×Ò ¤Ô 4°qÑ 8Ñ9Ô9Ð9ØŒ×Ò˜XÑ&Ô&Ð&Ø”'×"Ò"Ñ$Ô$ˆØŒ×Ò˜ÑÔÐØŒ×Ò ¤Ô 4¸Ñ 9Ñ:Ô:Ð:à×Ò�&Ô,¨d¬hÔ.CÀWÑMÔMÐMÐMÐMr   c                 ó,   — |                       ¦   «          S r?   )rh   r:   s    r   Ú_getLargestzBananaTests._getLargestÅ   s   € Ø×!Ò!Ñ#Ô#Ð#Ð#r   c                 ó„   — |                       ¦   «         }|                      t          j        | j        j        |¦  «         dS )zƒ
        Test that a negative long below the implementation-specific limit is
        rejected as too small to be encoded.
        N)rq   rU   r
   rV   r6   r+   )r   rf   s     r   Útest_encodeTooSmallLongz#BananaTests.test_encodeTooSmallLongÈ   s;   € ð
 ×"Ò"Ñ$Ô$ˆØ×Ò�&Ô,¨d¬hÔ.BÀGÑLÔLÐLÐLÐLr   c                 óº  — |                       ¦   «         }| j                             | j        j        dz  ¦  «         | j                             |¦  «         | j                             ¦   «         }| j                             d¦  «         | j                             | j        j        dz  ¦  «         |                      t          j
        | j        j        |¦  «         dS )zƒ
        Test that a negative long below the implementation specific limit is
        rejected as too small to be decoded.
        ra   r   N)rq   r6   rl   rc   r+   r4   r   rm   rU   r
   rV   rI   )r   rf   rn   s      r   Útest_decodeTooSmallLongz#BananaTests.test_decodeTooSmallLongÐ   sº   € ð
 ×"Ò"Ñ$Ô$ˆØŒ×Ò ¤Ô 4°qÑ 8Ñ9Ô9Ð9ØŒ×Ò˜WÑ%Ô%Ð%Ø”'×"Ò"Ñ$Ô$ˆØŒ×Ò˜ÑÔÐØŒ×Ò ¤Ô 4¸Ñ 9Ñ:Ô:Ð:à×Ò�&Ô,¨d¬hÔ.CÀWÑMÔMÐMÐMÐMr   c                 óÒ   — | j                              d¦  «         | j                              | j                             ¦   «         ¦  «         |                      | j        d¦  «         d S )Ni÷  ©r6   r+   rI   r4   r   r   r=   r:   s    r   Útest_integerzBananaTests.test_integerÞ   sZ   € ØŒ×Ò˜TÑ"Ô"Ð"ØŒ×Ò˜dœg×.Ò.Ñ0Ô0Ñ1Ô1Ð1Ø×Ò˜œ dÑ+Ô+Ð+Ð+Ð+r   c                 óÒ   — | j                              d¦  «         | j                              | j                             ¦   «         ¦  «         |                      | j        d¦  «         d S )Ni	üÿÿrw   r:   s    r   Útest_negativezBananaTests.test_negativeã   sZ   € ØŒ×Ò˜UÑ#Ô#Ð#ØŒ×Ò˜dœg×.Ò.Ñ0Ô0Ñ1Ô1Ð1Ø×Ò˜œ eÑ,Ô,Ð,Ð,Ð,r   c                 óÒ   — | j                              d¦  «         | j                              | j                             ¦   «         ¦  «         |                      | j        d¦  «         d S )Ng     ¸�@rw   r:   s    r   Ú
test_floatzBananaTests.test_floatè   sZ   € ØŒ×Ò˜VÑ$Ô$Ð$ØŒ×Ò˜dœg×.Ò.Ñ0Ô0Ñ1Ô1Ð1Ø×Ò˜œ fÑ-Ô-Ð-Ð-Ð-r   c           	      óú   — ddddgddgddd	d
dggdgg g}| j                              |¦  «         | j                              | j                             ¦   «         ¦  «         |                      | j        |¦  «         d S )Nrb   ra   é   é   ç     €>@çš™™™™D@é   ó   sixó   sevenó   eighté	   é
   rw   ©r   Úfoos     r   Ú	test_listzBananaTests.test_listí   s�   € àØØ�ˆFØ�4ˆLØØ�X ¨!˜}Ð-ØˆDØð	
ˆð 	Œ×Ò˜SÑ!Ô!Ð!ØŒ×Ò˜dœg×.Ò.Ñ0Ô0Ñ1Ô1Ð1Ø×Ò˜œ cÑ*Ô*Ð*Ð*Ð*r   c                 óB  — ddddgddgddd	d
dggdgt           j        dz  t           j        dz  t           j        dz  g
}| j                             |¦  «         |                      | j                             ¦   «         ¦  «         |                      | j        |¦  «         dS )zj
        Test feeding the data byte per byte to the receiver. Normally
        data is not split.
        rb   ra   r~   r   r€   r�   r‚   rƒ   r„   r…   r†   r‡   éþÿÿÿN)	ÚsysÚmaxsizer6   r+   Úfeedr4   r   r   r=   rˆ   s     r   Útest_partialzBananaTests.test_partialü   s§   € ð ØØ�ˆFØ�4ˆLØØ�X ¨!˜}Ð-ØˆDåŒK˜!‰OÝŒK˜!‰OÝŒK˜"Ñð
ˆð 	Œ×Ò˜SÑ!Ô!Ð!Ø�	Š	�$”'×"Ò"Ñ$Ô$Ñ%Ô%Ð%Ø×Ò˜œ cÑ*Ô*Ð*Ð*Ð*r   c                 ó^   — t          |¦  «        D ]}| j                             |¦  «         ŒdS )z‡
        Feed the data byte per byte to the receiver.

        @param data: The bytes to deliver.
        @type data: L{bytes}
        N)r	   r6   rI   )r   ÚdataÚbytes      r   r�   zBananaTests.feed  s<   € õ ˜d‘O”Oð 	(ð 	(ˆDØŒH×!Ò! $Ñ'Ô'Ð'Ð'ð	(ð 	(r   c                 óV   — d}|                       t          j        | j        |¦  «         d S )Ns   €©rU   r
   rV   r�   ©r   r’   s     r   Útest_oversizedListzBananaTests.test_oversizedList  ó*   € Ø*ˆà×Ò�&Ô,¨d¬i¸Ñ>Ô>Ð>Ð>Ð>r   c                 óV   — d}|                       t          j        | j        |¦  «         d S )Ns   ‚r•   r–   s     r   Útest_oversizedStringz BananaTests.test_oversizedString!  r˜   r   c                 ól   — d}	 | j                              |¦  «         d S # t          j        $ r Y d S w xY w)Ns       €)r6   rI   r
   rV   )r   ÚcrashStrings     r   Útest_crashStringzBananaTests.test_crashString&  sM   € Ø1ˆð	àŒH×!Ò! +Ñ.Ô.Ð.Ð.Ð.øÝÔ!ð 	ð 	ð 	ØˆDˆDð	øøøs   „   3²3c                 óÒ   — | j                              d¦  «         | j                              | j                             ¦   «         ¦  «         |                      | j        d¦  «         d S )Né   €rw   r:   s    r   Útest_crashNegativeLongz"BananaTests.test_crashNegativeLong9  s\   € ð 	Œ×Ò˜[Ñ)Ô)Ð)ØŒ×Ò˜dœg×.Ò.Ñ0Ô0Ñ1Ô1Ð1Ø×Ò˜œ kÑ2Ô2Ð2Ð2Ð2r   c                 ó€  — d}d}d}|                       |                      |dz
  ¦  «        d|z   ¦  «         |                       |                      |dz
  ¦  «        d|z   ¦  «         |                       |                      |dz
  ¦  «        d	|z   ¦  «         d
}|                       |                      |dz   ¦  «        d|z   ¦  «         |                       |                      |dz   ¦  «        d|z   ¦  «         |                       |                      |dz   ¦  «        d|z   ¦  «         d}|                       |                      |dz   ¦  «        d|z   ¦  «         |                       |                      |dz   ¦  «        d	|z   ¦  «         |                       |                      |dz   ¦  «        d¦  «         d}|                       |                      |dz
  ¦  «        d|z   ¦  «         |                       |                      |dz
  ¦  «        d|z   ¦  «         |                       |                      |dz
  ¦  «        d|z   ¦  «         dS )zÇ
        Test that integers below the maximum C{INT} token size cutoff are
        serialized as C{INT} or C{NEG} and that larger integers are
        serialized as C{LONGINT} or C{LONGNEG}.
        iÿÿÿrŸ   s   �ra   ó   }rb   ó   ~r   ó   s      …ó    ó   r~   ó   s   ƒs       ƒs      †ó   N)r   r0   )r   Ú	baseIntInÚ	baseNegInÚ
baseIntOutÚbaseLongIntOutÚ
baseNegOutÚbaseLongNegOuts          r   Útest_sizedIntegerTypesz"BananaTests.test_sizedIntegerTypesE  s(  € ð  ˆ	Øˆ	à,ˆ
Ø×Ò˜Ÿš Y°¡]Ñ3Ô3°W¸zÑ5IÑJÔJÐJØ×Ò˜Ÿš Y°¡]Ñ3Ô3°W¸zÑ5IÑJÔJÐJØ×Ò˜Ÿš Y°¡]Ñ3Ô3°W¸zÑ5IÑJÔJÐJà0ˆØ×Ò˜Ÿš Y°¡]Ñ3Ô3°W¸~Ñ5MÑNÔNÐNØ×Ò˜Ÿš Y°¡]Ñ3Ô3°W¸~Ñ5MÑNÔNÐNØ×Ò˜Ÿš Y°¡]Ñ3Ô3°W¸~Ñ5MÑNÔNÐNà,ˆ
Ø×Ò˜Ÿš Y°¡]Ñ3Ô3°W¸zÑ5IÑJÔJÐJØ×Ò˜Ÿš Y°¡]Ñ3Ô3°W¸zÑ5IÑJÔJÐJØ×Ò˜Ÿš Y°¡]Ñ3Ô3Ð5PÑQÔQÐQà0ˆØ×Ò˜Ÿš Y°¡]Ñ3Ô3°W¸~Ñ5MÑNÔNÐNØ×Ò˜Ÿš Y°¡]Ñ3Ô3°W¸~Ñ5MÑNÔNÐNØ×Ò˜Ÿš Y°¡]Ñ3Ô3°W¸~Ñ5MÑNÔNÐNÐNÐNr   N)r    r!   r"   rD   rJ   rN   rQ   rS   rM   r^   rh   rj   ro   rq   rs   ru   rx   rz   r|   rŠ   r�   r�   r—   rš   r�   r    r¯   r#   r   r   rG   rG   f   sŽ  € € € € € ðð ð'ð 'ð 'ð
;ð ;ð ;ð9ð 9ð 9ðHð Hð HðFð Fð Fð 	0ð 	0ð 	0ð
ð 
ð 
ðNð Nð NðNð Nð Nð$ð $ð $ðMð Mð MðNð Nð Nð,ð ,ð ,ð
-ð -ð -ð
.ð .ð .ð
+ð +ð +ð+ð +ð +ð,(ð (ð (ð?ð ?ð ?ð
?ð ?ð ?ð
ð ð ð&
3ð 
3ð 
3ðOð Oð Oð Oð Or   rG   c                   óœ   — e Zd ZdZdZ eej        j        e         f¦  «        ej	        z   Z
 ed¦  «        ej	        z   Zd„ Zd„ Zd„ Zd„ ZdS )	ÚDialectTestsz2
    Tests for Banana's handling of dialects.
    s   remote)éz   c                 ó\   — |                       t          | j        j        | j        ¦  «         dS )z|
        If no dialect has been selected and a PB VOCAB item is received,
        L{NotImplementedError} is raised.
        N)rU   ÚNotImplementedErrorr6   rI   ÚlegalPbItemr:   s    r   Útest_dialectNotSetzDialectTests.test_dialectNotSetl  s+   € ð
 	×ÒÕ-¨t¬xÔ/DÀdÔFVÑWÔWÐWÐWÐWr   c                 ó®   — t          | j        d¦  «         | j                             | j        ¦  «         |                      | j        | j        ¦  «         dS )zS
        If the PB dialect has been selected, a PB VOCAB item is accepted.
        ó   pbN)r'   r6   rI   rµ   r   r=   Úvocabr:   s    r   Útest_receivePbzDialectTests.test_receivePbs  sO   € õ 	�d”h Ñ&Ô&Ð&ØŒ×Ò˜dÔ.Ñ/Ô/Ð/Ø×Ò˜œ d¤jÑ1Ô1Ð1Ð1Ð1r   c                 ó†   — t          | j        d¦  «         |                      t          | j        j        | j        ¦  «         dS )zž
        If the PB dialect has been selected and an unrecognized PB VOCAB item
        is received, L{banana.Banana.dataReceived} raises L{KeyError}.
        r¸   N)r'   r6   rU   ÚKeyErrorrI   ÚillegalPbItemr:   s    r   Útest_receiveIllegalPbz"DialectTests.test_receiveIllegalPb{  s<   € õ
 	�d”h Ñ&Ô&Ð&Ø×Ò�( D¤HÔ$9¸4Ô;MÑNÔNÐNÐNÐNr   c                 óÒ   — t          | j        d¦  «         | j                             | j        ¦  «         |                      | j        | j                             ¦   «         ¦  «         dS )zl
        if pb dialect is selected, the sender must be able to send things in
        that dialect.
        r¸   N)r'   r6   r+   r¹   r   rµ   r4   r   r:   s    r   Útest_sendPbzDialectTests.test_sendPbƒ  s[   € õ
 	�d”h Ñ&Ô&Ð&ØŒ×Ò˜TœZÑ(Ô(Ð(Ø×Ò˜Ô)¨4¬7×+;Ò+;Ñ+=Ô+=Ñ>Ô>Ð>Ð>Ð>r   N)r    r!   r"   rD   r¹   rd   r
   rE   ÚoutgoingVocabularyÚVOCABrµ   r½   r¶   rº   r¾   rÀ   r#   r   r   r±   r±   c  sž   € € € € € ðð ð €EØ�%˜œÔ9¸%Ô@ÐBÑCÔCÀfÄlÑR€KØ�E˜&‘M”M F¤LÑ0€MðXð Xð Xð2ð 2ð 2ðOð Oð Oð?ð ?ð ?ð ?ð ?r   r±   c                   ó   — e Zd ZdZd„ ZdS )ÚGlobalCoderTestszM
    Tests for the free functions L{banana.encode} and L{banana.decode}.
    c                 ó´   — d}|                       t          j        t          j        |¦  «         d}|                      t          j        |¦  «        d¦  «         dS )zJ
        Calls to L{banana.decode} are independent of each other.
        sB   …s   �rb   N)rU   r
   rV   Údecoder   )r   ÚundecodableÚ	decodables      r   Útest_statelessDecodez%GlobalCoderTests.test_statelessDecode’  sS   € ð
 -ˆØ×Ò�&Ô,­f¬m¸[ÑIÔIÐIð  ˆ	Ø×Ò�œ yÑ1Ô1°1Ñ5Ô5Ð5Ð5Ð5r   N)r    r!   r"   rD   rÉ   r#   r   r   rÄ   rÄ   �  s-   € € € € € ðð ð6ð 6ð 6ð 6ð 6r   rÄ   )r�   Ú	functoolsr   r4   r   Útwisted.internetr   r   Útwisted.internet.testingr   Útwisted.pythonr   Útwisted.python.compatr	   Útwisted.spreadr
   Útwisted.trial.unittestr   Ú_maxintr   r'   r0   r2   rG   r±   rÄ   r#   r   r   ú<module>rÒ      s·  ðð
 €
€
€
Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø "Ð "Ð "Ð "Ð "Ð "Ø +Ð +Ð +Ð +Ð +Ð +Ø !Ð !Ð !Ð !Ð !Ð !Ø +Ð +Ð +Ð +Ð +Ð +à
€ð#ð #ð #ð #ð #�ñ #ô #ð #ð %ð %ð %ðð ð ð,ð ð ð ð �Xñ ô ð ð<zOð zOð zOð zOð zO�.ñ zOô zOð zOðz'?ð '?ð '?ð '?ð '?�>ñ '?ô '?ð '?ðT6ð 6ð 6ð 6ð 6�xñ 6ô 6ð 6ð 6ð 6r   