o
    ¯bß  ã                   @   sŠ   d Z ddlmZ ddlmZ ddlmZ dZG dd„ dejƒZ	G dd	„ d	ejƒZ
G d
d„ dejƒZG dd„ dejƒZG dd„ dejƒZdS )z#
Tests for L{twisted.python.text}.
é    )ÚStringIO)Útext)Úunittesta¬  Every attempt to employ mathematical methods in the study of chemical
questions must be considered profoundly irrational and contrary to the
spirit of chemistry ...  If mathematical analysis should ever hold a
prominent place in chemistry - an aberration which is happily almost
impossible - it would occasion a rapid and widespread degeneration of that
science.

           --  Auguste Comte, Philosophie Positive, Paris, 1838
c                   @   s8   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ ZdS )Ú	WrapTestsz'
    Tests for L{text.greedyWrap}.
    c                 C   s$   d| _ t ¡ | _t t| j ¡| _d S )NéH   )Ú	lineWidthÚ
sampleTextÚsplitÚsampleSplitTextr   ÚwordWrapÚoutput©Úself© r   ú8/usr/lib/python3/dist-packages/twisted/test/test_text.pyÚsetUp   s   
zWrapTests.setUpc                 C   s@   g }| j D ]	}| | ¡ ¡ qt|ƒ}t| jƒ}|  ||¡ dS )z.
        Compare the number of words.
        N)r   Úextendr	   Úlenr
   ÚassertEqual)r   ÚwordsÚlineÚ	wordCountÚsampleTextWordCountr   r   r   Útest_wordCount"   s   

zWrapTests.test_wordCountc                 C   s2   g }| j D ]	}| | ¡ ¡ q|  | j|k¡ dS )z-
        Compare the lists of words.
        N)r   r   r	   Ú
assertTruer
   )r   r   r   r   r   r   Útest_wordMatch.   s   
zWrapTests.test_wordMatchc                 C   sZ   g }| j D ]}t|ƒ| jks| t|ƒ¡ q|r+|  dt|ƒt| j ƒ| j|f ¡ dS dS )z0
        Check the length of the lines.
        z%%d of %d lines were too long.
%d < %sN)r   r   r   ÚappendÚfail)r   Úfailuresr   r   r   r   Útest_lineLength:   s   
€ÿÿÿzWrapTests.test_lineLengthc                 C   s&   d}t  || j¡}|  |g d¢¡ dS )z7
        Allow paragraphs delimited by two 
s.
        zet

phone
home.)ÚetÚ zphone home.r!   N)r   r   r   r   )r   r   Úresultr   r   r   Útest_doubleNewlineI   s   zWrapTests.test_doubleNewlineN)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r#   r   r   r   r   r      s    r   c                   @   ó    e Zd ZdZdd„ Zdd„ ZdS )Ú	LineTestsz8
    Tests for L{isMultiline} and L{endsInNewline}.
    c                 C   ó4   d}t  |¡}|  |¡ d}t  |¡}|  |¡ dS )zX
        L{text.isMultiline} returns C{True} if the string has a newline in it.
        zThis code
 "breaks."zThis code does not "break."N)r   ÚisMultiliner   ÚassertFalse©r   ÚsÚmr   r   r   Útest_isMultilineW   ó   


zLineTests.test_isMultilinec                 C   r*   )zX
        L{text.endsInNewline} returns C{True} if the string ends in a newline.
        znewline
ÚoldlineN)r   ÚendsInNewliner   r,   r-   r   r   r   Útest_endsInNewlinec   r1   zLineTests.test_endsInNewlineN)r$   r%   r&   r'   r0   r4   r   r   r   r   r)   R   s    r)   c                   @   s(   e Zd ZdZdd„ Zdd„ Zdd„ ZdS )	ÚStringyStringTestsz*
    Tests for L{text.stringyString}.
    c                 C   s   d}t  |¡}|  |d¡ dS )zA
        Tuple elements are displayed on separate lines.
        )ÚaÚbz	(a,
 b,)
N©r   ÚstringyStringr   r-   r   r   r   Ú
test_tupleu   s   
zStringyStringTests.test_tuplec                 C   s"   ddi}t  |¡}|  |d¡ dS )z>
        Dicts elements are displayed using C{str()}.
        r6   r   z{a: 0}Nr8   r-   r   r   r   Ú	test_dict}   ó   
zStringyStringTests.test_dictc                 C   s"   ddg}t  |¡}|  |d¡ dS )zO
        List elements are displayed on separate lines using C{str()}.
        r6   r7   z	[a,
 b,]
Nr8   r-   r   r   r   Ú	test_list…   r<   zStringyStringTests.test_listN)r$   r%   r&   r'   r:   r;   r=   r   r   r   r   r5   p   s
    r5   c                   @   r(   )Ú
SplitTestsz(
    Tests for L{text.splitQuoted}.
    c                 C   s"   d}t  |¡}|  g d¢|¡ dS )z:
        Splitting strings with one-word phrases.
        zThis code "works.")ÚThisÚcodezworks.N©r   ÚsplitQuotedr   ©r   r.   Úrr   r   r   Útest_oneWord“   s   
zSplitTests.test_oneWordc                 C   s"   d}t  |¡}|  g d¢|¡ d S )NzThe "hairy monkey" likes pie.)ÚThezhairy monkeyÚlikeszpie.rA   rC   r   r   r   Útest_multiWord›   s   
zSplitTests.test_multiWordN)r$   r%   r&   r'   rE   rH   r   r   r   r   r>   Ž   s    r>   c                   @   s¬   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)S )*ÚStrFileTestsc                 C   s   t dƒ| _d S ©Nzthis is a test string)r   Úior   r   r   r   r   ¯   s   zStrFileTests.setUpc                 C   s   d S )Nr   r   r   r   r   ÚtearDown²   s   zStrFileTests.tearDownc                 C   ó   |   t d| j¡¡ d S )NÚx©r,   r   ÚstrFilerK   r   r   r   r   Útest_1_fµ   ó   zStrFileTests.test_1_fc                 C   rM   )NÚt©r   r   rP   rK   r   r   r   r   Útest_1_1¸   rR   zStrFileTests.test_1_1c                 C   rM   )NÚhrT   r   r   r   r   Útest_1_2»   rR   zStrFileTests.test_1_2c                 C   rM   )NÚirT   r   r   r   r   Útest_1_3¾   rR   zStrFileTests.test_1_3c                 C   rM   )Nr.   rT   r   r   r   r   Útest_1_4Á   rR   zStrFileTests.test_1_4c                 C   rM   )NÚnrT   r   r   r   r   Útest_1_5Ä   rR   zStrFileTests.test_1_5c                 C   rM   )NÚgrT   r   r   r   r   Útest_1_6Ç   rR   zStrFileTests.test_1_6c                 C   rM   )NÚthirT   r   r   r   r   Útest_3_1Ê   rR   zStrFileTests.test_3_1c                 C   rM   )NÚhisrT   r   r   r   r   Útest_3_2Í   rR   zStrFileTests.test_3_2c                 C   rM   )Nzis rT   r   r   r   r   Útest_3_3Ð   rR   zStrFileTests.test_3_3c                 C   rM   )NÚingrT   r   r   r   r   Útest_3_4Ó   rR   zStrFileTests.test_3_4c                 C   rM   )NÚblarO   r   r   r   r   Útest_3_fÖ   rR   zStrFileTests.test_3_fc                 C   rM   )Nzthis is a testrT   r   r   r   r   Útest_large_1Ù   rR   zStrFileTests.test_large_1c                 C   rM   )Nzis a test stringrT   r   r   r   r   Útest_large_2Ü   rR   zStrFileTests.test_large_2c                 C   rM   )Nzds jhfsa k fdasrO   r   r   r   r   Útest_large_fß   rR   zStrFileTests.test_large_fc                 C   rM   )Nz-djhsakj dhsa fkhsa s,mdbnfsauiw bndasdf hreewrO   r   r   r   r   Útest_overlarge_fâ   s   ÿzStrFileTests.test_overlarge_fc                 C   rM   rJ   rT   r   r   r   r   Ú	test_selfç   rR   zStrFileTests.test_selfc                 C   s   |   t d| jd¡¡ d S )NzThIs is A test STRINGFrT   r   r   r   r   Útest_insensitiveê   s   zStrFileTests.test_insensitiveN)r$   r%   r&   r   rL   rQ   rU   rW   rY   rZ   r\   r^   r`   rb   rc   re   rg   rh   ri   rj   rk   rl   rm   r   r   r   r   rI   ®   s*    rI   N)r'   rK   r   Útwisted.pythonr   Útwisted.trialr   r   ÚTestCaser   r)   r5   r>   rI   r   r   r   r   Ú<module>   s   : 