a ze@s8ddlZddlZddlZddlZddlZddlZddlZddlmZm Z m Z m Z ede dZ e de dz ddl Z WneyYn0ddZdd Zd d Zejd Zd Zee pedkdeeejdkdGdddejZGdddejZGdddejZddZedkr4edS)N)requires import_moduleverbose SaveSignalscursesz curses.asciizcurses.textpadcCsttt|d|S)Nzrequires curses.%s)unittestZ skipUnlesshasattrrnamer D/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_curses.pyrequires_curses_funcs r csfdd}|S)Ncstfdd}|S)Ncs4t|jstd|g|Ri|dS)Nzrequires curses.window.%s)rstdscrrZSkipTestselfargskwargs)r testr r wrappeds z:requires_curses_window_meth..deco..wrapped functoolswrapsrrr rr decosz)requires_curses_window_meth..decor )r rr r r requires_curses_window_meths rcstfdd}|S)Ncs4ts|dt|g|Ri|dS)Nrequires colors support)r has_colorsskipTest start_colorrrr r r)s z requires_colors..wrappedrrr rr requires_colors(sr ZTERMiunknownz*$TERM=%r, calling initscr() may cause exitcygwinz!cygwin's curses mostly just hangsc@seZdZeddZddZedddZedd d Zd d Z d dZ ddZ ddZ ddZ ddZddZddZddZddZdd Zd!d"Zd#d$Zed%d&d'Zd(d)Zd*d+Zd,d-Zed.d/d0Zed1d2d3Zd4d5Zd6d7Zd8d9Zd:d;Z dd?Z"d@dAZ#dBdCZ$dDdEZ%edFdGdHZ&dIdJZ'dKdLZ(dMdNZ)dOdPZ*edQdRdSZ+edTdUdVZ,edWdXdYZ-dZd[Z.d\d]Z/d^d_Z0d`daZ1e2dbdcZ3e2dddeZ4dfdgZ5e2dhdiZ6e2djdkZ7e2dldmZ8edne2dodpZ9dqdrZ:edsdtduZ;edvdwdxZedyd~dZ?edyddZ@edddZAedddZBedddZCddZDddZEedeFGeHeIdddkdddZJddZKddZLed.ddZMdS) TestCursescCs4trtdttjddtj}tj|ddS)NzTERM=Tfileflush)fd) rprinttermsysstderr __stdout__filenorZ setupterm)cls stdout_fdr r r setUpClass;s zTestCurses.setUpClasscCsTd|_tj|_tj}tjst|}|tj||tj ||tj rdtj }tj |_nLzt dddd}Wn&t yt jddd}d|_Yn0||jd|_t ||t|_|j||jjtr|jdurtjtjt|jddt|_|jrFt|tj|tj|jdS) NTz/dev/ttywbr) buffering)moder2Fr$)isattyr*r,outputr-osdup addCleanupclosedup2 __stderr__openOSErrortempfile TemporaryFilerZ save_signalssaveZrestorerr+r&stdoutr(rZinitscrrZsavettyendwinZresettyerase)rr/Zdup_fdtmpr r r setUpDs>              zTestCurses.setUpfiltercCs tdSN)rrFrr r r test_filtertszTestCurses.test_filteruse_envcCstdtddS)NFT)rrJrHr r r test_use_envzs zTestCurses.test_use_envcCstdd}||d||d||dtdddd}||d||d||d |d d }||d ||d ||d|ddd d }||d ||d ||d|dd }||d||d||d|dddd }||d||d||d|dd||d||d||d ||d ||d ||d||d||d||d| dd||d ||d||d| dd||d||d||ddS)N rrrP)rLrM)rRrL)rMrQ)rSrTrR) ))rRrS)rZ  )r\r]rrV)rrV)rRrV) rnewwin assertEqualgetbegyxZgetparyxgetmaxyxsubwinZderwinZmvwinZmvderwin)rwinwin2Zwin3r r r test_create_windowssT      zTestCurses.test_create_windowscCsj|j}|dddd}|dd|dd||d||d|||d dS) NrMrQrRrLrVrYrU)rRrY)rYrW)rrbmover_getyxZ cursyncup)rrrcr r r test_move_cursors  zTestCurses.test_move_cursorcCs|j}|||d|||d|||d|||d|||d|dd||dd||dd||d|ddd||dd|dddd}|ddd d }||| ||d||d|||| ||dt |d rt j d s||d D]:}|||d||||||qdS)NFTrLrRr\rVrMrQrSrTsyncokZsunos)FTa)rrefreshassertIs is_wintouchedZtouchwinZ untouchwinZ touchlineZis_linetouchedrbZsyncupZsyncdownrr*platform startswithriaddch)rrrcrdrir r r test_refresh_controlsJ   zTestCurses.test_refresh_controlc Csp|j}|j}||dd|d|d|dd}z||WnRtyr|t|j|Yn2ty||}| t |dt |Yn0|dt j |ddd|dddt j ||d ||dd|d|d|d|ttf|dWdn1sD0Y|dt j ||d dS) NrAAA€rVrRrSTF)rencodingrkrfrpUnicodeEncodeError assertRaisesencode OverflowErrorZassertNotEquallenreprrA_BOLDrlrmZechochar)rrrvcencodedr r r test_output_characters8           *z TestCurses.test_output_characterc Cs|j}|j}|j|jfD]}||j|dd|d|dd}z ||Wn"tyx|t|j |Yn0|dt j |ddd|dddt j Wdq1s0Yq|j |j fD]}||j|dd|dd|d dd }z||dWn$ty6|t|j |Yn0|dd |ddt j |dddd|ddddt j Wdq1s0YqdS) NrZabcdsabcduàßçđrVrRrSZ1234s1234u١٢٣٤rL)rrvaddstrinsstrsubTest __qualname__rfrwrxryrr}addnstrinsnstr)rrrvfuncsr r r test_output_strings:     0    zTestCurses.test_output_stringc Cs|j}dD]t}|j|dT|t|j||t|j|d|t|j||t|j|dWdq 1st0Yq dS)N)zasa)argrV)rrrx ValueErrorrrrr)rrrr r r &test_output_string_embedded_null_chars3sz1TestCurses.test_output_string_embedded_null_charscCs|j}|dddtj|dd||dtjB||dddtjB|dd||ddd||dddd ||dd dd d ||dd d d |t |jd |t |jdd d dS)NrrVZABCDrtrSCr\s ABCD s ABrRrYsBCD ) rrrr}rfr_inchinstrrxrrrr r r test_read_from_window=s  z TestCurses.test_read_from_windowcCstdddd}ddddD]}t|q||ddd||d ||dd d ||d ||d ||d ||d||ddS)NrLr[rRzspam rPrSrVs)rSrVrYp)rSrYamrM)rr^ungetchr_Zgetchrgrrcr~r r r test_getchMs zTestCurses.test_getchcCs0tdddd}t|tj|t|jd|t|jdddddddD]}t|qV| |dddd | | dd d | |ddd d | | dd d| |ddd| | dd d| |dd| | dd d| |d| | dd ddS)NrLr[rRiprSzLorem ipsum dolor sit amet rPrVsLors Lo rMsipsums Lo ipsum sdolors dolor ssis si dolor samets amet dolor ) rr^echor8noechorxrZgetstrrr_rrr r r test_getstr\s"  zTestCurses.test_getstrcCstdddd}t||dd|||ddd||ddd|dd |||ddd ||ddd |j |j fD]B}t||||ddd ||ddd qdS) NrLrQrRrrZsLorem iprVdolor sit amet,rSsLor) rr^ lorem_ipsumrfZclrtoeolr_rrstripZclrtobotrCclear)rrcrr r r test_clearrs  zTestCurses.test_clearcCstdddd}t||dd|||ddd|dd||ddd|dd|||ddd||ddd ||ddd ||d dd ||d dd|dd|||ddd||ddd||ddd | t||dd| d||ddd||ddd||ddd||d dd| t||dd| d||ddd||ddd ||ddd ||d dddS)NrLrQrRrsLoem ipsum rTsLoem ipum rVsconsectetur adipiscing elitrSssed do eiusmod rY sLorem ipsum rr) rr^rrfZdelchr_rZdeletelnZinsertlnrZinsdellnrrcr r r test_insert_deletesF        zTestCurses.test_insert_deletecCstdddd}t||d|||ddd|d||ddd|d||ddd ||ddd ||d dd|d dS) NrLrQrRTrrrrrSF)rr^rscrollokZscrollr_rrr r r test_scrolls   zTestCurses.test_scrollcCsHtdddd}|tj|tj|tj||dS)NrLrQrR)rr^Zattronr}ZattroffZattrsetZstandoutZstandendrr r r test_attributess    zTestCurses.test_attributeschgatcCstdddd}|ddd|ddd|dd|tj||dd d ||ddd tjB||dd d tjB|dd|dtj||ddd||dddtjB||dddtjB||ddd|ddtj ||ddd||dddtj B||dd d tj B|ddd tj||dddtj B||dddtjB||dddtjB||dddtj B||dd d tj BdS)NrLrQrRr Lorem ipsumrSzdolor sit ametrZrTrr rVLoerYrlrrMrr]) rr^rrfrZA_BLINKr_rr}Z A_UNDERLINErr r r test_chgats0   zTestCurses.test_chgatcCstdddd}|ddd||d|d||d|d ||d |d ||d |d||d |d tj||d tjB||ddd||ddd |d| d||d||ddd||ddd| d tj||d tjB||dddtjB||ddd tjBdS)NrLrQrRrr)rr__##rtr#r) rr^rassertInZgetbkgdZbkgdsetr_Z A_REVERSErZbkgdrr r r test_backgrounds0      zTestCurses.test_backgroundc Cstdddd}t|tdddd}tdD]}||dd q0||||ddd ||d dd ||d dd||ddd||||ddd||d dd||d dd||ddd||d ddd dd||ddd||ddd||ddd||d ddd dd||ddd||ddd||ddddS)NrLrSrYrTr\rZ_________________ssectetur_________rVspiscing_elit,____rRs_do_eiusmod______s_________________ssectetur __spiscing elit, __s do eiusmod __r]s__r_sit_amet_____s__ectetur________s__r sit amet_____s__ectetur _____) rr^rrangerZoverlayr_rZ overwrite)rZsrcwinZdstwinir r r test_overlays.   zTestCurses.test_overlaycCs@tdddd}||dd||tdS)NrLrQrRrV)rr^Z noutrefreshZredrawlnZ redrawwinrkdoupdaterr r r test_refresh%s  zTestCurses.test_refreshresizecCsLtdddd}|dd||d|dd||ddS)NrLrQrRrY)rYr)rLrQ)rr^rr_rarr r r test_resize-s   zTestCurses.test_resizeenclosecCstdddd}||dd||dd||dd||dd||dd||dd dS) NrLrQrRrVrYr\rTr)rr^ assertTruer assertFalserr r r test_enclose5szTestCurses.test_enclosecCstdddd}|dddtd}||~|dt|}|| d|| d|| ddd Wdn1s0YdS) NrLr[rVrRrrrU)rLr[s Lorem ipsum) rr^rr>r?ZputwinseekZgetwinr_r`rar)rrcfr r r test_putwin@s    zTestCurses.test_putwinc Cs$tdddd}|dddddd d d ||d d d ||dd d||dd d|dddddddd|ddddddd d!|t|jdddddgd d! |t|jddddddd d!d" |t|jddddddd d!d" |ddddddd |dddddd|ddddd|dddd|ddd|dd|d||d#d$||d dd%d&||dd d'||ddd%d&|d(d)|dd|t|jddd|t|jd||dd| dd||ddd*d+| dd| d,d| ddtj | dddd| ddddtj |dd| d-d.| d/d.| d0d.| d-d.tj | ddd-d.| ddd1dtj || ddd2tj B|| ddd2tj B|| d.dd0dS)3NrLrMrR|!-r+\r/rs +--------\rVs | !rYs #________/|!-_+\r/rtBrDEFGHI:~rZs~~~~~~~~s : ::~rTs ----- -rjrSar;;)rr^Zborderr_rrx TypeErrorboxrfZhliner}ZvlineZ A_STANDOUTrrr r r test_borders_and_linesLsr                   z!TestCurses.test_borders_and_linescCs|tdd|tdd|tdd|tdd|tdd|tdd|ttjd|ttjd |ttjd |ttjd |ttjd dS) Nrsrrrt s^J rMrsABZAB)r_runctrlrxrrzrHr r r test_unctrlszTestCurses.test_unctrlcCsT|js|d|tdt|tdt|tddS)Nrequires terminalFT)r4rrlrisendwinrBrrHr r r test_endwins zTestCurses.test_endwincCs|tdt|tdd|tdd|tdt|tdd|tdd|tdttdf| td| tdtd}|dur||tt |dt |d}||tt |t ddS) NZhccolsrPZcrrcudrRsabc ) assertIsInstancerZ tigetflagintr_ZtigetnumtigetstrbytestypeZ assertIsNoneZtparmZputp)rrZcud_2r r r test_terminfos"      zTestCurses.test_terminfocCsDtdtt|tdtdtdddS)NrVFd2)rZ delay_outputZflushinprrlrZnapmsZnewpadrHr r r test_misc_module_funcss   z!TestCurses.test_misc_module_funcscCs|tt|tt|tt|tt|t t|t tt }||t| t |dt}||t| t |ddSNrV)rrZtermnamerZlongnameZbaudraterZhas_icboolZhas_ilZ termattrsZkillcharr_r{Z erasechar)rr~r r r test_env_queriess  zTestCurses.test_env_queriescCs|j}|d|d|d|d|d|dt|dr`|d|d|d|d|d|d|ddt t dt dt dS)NTFimmedokrLrM) rZclearokZidcokZidlokrrZleaveokrZ setscrregrZnonlnlrr r r test_output_optionss&                zTestCurses.test_output_optionscCs6|j}|jrhtttdtdtdtdttdtdttt t dt dt dt d| d| dt dt d| d| dttdtdt|d|d|d|d|ddS)NFTrVrPrrL)rr4rZnocbreakZcbreakZ intrflushrawZnorawrrZ halfdelayZkeypadmetaZnodelayZ noqiflushZqiflushZ notimeouttimeoutrr r r test_input_optionssB                      zTestCurses.test_input_options typeaheadcCsttjtddS)NrP)rr r* __stdin__r-rHr r r test_typeaheadszTestCurses.test_typeaheadcCs$|js|dttdS)Nr)r4rrZ def_prog_modeZreset_prog_moderHr r r test_prog_modes zTestCurses.test_prog_modecCsVtddustddur&tn,z tWntjyP|dYn0dS)Nbelflashz beep() failed)rrZbeeperrorrrHr r r test_beep%s   zTestCurses.test_beepcCsVtddustddur&tn,z tWntjyP|dYn0dS)Nrrzflash() failed)rrrrrrHr r r test_flash/s   zTestCurses.test_flashc CsPdD]F\}}t|dur&t|qzt|WqtjyHYq0qdS)N))rZcivis)rRZcvvis)rVZcnorm)rrZcurs_setr)rZvisZcapr r r test_curs_set9s  zTestCurses.test_curs_set get_escdelaycCs<t}||ttd|tdt|dS)N)rrrrZ set_escdelayr_)rZescdelayr r r test_escdelayCs   zTestCurses.test_escdelay get_tabsizecCs<t}||ttd|tdt|dS)NrY)rrrrZ set_tabsizer_)rtabsizer r r test_tabsizeKs   zTestCurses.test_tabsizegetsyxcCsDt\}}||t||ttdd|tddS)NrYrL)rYrL)rrrrZsetsyxr_)ryxr r r test_getsyxSs     zTestCurses.test_getsyxcCsdSN)llllrr rHr r r bad_colors[szTestCurses.bad_colorscCsdSr r rHr r r bad_pairs^szTestCurses.bad_pairscCs$|tt|ttdSrG)rrrrcan_change_colorrHr r r test_has_colorsaszTestCurses.test_has_colorscCsNts|dttrJtdtjtjdtdtj tjddS)Nrz COLORS = )r%zCOLOR_PAIRS = ) rrrrrr(COLORSr*r+ COLOR_PAIRSrHr r r test_start_colores  zTestCurses.test_start_colorcCs|ttjdtdttjdt}t||D]}|t tj|q@tjtkrt|tj tjtj|tj tjddS)NrrrrrVrP) r_r color_content COLOR_BLACKminr% SHORT_MAXr!rxrzr)rmaxcolorcolorr r r test_color_contentms    zTestCurses.test_color_contentc Csts|dtd}ztjdg|RWntjyP|dYn0|jtjdg|Rtdddd|tddtdddd|tddttj dt }t|}tj|g|R|jtj|g|Rt|ddd|t|d | D]}| t tj|dddqtj t kr\| tjtjtj ddd| tjtjd dddd D]N}| tjtjd|dd| tjtjdd|d| tjtjddd|qxdS) Nzcannot change colorrz)cannot change color (init_color() failed)r()r0r0r0rV)rr1r0rP)rPi)rr#rr)Z init_colorrr8r_r+r%r,r!rxrz)roldr-r.compr r r test_init_colorzs6     zTestCurses.test_init_colorcCs ttjtSrG)r+rr&r,rHr r r get_pair_limitszTestCurses.get_pair_limitcCsttds$|tdtjtjftd|d}|dkrLt||D]}|t tj|qT|tj tjddS)Nuse_default_colorsrrVrP) rrr_ pair_content COLOR_WHITEr*r5r"rxrzr)rmaxpairpairr r r test_pair_contents       zTestCurses.test_pair_contentcCstd}tjdg|R|jtjdg|Rtddd|tddttjdt}td|d|td|dftdd||tdd|f|d}|dkrt|dd|t|d| D]}| t tj|ddq| tj tjddd| D].}| t tjd|d| t tjdd|qtjtkr| tj tjdtjd| tj tjddtjdS)NrVrrNrP)rr7Z init_pairr8r_r+r%r,r5r"rxrzrr!)rr2r-r9r:r.r r r test_init_pairs.     zTestCurses.test_init_paircCshdD]:}t|}|t||||t|tjB|q|tdd|tdddS)N)rrVrr)rZ color_pairr_Z pair_numberr})rr:attrr r r test_color_attrss  zTestCurses.test_color_attrsr6cCsftd}z tWntjy4|dYn0|tdd||tjtjfddgdS)Nrz1cannot change color (use_default_colors() failed)rOrN) rr7r6rrr_rr8r*)rr2r r r test_use_default_colorss  z"TestCurses.test_use_default_colorscCsn|tdd|tdd|tdd|tdd|ttjd |td tdS) NrtrsrXs^Ms^?rs^@rP)r_rZkeynamerxrrrrHr r r test_keynames zTestCurses.test_keynamehas_keycCstddS)NrX)rrCrHr r r test_has_keyszTestCurses.test_has_keygetmousecCsLttj\}}|dkr"|dtdtddddtjt}dS)Nrzmouse stuff not availablerM)rZ mousemaskZBUTTON1_PRESSEDrZ mouseintervalZ ungetmouserE)rZ availmaskZoldmaskmr r r test_getmouses   zTestCurses.test_getmousepanelcCsVtdd}tj|}|jtjjdd|Wdn1sH0YdS)NrMz!userptr should fail since not set)msg)rr^rH new_panelrxrZuserptr)rwpr r r test_userptr_without_sets    z#TestCurses.test_userptr_without_setcCsbtdd}tj|}t}t|}tdD]}||q0|d| t||ddS)NrMrzset_userptr leaked references) rr^rHrJobjectr* getrefcountr set_userptrr_)rrKrLobjZnrefsrr r r test_userptr_memory_leaks      z#TestCurses.test_userptr_memory_leakcsDtdd}tj|Gfddd}|ddS)NrMcseZdZfddZdS)z+TestCurses.test_userptr_segfault..AcsddSrG)rPrHrHr r __del__sz3TestCurses.test_userptr_segfault..A.__del__N)__name__ __module__rrTr rSr r rr srr)rr^rHrJrP)rrKrrr rSr test_userptr_segfault s    z TestCurses.test_userptr_segfaultcCs,tdd}tj|}|tt|dS)NrM)rr^rHrJrxrr)rrKrHr r r test_new_curses_panels  z TestCurses.test_new_curses_panelis_term_resizedcCsBtjtj}}|t||d|t|d|dddS)NFrVT)rLINESCOLSrlrYrlinesrr r r test_is_term_resizedszTestCurses.test_is_term_resized resize_termcCszttjtj}}|d}|d}t|||tj||tj|t|||tj||tj|dSr)rupdate_lines_colsrZr[r_r_rr]rZ new_linesZnew_colsr r r test_resize_terms  zTestCurses.test_resize_term resizetermcCszttjtj}}|d}|d}t|||tj||tj|t|||tj||tj|dSr)rr`rZr[rcr_rar r r test_resizeterm-s  zTestCurses.test_resizetermcCsXtd||jdtd||jdtd||jddS)NrsrrBrC)rrr_rgetkeyrHr r r test_ungetch;s    zTestCurses.test_ungetchcCstd|jdS)Ni)rrrrgrHr r r test_issue6243Cs zTestCurses.test_issue6243 unget_wchncurses_version)c)rLrZz.unget_wch is broken in ncurses 5.7 and earlierc Cs|j}|j}dD]}z||Wnty8YqYn0zt|Wn:ty}z"|d||j|fWYd}~n d}~00|}| ||t |}t||}| ||qdS)N)rjéruu􏿿z)unget_wch(%a) failed with encoding %s: %s) rrvryrwrrj ExceptionZfailZget_wchr_ord)rrrvcherrreadcoder r r test_unget_wchGs&     zTestCurses.test_unget_wchcCs|j}ddl}|j}|||td|_Wdn1sD0Y||_|t|`Wdn1sx0YdS)NrrM)rcodecsrvlookuprxr)rrrurvr r r test_encoding_s  $ zTestCurses.test_encodingcCsV|j}zt|j}||Wnty2Yn0|jjdd}|d|dS)Nrrz[y, x,]) rinspect signaturerprr__doc__splitr)rrryZhuman_readable_signaturer r r test_issue21088js    zTestCurses.test_issue21088cCsNtdddd}tjj|dd}|\}}||d|d|ddS)NrLrQrRT)Z insert_moderj)rr^ZtextpadZTextboxrarZ_insert_printable_char)rrcrr]rr r r test_issue13051s  zTestCurses.test_issue13051N)NrUrVr classmethodr0rEr rIrKrerhrqrrrrrrrrrrrrrrrrrrrrrrrrrr rrrrrrrrr!r"r$r'r r/r4r5r;r<r>r?rBrDrGrMrRrWrXr^rbrdrhrirskipIfgetattrrrtrwr|r}r r r r r#5s 0  4 0!" *  !   8  .                         r#c@s,eZdZedddZedddZdS) MiscTestsr`cCsJttjtj}}dt_t_t|tj||tj|dS)Nr)rr`rZr[r_r\r r r test_update_lines_colss  z MiscTests.test_update_lines_colsrkcCstj}trtdtjdd||ddt|t|d||dt||dt||dt||j t||j t||j t||d|j ||d|j ||d|j | |j d| |j d| |j ddS)Nzncurses_version = T)r&rSrrVrR) rrkrr(rtupler_r{rmajorminorZpatchZassertGreaterEqual)rvr r r test_ncurses_versions"zMiscTests.test_ncurses_versionN)rUrVrr rrr r r r rs rc@s<eZdZddZddZddZddZd d Zd d Zd S) TestAsciicCs&tjjD]}|ttj||qdSrG)rasciiZ controlnamesrr)rr r r r test_controlnamess zTestAscii.test_controlnamescsfdd}tdD]Tttg}|tjj||tjj||tjj||tjj||tjj | |tjj | |tjj dk|tjj dk|tjj dk|tjjdkpdk|tjjdv|tjjdkodkn|tjjdko>dkn|tjjtjv|tjjtjvqd d dtjtjd fD]tjtjtjtjtj tj tj tj tjtjtjtjtjtjqtj d dS) NcsRj|d0||||Wdn1sD0YdS)N)rpr)rr_)rZexpectedr~rrr r checksz$TestAscii.test_ctypes..checkrArr@z ~rrPrV)rchrrrrisalnumisalphaisdigitislowerisspaceisupperisasciiZismetaZisctrlZiscntrlZisblankZisgraphZisprintZispunctstring punctuationZisxdigit hexdigitsr* maxunicoder)rrbr rr test_ctypessF $$zTestAscii.test_ctypescCsDtjj}||dd||dd||tdtddS)NÁrr)rrr_ro)rrr r r test_asciiszTestAscii.test_asciicCsTtjj}||dd||dd||dd||tdtddS)NJr@)rrctrlr_ro)rrr r r test_ctrls zTestAscii.test_ctrlcCs@tjj}||dd||dd||tdddS)NrŠrrr)rraltr_ro)rrr r r test_altszTestAscii.test_altcCstjj}||dd||dd||dd||dd||dd||dd||d d ||tdd||tdd||d d ||d d||td d ||td ddS)Nrjrrr z^?rz^Jrz^@rz!^Jrz!A)rrrr_ro)rrr r r rszTestAscii.test_unctrlN) rUrVrrrrrrrr r r r rs -rc CsTgd}|\}}t|d|D]*\}}||d|d|||dkq$dS)N) rzdolor sit amet,Z consecteturzadipiscing elit,zsed do eiusmodztempor incididuntz ut labore etz dolore magnazaliqua.rrV)ra enumerater)rctextZmaxyZmaxxrliner r r rs r__main__)rrxr6rr*r>rZ test.supportrrrrrZ curses.panel ImportErrorr rr environgetr)r,rrnZTestCaser#rrrrUmainr r r r sP     _ X