+
    Bim                        ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RI	H
t
HtHtHtHtHtHt ^ RIHt ]
! R4       ]! R4      t]! R4       ]! R4        ^ RItR tR	 tR
 t]P2                  P5                  R4      tRt]P:                  ! ]'       * ;'       g    ]R8H  R],          4      ]P:                  ! ]P<                  R8H  R4       ! R R]P>                  4      4       4       t  ! R R]P>                  4      t! ! R R]P>                  4      t"R t# ! R R]P>                  4      t$]%R8X  d   ]PL                  ! 4        R# R#   ] d     Li ; i)    N)	MagicMock)requiresverboseSaveSignalscpython_onlycheck_disallow_instantiationMISSING_C_DOCSTRINGS
gc_collect)import_modulecurseszcurses.asciizcurses.textpadc                 Z    \         P                  ! \        \        V 4      R V ,          4      # )zrequires curses.%s)unittest
skipUnlesshasattrr   )names   &'/usr/lib/python3.14/test/test_curses.pyrequires_curses_funcr      s&    wvt43d:< <    c                    a  V 3R  lpV# )c                 J   <a  \         P                  ! S 4      VV 3R  l4       pV# )c                    < \        V P                  S4      '       g   \        P                  ! R S,          4      hS! V .VO5/ VB  R# )zrequires curses.window.%sN)r   stdscrr   SkipTest)selfargskwargsr   tests   &*,r   wrapped:requires_curses_window_meth.<locals>.deco.<locals>.wrapped#   s=    4;;--''(Cd(JKK'''r   	functoolswraps)r   r   r   s   f r   deco)requires_curses_window_meth.<locals>.deco"   s%    			( 
	( r    )r   r#   s   f r   requires_curses_window_methr&   !   s     Kr   c                 F   a  \         P                  ! S 4      V 3R  l4       pV# )c                    < \         P                  ! 4       '       g   V P                  R 4       \         P                  ! 4        S! V .VO5/ VB  R# )requires colors supportN)r   
has_colorsskipTeststart_color)r   r   r   r   s   &*,r   r    requires_colors.<locals>.wrapped-   s=      ""MM34T#D#F#r   r    )r   r   s   f r   requires_colorsr.   ,   s%    __T$ $
 Nr   TERMi  unknownz*$TERM=%r, calling initscr() may cause exitcygwinz!cygwin's curses mostly just hangsc                   p  a  ] tR t^9t o ]R 4       tR t]! R4      R 4       t]! R4      R 4       t	R t
R tR	 tR
 tR tR tR tR tR tR tR tR tR tR t]! R4      R 4       tR tR tR t]! R4      R 4       t]! R4      R 4       tR tR t R  t!R! t"R" t#R# t$R$ t%R% t&R& t']! R'4      R( 4       t(R) t)R* t*R+ t+R, t,]! R-4      R. 4       t-]! R/4      R0 4       t.]! R14      R2 4       t/R3 t0R4 t1R5 t2R6 t3R7 t4]5R8 4       t6]5R9 4       t7R: t8]5R; 4       t9]5R< 4       t:]5R= 4       t;]! R>4      ]5R? 4       4       t<]! R@4      ]5RA 4       4       t=RB t>]! RC4      RD 4       t?]! RE4      RF 4       t@]! RG4      RH 4       tA]! RG4      RI 4       tB]! RG4      RJ 4       tC]D]! RG4      RK 4       4       tE]! RL4      RM 4       tF]! RN4      RO 4       tG]! RP4      RQ 4       tHRR tIRS tJ]! RT4      ]KP                  ! ]M! ]NRUR^4      R_8  RV4      RW 4       4       tORX tP]KP                  ! ]QRY4      RZ 4       tR]! R4      R[ 4       tSR\tTV tUR]# )`
TestCursesc                    \         '       d$   \        R \         2\        P                  RR7       \        P
                  P                  4       p\        P                  ! VR7       R# )zTERM=Tfileflush)fdN)	r   printtermsysstderr
__stdout__filenor   	setupterm)cls	stdout_fds   & r   
setUpClassTestCurses.setUpClass?   s?    7E$.szz> NN))+	I&r   c                   R V n         \        P                  V n        \        P                  P	                  4       p\        P                  P                  4       '       g   \
        P                  ! V4      pV P                  \
        P                  V4       V P                  \
        P                  W!4       \        P                  P                  4       '       d'   \        P                  p\        P                  V n        M1 \        RR^ R7      pV P                  VP                  4       RV n        \
        P                  ! VP	                  4       V4       \        4       V n        V P                   P#                  4        V P                  V P                   P$                  4       \&        '       db   V P                  eT   \        P(                  P+                  4        \        P,                  P+                  4        \/        V P                  R R7       \0        P2                  ! 4       V n        V P                   '       dT   \0        P6                  ! 4        V P                  \0        P8                  4       V P                  \0        P:                  4       V P4                  P=                  4        R#   \         d$    \        P                  ! R^ R7      pRT n          ELi ; i)Tz/dev/ttywb)	buffering)moderF   FNr5   )isattyr;   r=   outputr>   osdup
addCleanupclosedup2
__stderr__openOSErrortempfileTemporaryFiler   save_signalssaverestorer   r<   r7   stdoutr9   r   initscrr   savettyendwinresettyerase)r   rA   dup_fdtmps   &   r   setUpTestCurses.setUpH   s   nnNN))+	~~$$&& VVI&FOOBHHf-OOBGGV7~~$$&&nn!nn	(z41=C 		*"GGCJJL),'M ))1127t{{.JJJJt{{$/nn&;;;NNOOFMM*OOFNN+1  (
 #00daHC"'DK(s    J+ +*KKfilterc                0    \         P                  ! 4        R # N)r   ra   r   s   &r   test_filterTestCurses.test_filterx   s     	r   use_envc                ^    \         P                  ! R 4       \         P                  ! R4       R# FTN)r   rg   rd   s   &r   test_use_envTestCurses.test_use_env~   s     	utr   c                	   \         P                  ! ^^
4      pV P                  VP                  4       R4       V P                  VP	                  4       R4       V P                  VP                  4       R4       \         P                  ! ^
^^^4      pV P                  VP                  4       R4       V P                  VP	                  4       R4       V P                  VP                  4       R4       VP                  ^^4      pV P                  VP                  4       R4       V P                  VP	                  4       R4       V P                  VP                  4       R	4       VP                  ^^
^^4      pV P                  VP                  4       R4       V P                  VP	                  4       R4       V P                  VP                  4       R4       VP                  ^^4      pV P                  VP                  4       R
4       V P                  VP	                  4       R4       V P                  VP                  4       R4       VP                  ^^^^4      pV P                  VP                  4       R
4       V P                  VP	                  4       R4       V P                  VP                  4       R4       VP                  ^ ^4       V P                  VP                  4       R4       V P                  VP	                  4       R4       V P                  VP                  4       R4       V P                  VP                  4       R4       V P                  VP	                  4       R4       V P                  VP                  4       R4       V P                  VP                  4       R
4       V P                  VP	                  4       R4       V P                  VP                  4       R4       VP                  ^^4       V P                  VP                  4       R4       V P                  VP	                  4       R4       V P                  VP                  4       R4       VP                  ^^4       V P                  VP                  4       R
4       V P                  VP	                  4       R4       V P                  VP                  4       R4       R# )   Nr   r   rp   )rm   
   )   rm   )rq      )         rr   )	      )      )rr   rt   )r{      )      )r   rw   )rr   rw   )
r   newwinassertEqualgetbegyxgetparyxgetmaxyxsubwinderwinmvwinmvderwin)r   winwin2win3s   &   r   test_create_windowsTestCurses.test_create_windows   sm   mmAr"021mmBAq)022zz!Q&1&1'2zz!RA&&1&1'2zz!Q&1&1'2zz!RA&&1&1'2		!Q022&1&1'2&1&1'2a&1&1'2a&1&1'2r   c                    \         P                  ! ^^
4      pVP                  ^^4      p?\        4        ?\        4        R# rm   N)r   r   r   r
   )r   r   r   s   &  r   test_subwindows_references%TestCurses.test_subwindows_references   s2    mmAr"zz!Qr   c                n   V P                   pVP                  ^
^^^4      pVP                  ^^4       VP                  ^^4       V P                  VP	                  4       R4       V P                  VP	                  4       R4       VP                  4        V P                  VP	                  4       R4       R# )rq   Nrv   )rr   rz   )rz   rx   )r   r   mover   getyx	cursyncup)r   r   r   s   &  r   test_move_cursorTestCurses.test_move_cursor   s    mmBAq)AqA0f-0r   c                   V P                   pVP                  4        V P                  VP                  4       R 4       VP	                  4        V P                  VP                  4       R4       VP                  4        V P                  VP                  4       R 4       VP	                  4        V P                  VP                  4       R4       VP                  4        V P                  VP                  4       R 4       VP                  ^^4       V P                  VP                  ^4      R4       V P                  VP                  ^4      R4       V P                  VP                  4       R4       VP                  ^^R 4       V P                  VP                  ^4      R 4       VP                  ^
^^^4      pVP                  ^^
^^4      pVP	                  4        VP                  4        VP                  4        V P                  VP                  4       R4       V P                  VP                  4       R4       VP	                  4        VP                  4        VP                  4        VP                  4        V P                  VP                  4       R4       \        VR4      '       d   \        P                  P                  R4      '       g   VP                  4        VP                  4        R Fe  pVP                  V4       VP!                  R4       V P                  VP                  4       V4       V P                  VP                  4       V4       Kg  	  R# R# R# )FTsyncoksunosaN)FT)r   refreshassertIsis_wintouchedtouchwin
untouchwin	touchlineis_linetouchedr   syncupsyncdownr   r;   platform
startswithr   addch)r   r   r   r   r   s   &    r   test_refresh_controlTestCurses.test_refresh_control   s   f**,e4f**,d3f**,e4f**,d3f**,e4 	Af++A.5f++A.5f**,d3Au%f++A.6 mmBAq)zz!RA&c'')40f**,d3 	d((*D1 68$$S\\-D-DW-M-MNN'F#

3c//16:f224f=	 ( .N$r   c                   V P                   pVP                  pVP                  4        VP                  ^ ^ 4       VP	                  R4       VP	                  R4       VP	                  ^A4       Rp VP	                  V4       VP	                  R\        P                  4       VP	                  ^^R4       VP	                  ^^R\        P                  4       V P                  VP                  4       R4       VP                  4        VP                  ^ ^ 4       VP!                  R4       VP!                  R4       VP!                  ^A4       V P                  \
        \        34      ;_uu_ 4        VP!                  R4       RRR4       VP!                  R\        P                  4       V P                  VP                  4       R4       R#   \
         d&    T P                  \
        TP                  T4        ELx\         d;    TP                  T4      pT P                  \        T4      ^\        T4      4        ELi ; i  + '       g   i     L; i)r   A   A   €Tu   ĔNF)r   encodingr   r   r   UnicodeEncodeErrorassertRaisesencodeOverflowErrorassertNotEquallenreprr   A_BOLDr   r   echochar)r   r   r   cencodeds   &    r   test_output_character TestCurses.test_output_character   s   ??AqSTR	@LLO 	S&--(Q3Q3.f**,d3 	Aq 2MBCC OOH% D 	V]]+f**,e41 " 	F0!((HE 	@hhx(GGag?	@ DCs*   1G /I,H>:H>7H>=H>I	c           
     :   V P                   pVP                  pVP                  VP                  3 F  pV P	                  VP
                  4      ;_uu_ 4        VP                  ^ ^ 4       V! R4       V! R4       Rp V! V4       V! R\        P                  4       V! ^^R4       V! ^^R\        P                  4       RRR4       K  	  VP                  VP                  3 F  pV P	                  VP
                  4      ;_uu_ 4        VP                  ^ ^ 4       V! R^4       V! R^4       Rp V! V^4       V! R^4       V! R^\        P                  4       V! ^^R^4       V! ^^R^\        P                  4       RRR4       K  	  R#   \         d&    T P                  \        TP                  T4        EL8i ; i  + '       g   i     EK  ; i  \         d%    T P                  \        TP                  T4        Li ; i  + '       g   i     EK7  ; i)r   abcds   abcdu   àßçđN1234s   1234u   ١٢٣٤)r   r   addstrinsstrsubTest__qualname__r   r   r   r   r   r   addnstrinsnstr)r   r   r   funcss   &    r   test_output_stringTestCurses.test_output_string"  s   ??]]FMM2Dd//00Aq!VWNG VV]]+Q6"Q66==1 10 3 ^^V^^4Dd//00Aq!VQWa .NAJ VQVQ.Q61%Q61fmm4 10 5 * N%%&8!((HMN 100, * N%%&8!((HMN 100sa   %G=F:G	'H1	G:AH,F>	:G=F>	>GG,H	HH	HHc           	        V P                   pR F  pV P                  VR7      ;_uu_ 4        V P                  \        VP                  V4       V P                  \        VP
                  V^4       V P                  \        VP                  V4       V P                  \        VP                  V^4       RRR4       K  	  R#   + '       g   i     K  ; i)a )argN)r   s   a )r   r   r   
ValueErrorr   r   r   r   )r   r   r   s   &  r   &test_output_string_embedded_null_chars1TestCurses.test_output_string_embedded_null_charsD  s    "C#&&!!*fmmSA!!*fnnc1E!!*fmmSA!!*fnnc1E	 '& #&&&s   BCCc                @   V P                   pVP                  ^ ^R\        P                  4       VP	                  ^ ^4       V P                  VP                  4       ^A\        P                  ,          4       V P                  VP                  ^ ^4      ^C\        P                  ,          4       VP	                  ^ ^ 4       V P                  VP                  4       R,          R4       V P                  VP                  ^4      R,          R4       V P                  VP                  ^ ^4      R,          R4       V P                  VP                  ^ ^^4      R4       V P                  \        VP                  R4       V P                  \        VP                  ^ ^R4       R# )	r   ABCD:Nr}   Ns    ABCD s    AB:Nrz   Ns   BCD N)
r   r   r   r   r   r   inchinstrr   r   r   r   s   & r   test_read_from_window TestCurses.test_read_from_windowN  s%   aFFMM2AqV]](:;Q*B,>?Aq+Y7a,f5a+B/9aA.8*fllB7*fllAq"=r   c                   \         P                  ! ^^^^4      pRRRR1,           F  p\         P                  ! V4       K  	  V P                  VP	                  ^^4      ^s4       V P                  VP                  4       R4       V P                  VP	                  ^^4      ^p4       V P                  VP                  4       R4       V P                  VP	                  4       ^a4       V P                  VP                  4       R4       V P                  VP	                  4       ^m4       V P                  VP	                  4       ^
4       R# )rm   zspam
Nrp   )rt   rw   )rt   rz   )r   r   ungetchr   getchr   r   r   r   s   &  r   
test_getchTestCurses.test_getch^  s    mmAr1a( $B$ANN1  1a'2f-1a'2f-g.f-g.h/r   c                    \         P                  ! ^^^^4      p\         P                  ! 4        V P                  \         P                  4       V P                  \        VP                  R4       V P                  \        VP                  ^^R4       RRRR1,           F  p\         P                  ! V4       K  	  V P                  VP                  ^^^4      R4       V P                  VP                  ^^ 4      R4       V P                  VP                  ^^^
4      R4       V P                  VP                  ^^ 4      R4       V P                  VP                  ^^4      R4       V P                  VP                  ^^ 4      R4       V P                  VP                  ^4      R	4       V P                  VP                  ^^ 4      R
4       V P                  VP                  4       R4       V P                  VP                  ^^ 4      R4       R# )rm   zLorem
ipsum
dolor
sit
amet
Ns   Los    Lo         s   ipsums    Lo  ipsum  s   dolors        dolor  s   sis   si   dolor  s   amets   amet dolor  iprp   )r   r   echorL   noechor   r   getstrr   r   r   r   s   &  r   test_getstrTestCurses.test_getstrm  s   mmAr1a(&*cjj$7*cjj!Q= 4DbD99ANN1 :Aq!,e41a/:Aq"-x81a/:Aq)841a/:A.1a/:w/1a/:r   c                x   \         P                  ! ^^^^4      p\        V4       VP                  ^ ^4       VP	                  4        V P                  VP                  ^ ^ 4      P                  4       R4       V P                  VP                  ^^ 4      P                  4       R4       VP                  ^ ^4       VP                  4        V P                  VP                  ^ ^ 4      P                  4       R4       V P                  VP                  ^^ 4      P                  4       R4       VP                  VP                  3 Fu  p\        V4       V! 4        V P                  VP                  ^ ^ 4      P                  4       R4       V P                  VP                  ^^ 4      P                  4       R4       Kw  	  R# )rm   s   Lorem ip   dolor sit amet,s   Lorr   N)r   r   lorem_ipsumr   clrtoeolr   r   rstripclrtobotr\   clear)r   r   r   s   &  r   
test_clearTestCurses.test_clear  sA   mmAr1a(CA1a//1;?1a//13EFA1a//16:1a//137YY		*DFSYYq!_335s;SYYq!_335s;	 +r   c                   \         P                  ! ^^^^4      p\        V4       VP                  ^ ^4       VP	                  4        V P                  VP                  ^ ^ 4      R4       VP	                  ^ ^4       V P                  VP                  ^ ^ 4      R4       VP                  ^^4       VP                  4        V P                  VP                  ^ ^ 4      R4       V P                  VP                  ^^ 4      R4       V P                  VP                  ^^ 4      R4       V P                  VP                  ^^ 4      R4       V P                  VP                  ^^ 4      R4       VP                  ^^4       VP                  4        V P                  VP                  ^ ^ 4      R4       V P                  VP                  ^^ 4      R4       V P                  VP                  ^^ 4      R4       VP                  4        \        V4       VP                  ^^4       VP                  ^4       V P                  VP                  ^ ^ 4      R4       V P                  VP                  ^^ 4      R4       V P                  VP                  ^^ 4      R4       V P                  VP                  ^^ 4      R4       VP                  4        \        V4       VP                  ^^4       VP                  R
4       V P                  VP                  ^ ^ 4      R4       V P                  VP                  ^^ 4      R4       V P                  VP                  ^^ 4      R4       V P                  VP                  ^^ 4      R4       R	# )rm   s   Loem ipsum     s   Loem ipum      s   consectetur       adipiscing elits   sed do eiusmod                   s   Lorem ipsum    r   Nr   )r   r   r   r   delchr   r   deletelninsertlnr   insdellnr   r   s   & r   test_insert_deleteTestCurses.test_insert_delete  s   mmAr1a(CA		1a*<=		!Q1a*<=A1a*<=1a*<=1a*<=1a*<=1a*<=A1a*<=1a*<=1a*<=		CAQ1a*<=1a*<=1a*<=1a*<=		CAR1a*<=1a*<=1a*<=1a*<=r   c                J   \         P                  ! ^^^^4      p\        V4       VP                  R4       VP	                  4        V P                  VP                  ^ ^ 4      R4       VP	                  ^4       V P                  VP                  ^ ^ 4      R4       VP	                  R4       V P                  VP                  ^ ^ 4      R4       V P                  VP                  ^^ 4      R4       V P                  VP                  ^^ 4      R4       VP                  R4       R# )rm   Tr   r   r   FN)r   r   r   scrollokscrollr   r   r   s   & r   test_scrollTestCurses.test_scroll  s    mmAr1a(CT

1a*<=

11a*<=

21a*<=1a*<=1a*<=Ur   c                2   \         P                  ! ^^^^4      pVP                  \         P                  4       VP	                  \         P                  4       VP                  \         P                  4       VP                  4        VP                  4        R# r   )r   r   attronr   attroffattrsetstandoutstandendr   s   & r   test_attributesTestCurses.test_attributes  sX    mmAr1a(

6==!FMM"FMM"r   chgatc                   \         P                  ! ^^^^4      pVP                  ^^ R4       VP                  ^^ R4       VP                  ^^4       VP	                  \         P
                  4       V P                  VP                  ^^4      ^p4       V P                  VP                  ^^4      ^s\         P
                  ,          4       V P                  VP                  ^^4      ^ \         P
                  ,          4       VP                  ^^4       VP	                  ^\         P                  4       V P                  VP                  ^^ 4      ^L4       V P                  VP                  ^^4      ^o\         P                  ,          4       V P                  VP                  ^^4      ^e\         P                  ,          4       V P                  VP                  ^^4      ^m4       VP	                  ^^\         P                  4       V P                  VP                  ^^4      ^o4       V P                  VP                  ^^4      ^l\         P                  ,          4       V P                  VP                  ^^4      ^ \         P                  ,          4       VP	                  ^^^\         P
                  4       V P                  VP                  ^^4      ^o\         P                  ,          4       V P                  VP                  ^^4      ^r\         P
                  ,          4       V P                  VP                  ^^
4      ^a\         P
                  ,          4       V P                  VP                  ^^4      ^m\         P                  ,          4       V P                  VP                  ^^4      ^ \         P                  ,          4       R# )rm   Lorem ipsumzdolor sit ametN)
r   r   r   r   r  A_BLINKr   r   r   A_UNDERLINEr   s   & r   
test_chgatTestCurses.test_chgat  s   mmAr1a(

1a'

1a)*A		&..!!Q1!Q6>>)AB!R'FNN*BCA		!V]]#!Q1!Q6==)@A!Q6==)@A!Q1		!Q**+!Q1!Q63E3E)EF!R'F4F4F*FG		!Q6>>*!Q63E3E)EF!Q6>>)AB!R'FNN*BC!R'F4F4F*FG!R'F4F4F*FGr   c                   \         P                  ! ^^^^4      pVP                  ^ ^ R4       V P                  VP	                  4       R4       VP                  R4       V P                  VP	                  4       ^_4       VP                  R4       V P                  VP	                  4       ^#4       VP                  ^A4       V P                  VP	                  4       ^A4       VP                  ^ 4       V P                  VP	                  4       ^ 4       VP                  R\         P                  4       V P                  VP	                  4       ^#\         P                  ,          4       V P                  VP                  ^ ^ 4      ^L4       V P                  VP                  ^ ^4      ^ 4       VP                  ^ 4       VP                  R4       V P                  VP	                  4       ^_4       V P                  VP                  ^ ^ 4      ^L4       V P                  VP                  ^ ^4      ^_4       VP                  R\         P                  4       V P                  VP	                  4       ^#\         P                  ,          4       V P                  VP                  ^ ^ 4      ^L\         P                  ,          4       V P                  VP                  ^ ^4      ^#\         P                  ,          4       R# )rm   r  _   ##N)r       )
r   r   r   assertIngetbkgdbkgdsetr   	A_REVERSEr   bkgdr   s   & r   test_backgroundTestCurses.test_background  s   mmAr1a(

1a'ckkmW- 	C0D0B+A+C))*&2B2B(BC!Q1!Q1A 	0!Q1!Q1f&&'&2B2B(BC!Q63C3C)CD!Q63C3C)CDr   c           	     "   \         P                  ! ^^^^4      p\        V4       \         P                  ! ^^^^4      p\        ^4       F  pVP	                  V^ R4       K  	  VP                  V4       V P                  VP                  ^ ^ 4      R4       V P                  VP                  ^^ 4      R4       V P                  VP                  ^^ 4      R4       V P                  VP                  ^^ 4      R4       VP                  V4       V P                  VP                  ^ ^ 4      R4       V P                  VP                  ^^ 4      R4       V P                  VP                  ^^ 4      R4       V P                  VP                  ^^ 4      R4       VP                  V^^^^^^4       V P                  VP                  ^^ 4      R4       V P                  VP                  ^^ 4      R	4       V P                  VP                  ^^ 4      R4       VP                  V^^^^^^4       V P                  VP                  ^^ 4      R
4       V P                  VP                  ^^ 4      R4       V P                  VP                  ^^ 4      R4       R# )rm   s   sectetur_________s   piscing_elit,____s   _do_eiusmod______s   _________________s   sectetur       __s   piscing elit,  __s    do eiusmod    __s   __r_sit_amet_____s   __ectetur________s   __r sit amet_____s   __ectetur   _____N_________________)	r   r   r   ranger   overlayr   r   	overwrite)r   srcwindstwinis   &   r   test_overlayTestCurses.test_overlay  s&   q"a+Fq"a+qAMM!Q'  	va+-ABa+-ABa+-ABa+-AB a+-ABa+-ABa+-ABa+-ABvq!Q1b1a+-ABa+-ABa+-ABAq!Q3a+-ABa+-ABa+-ABr   c                    \         P                  ! ^^^^4      pVP                  4        VP                  ^^4       VP	                  4        VP                  4        \         P                  ! 4        R# r   )r   r   noutrefreshredrawln	redrawwinr   doupdater   s   & r   test_refreshTestCurses.test_refresh6  sJ    mmAr1a(Qr   resizec                    \         P                  ! ^^^^4      pVP                  ^^4       V P                  VP	                  4       R4       VP                  ^^4       V P                  VP	                  4       R4       R# )rm   N)rz      )rm   rs   )r   r   r'  r   r   r   s   & r   test_resizeTestCurses.test_resize>  s^    mmAr1a(

1b1

1b1r   enclosec                   \         P                  ! ^^^^4      pV P                  VP                  ^^4      R4       V P                  VP                  ^^4      R4       V P                  VP                  ^^4      R4       V P                  VP                  ^^4      R4       V P                  VP                  ^^4      R4       V P                  VP                  ^^4      R4       R# )rm   TFN)r   r   r   r,  r   s   & r   test_encloseTestCurses.test_encloseF  s    mmAr1a(ckk!Q'.ckk!Q'/ckk!Q'/ckk!R($/ckk!R(%0ckk!R(%0r   c                   \         P                  ! ^^^^4      pVP                  ^^R4       \        P                  ! 4       ;_uu_ 4       pVP                  V4       ?VP                  ^ 4       \         P                  ! V4      pV P                  VP                  4       R4       V P                  VP                  4       R4       V P                  VP                  ^^ 4      R4       RRR4       R#   + '       g   i     R# ; i)rm   r  s    Lorem ipsumNrv   )rm   r|   )r   r   r   rR   rS   putwinseekgetwinr   r   r   r   )r   r   fs   &  r   test_putwinTestCurses.test_putwinP  s    mmAr1a(

1a'##%%JJqMFF1I--"CS\\^V4S\\^W5SYYq!_o> &%%%s   
BC00D	c                	   \         P                  ! ^^
^^4      pVP                  RRRRRRRR4       V P                  VP	                  ^ ^ 4      R	4       V P                  VP	                  ^^ 4      R
4       V P                  VP	                  ^^ 4      R4       VP                  RRRRRRRR4       VP                  ^A^B^C^D^E^F^G^H4       V P                  \        VP                  ^A^B^C^D^E. ^G^H4
       V P                  \        VP                  ^A^B^C^D^E^F^G^H^I4       V P                  \        VP                  ^A^B^C^D^E^F^G^H^I4       VP                  ^A^B^C^D^E^F^G4       VP                  ^A^B^C^D^E^F4       VP                  ^A^B^C^D^E4       VP                  ^A^B^C^D4       VP                  ^A^B^C4       VP                  ^A^B4       VP                  ^A4       VP                  4        VP                  RR4       V P                  VP	                  ^ ^^4      R4       V P                  VP	                  ^^ 4      R4       V P                  VP	                  ^^^4      R4       VP                  RR4       VP                  ^A^C4       V P                  \        VP                  ^A^B^C4       V P                  \        VP                  ^A4       VP                  4        VP                  ^^4       VP                  R^4       V P                  VP	                  ^^^4      R4       VP                  R^4       VP                  ^-^4       VP                  R^\         P                  4       VP                  ^^R^4       VP                  ^^R^\         P                  4       VP                  ^^4       VP                  R^4       VP                  R^4       VP                  ^a^4       VP                  R^\         P                  4       VP                  ^^R^4       VP                  ^^R^\         P                  4       V P                  VP                  ^^4      ^;\         P                  ,          4       V P                  VP                  ^^4      ^;\         P                  ,          4       V P                  VP                  ^^4      ^a4       R# )rm   |!-r  +\r  /s
   +--------\s
   |        !s
   #________/   |   !   -   _   +   \r     /:~s   ~~~~~~~~s
   :        :   :   ~s    ----- r      a;N)r   r   borderr   r   r   	TypeErrorboxr   hliner   vline
A_STANDOUTr   r   s   & r   test_borders_and_lines!TestCurses.test_borders_and_lines\  s   mmAr1a(

3S#c3	(1a.91a-81a-8

4tTd	,

2r2rr2r	#)SZZb"b"b"b	:)SZZb"b"b"b"	>)SZZb"b"b"b"	>

2r2r2r2.

2r2r2r*

2r2r2&

2r2r"

2r2

2r

2

S1a+[91aM:1a+[9dB)SWWb"b9)SWWb1	A		#q1a+Z8		$		"a		#q&--(		!QQ		!QQ.A		#q		$		"a		#q&++,		!QQ		!QQ 1 12!Q63D3D)DE!Q63D3D)DE!Q1r   c                @   V P                  \        P                  ! R 4      R 4       V P                  \        P                  ! R4      R 4       V P                  \        P                  ! ^A4      R 4       V P                  \        P                  ! R4      R4       V P                  \        P                  ! R4      R4       V P                  \        P                  ! ^
4      R4       V P                  \        \        P                  R4       V P                  \        \        P                  R4       V P                  \        \        P                  R4       V P                  \        \        P                  R4       V P                  \
        \        P                  R
4       R	# )r   r      
s   ^J
r   s   AB ABN            )r   r   unctrlr   rL  r   rd   s   &r   test_unctrlTestCurses.test_unctrl  s   t,d3s+T2r*D1u-u5t,e4r*E2)V]]C8)V]]E:)V]]B7)V]]D9->r   c                ~   V P                   '       g   V P                  R 4       V P                  \        P                  ! 4       R4       \        P
                  ! 4        V P                  \        P                  ! 4       R4       \        P                  ! 4        V P                  \        P                  ! 4       R4       R# )requires terminalFTN)rH   r+   r   r   isendwinrZ   r$  rd   s   &r   test_endwinTestCurses.test_endwin  sj    {{{MM-.foo'/foo'.foo'/r   c                   V P                  \        P                  ! R 4      \        4       V P	                  \        P                  ! R4      R4       V P	                  \        P                  ! R4      R4       V P                  \        P
                  ! R4      \        4       V P	                  \        P
                  ! R 4      R4       V P	                  \        P
                  ! R4      R4       V P                  \        P                  ! R4      \        \        R4      34       V P                  \        P                  ! R 4      4       V P                  \        P                  ! R4      4       \        P                  ! R4      pVeq   V P                  V\        4       \        P                  ! V^4       \        P                  ! V^4      pV P                  V\        4       \        P                  ! V4       \        P                  ! R4       R# )hccolscrNcuds   abc
rp   r   )assertIsInstancer   	tigetflagintr   tigetnumtigetstrbytestypeassertIsNonetparmputp)r   re  cud_2s   &  r   test_terminfoTestCurses.test_terminfo  sW   f..t4c:))&126))$/4foof5s;.3.3food3eT$Z5HI&//$/0&//&12ooe$?!!#u-LLa LLa(E!!%/KKHr   c                *   \         P                  ! ^4       \         P                  ! 4        \         P                  ! 4        V P	                  \         P
                  ! 4       R4       \         P                  ! ^d4       \         P                  ! ^2^24       R# rw   FN)r   delay_outputflushinpr$  r   r^  napmsnewpadrd   s   &r   test_misc_module_funcs!TestCurses.test_misc_module_funcs  sS    Afoo'/Sb"r   c                
   V P                  \        P                  ! 4       \        4       V P                  \        P                  ! 4       \        4       V P                  \        P
                  ! 4       \        4       V P                  \        P                  ! 4       \        4       V P                  \        P                  ! 4       \        4       V P                  \        P                  ! 4       \        4       \        P                  ! 4       pV P                  V\        4       V P                  \        V4      ^4       \        P                  ! 4       pV P                  V\        4       V P                  \        V4      ^4       R# rw   N)rf  r   termnamerk  longnamebaudraterh  has_icboolhas_il	termattrskillcharr   r   	erasechar)r   r   s   & r   test_env_queriesTestCurses.test_env_queries  s    foo/7foo/7foo/5fmmot4fmmot4f..0#6OOa'Q#a'Q#r   c                   V P                   pVP                  R 4       VP                  R4       VP                  R 4       VP                  R4       VP                  R4       VP                  R 4       \	        VR4      '       d#   VP                  R 4       VP                  R4       VP                  R 4       VP                  R4       VP                  R 4       VP                  R4       VP                  ^^
4       \        P                  ! 4        \        P                  ! R 4       \        P                  ! R4       \        P                  ! 4        R# )TFimmedokN)r   clearokidcokidlokr   r  leaveokr   	setscrregr   nonlnlr   s   & r   test_output_optionsTestCurses.test_output_options  s    tuTUUT69%%NN4 NN5!tuB		$		%		r   c                ,   V P                   pV P                  '       d   \        P                  ! 4        \        P                  ! 4        \        P                  ! R 4       \        P                  ! R4       \        P
                  ! R4       \        P
                  ! R 4       \        P                  ! 4        \        P                  ! R 4       \        P                  ! R4       \        P                  ! 4        \        P                  ! 4        \        P                  ! 4        \        P                  ! R 4       \        P                  ! R4       \        P                  ! ^4       \        P                  ! ^4       VP                  R4       VP                  R 4       \        P                  ! R4       \        P                  ! R 4       VP                  R4       VP                  R 4       \        P                  ! 4        \        P                  ! R4       \        P                  ! R 4       \        P                  ! 4        VP!                  R4       VP!                  R 4       VP#                  R4       VP#                  ^ 4       VP#                  ^4       R# )FTNrp   )r   rH   r   nocbreakcbreak	intrflushrawnorawr   r   	halfdelaykeypadmetanodelay	noqiflushqiflush	notimeouttimeoutr   s   & r   test_input_optionsTestCurses.test_input_options  s   ;;;OOMMOMM% MM$T"U#JJLJJuJJtLLNEDdeDEtuturqqr   	typeaheadc                    \         P                  ! \        P                  P	                  4       4       \         P                  ! R4       R# )rw   Nrp   )r   r  r;   	__stdin__r>   rd   s   &r   test_typeaheadTestCurses.test_typeahead)  s+    --/0r   c                    V P                   '       g   V P                  R 4       \        P                  ! 4        \        P                  ! 4        R# )r]  N)rH   r+   r   def_prog_modereset_prog_moderd   s   &r   test_prog_modeTestCurses.test_prog_mode.  s0    {{{MM-. r   c                   \         P                  ! R 4      f   \         P                  ! R4      e   \         P                  ! 4        R#  \         P                  ! 4        R#   \         P                   d    T P	                  R4        R# i ; i)belNflashzbeep() failed)r   rj  beeperrorr+   rd   s   &r   	test_beepTestCurses.test_beep4  sV    OOE".w'3KKM/<< /o./   	A   &B
	B
c                   \         P                  ! R 4      f   \         P                  ! R4      e   \         P                  ! 4        R#  \         P                  ! 4        R#   \         P                   d    T P	                  R4        R# i ; i)r  Nr  zflash() failed)r   rj  r  r  r+   rd   s   &r   
test_flashTestCurses.test_flash>  sW    OOE".w'3LLN0<< 0./0r  c                    R FL  w  r\         P                  ! V4      e   \         P                  ! V4       K5   \         P                  ! V4       KN  	  R#   \         P                   d     Kj  i ; i)r   N))r   civis)rr   cvvis)rw   cnorm)r   rj  curs_setr  )r   viscaps   &  r   test_curs_setTestCurses.test_curs_setH  sS    BHCs#/$OOC( C || s   AA.-A.get_escdelayc                    \         P                  ! 4       pV P                  V\        4       \         P                  ! ^4       V P                  \         P                  ! 4       ^4       \         P                  ! V4       R# )   N)r   r  rf  rh  set_escdelayr   )r   escdelays   & r   test_escdelayTestCurses.test_escdelayR  sU    &&(h,B,,.3H%r   get_tabsizec                    \         P                  ! 4       pV P                  V\        4       \         P                  ! ^4       V P                  \         P                  ! 4       ^4       \         P                  ! V4       R# )rz   N)r   r  rf  rh  set_tabsizer   )r   tabsizes   & r   test_tabsizeTestCurses.test_tabsizeZ  sU    $$&gs+1++-q17#r   getsyxc                   \         P                  ! 4       w  rV P                  V\        4       V P                  V\        4       \         P                  ! ^^4       V P                  \         P                  ! 4       R4       R# )rz   N)rz   rm   )r   r  rf  rh  setsyxr   )r   yxs   &  r   test_getsyxTestCurses.test_getsyxb  sS    }}a%a%a&1r   c                0    R\         P                  RRRRR3# )rw   rp                                   rX  r   COLORSrd   s   &r   
bad_colorsTestCurses.bad_colorsj  s    FMM:uj%OOr   c                *    \         P                  RRR3# )rr   r  r  rX  r  rd   s   &r   bad_colors2TestCurses.bad_colors2m  s    ueU33r   c                    R# )rw   )rp   r  r  r  r  rX  r%   rd   s   &r   	bad_pairsTestCurses.bad_pairsp  s    @@r   c                    V P                  \        P                  ! 4       \        4       V P                  \        P                  ! 4       \        4       R # rc   )rf  r   r*   r  can_change_colorrd   s   &r   test_has_colorsTestCurses.test_has_colorss  s4    f//148f557>r   c                T   \         P                  ! 4       '       g   V P                  R 4       \         P                  ! 4        \        '       d[   \        R\         P                   2\        P                  R7       \        R\         P                   2\        P                  R7       R# R# )r)   z	COLORS = )r6   zCOLOR_PAIRS = N)
r   r*   r+   r,   r   r9   r  r;   r<   COLOR_PAIRSrd   s   &r   test_start_colorTestCurses.test_start_colorw  si      ""MM347Ifmm_-CJJ?N6#5#5"67cjjI r   c                l   V P                  \        P                  ! \        P                  4      R4       \        P                  ! ^ 4       \        P                  ^,
          p\        P                  ! V4       V P                  4        F(  pV P                  \        \        P                  V4       K*  	  R# )r   Nr   r   r   )r   r   color_contentCOLOR_BLACKr  r  r   r   )r   maxcolorcolors   &  r   test_color_contentTestCurses.test_color_content  sv    --f.@.@A9MQ==1$X&__&Ej&*>*>F 'r   c           	     &   \         P                  ! 4       '       g   V P                  R 4       \         P                  ! ^ 4      p \         P                  ! ^ .VO5!   V P                  ! \         P                  ^ .VO5!   \         P                  ! ^ ^ ^ ^ 4       V P                  \         P                  ! ^ 4      R4       \         P                  ! ^ RRR4       V P                  \         P                  ! ^ 4      R4       \         P                  ^,
          p\         P                  ! V4      p\         P                  ! V.VO5!   V P                  ! \         P                  V.VO5!   \         P                  ! V^ RR4       V P                  \         P                  ! V4      R4       V P                  4        F+  pV P                  \        \         P                  V^ ^ ^ 4       K-  	  R F{  pV P                  \        \         P                  ^ V^ ^ 4       V P                  \        \         P                  ^ ^ V^ 4       V P                  \        \         P                  ^ ^ ^ V4       K}  	  R#   \         P
                   d    T P                  R4        EL3i ; i)	zcannot change colorz)cannot change color (init_color() failed)    Nr  )r  r  r  )r   r  r  )rp   i  )r   r  r+   r  
init_colorr  rL   r   r  r  r   r   )r   oldr  r  comps   &    r   test_init_colorTestCurses.test_init_color  s   &&((MM/0""1%	Ga&#& 	))13s3!Q1%--a0)<!T4.--a02DE==1$""8,()S)))8:c:(AsD1--h7H__&Ej&*;*;UAq!L 'Dj&*;*;QaKj&*;*;Q4Kj&*;*;Q1dK # || 	GMMEF	Gs   I& &&JJc                   \         P                  p\        \         R 4      '       d   \         P                  ! 4       '       d&   V^\         P                  ,          ^,           ,          p\         P                  ! 4       '       d!   R\         P
                  u;8:  d   R8  d   M M\        V\        4      p \         P                  ! V^,
          ^ ^ 4       V# V#   \         d    \         P                  p T# i ; i)ncurses_version)r}   rw   )r}   rr   )
r   r  r   has_extended_color_supportr  r  min	SHORT_MAX	init_pairr   )r   
pair_limits   & r   get_pair_limitTestCurses.get_pair_limit  s    ''
6,--0022ao11
5577!7!7@&@ Y7
0  aA6 z  0#//
0s   3C C54C5c                   \         P                  ! ^ 4       V P                  4       ^,
          pV^ 8  d   \         P                  ! V4       V P                  4        F(  pV P	                  \
        \         P                  V4       K*  	  R# r   N)r   pair_contentr  r  r   r   )r   maxpairpairs   &  r   test_pair_contentTestCurses.test_pair_content  sa    A%%'!+Q;(NN$Dj&*=*=tD %r   c                P   \         P                  ! ^4      p\         P                  ! ^.VO5!   V P                  ! \         P                  ^.VO5!   \         P                  ! ^^ ^ 4       V P	                  \         P                  ! ^4      R4       \         P
                  ^,
          p\         P                  ! ^V^ 4       V P	                  \         P                  ! ^4      V^ 34       \         P                  ! ^^ V4       V P	                  \         P                  ! ^4      ^ V34       V P                  4       ^,
          pV^8  d?   \         P                  ! V^ ^ 4       V P	                  \         P                  ! V4      R4       V P                  4        F*  pV P                  \        \         P                  V^ ^ 4       K,  	  V P                  4        FQ  pV P                  \        \         P                  ^V^ 4       V P                  \        \         P                  ^^ V4       KS  	  R# )rw   Nrn   )r   r  r  rL   r   r  r  r  r   r   r  )r   r  r  r  r	  r  s   &     r   test_init_pairTestCurses.test_init_pair  s   !!!$!S!((!2c2Aq!,,Q/8==1$Ha(,,Q/(A?Ax(,,Q/!X?%%'!+Q;Wa+V0096BNN$Dj&*:*:D!QG %%%'Ej&*:*:AuaHj&*:*:Aq%H (r   c                   R Fz  p\         P                  ! V4      pV P                  \         P                  ! V4      W4       V P                  \         P                  ! V\         P                  ,          4      V4       K|  	  V P                  \         P                  ! ^ 4      ^ 4       V P                  \         P                  ! ^ 4      ^ 4       R# )r   N)r   rw      )r   
color_pairr   pair_numberr   )r   r	  attrs   &  r   test_color_attrsTestCurses.test_color_attrs  s    D$$T*DV//5tBV//v}}0DEtL  	**1-q1++A.2r   use_default_colorsc                     \         P                  ! 4        V P	                  \         P
                  ! ^ 4      R4       R#   \         P                   d    T P                  R 4        LPi ; i)z1cannot change color (use_default_colors() failed)Nro   )r   r  r  r+   r   r  rd   s   &r   test_use_default_colors"TestCurses.test_use_default_colors  sU    	O%%' 	,,Q/: || 	OMMMN	Os   ? &A('A(assume_default_colorsc                d    \         P                  ! RR4       V P	                  \         P
                  ! ^ 4      R4       \         P                  ! \         P                  \         P                  4       V P	                  \         P
                  ! ^ 4      \         P                  \         P                  34       \         P                  ! \         P                  R4       V P	                  \         P
                  ! ^ 4      \         P                  R34       \         P                  ! R\         P                  4       V P	                  \         P
                  ! ^ 4      R\         P                  34       \         P                  ! RR4       R#   \         P                   d    T P                  R4        ELi ; i)rw   z4cannot change color (assume_default_colors() failed)Nrp   ro   )
r   r  r  r+   r   r  COLOR_YELLOW
COLOR_BLUE	COLOR_REDCOLOR_GREENrd   s   &r   test_assume_default_colors%TestCurses.test_assume_default_colors  s)   	R((R0 	,,Q/:$$V%8%8&:K:KL,,Q/&2E2EvGXGX1YZ$$V%5%5r:,,Q/&2B2BB1GH$$R););<,,Q/"f6H6H1IJ$$R, || 	RMMPQ	Rs   F &F/.F/c                   V P                  \        P                  ! ^A4      R4       V P                  \        P                  ! ^4      R4       V P                  \        P                  ! ^4      R4       V P                  \        P                  ! ^ 4      R4       V P                  \        \        P                  R4       V P                  \        P                  ! R4      \        4       R# )A   r   s   ^Ms   ^?s   ^@   Nrp   )r   r   keynamer   r   rf  rk  rd   s   &r   test_keynameTestCurses.test_keyname  s    +T2+U3,e4*E2*fnnb9fnnS159r   has_keyc                2    \         P                  ! ^4       R# )ry   N)r   r(  rd   s   &r   test_has_keyTestCurses.test_has_key  s    rr   getmousec                (   \         P                  ! \         P                  4      w  rV^ 8X  d   V P                  R4       \         P                  ! ^
4       \         P
                  ! ^ ^ ^ ^ \         P                  4       \         P                  ! 4       pR# )r   zmouse stuff not availableN)r   	mousemaskBUTTON1_PRESSEDr+   mouseinterval
ungetmouser,  )r   	availmaskoldmaskms   &   r   test_getmouseTestCurses.test_getmouse	  se    %//0F0FG>MM56R !Q1f&<&<=OOr   panelc                2   \         P                  ! ^
^
4      p\         P                  P                  V4      pV P	                  \         P                  P
                  RR7      ;_uu_ 4        VP                  4        RRR4       R#   + '       g   i     R# ; i)rq   z!userptr should fail since not set)msgN)r   r   r7  	new_panelr   r  userptr)r   wps   &  r   test_userptr_without_set#TestCurses.test_userptr_without_set  sq    MM"b!LL""1%v||11#F  H HIIKH H H Hs   *BB	c                h   \         P                  ! ^
^
4      p\         P                  P                  V4      p\	        4       p\
        P                  ! V4      p\        ^d4       F  pVP                  V4       K  	  VP                  R4       V P                  \
        P                  ! V4      VR4       R# )rq   Nzset_userptr leaked references)
r   r   r7  r:  objectr;   getrefcountr  set_userptrr   )r   r<  r=  objnrefsr  s   &     r   test_userptr_memory_leak#TestCurses.test_userptr_memory_leak  s    MM"b!LL""1%h$sAMM#  	
d-u8	:r   c                   a \         P                  ! ^
^
4      p\         P                  P                  V4      o ! V3R lR4      pSP	                  V! 4       4       SP	                  R4       R# )rq   c                   .   <a  ] tR tRt o V3R ltRtV tR# )+TestCurses.test_userptr_segfault.<locals>.Ai-  c                *   < SP                  R 4       R # rc   )rC  )r   r7  s   &r   __del__3TestCurses.test_userptr_segfault.<locals>.A.__del__.  s    !!$'r   r%   N)__name__
__module__r   __firstlineno__rL  __static_attributes____classdictcell__)__classdict__r7  s   @r   r   rJ  -  s     ( (r   r   N)r   r   r7  r:  rC  )r   r<  r   r7  s   &  @r   test_userptr_segfault TestCurses.test_userptr_segfault)  sQ    MM"b!&&q)	( 	( 	!#$r   c                    \         P                  ! ^
^
4      p\         P                  P                  V4      p\	        V \        V4      4       R# )rq   N)r   r   r7  r:  r   rl  )r   r<  r7  s   &  r   test_disallow_instantiation&TestCurses.test_disallow_instantiation3  s6     MM"b!&&q)$T4;7r   is_term_resizedc                    \         P                  \         P                  r!V P                  \         P                  ! W4      R 4       V P                  \         P                  ! V^,
          V^,
          4      R4       R# ri   )r   LINESCOLSr   rY  r   linesrc  s   &  r   test_is_term_resizedTestCurses.test_is_term_resized;  sM    llFKKtf,,U95Af,,U1Wd1f=tDr   resize_termc                t   \         P                  ! 4        \         P                  \         P                  r!V^,
          pV^,           p\         P                  ! W44       V P                  \         P                  V4       V P                  \         P                  V4       \         P                  ! W4       V P                  \         P                  V4       V P                  \         P                  V4       V P                  \        4      ;_uu_ 4        \         P                  ! R^4       RRR4       V P                  \        4      ;_uu_ 4        \         P                  ! ^R4       RRR4       \         P                  ! 4       pVP                  4        R#   + '       g   i     Lt; i  + '       g   i     LJ; irw   i  N)
r   update_lines_colsr[  r\  ra  r   r   r   rX   r\   r   r^  rc  	new_linesnew_colsr^   s   &     r   test_resize_termTestCurses.test_resize_termA  s     "llFKKtAI	!89/y1h/5'u-d+}--ua( .}--q%( . nn		 .---   FF'F$	'F7	
resizetermc                t   \         P                  ! 4        \         P                  \         P                  r!V^,
          pV^,           p\         P                  ! W44       V P                  \         P                  V4       V P                  \         P                  V4       \         P                  ! W4       V P                  \         P                  V4       V P                  \         P                  V4       V P                  \        4      ;_uu_ 4        \         P                  ! R^4       RRR4       V P                  \        4      ;_uu_ 4        \         P                  ! ^R4       RRR4       \         P                  ! 4       pVP                  4        R#   + '       g   i     Lt; i  + '       g   i     LJ; irc  )
r   rd  r[  r\  rk  r   r   r   rX   r\   re  s   &     r   test_resizetermTestCurses.test_resizetermW  s     "llFKKtAI	!8).y1h/%&u-d+}--eQ' .}--a' . nn		 .---rj  c                   \         P                  ! R 4       V P                  V P                  P	                  4       R4       \         P                  ! R4       V P                  V P                  P	                  4       R4       \         P                  ! ^C4       V P                  V P                  P	                  4       R4       R# )r   r   BCN)r   r   r   r   getkeyrd   s   &r   test_ungetchTestCurses.test_ungetchm  s}    t++-s3s++-s3r++-s3r   c                f    \         P                  ! R 4       V P                  P                  4        R# )i  N)r   r   r   rr  rd   s   &r   test_issue6243TestCurses.test_issue6243u  s    tr   	unget_wchr  z.unget_wch is broken in ncurses 5.7 and earlierc           
        V P                   pVP                  pR F  p VP                  V4        \        P
                  ! T4       TP                  4       pT P                  YS4       \        T4      p\        P
                  ! T4       TP                  4       pT P                  YS4       K  	  R#   \         d     K  i ; i  \         d2   pT P                  RT: RTP                  : RT: 24        Rp?LRp?ii ; i)r   z
unget_wch(z) failed with encoding z: N)r      ér   u   􏿿)r   r   r   r   r   rx  	Exceptionfailget_wchr   ord)r   r   r   cherrreadcodes   &      r   test_unget_wchTestCurses.test_unget_wchy  s     ??7B		(#8  $ >>#DT&r7DT">>#DT&! 8 &   8		#7 8 88s(   B0C0B?>B?C>'C99C>c                d   V P                   p^ RIpVP                  pVP                  V4       V P	                  \
        4      ;_uu_ 4        ^
Vn        RRR4       W1n        V P	                  \
        4      ;_uu_ 4        V=RRR4       R#   + '       g   i     L@; i  + '       g   i     R# ; ir  )r   codecsr   lookupr   rL  )r   r   r  r   s   &   r   test_encodingTestCurses.test_encoding  sx    ??hy)) FO *"y)) *) *) *))s   B>BB	B/	z6Signature information for builtins requires docstringsc                    V P                   p \        P                  ! VP                  4      pV P	                  V4       VP                  P                  P                  R 4      ^ ,          pV P                  RV4       R#   \
         d     LMi ; i)rU  z[y, x,]N)	r   inspect	signaturer   assertFalser   __doc__splitr  )r   r   r  human_readable_signatures   &   r   test_issue21088TestCurses.test_issue21088  sy     	))&,,7IY' $*<<#7#7#=#=d#CA#F i!9:  		s   1A? ?BBc                    \         P                  ! ^^^^4      p\         P                  P                  VRR7      pVP	                  4       w  r4VP                  V^,
          V^,
          4       VP                  R4       R# )rm   T)insert_moder   N)r   r   textpadTextboxr   r'  _insert_printable_char)r   r   rM  r^  rc  s   &    r   test_issue13051TestCurses.test_issue13051  s`    mmAr1a(nn$$Sd$;lln

57DF#""3'r   )rH   rI   rT   r   N)c   )rm   r{   )VrN  rO  r   rP  classmethodrB   r_   r   re   rj   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r&   r  r  r  r%  r*  r.  r5  rQ  rZ  r_  rq  ry  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r.   r  r  r  r
  r  r  r  r   r&  r*  r5  r>  rF  rT  r   rW  r_  rh  rm  rs  rv  r   skipIfgetattrr   r  r  r	   r  r  rQ  rR  rS  s   @r   r3   r3   9   s     ' '.` (# $
 )$ %23h	1.>`$5L 5DF> 0;,<((>T !)H *H<EBC: !*2 +2 !+1 ,1
?62p?00	$ :,\ +& '!/0 .)& *& -($ )$ (#2 $2P4A?J G G L L:" E E I I. 3 3 ./;  0; 12-  3-: )$ % *% & '" # '"
: #
: '"  #  '"8 # 8 +,E -E
 -( )* ,' (*4 +&__WV%6>GEG'G ''*	  __)MO;O;8 !*( +(r   r3   c                   ^   a  ] tR tRt o ]! R4      R 4       t]! R4      R 4       tR tRtV t	R# )		MiscTestsi  rd  c                D   \         P                  ! 4        \         P                  \         P                  r!^ ;\         n        \         n        \         P                  ! 4        V P	                  \         P                  V4       V P	                  \         P                  V4       R# r  )r   rd  r[  r\  r   r]  s   &  r   test_update_lines_cols MiscTests.test_update_lines_cols  s_      "llFKKt%&&v{  "u-d+r   r  c                   \         P                  p\        '       d   \        R \         P                   2RR7       V P	                  VR,          \
        4       V P                  \        V4      ^4       V P	                  V^ ,          \        4       V P	                  V^,          \        4       V P	                  V^,          \        4       V P	                  VP                  \        4       V P	                  VP                  \        4       V P	                  VP                  \        4       V P                  V^ ,          VP                  4       V P                  V^,          VP                  4       V P                  V^,          VP                  4       V P                  VP                  ^ 4       V P                  VP                  ^ 4       V P                  VP                  ^ 4       R# )zncurses_version = T)r7   :NNNN)r   r  r   r9   rf  tupler   r   rh  majorminorpatchassertGreaterEqual)r   vs   & r   test_ncurses_versionMiscTests.test_ncurses_version  sO   ""7&v'='=&>?tLadE*Q#adC(adC(adC(aggs+aggs+aggs+1qww'1qww'1qww'+++r   c                \    \         P                  ! 4       pV P                  V\        4       R # rc   )r   r  rf  r  )r   rs   & r   test_has_extended_color_support)MiscTests.test_has_extended_color_support  s     --/a&r   r%   N)
rN  rO  r   rP  r   r  r  r  rQ  rR  r  s   @r   r  r    sA     -., /, +,, -,&' 'r   r  c                   D   a  ] tR tRt o R tR tR tR tR tR t	Rt
V tR	# )
	TestAsciii  c                    \         P                  P                   F#  pV P                  \         P                  V4       K%  	  R # rc   )r   asciicontrolnamesassertHasAttr)r   r   s   & r   test_controlnamesTestAscii.test_controlnames  s*    LL--Dv||T2 .r   c                  a aa VVV 3R  lp\        R4       EF  o\        S4      o\        S.4      pV! \        P                  P
                  VP                  4       4       V! \        P                  P                  VP                  4       4       V! \        P                  P                  VP                  4       4       V! \        P                  P                  VP                  4       4       V! \        P                  P                  VP                  4       4       V! \        P                  P                  VP                  4       4       V! \        P                  P                  S^8  4       V! \        P                  P                  S^8  4       V! \        P                  P                  S^ 8  4       T! \        P                  P                  S^ 8  ;'       g    S^8H  4       V! \        P                  P                  SR9   4       T! \        P                  P                   ^ Su;8  ;'       d    ^~8*  Mu 4       T! \        P                  P"                  ^ Su;8*  ;'       d    ^~8*  Mu 4       V! \        P                  P$                  S\&        P(                  9   4       V! \        P                  P*                  S\&        P,                  9   4       EK  	  RRR\.        P0                  \.        P0                  ^,           3 EF  oS P3                  \        P                  P                  S4      4       S P3                  \        P                  P                  S4      4       S P3                  \        P                  P                  S4      4       S P3                  \        P                  P                  S4      4       S P3                  \        P                  P                  S4      4       S P3                  \        P                  P                  S4      4       S P3                  \        P                  P                  S4      4       S P3                  \        P                  P                  S4      4       S P3                  \        P                  P                  S4      4       S P3                  \        P                  P                  S4      4       S P3                  \        P                  P!                  S4      4       S P3                  \        P                  P#                  S4      4       S P3                  \        P                  P%                  S4      4       S P3                  \        P                  P+                  S4      4       EK  	  S P3                  \        P                  P                  R4      4       R# )c                    < SP                  SV R 7      ;_uu_ 4        SP                  V ! S4      V4       SP                  V ! S4      V4       RRR4       R#   + '       g   i     R# ; i))r  r   N)r   r   )r   expectedr   r  r   s   &&r   check$TestAscii.test_ctypes.<locals>.check  sM    ..  a(3  a(3 /...s   1AA)	r$  z 	Nr   rp   )r  chrrk  r   r  isalnumisalphaisdigitislowerisspaceisupperisasciiismetaisctrliscntrlisblankisgraphisprintispunctstringpunctuationisxdigit	hexdigitsr;   
maxunicoder  )r   r  br   r  s   f  @@r   test_ctypesTestAscii.test_ctypes  s   	4
 sAAAqc
A&,,&&		4&,,&&		4&,,&&		4&,,&&		4&,,&&		4&,,&&		4&,,&&C0&,,%%qCx0&,,%%q2v.&,,&&B(:(:!s(;&,,&&U
3&,,&&Q#6&,,&&a37&,,&&V-?-?(?@&,,''f.>.>)>?% ( b#s~~s~~a/?@AV\\11!45V\\11!45V\\11!45V\\11!45V\\11!45V\\11!45V\\11!45V\\0034V\\11!45V\\11!45V\\11!45V\\11!45V\\11!45V\\22156 A" 	,,R01r   c                    \         P                  P                  pV P                  V! R 4      R4       V P                  V! R4      R4       V P                  V! \        R 4      4      \        R4      4       R# )   Ár   N)r   r  r   r~  )r   r  s   & r   
test_asciiTestAscii.test_ascii  sV    ""v,sS)s6{+SX6r   c                   \         P                  P                  pV P                  V! R 4      R4       V P                  V! R4      R4       V P                  V! R4      R4       V P                  V! \	        R 4      4      \	        R4      4       R# )JrU  @ N)r   r  ctrlr   r~  )r   r  s   & r   	test_ctrlTestAscii.test_ctrl!  si    ||  cD)dT*cD)c#hT3r   c                    \         P                  P                  pV P                  V! R 4      R4       V P                  V! R4      R4       V P                  V! \	        R4      4      ^4       R# )rU     r   r  N)r   r  altr   r~  )r   r  s   & r   test_altTestAscii.test_alt(  sQ    llTF+S6*SX-r   c                   \         P                  P                  pV P                  V! R 4      R 4       V P                  V! R4      R4       V P                  V! R4      R4       V P                  V! R4      R4       V P                  V! R4      R4       V P                  V! R4      R4       V P                  V! R4      R	4       V P                  V! \	        R4      4      R4       V P                  V! \	        R4      4      R4       V P                  V! R
4      R4       V P                  V! R4      R4       V P                  V! \	        R
4      4      R4       V P                  V! \	        R4      4      R4       R# )r   r   rJ   z^?rU  z^Jr  z^@r  z!^Jr  z!AN)r   r  rY  r   r~  )r   rY  s   & r   rZ  TestAscii.test_unctrl.  s)   $$c*c*c*c*.t,t,C)3/D	*D1/.F,e4F,d3r   r%   N)rN  rO  r   rP  r  r  r  r  r  rZ  rQ  rR  r  s   @r   r  r    s)     3+2Z74.4 4r   r  c                     . ROpV P                  4       w  r#\        VRV 4       F+  w  rEV P                  V^ VRW4V^,
          8H  ,
           4       K-  	  R# )r  N)	r  zdolor sit amet,consecteturzadipiscing elit,zsed do eiusmodztempor incididuntzut labore etzdolore magnazaliqua.)r   	enumerater   )r   textmaxymaxxr  lines   &     r   r   r   @  sR    
D JDT%4[)

1a5tD1H}567 *r   c                   V   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tRtV tR# )TextboxTestiQ  c                   \        \        P                  R 7      V n        RV P                  P                  n        RV P                  P                  n        \        P                  P                  V P                  4      V n	        R# ))specN)rw   rw   )rq   r)  )
r   r   windowmock_winr   return_valuer   r  r  textboxrd   s   &r   r_   TextboxTest.setUpR  sP    !v}}5+1(.6+~~--dmm<r   c                   V P                   P                  4        \        P                  P	                  V P                   4      pV P                   P
                  P                  4        V P                   P                  P                  ^4       V P                  VP                  R4       V P                  VP                  ^4       V P                  VP                  4       V P                   P                  4        R# rt  )r  
reset_mockr   r  r  r   assert_called_once_withr  r   r  stripspacesrm  lastcmd)r   tbs   & r   	test_initTextboxTest.test_initX  s      "^^##DMM266844Q7/+"**%  "r   c                Z   V P                   P                  4        V P                  P                  \	        R 4      4       V P                   P
                  P                  \	        R 4      4       V P                  P                  \	        R4      4       V P                   P
                  P                  \	        R4      4       V P                  P                  \	        R4      4       V P                   P
                  P                  \	        R4      4       V P                   P                  4        R# )r   r  r   N)r  r  r  
do_commandr~  r   assert_called_withrd   s   &r   test_insertTextboxTest.test_insertc  s      "C)..s3x8C)..s3x8C)..s3x8  "r   c                   V P                   P                  4        V P                  P                  \        P
                  P                  4       V P                  P                  \        P                  4       V P                  P                  \        P
                  P                  4       V P                   P                  4        R # rc   )	r  r  r  r  r   r  BSKEY_BACKSPACEDELrd   s   &r   test_deleteTextboxTest.test_deleten  sp      "0 4 45 0 01  "r   c                   V P                   P                  4        V P                  P                  \        P
                  4       V P                   P                  P                  ^^ 4       V P                   P                  4        R# r|  )r  r  r  r  r   KEY_LEFTr   r  rd   s   &r   test_move_leftTextboxTest.test_move_leftw  R      "0--a3  "r   c                   V P                   P                  4        V P                  P                  \        P
                  4       V P                   P                  P                  ^^4       V P                   P                  4        R# r|  )r  r  r  r  r   	KEY_RIGHTr   r  rd   s   &r   test_move_rightTextboxTest.test_move_right~  sT      " 0 01--a3  "r   c                   V P                   P                  4        V P                  P                  \        P
                  4       V P                   P                  P                  ^^ 4       V P                  P                  \        P                  4       V P                   P                  P                  ^^4       V P                   P                  4        R# r|  )	r  r  r  r  r   r  r   r  r  rd   s   &r   test_move_left_and_right$TextboxTest.test_move_left_and_right  s      "0--a3 0 01--a3  "r   c                   V P                   P                  4        V P                  P                  \        P
                  4       V P                   P                  P                  ^ ^4       V P                   P                  4        R# r  )r  r  r  r  r   KEY_UPr   r  rd   s   &r   test_move_upTextboxTest.test_move_up  sR      ".--a3  "r   c                   V P                   P                  4        V P                  P                  \        P
                  4       V P                   P                  P                  ^^4       V P                   P                  4        R# )rr   N)r  r  r  r  r   KEY_DOWNr   r  rd   s   &r   test_move_downTextboxTest.test_move_down  r  r   )r  r  N)rN  rO  r   rP  r_   r  r  r
  r  r  r  r  r  rQ  rR  r  s   @r   r  r  Q  s7     =	#	####### #r   r  __main__)'r!   r  rJ   r  r;   rR   r   unittest.mockr   test.supportr   r   r   r   r   r	   r
   test.support.import_helperr   r   curses.panelImportErrorr   r&   r.   environgetr:   r   r  r   TestCaser3   r  r  r   r  rN  mainr%   r   r   <module>r*     s_     	  
   #& & & 5
 	  
x	  n   	< 
zz~~f	 
T..TY.=DF	)46D("" D(6FD(N$!'!! !'HU4!! U4p8"I#(## I#X zMMO G,  		s   E EE