From fa7fcb93e99a36a3ff9aa936a56ae779cdbe7b90 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Wed, 12 Jan 1994 09:55:11 +0000 Subject: [PATCH] Add test code for audioop and rgbimg (includes three binary files!) --- Lib/test/test.rawimg | 82 ++++++++++++++++ Lib/test/test.rawimg.rev | 82 ++++++++++++++++ Lib/test/test.rgb | Bin 0 -> 43554 bytes Lib/test/test_audioop.py | 202 +++++++++++++++++++++++++++++++++++++++ Lib/test/test_rgbimg.py | 39 ++++++++ 5 files changed, 405 insertions(+) create mode 100644 Lib/test/test.rawimg create mode 100644 Lib/test/test.rawimg.rev create mode 100644 Lib/test/test.rgb create mode 100644 Lib/test/test_audioop.py create mode 100644 Lib/test/test_rgbimg.py diff --git a/Lib/test/test.rawimg b/Lib/test/test.rawimg new file mode 100644 index 00000000000..a6a0480948e --- /dev/null +++ b/Lib/test/test.rawimg @@ -0,0 +1,82 @@ +!)#"!:76<:=EDJIILOOR!#&"$IFLGDJDBE97:DBENLOQOR)%-TV[UW\UW\\^c\^c"!(YX^UX]X\^Y[^ $QSQ\ZUWVOSQS"HFH=>8IJD)'*"&$#)Z[\[YV^XV||~}^_`PTVTW\SUZRT[NPWKMTFHOCELDIOHIPHGNFGNJOUIJQHGNCELIKRHIPFGNCDKBDL@BJCELFINEHMDGL@CHDGLACHCBH?>DCBHACH9@E:?=@%#&425'%(>4>&+!,'-!A?BIGJ# "!$#(#'$KOQMORPPSQQTTTW/-0iifUVWQSQQPO#(XXUXXU[XSTPR !XVX[ZS[YT%"!!%_]`GEG-+-" "('&RSMy~xojlWWZRTWQSVPRWNOVIPVHOUDHPEFQFHPGIPFHODFMACJDFMACJ@BI@BIACJDFMACJ>AFBEJADIDGLACJACJ=?F@BI@BG>@E?AF>@E9;@=?D<>C:7572020.0-)+&"$ +/%.G>K!" + vrtIDJ + "!!!1/1?=?LJL%#&QQNQSQORLRRO#&YYVUURVSNXTV XWVYZTXYR%#%! \[a]\ba`f$$'WXYPPMWQO^VTVRPz}w`c]WYWVWXLQVKOWJPZGJVNPXJLSGIPGIPEGNFHOGIPDFM>@G@BI;=DCEL@CHADIJMR>AF?AH?AH>@GBDK>@E>@E?AF>@E::=225--0''*+)+(&(*(*#!#%!#)%'" .*, !# '$#! !KKHMOLNRJNOH!VVSZZW\YTYUW `_e]^_abc=AF@CH@CHADI<>E=?F=?F>@G=?D<>C=?D8:?203*(*+)+(&((&()')'%'$"$'#%($&)%')%'% $& 4*9 + + +" + +-((EA?=:9)&,RQPMQOQSPRSM'$# %"[][cba][Xgce!ZZcbcjhipEEP!__hddobbm$abi^`ha_h##>@>:8:(%+ZUP`[Vvrpda`VX[WY\Z\aQSXLQWJNVEIQHJQEGNEFMCELEGNBEJ@G<>E<>E8:?:9?,+1)(..,.*(**(*'%')')%#%(&(%#%&"$'#%" %!#&!%#"726$#1),,')  + !JFDUPJ#"!-,2STUMPUVY^^]c0-3 ^cibahbagcbi ^_f`ah`ahTV[!edjedj_^d #MMP130''*!A@?-+. $'$*@=8B>@!$"de_}gehUY[UX]NPWJJSHGNFGNEGNAFL>CH@EJ>CH=BG>@C>>A447//2,*-+),*(+*(++)+(&()')(&()'*&$'%#&%#&&$&$"$$"$$"$$"$$"$" "&$&   % #(,.!phlOKS728# =;3WPDZPA^WK869<;:>ABQSXQRY,-4#aflhgnmlronu$][dffighi[Z` ccfhjhefgVWX_a^VVY@?>'%("%gcaa\` ! &GEG(&(^\^zupwrt[X^TU\NNWDFN=CK8;@98@'#JE9^RClYGu`T)!%2-3D@BB@=UPJQLFGBB:59#SX^SRYONTWV];8D3/8[Y[[\VXVY#[\]_c[`b`_a_`b_^^aEDC647 kffmhn"olr #!$WUW& $,$(RMM[VV{{D@B424$$'$ ""%(&)+),20324779<9;>:;6eZOaWIWLE<64AFBEJEHM@CHADI?@G:;B<=D9;@;=@=?B/14+,-,*,)'))')(&((&((&(?::-+-''*˿bVWGBBb_^SSPBB?330..+8;5463+-+##&  EC@E=?D>@E9;@>@E=?D==@??B>>A??B>>A<E8-RG,J0}$$)&,bhj|{wuoqhbda E@;OIG"&9;@GIL%PRW61=#a_aXU[XVY ;:@ *$(JDHRPRtrt\Z\XVXKMRGJOFINBEJ?BG;>C8;@36;.05.-3.-3.-3+-0+-0.03+-0  /'*{~ iegmlr&'(,(* +! (-'CH?DI@AHCBIBAHBAH=?D=AC:>@6:<4/5$#)ojj-(,{',&9><*//&,(54-/*$KE=[SIsjMA8E;1ME;pcV!/+-OD=reX}pc}rg{pph^ebWrph624-(":(bB,H/ia_1-/cgialmY_aTZ\7=?;AC,24OSU + + !<94!## &16;^`e JKL # &$'!"HFIJHKQNT" +!%#%%#%GEGusu__bNPUJLQCEJACH>@E<>C;=B136136469/14GBH+*0oge$# "% !.,.$!',&7<:*//%+'/1.(&#<94D?9G?=#3*$D<8RMMh_YfZQqf[zm`whyqgfcXlk`530 !" "($"-F+8!]_\algZ`\_eaiok]c_=C?JOO74/LGG "49>\^cYV\027PQR $ !$!'! $#'567SUSegeJLJJLODFIACF>@CBDG?AD;=@>@C99<'"(! &uom*%)$)#5:8.33&,(45/,)$KF@IC;cYUYQMJE@9610,.$"%,%vlg[\b\Zifa@=<42/'J3'9%ʽyu ,*,3::HKL)*+abc}~ )&!`Zb27<8:?"(*/@AB'#+ + +203" ,*--+.RPSIJKEHIDGHCFG?AD>@CACFBDG@BE"%<64 #!.'"@AB½0.0%*&275388$*&<80($olgb\Tuqlc\mh\pj`ujcrf]sf[j\SRNLRNP]XSmd]j^aE:?.*,$#"4%'WRT{sq% %$*&*, #(&)hgm %#hgm# &+,- $536 + 1.484< +84<+(.'),rvtRTRJMNDHJDFICEHFFIFHK*%) ")B>@C;95/3*%))&%½'$##!#$(&9>+2@:DO^bjhgfngoyszosd^OMOIGD#%(>JS-2Obn%%% l,Z2[EhNfLT^wkb820?@AHHEjnejnfu;]q}xu{{C?A# -3/CHFuzz#! + 202h\Wf]]`\^^Z\JFHQMORPS,') %!.&$LFJ# &&!*" vsr{źGDC#!164386" 861$""(07U1U 6\/Tw;j-ZEo,Uy.Ho|l`WEA?.12*/+_cZz]fmY|o3,,456UZX~}lkj),-^ch#!||IGJ !" ##!$DBE'#+1.4839NHPaZd B=A{ojleepgglee\WWC>B'&-*/;54:(" WQU!>9=~w·$! #!/748=;!48:!&,"#CXRy|^xCWeHeq2Gdy{yvpeZKGEBEF162zwv&AZq8549>>digach034%"!d_Y + POUHGM + FBJ?=F::E2)0@5:~XGQi]ldZkwn{ohoJGBUSU[SQJCCA=FSXj$$!odi(xr987$#")84597/40%"(";![YVemoXb_Wol%Brx}{usoeZOIG$%&#%"]lq.E+C}PGG)')`dbJLQ`cd!&!!" # + 3;K$"% + ~ig}brH.IS=WB6?VQQ9;>-/4.31LMN94:$&!%)+(}rwpjnwpj%"!   *957;9.62'"&'&$)5&K!?;9xemi]to$Aqy~|}wmbHB@)*+#%"#'6_r[e]P}_UX,*,BDIsux"$%)+ +&<%% $,*-MIK)$&!" ,)(dZm*v}E<020053GHI ( #$!'!?A>tin +%&'5*)'!%[VVg`Zvysxxu#!#'628<:/;8%"!60&&,<'P#"T[[Tggt{`jaYpk.K{w|zuk`vpn*+,02/jb` '2qbynbc$"$.20,*,*,1bcj'$1<9E!")#A + + (#%$"% !" "jfh&!##%0&:9=E'"5/'lkj +50+!>C?LJEŹGLJ./0'"(%+()*1)'*%'" "~yy[VPnunz}wnunrsm  '304978>@!FN^$-\& &43sawu[d]^up.Ozx|~gZM~ !/1/PXbdy[|vw !;>?1/1//2*)/\XVCBH " " #C0)%.'$*0-3.,/1/1&$&B=?"%>JQg,#3MJVu !a\JC>9*$,ILFPOH(&)0.0+#'ywt)-/EIA~eofltjgoeime(//2;;50<"& )0!6l$"!-4]tyFROQjo-U|tyrs`V!"#v*;H!KJP:8:8;CC~==@"""="*V6!TLg@>G+'/!~RON'"& +$#125@gmv$68-&#+(.#bc]31,)-+C;?$%%"EIA}x\e^fme`g_ah`dh`&--4==30382nuuOec3Yyt|~HYfGmtDT^'-/05:ÿdii\hgt{{ !" +6#P%J7eO|~y'URQ($&0+/'#%"2%*ypwA65`VY]^X123KJC@:>#xzw&"*+$|/74(-+-3/SYQ"'',55 57?'$6n/&*"-0*6-&;66mpqFOO0QcP;s8Oz\hw"# S`kKlGk!BX!6B)+)Z]^>ABaY\%%(!##&((+!0!KA;fOysp}*56 +}zyGDC-(,GBHE;DC4?|aST + ef`kif567!TRJUOS5:F(%+$ aVUcYU*()"%,,&&&#*2.JVM"#'32 -52 !,0e!3!,*%<:+'"JG<#Bd,W@-NIg}$#GXe:FJsnn/.- +X[\QTU"%& !$"%&>#QB <.:afrY^^kmjQMK,(0#2+2:18~yTKKx<86&"$SMC}vv!tihnfd/'* 6=3:B>&--#&').*FPG!"#/.+30%)1h/3HHFC$$!-+#:0393+?=:$@b,WF*KD_w"~xpn&8;<}Ⱦ~yy?@A '%(%#& ! +%=!Q@4/ 9inzdiihjgRNL$#<8@FEK +:18cZZ4/3'&%v}zu?60+&!VLA743 "wpw$ y~|5A@9BB9C@;FABNE !".- '',41$  2k5@?>@B@+0*"64-7966Y)WF+J9Ro& ~hZ[946yyv|ƿqnm.-, +$"$+%E1-XIbdiudiiVXU~QMKRNV~xw~||!;9MHCOF!!&21"))%,,,!!;t8'&%+-*4;4589/3+1601S+VD.M8Qt"|{t`TW.*(ajjľ`]\321&$&!. + "%-'-56;9TVSURMTPNQNT.+1"#.%,nioMDD +|xz86800-LJC#!#(##!$+$$hbf:=>.??1BB4FD:LHJSL "/0"$"*.'" )!:u$&A*% QQF;;.XYL14( /LJt 6}*K"?oį &!ttqI?;" V\^ºRMM" $ ++)+++. $%&567>?@KLM(&),11fhfPTR<>;WRMl`[slrjhPJN!" +,&.lfn\SS"+JHAFD=NICRLDws!% upp!)&w|IQUCKMBKKJOI! -."*,#)+%,#%#%&1&B{$>'#!560GE=VVKMOF!#!,I Ku 6}&G9i!&!SSP@620.+{yvEIK4//58=##8:73/1pmlFDA('&464#%#_a^JLIAC@?A>Y[XNNKa\WȴѸѵʹTC=#!UOWxrzxq{~w  #"3.-"%  410?>3KH<86/upp=88&JIH4<8û -.#+-(+,*/%+',.6$Aw%+E#!$&$?=6QQH]^W$DDn3z(I;k $,% KKH:0,641JLOļ2--20-HFH=;43/-@>79:4uvp'("EIA6:2DH@BF>FLDTPHʷʲɱéոC73GBH%!#B>@?75 + %32/(4*-42+PUS$$!4)(C87DFD084ù# "# #""%%)+%+-&,.*02,0228:%23&12*/-*1%0)%'.$?u)1K$"$'()GGDTUORUO&(+$@Co2|&G#>m0/5+&!31.4,(,)({soJJMʿŸƼɿ,(*ztr=82zNLEe^X~DA6./(,+$^`W@D;CG>AE:< -*)HICJKERSMRSMLHFKFF*+/4!<,%$#ͼ &!CA>%$#~! !:??575?A?/:;.:9-98-98.:9/;:-89.9:4?@2=>.;6678!0;g<@*=gC87'%(+& 3.)+&*ɿNKJ((+9=5+2&C=3][TB;5__VIL@`cWUXLIL@÷Թӽ_]Z&$;?=,/0;>?7:;9=;^`^_`aKKN*--1795K329DFDCECμ)+LIH "GLL=?=н9@@/;?(02,55)54(43'32$/0#./#./"-.&12+67*56'23,6-5EY'!$-H~*4O##&,(*/-&XWLcbW\XV +' &Q:|D'9_+&(#$1/(97:RONý%%([SQ981"'}r9<0]XRymhDD;RUIJMAEH2VYMRUINMBǾֿH??0-,'#%-((NIK ?< ?)&Cbcn:;<&&)$#*,,/rh^]VIGD" )-+046*24+89*63/<=*6;+37)22)54$0/$0/*24*24 (*#$"$ &((.0&,.,,#;].7p'3R'%($#$#"(&)##$##,# ((#'&%+,(03,3.)-758Ǹƾ^YY¾GHI2*($$'}w"$ƾH<50/(7;3??4DE8qqdfgZſ¿')  + ++2514/3.0-234123123*)(NLO;fa\?#"?[[n3829=5 %+(4edjWFF%!)% ! !2(+IRR5=A5=?1<=/79*24'/1')#%!#!# $&!!#%&)*!,-!,-.5)7Ie)",N+4E " #!&"%&#&'(--053256439<8A>69XSN~zGDJyttлzvĸ&!#PNQ46;_]_+')aYW65.Žgf_?:4ú970lf^::/ttgigX{iwo[tpa.)$  71!;7!44!64,$"$$"$!!!$ +07.cE8kQLd%>AF -1/{y*+2ĿB.&7+$4+%<-'E608+ D8)N=0UB6YH8k[Hv\NgLnQ|u79>#)+#+-,24'-/%+-"(* "#)+#%(!#!##%')"*,%-/)=.ho{'#3&- )A%3J!2=8>C?=plj˾ɿ'$#(+0XSUzuu# NNQ|vwq*&(hd\<71SNH64-2.&zwk{yjyi|vf<:3495 $"" "(&('&%(&!750$ JGF=B>#'6\^slc]JEE3<H`^Y.#(#&'(,*'%5'(/486̝mʚg˜eÔZƔ[WXW\VS}KF/aca''$ "'),'+-)+.(*/ %"$#((,1128:+05=CK(=Z]f]e>Q-L|PDGNLU(/~uoRONB=?*(!~wrlƾ^^Qzr" yx20(65.#$qe\unbkfZyth ">=603-MSOgegbb_FKE).."))*-2Ŀν[`ZXY`+-01,0624wuw$"2%-35ԛa̞qC“]Vĕ[WWWRlE- +\SS``W+13-28>@E%)+&(+-35"*,$,.,02)+0439!" #+-&.2+0684663@%T3+SWPW'#txz}fYT('&EB={u><5[ZSA<7 +ļPNG@D;ZTLJC=,-&xj~aYO/-*8;@acfbe_STM21*LJC.,)242#** !$-/2}}}w*&(aaj2.6zu*):))2LQVŌReϖT“]əbȘaŕ^ʗVși`E &" !(OOLü/35 "#') #)+08:(//+./;<6FIC)00#'#/#&1639Ʊ%/)1fho)!W$;#L_X_hWg"':AAɽ:76!'"&$ " #qgjtpnμ.( /2%ǽ|}]\[NQV9AK5?J9>D)1./73>C?<>;#"!.33'/1).3!#!')')+89bdgrpsmknhfi`dfX^`TZ\PVXQRSONUffuxt}z%$588AlnqמdΠs֝[͝jʙd̛f͜g^`??#!VPHjdh?@98:=#-1368;'-/)13-22575EDC./0 *,/SNTyqt3.4-/7nt~mor /L!<$L|ww#!};36%#&!!#&)-/(*1NQVнLC=CD=SWN|icaZZ],78!#(,.xszv~}|'&7%%.ljlߨnęmݦfǛiΚhÐ[i@71"A +|NK@478 %,02!%'##051DIC22/('.nelnZV1("-',(*-$*!50+("(L(F&M$ ĿĿYLK(,."''"#$$/6672,9;2{w.  +/@N5EU7Ka2Gc.C_1F^1BY4=-22"&('),lfdķRJN$,7H",kb[ ,I)$$')&3=R''4-F=h3X-Kyɿj`c̽mge&(+"'-69>&*,JNP;?AGLL;>? !"Ƽ16;*$(".?M1?X9CM=Pb0D`&3F:GX.9D+0<,,/aad,4>7AE ,+,5;$16+7;&,.-+-rqxqlr}Z\d&4018qΣsݣ^ڧkk( 63.94/1)'0+&˽9>>!' %17/GKB34.)%'' |þV1>Q%*/(7EOdw~0:H9?IABC04<5=A$$,39 -21=A faesnp &6..7ݧmʠrƗ]z9"35+$B(!3 )%#½?=:979aZZ685'%"/**ӽF:64GY4N\;>I8V"}%;bCEL:??1T 4 2N8m'L,@z$ "wznvtqǾ`[_RMO!&+$-13268'+-%&'87=FKQ/4: $"!$!.;0@P9;CMWf{{~6?Mø8=C9><79A:?D!!05; #(,*-)!$ICK|JFHysw''4#(:,,7٣jm}\8%4.B + ++('Żkec#% $ + +"#$*4$!8#!.'"" uywCECZk{&*$&N+rbR4^ss|VUN"0G\bl)0F L"<{(:t]c_789tvmRPMg_[¼JHJJLQ,16-05%)+)+.!#&336149+/1 &0 ,3|}5/FD?xwnA@G]fm@CHpko""1%(://8Ǜs>j]X%J@D536-,+@CU1AJ04I6@O5:@>>G'*5%%2"(qeSRG-,%ymhd\?AH6:BCBH" jhk%%0!#2447," ! !/-07589;@?@GVQWƹ|yE6:)\XZkei]W[HBF[UYUPT +±Rb|# #F[#^SH1++*3:,)=#Ay)!+fed""34.*'"|1&e]YXSW425~UQO7<8 ccfniiwwn;>C8CD|9=R1;J38>>CA24;BCJ77@-0;%(3#-1n`RI;bXMzn~ic[8:A8=C ^Z\402mkn&&1!#233697:?=@JHKECF@BICEMGBHпuv /+-LHJ[UYLFJ#!1,0@;?űlhkcf3Fd#&P\XI+( #,2%1":kC>BA<@JH@,+*@@=2/.(,*iifbRIº% $g_]qsqKOQ68=_ZUbVQOMPXRVMMBKJIu~~<@U*4CDIO8=;)+2=>E@@I+.9&,4$%²u]TPF;[QCl`qf`XACJ:>FEDJ~|~#!" igj#&LLO! +504FDGPMSFGRVYdLGMƵ~   ?>3ǿH[ySPV+&J!XVG&&%,2" +' AFFQ&(&%&VSN#!!#!$)%?DB#!SQSnlixnȴ#!ZTRý~(*1 !qea~sl:<'+->@CFGN(+626>"#ùƴRC=B>6PH>paTvr]a[SEHM9=E639omp%!# usv,->138"" 2.,JEI;7?KHTIIV95>k]^KC?ojd_[YE@D%#ICG~oimgaegaez~/*$xkcYq`Z@Se!'#!4 !(fa[*!)'*6-0<! .!)'%(0.1-,+432BA@.-,+-*x}wm\O1)-A<<2:>$jdhhe`QVPigbDA9FDA<:<*)023>86?2++vphid_  +pkoA;?YSW%#icgec\{x?P^# 1"%# -+4--8++6%%0 !,&'2(([]`#"($"63.FC>B?:><9??86654979=?G!, #!2++502;79;:9336--679A*(+j]\ZOHvndy\VZ'!%& $" 3$$$'NGA8CN$'),7136$$/(!!,' %(-3<:=?=:=;6=;6?=81/1)&,53..&*1,,XfiNNK{}zWXY+-0)378GL@DS9CQ>CIFIJ18>BEJ>=D),757?(02CC@AGCZZWOQNX]Y[]ZпJMRjek&!%jeiuq)*C24<'9G\;ALe(/E,'!"-&-0+13144/3?AF68@:8;̽yncymh`[_QLP" %#NHLZTXz~0*.715".)#=EO +"!$/ !(% %#""+$!!HIJIKI*-. &&%+8:=!!:;<& (.20¶*"&/**Wko'&,#"&.efmF]iCFR:DRCEL;>?16<;=E@>G'+3.08%-/ywлѺSV[WRX% $e`dpn~'(A35=nsy#+0:H 2!&8, '#%513C<<617107.(,e][picLI>NKF"#!$!$!$! "##&&& ,-..03#%(&(+ (**.0--0+/1)*+//2"$CHMEJHп/&-()*)!%,')JgrrI\dnwRR_T\l>JQxNhvzhgt0;F@?F;AC,/49;BKIR+.9%(3#/3||ǼȱͲɲZ\_XU[uqy'"&]XZkkz),E44=h]b"!##)#+$ "% &=EA?H25@+,7$.2êĪͯäɰtuv_Z^fbj% $e`buu-0I009&& "#$%'$*-*0=@C*,/*,/..1TVYCEH43:1,0KFF*&(-*%ɽ-%)2-/|z@TbBWiGrG}`Xl.COnyzIHU-8C,4*MNU;=@/23',19;BJHQ25@+,7#'̽ïƮūĦĭqpoQLNYS[&!%facffu+.G22;4,6-'/!*,1#%,!(.)5 &!#%#&A@F'#%   + +  # # ##(#)"&&(,+2217 %"&%,&^^a003LLO.*, !:BD%c_]Ľ*&('!0(,0,.÷nwp?R\7=M9AUzhhw45@ %*Ʒ}{{{h`|scc`JEEHEK ~iegd_c]]l#'=<=D)&,06@63?##,;M/;Jy~~mo~2BU-;:TRKRQ^2@:?E=?BLNQ04<%+5!$)khgÿ\^\lnq$! ;9; FDGa0$'848:+-5HQ_.0?(&*9!0#WPZiknĹeenNPXFIN*%'%!##(!!!)"".''1**&*##-&&*%%'""-((+&&4//)$$% !!L?><5?CgTl +( !!&$)# *42;)(/HGN% + B8;65.!83M_c?AH2'.$8B8eYZ5/3846ʾ%+;6CT@JY9ETjssspk}1@S4@?GE>VUb",:>BD9=??CE=AC@C04<'-7!$)%'%mkm&&)850%#%" "!!SRY./@$'86:JY#"FDA$->,55%"KJW,5C9@EIK39;78F3,3&' -&&&6.12*-6.1"*##)"")""% $! (#)+&*+#&-$$$#"ge`fa[(smu&'.#"! ! #$"# %#! &%,+/7|\@;UiShh^a;KU7BC>38'$*ƺ:0,ACJ^\^46=00?D>LB;B-&&%%"0*."+$$+$$611% ~ruaY\$#! +#&/&&'&%]a_|~/%( " #!TROOJN%=AIW\X#-ICQJBV<#4wnuôK@E!$lkj0+&)#'(ihoDFM'7@NFO`?BN + ".)$0$14@(/=$&-IIL"),1/27.16$)/#&+&(+=>?w{si_[^RIE@D9:;#!a_Z+0.)-+GIQ44G4/;E>F# &!(77B9:EST_&&/((3(H@CC?HCCR<9F@;A$) 2))3** %(!!0($j^Z'"$!( #1(($"^ccbfhPHF #%!!& $*"%OIG6110+/~48@dfdÿ?PV$$wxy]SVE95#"yy/1924<-5E:EV#%8jdQN88qJ-/)?$"!!$+.3,.369>,.5#(.!&%'*313wtnljl{u'%(/*.410 &(_ff,4>27I00;GKM'3<-00=*&$'.'/G@J==L66COJP*')!-#/#$" "*"%' )""+$$)""4*&ef`oq% % ,%%*$"+'%__bY^cȼ%# &" hcg(ĸ543#!7:EMPJe_Uh`\ż64YSQlgg!qgc+ %#$107AL]9=L?9ɿQOG<868=I!2*(71/B==!%  #zrp<>EGWg;ES9BB2iV  +1+A%?CKIGI %.-313:.2:05;%(-0.1!{r{qme˶)7&(%5ǿ-(*D?E-)1811}ffo*->EAIĽ%#!!!$"(0-0;%$*.-4UQYB;E;;JSS`SNT0(&!, !NE?F><("&#)""%)""3)%( #'"(!!,&$0,*__b]bg% "eXS÷(#%*"%WHH/.-$ ""&7:E=@AUZT535`Y`EE³̿qjvGS\^]cEER!$!&"$#!  !" 5'(KFLU`kQ[eGM]((7`]orn#"9 + + + :,'Q94V!(YU^BEF+-08:857425:01<(04ƺvɰw{qg 3?!#/5?bfh%'%1,.! 'NFDyl}vKDK#%,558#%>C79B5-:-#."B-iIDJ@>G5/7@99."#%+$$%! $þpp2$%$' 3**-!"0#")$$$-((0++6.,ege_ff#"vlaj]\/,+&!!+*#Ⱥ1.-#!03>H76B3/@0LcP9TC )>_M3N=@&%' '#!NOH&"' ,##."#2%${{xȷ(##% '"")$$.&$=?=]dd{pehYY30/'""!"3..%!#$ (9>c]k8IVCGO==J ")(#%&"$%!#" " " " " #QPOJOKTBEF/07)),<>F78C/7;wrlɾ5HT& (:BL.38hijB=A54;RLJ]XX:5;!(.CEH.E2LoWuz(?, ,+1:37D9(4=?BT;;D<@OKIYFBJ.$'-#&'0*(c\V&#"!' .%%."#1$#DE?̻(##% $&!!.''+)+:??o_Vol-*)#$%>99#!# &DGRDHJ}7HV_bm67B.07($&'#%" #!" " !#!(GCEQPV]Vg=BTBI[}vTReaap:~fC{E,K{XJFO>>KSR_=40rf_+#& '"3**/$#1% &!!$(##+&&(#')$(&!%sc`{zwrʿ/,+% ",(&Ķumi:55'#%$"%RU`DGSugd@JX\_jCCN.1<*&(&"$#!$ "" " " ).4QUd!)3@GSlnuNQ]lnuwmpDGRa_h>AB'&-+*178C7:?&,6͹Ĩz..A!#+957|v÷A56'#%`^YpqrJSSUZZNdǜ\HQ53G0;5.(}ySOW77DTS`[Za*" + /#$=3/wpĵ+#& )!$4++1&%<0+.))&!!#*%%'"&! TDAc`[1.-(#%-)'ŷ^VR<77'#%@CN;>J_QNBMXSW_^WWzzOOZ-0;$ "%!##!$ "" #!&"$!+#!31,]NNOSb+3=@GS\^eILXRT[cY\:=H~a_hILM/.5/.5<=H=@E.4>}r03>#&'}J<=!"\^[komtqp~}w|zgki]`anHiܵUHM)",)&255@zsg}˿GDJ33@87DVU\)!2&'3'(4*&~Ŷ+#&"% .%%+ 6*%y)$$% &!!"E52NKF0-,&!#2.,ĶUMI:55&"$#&1BEQRDA<9*,*646 #678txvjmrhfcpuqTVSTUO[QG^RS41%,(&D;BznewɼA?A11>DDQHGN0*(*3'(7.(*"%# &!-$$.&$6-'nicϾ+&&% $(##0&"CA:4//'"$842I?;B=?&"$ #&1BCN4($ƹA@FPpstihoGJK46;-,269D/27.4>k_Z\WQhicnjb}kgòѿva_$#)?7;&$!gljQU]qpo~|wWYVPQKSQIgXSl`a1*193;<8A{~unMFM;=LIKZ:6?0(+,%%/*%/*$.%%$)""*##(!!'$d[U³-%#&$*##### !(!+$ {{p4--$!=53UIEJDH)#'" '-/4@:2ɸKTbDIU\Ua:;F-'+0*.;66{|!%" #+-*7.. WaeKW^IP\S[_mhh@CO?KT424;=B.''1((*%' )LGIyglhltxcv~GEBZUPȾqb\wji5-1?8?C=Eg`ZngamfnCDUVWhGBN-%(-&&+&!61+lh`ɽ¿+""$&-&&*##-'%JB>* ˿+""$"+$$%#"".&) !βsrgé6//# ?75pd`e_c)#'#! '=?DEBAAJXTYewp|FGR(#%*%'~}% &*"%tsZ\ZĽMU_BLZIN`GNTqllLO[9EN9>J=>?WY\=?F('-$$'BFNAFK19CWiw7Mc'@E<98LUcDIU~|GHS,(*/((wt/)-+#!QIL˿XagKW`?FTGOSRMMSVbCOX=BN#%/16OOX&'.:@B((+JNV27<19C}us4CP';OATl1?Vabs#&.%%(!!`X\2*.¾OSQ=BBs{}:KYa`fY\PPNGc[QƷi]Twt,##3+.E?Chc^1-+%Z`bbcd+&&.''-%!+&!a]U¿) "$+$$/((.%%"OMH-$$#+$$-&&!UXc $Q70_ǫrj`ǭ8//$!*" ]VHvje}("& ">?F987CMXEKU~vtYTTȹOR]%#%,''$-&&1&+BIIbZXLXWEQVAHTLTXB?>FIUBLVkik8=I*17HHQIKRAGI**-<@H,1606>{us#%*!'SVb)$0"!" $""'%ZYXmecLSS2>=^afqxl~~slǻ\QJ1),85;D=E&!! .,.55#!#( #>86;4.g[\+$$#<@H<:<ǹHPZIP^OGK"!'PE>{BBO' ž1(('#%6<>LPRXTV5:6"++HQXFO]PQ\RP`7AK_`a69E(+7?AIFHOEHMHNP)),IIR18>157KIF% ""(#% #!%()BGGpvrRXT9>CĻE;7zliԾ-&&?=@6/6<;:phl''4BHXfdt% .#"-"!%!%# -&&")""/((-&&0*"~+$$"% -((+""_d^^esZZe­G90a_ZD;;" ".+*2.,wor-&&!"'AGQGGJRZdDL`+ SLFe_g)$0*"&8)-yjj+""'#%/27NQV77: KQY@GSGHSECS7AK"#$854,/;=@LBDLLNUKNSBHJ%%(AAJ/3;69>IKI!/((8//B==HFHjeeZPLsmkhgfOTR>FCNRPDz+#&!0*(A@?613EKMDHF,*:DE\qm}+#&-"!0%$ȿ'"$"!' +$$.''-'rþ(!! &!!&!!&$!\`^gljdcb"7-#=;6aXX#!#(#%63.{uLD@*## !"=DP=>EYMIDLV@HX.)/JFHxr!!,52>(#%1'*,##&"$79@NPWNNQ %@CHLPX;AKNPXjlo;9I)3=GHIolk%(436B>@H\^eKNS4:<FFO,/;.07145KJP~wd\?BCoqo#{n% >;:D??7AEDIE|~?@UXR`.''-!"-"!*% gb]˿*%'!' 2++,%%,( |pǻ)""!#.))((%`beekgddg"®?4-{rfg)%'0($RJ@zqcZOH1,,,*39CM)*1vv& JMXEHS|{^XV( LOZ:FJL/16~rnѹub\XNX(!+ !E>8NFBMMJ}|{*"A;9}l^{ka$#A97B:8/8>256{ylg65C5587?%')""C?AhjmS]a1!I=9vaUmc"!6.,?75$&-$"$}yqma\2.6V[mIIX1,.(!0$%3(!.( me[ɾ3), !0''/$#/&&!_^S' # *&$-$$YZ[Zccilm#77:C@;*"%)#!ULENG;mkdƹ.-,  )%.PL\..7D?9l`\839IP^EN\AFLBHR>EQ@DL%)#$"65;UW^+19^fp_`k]flYU]/-=8BL9=;$+1(=&-A"."'0689J@BEx #Z\dHO[MWeAEMCFRLVdMU_ !"/)')#$"*,1IPVKT[KU_PQ\\ekA?O)/9"%+5@&.>-! &NRP5:898>ADI#528!#((,4%'.<>C>>A{˺nú3-1'"$ƽOW[agiå&94.WJ=qcZ2))&(!)KLEQHAȶ('aduEHT833' 3'*3(!+%ne^2))!+""1&%*!!'!*( ?82  '""%!*##OPQ]ffade#"n]W\PGpf['"&$ "ID?2-'sqn,)(#!!%#/6:<:j]X# DIUCJVAISCMXOR]KP\KUdLWb!$%-(#D63' & $..1NQV"*'-68=#+-2835:??BzgֻpXŭ1***##Ǻ49R??TPD]YSg`\lkgw{frv{(80.H>4fZU+#&#!+%)" >;6C70ʵ.&*MNYgdp1)%/#$*$+"%lc\6---$$-"!-$$%!+*#)!$&($"?A?`iicgi !`PF9-&_UK&!&502.,.a]_Ǿ.%%# !""67>MQY>DN.2:IOYBIUEN\@JUFP[>HSIS^!#()!jZWxw"$"$(##49?BHRINZMKM8:B!+:8CT(1B()$(XSG~][X9NOV(*/:AF`[V5;C003KOW%cZZ~ee\RJH)')DLNCHM0+-*##&)""# %%#"+$$,$"'"$'"&$ "$ "*"%-+-hqq]dd!VOCrda"!8>:#ķ/'*# }us#%"!$(!!!%!!!*GHSNQ]MScFN^EM]:BR[_nOYgGVcOXf'&-$# $#&$&EDJZRN99E@B" #AIMV[a(#%+$$&,%%&.&$&% "% )$$&!!&!!'"&$&gppcjj!NG;oa^@EEgb\&$ "!"!$!" "*9;C?EOJQ]BKY:CQFO]V_m?LYHUbIT_MWa76<(#'  y|)!$CEJWRMHBF\TW}{tILF?DB9GF.779BB.557=?98>1385;=*+6PNK%&-700'!% gjdyvqθn]g! $(C>>=<;C=A!IPVNRZ604)""+$$*## #4,*&)""$(!!)#!)#!)#!,&$*"%.,.bkkell #;4(xu_]XZXQ#"!# "# )""%!)$&..4<;CMHVAHT^^gA?B"!)$(% $OCF(CEJec^`Z^xMOM8AA8GG/9=EJJ099ALM?GK#"(35:,4612=]YWJAHdig]ddfe^ZIS!%#<77EB=MS[HKV?9=' "(!!%2*()!0(&*" ,$"( /'#.&"*"*###!#Zcccjj%"(0)504upjEB7# +"!'!#%%!)46>4:BCKU=GR5?I@JTOYc8BL1;I>>M;6:&!%! RCG2#'" +[]b\ZUqvva\`~pLQK:???GI!/2QV\6<8CKM:FJ:BF$68=.68/0;]YW]KM_`Y]\UX]]Vbaong \ No newline at end of file diff --git a/Lib/test/test.rawimg.rev b/Lib/test/test.rawimg.rev new file mode 100644 index 00000000000..6565c8ac688 --- /dev/null +++ b/Lib/test/test.rawimg.rev @@ -0,0 +1,82 @@ +ZIS!%#<77EB=MS[HKV?9=' "(!!%2*()!0(&*" ,$"( /'#.&"*"*###!#Zcccjj%"(0)504upjEB7# +"!'!#%%!)46>4:BCKU=GR5?I@JTOYc8BL1;I>>M;6:&!%! RCG2#'" +[]b\ZUqvva\`~pLQK:???GI!/2QV\6<8CKM:FJ:BF$68=.68/0;]YW]KM_`Y]\UX]]Vbaongn]g! $(C>>=<;C=A!IPVNRZ604)""+$$*## #4,*&)""$(!!)#!)#!)#!,&$*"%.,.bkkell #;4(xu_]XZXQ#"!# "# )""%!)$&..4<;CMHVAHT^^gA?B"!)$(% $OCF(CEJec^`Z^xMOM8AA8GG/9=EJJ099ALM?GK#"(35:,4612=]YWJAHdig]ddfe^}lv-(*YPJ8/)4.,A<>E@B" #AIMV[a(#%+$$&,%%&.&$&% "% )$$&!!&!!'"&$&gppcjj!NG;oa^@EEgb\&$ "!"!$!" "*9;C?EOJQ]BKY:CQFO]V_m?LYHUbIT_MWa76<(#'  y|)!$CEJWRMHBF\TW}{tILF?DB9GF.779BB.557=?98>1385;=*+6PNK%&-700'!% gjdyvqθ| 946#sniPC>RJH)')DLNCHM0+-*##&)""# %%#"+$$,$"'"$'"&$ "$ "*"%-+-hqq]dd!VOCrda"!8>:#ķ/'*# }us#%"!$(!!!%!!!*GHSNQ]MScFN^EM]:BR[_nOYgGVcOXf'&-$# $#&$&EDJZRN99AF`[V5;C003KOW%cZZ~ee\NOV(*/:4fZU+#&#!+%)" >;6C70ʵ.&*MNYgdp1)%/#$*$+"%lc\6---$$-"!-$$%!+*#)!$&($"?A?`iicgi !`PF9-&_UK&!&502.,.a]_Ǿ.%%# !""67>MQY>DN.2:IOYBIUEN\@JUFP[>HSIS^!#()!jZWxw"$"$(##49?BHRINZMKM8:B!+:8CT(1B()$(XSG~][X9NQV"*'-68=#+-2835:??BzgֻpXŭ1***##Ǻ49R??TPD]YSg`\lkgw{frv{."?82dQEvf\@860(&)%-%#%hh_[RL0*2NQcFHW0+-+!$4()0%("{ƻ.$',##-"!,##&" :9._VP&(## -$$STU^ggbef #8+*ZTRqkc& $&#"YRLC=3vto˾)('!! %9>J@BEx #Z\dHO[MWeAEMCFRLVdMU_ !"/)')#$"*,1IPVKT[KU_PQ\\ekA?O)/9"%+5@&.>-! &NRP5:898>ADI#528!#((,4%'.<>C>>A{˺nú3-1'"$ƽOW[agiå1!I=9vaUmc"!6.,?75$&-$"$}yqma\2.6V[mIIX1,.(!0$%3(!.( me[ɾ3), !0''/$#/&&!_^S' # *&$-$$YZ[Zccilm#77:C@;*"%)#!ULENG;mkdƹ.-,  )%.PL\..7D?9l`\839IP^EN\AFLBHR>EQ@DL%)#$"65;UW^+19^fp_`k]flYU]/-=8BL9=;$+1(=&-A"."'0689256{ylg65C5587?%')""C?AhjmS]a#{n% >;:D??7AEDIE|~?@UXR`.''-!"-"!*% gb]˿*%'!' 2++,%%,( |pǻ)""!#.))((%`beekgddg"®?4-{rfg)%'0($RJ@zqcZOH1,,,*39CM)*1vv& JMXEHS|{^XV( LOZ:FJL/16~rnѹub\XNX(!+ !E>8NFBMMJ}|{+#&!0*(A@?613EKMDHF,*:DE\qm}+#&-"!0%$ȿ'"$"!' +$$.''-'rþ(!! &!!&!!&$!\`^gljdcb"7-#=;6aXX#!#(#%63.{uLD@*## !"=DP=>EYMIDLV@HX.)/JFHxr!!,52>(#%1'*,##&"$79@NPWNNQ %@CHLPX;AKNPXjlo;9I)3=GHIolk%(436B>@H\^eKNS4:<FFO,/;.07145KJP~wd\?BCoqoĻE;7zliԾ-&&?=@6/6<;:phl''4BHXfdt% .#"-"!%!%# -&&")""/((-&&0*"~+$$"% -((+""_d^^esZZe­G90a_ZD;;" ".+*2.,wor-&&!"'AGQGGJRZdDL`+ SLFe_g)$0*"&8)-yjj+""'#%/27NQV77: KQY@GSGHSECS7AK"#$854,/;=@LBDLLNUKNSBHJ%%(AAJ/3;69>IKI!/((8//B==HFHjeeZPLsmkhgfOTR>FCNRPDzǻ\QJ1),85;D=E&!! .,.55#!#( #>86;4.g[\+$$#<@H<:<ǹHPZIP^OGK"!'PE>{BBO' ž1(('#%6<>LPRXTV5:6"++HQXFO]PQ\RP`7AK_`a69E(+7?AIFHOEHMHNP)),IIR18>157KIF% ""(#% #!%()BGGpvrRXT9>CƷi]Twt,##3+.E?Chc^1-+%Z`bbcd+&&.''-%!+&!a]U¿) "$+$$/((.%%"OMH-$$#+$$-&&!UXc $Q70_ǫrj`ǭ8//$!*" ]VHvje}("& ">?F987CMXEKU~vtYTTȹOR]%#%,''$-&&1&+BIIbZXLXWEQVAHTLTXB?>FIUBLVkik8=I*17HHQIKRAGI**-<@H,1606>{us#%*!'SVb)$0"!" $""'%ZYXmecLSS2>=^afqxl~~slȻzlcro*!!A9=IBIjc]gb]OGEĿa\`9@E<98LUcDIU~|GHS,(*/((wt/)-+#!QIL˿XagKW`?FTGOSRMMSVbCOX=BN#%/16OOX&'.:@B((+JNV27<19C}us4CP';OATl1?Vabs#&.%%(!!`X\2*.¾OSQ=BBs{}:KYa`fY\PPNGc[QȾqb\wji5-1?8?C=Eg`ZngamfnCDUVWhGBN-%(-&&+&!61+lh`ɽ¿+""$&-&&*##-'%JB>* ˿+""$"+$$%#"".&) !βsrgé6//# ?75pd`e_c)#'#! '=?DEBAAJXTYewp|FGR(#%*%'~}% &*"%tsZ\ZĽMU_BLZIN`GNTqllLO[9EN9>J=>?WY\=?F('-$$'BFNAFK19CWiw7Mc';=B.''1((*%' )LGIyglhltxcv~GEBZUP[QG^RS41%,(&D;BznewɼA?A11>DDQHGN0*(*3'(7.(*"%# &!-$$.&$6-'nicϾ+&&% $(##0&"CA:4//'"$842I?;B=?&"$ #&1BCN4($ƹA@FPpstihoGJK46;-,269D/27.4>k_Z\WQhicnjb}kgòѿva_$#)?7;&$!gljQU]qpo~|wWYVPQKSQInHiܵUHM)",)&255@zsg}˿GDJ33@87DVU\)!2&'3'(4*&~Ŷ+#&"% .%%+ 6*%y)$$% &!!"E52NKF0-,&!#2.,ĶUMI:55&"$#&1BEQRDA<9*,*646 #678txvjmrhfcpuqTVSTUONdǜ\HQ53G0;5.(}ySOW77DTS`[Za*" + /#$=3/wpĵ+#& )!$4++1&%<0+.))&!!#*%%'"&! TDAc`[1.-(#%-)'ŷ^VR<77'#%@CN;>J_QNBMXSW_^WWzzOOZ-0;$ "%!##!$ "" #!&"$!+#!31,]NNOSb+3=@GS\^eILXRT[cY\:=H~a_hILM/.5/.5<=H=@E.4>}r03>#&'}J<=!"\^[komtqp~}w|zgki]`a-*)0.78>:~fC{E,K{XJFO>>KSR_=40rf_+#& '"3**/$#1% &!!$(##+&&(#')$(&!%sc`{zwrʿ/,+% ",(&Ķumi:55'#%$"%RU`DGSugd@JX\_jCCN.1<*&(&"$#!$ "" " " ).4QUd!)3@GSlnuNQ]lnuwmpDGRa_h>AB'&-+*178C7:?&,6͹Ĩz..A!#+957|v÷A56'#%`^YpqrJSSUZZ.E2LoWuz(?, ,+1:37D9(4=?BT;;D<@OKIYFBJ.$'-#&'0*(c\V&#"!' .%%."#1$#DE?̻(##% $&!!.''+)+:??o_Vol-*)#$%>99#!# &DGRDHJ}7HV_bm67B.07($&'#%" #!" " !#!(GCEQPV]Vg=BTBI[}vTReaapH76B3/@0LcP9TC )>_M3N=@&%' '#!NOH&"' ,##."#2%${{xȷ(##% '"")$$.&$=?=]dd{pehYY30/'""!"3..%!#$ (9>c]k8IVCGO==J ")(#%&"$%!#" " " " " #QPOJOKTBEF/07)),<>F78C/7;wrlɾ5HT& (:BL.38hijB=A54;RLJ]XX:5;!(.CEH#%>C79B5-:-#."B-iIDJ@>G5/7@99."#%+$$%! $þpp2$%$' 3**-!"0#")$$$-((0++6.,ege_ff#"vlaj]\/,+&!!+*#Ⱥ1.-#!03>EE³̿qjvGS\^]cEER!$!&"$#!  !" 5'(KFLU`kQ[eGM]((7`]orn#"9 + + + :,'Q94V!(YU^BEF+-08:857425:01<(04ƺvɰw{qg 3?!#/5?bfh%'%1,.! 'NFDyl}vKDK#%,558̼)*1&$""-%*6<("&#)""%)""3)%( #'"(!!,&$0,*__b]bg% "eXS÷(#%*"%WHH/.-$ ""&7:E=@AUZT535`Y`?9ɿQOG<868=I!2*(71/B==!%  #zrp<>EGWg;ES9BB2iV  +1+A%?CKIGI %.-313:.2:05;%(-0.1!{r{qme˶)7&(%5ǿ-(*D?E-)1811}ffo*->EAIĽGKM'3<-00=*&$'.'/G@J==L66COJP*')!-#/#$" "*"%' )""+$$)""4*&ef`oq% % ,%%*$"+'%__bY^cȼ%# &" hcg(ĸ543#!7:EMPJe_Uh`\ż64YSQlgg!qgc+ %#$107AL]9=LF# &!(77B9:EST_&&/((3(H@CC?HCCR<9F@;A$) 2))3** %(!!0($j^Z'"$!( #1(($"^ccbfhPHF #%!!& $*"%OIG6110+/~48@dfdÿ?PV$$wxy]SVE95#"yy/1924<-5E:EV#%8jdQN88qJ-/)?$"!!$+.3,.369>,.5#(.!&%'*313wtnljl{u'%(/*.410 &(_ff,4>27I00;2*4% $%# &+'(/e^^75>00?D>LB;B-&&%%"0*."+$$+$$611% ~ruaY\$#! +#&/&&'&%]a_|~/%( " #!TROOJN%=AIW\X#-ICQJBV<#4wnuôK@E!$lkj0+&)#'(ihoDFM'7@NFO`?BN + ".)$0$14@(/=$&-IIL"),1/27.16$)/#&+&(+=>?w{si_[^RIE@D9:;#!a_Z+0.)-+GIQ44G4/;.&01,0#"% 0-311:700;8D??N>8F3,3&' -&&&6.12*-6.1"*##)"")""% $! (#)+&*+#&-$$$#"ge`fa[(smu&'.#"! ! #$"# %#! &%,+/7|\@;UiShh^a;KU7BC>38'$*ƺ:0,ACJ^\^46=JY#"FDA$->,55%"KJW,5C9@EIK39;7<5?CgTl +( !!&$)# *42;)(/HGN% + B8;65.!83M_c?AH2'.$8B8eYZ5/3846ʾ%+;6CT@JY9ETjssspk}1@S4@?GE>VUb",:>BD9=??CE=AC@C04<'-7!$)%'%mkm&&)850%#%" "!!SRY./@$'86:M/;Jy~~mo~2BU-;:TRKRQ^2@:?E=?BLNQ04<%+5!$)khgÿ\^\lnq$! ;9; FDGa0$'848:4,6-'/!*,1#%,!(.)5 &!#%#&A@F'#%   + +  # # ##(#)"&&(,+2217 %"&%,&^^a003LLO.*, !:BD%c_]Ľ*&('!0(,0,.÷nwp?R\7=M9AUzhhw45@ %*Ʒ}{{{h`|scc`JEEHEK ~iegd_c]]l#'=<=D&& "#$%'$*-*0=@C*,/*,/..1TVYCEH43:1,0KFF*&(-*%ɽ-%)2-/|z@TbBWiGrG}`Xl.COnyzIHU-8C,4*MNU;=@/23',19;BJHQ25@+,7#'̽ïƮūĦĭqpoQLNYS[&!%facffu+.G22;"!##)#+$ "% &=EA?H25@+,7$.2êĪͯäɰtuv_Z^fbj% $e`buu-0I009#+0:H 2!&8, '#%513C<<617107.(,e][picLI>NKF"#!$!$!$! "##&&& ,-..03#%(&(+ (**.0--0+/1)*+//2"$CHMEJHп/&-()*)!%,')JgrrI\dnwRR_T\l>JQxNhvzhgt0;F@?F;AC,/49;BKIR+.9%(3#/3||ǼȱͲɲZ\_XU[uqy'"&]XZkkz),E44=h]b'9G\;ALe(/E,'!"-&-0+13144/3?AF68@:8;̽yncymh`[_QLP" %#NHLZTXz~0*.715".)#=EO +"!$/ !(% %#""+$!!HIJIKI*-. &&%+8:=!!:;<& (.20¶*"&/**Wko'&,#"&.efmF]iCFR:DRCEL;>?16<;=E@>G'+3.08%-/ywлѺSV[WRX% $e`dpn~'(A35=nsy>86654979=?G!, #!2++502;79;:9336--679A*(+j]\ZOHvndy\VZ'!%& $" 3$$$'NGA8CN$'),7136$$/(!!,' %(-3<:=?=:=;6=;6?=81/1)&,53..&*1,,XfiNNK{}zWXY+-0)378GL@DS9CQ>CIFIJ18>BEJ>=D),757?(02CC@AGCZZWOQNX]Y[]ZпJMRjek&!%jeiuq)*C24<(#' 31,731A=;OJEUPJFA;A>9FDA<:<*)023>86?2++vphid_  +pkoA;?YSW%#icgec\{x?P^# 1"%# -+4--8++6%%0 !,&'2(([]`#"($"63.FC>B?:><9??k]^KC?ojd_[YE@D%#ICG~oimgaegaez~/*$xkcYq`Z@Se!'#!4 !(fa[*!)'*6-0<! .!)'%(0.1-,+432BA@.-,+-*x}wm\O1)-A<<2:>$jdhhe`QVPigbDA3ǿH[ySPV+&J!XVG&&%,2" +' AFFQ&(&%&VSN#!!#!$)%?DB#!SQSnlixnȴ#!ZTRý~(*1 !qea~sl:<'+->@CFGN(+626>"#ùƴRC=B>6PH>paTvr]a[SEHM9=E639omp%!# usv,->13897:?=@JHKECF@BICEMGBHпuv /+-LHJ[UYLFJ#!1,0@;?űlhkcf3Fd#&P\XI+( #,2%1":kC>BA<@JH@,+*@@=2/.(,*iifbRIº% $g_]qsqKOQ68=_ZUbVQOMPXRVMMBKJIu~~<@U*4CDIO8=;)+2=>E@@I+.9&,4$%²u]TPF;[QCl`qf`XACJ:>FEDJ~|~#!" igj#&LLO," ! !/-07589;@?@GVQWƹ|yE6:)\XZkei]W[HBF[UYUPT +±Rb|# #F[#^SH1++*3:,)=#Ay)!+fed""34.*'"|1&e]YXSW425~UQO7<8 ccfniiwwn;>C8CD|9=R1;J38>>CA24;BCJ77@-0;%(3#-1n`RI;bXMzn~ic[8:A8=C ^Z\402mkn&&1!#2336Ǜs>j]X%J@D536-,+@CU1AJ04I6@O5:@>>G'*5%%2"(qeSRG-,%ymhd\?AH6:BCBH" jhk%%0!#2447٣jm}\8%4.B + ++('Żkec#% $ + +"#$*4$!8#!.'"" uywCECZk{&*$&N+rbR4^ss|VUN"0G\bl)0F L"<{(:t]c_789tvmRPMg_[¼JHJJLQ,16-05%)+)+.!#&336149+/1 &0 ,3|}5/FD?xwnA@G]fm@CHpko""1%(://8ݧmʠrƗ]z9"35+$B(!3 )%#½?=:979aZZ685'%"/**ӽF:64GY4N\;>I8V"}%;bCEL:??1T 4 2N8m'L,@z$ "wznvtqǾ`[_RMO!&+$-13268'+-%&'87=FKQ/4: $"!$!.;0@P9;CMWf{{~6?Mø8=C9><79A:?D!!05; #(,*-)!$ICK|JFHysw''4#(:,,7qΣsݣ^ڧkk( 63.94/1)'0+&˽9>>!' %17/GKB34.)%'' |þV1>Q%*/(7EOdw~0:H9?IABC04<5=A$$,39 -21=A faesnp &6..7٥lͦ|ڤaʡ`ŕ^c + :0*F*)0<<9OJE94.=516;9#(-$$'-22131?>=-22"&('),lfdķRJN$,7H",kb[ ,I)$$')&3=R''4-F=h3X-Kyɿj`c̽mge&(+"'-69>&*,JNP;?AGLL;>? !"Ƽ16;*$(".?M1?X9CM=Pb0D`&3F:GX.9D+0<,,/aad,4>7AE ,+,5;$16+7;&,.-+-rqxqlr}Z\d&4018ߨnęmݦfǛiΚhÐ[i@71"A +|NK@478 %,02!%'##051DIC22/('.nelnZV1("-',(*-$*!50+("(L(F&M$ ĿĿYLK(,."''"#$$/6672,9;2{w.  +/@N5EU7Ka2Gc.C_1F^1BY4,78!#(,.xszv~}|'&7%%.ljlŌReϖT“]əbȘaŕ^ʗVși`E &" !(OOLü/35 "#') #)+08:(//+./;<6FIC)00#'#/#&1639Ʊ%/)1fho)!W$;#L_X_hWg"':AAɽ:76!'"&$ " #qgjtpnμ.( /2%ǽ|}]\[NQV9AK5?J9>D)1./73>C?<>;#"!.33'/1).3!#!')')+89bdgrpsmknhfi`dfX^`TZ\PVXQRSONUffuxt}z%$588Alnqԛa̞qC“]Vĕ[WWWRlE- +\SS``W+13-28>@E%)+&(+-35"*,$,.,02)+0439!" #+-&.2+0684663@%T3+SWPW'#txz}fYT('&EB={u><5[ZSA<7 +ļPNG@D;ZTLJC=,-&xj~aYO/-*8;@acfbe_STM21*LJC.,)242#** !$-/2}}}w*&(aaj2.6zu*):))2LQV̝mʚg˜eÔZƔ[WXW\VS}KF/aca''$ "'),'+-)+.(*/ %"$#((,1128:+05=CK(=Z]f]e>Q-L|PDGNLU(/~uoRONB=?*(!~wrlƾ^^Qzr" yx20(65.#$qe\unbkfZyth ">=603-MSOgegbb_FKE).."))*-2Ŀν[`ZXY`+-01,0624wuw$"2%-35ja\U_YWY[TSWVy^ʻ,-.(*-'),&(+%'*!#"$%'!')#)+)/1,;: ") .G:Il)9eS_N<8217")ukg}xxwurƾ~wqȿoof# wuONG:6.}{t10)MLExvnyowrf~zk{tflf\PLJSKG! .)-<<9PSM478#!"PDYE>H`^Y.#(#&'(,*'%5'(/486B.&7+$4+%<-'E608+ D8)N=0UB6YH8k[Hv\NgLnQ|u79>#)+#+-,24'-/%+-"(* "#)+#%(!#!##%')"*,%-/)=.ho{'#3&- )A%3J!2=8>C?=plj˾ɿ'$#(+0XSUzuu# NNQ|vwq*&(hd\<71SNH64-2.&zwk{yjyi|vf<:3495 $"" "(&('&%(&!750$ JGF=B>#'6\^slc]JEE3<69XSN~zGDJyttлzvĸ&!#PNQ46;_]_+')aYW65.Žgf_?:4ú970lf^::/ttgigX{iwo[tpa.)$  71!;7!44!64,$"$$"$!!!$ +07.cE8kQLd%>AF -1/{y*+2Ŀrh^]VIGD" )-+046*24+89*63/<=*6;+37)22)54$0/$0/*24*24 (*#$"$ &((.0&,.,,#;].7p'3R'%($#$#"(&)##$##,# ((#'&%+,(03,3.)-758Ǹƾ^YY¾GHI2*($$'}w"$ƾH<50/(7;3??4DE8qqdfgZſ¿')  + ++2514/3.0-234123123*)(NLO;fa\?#"?[[n3829=5 %+(4edjƴ>2VYMRUINMBǾֿH??0-,'#%-((NIK ?< ?)&Cbcn:;<&&)$#*,,/μ)+LIH "GLL=?=н9@@/;?(02,55)54(43'32$/0#./#./"-.&12+67*56'23,6-5EY'!$-H~*4O##&,(*/-&XWLcbW\XV +' &Q:|D'9_+&(#$1/(97:RONý%%([SQ981"'}r9<0]XRymhDD;RUIJMAEH%$#~! !:??575?A?/:;.:9-98-98.:9/;:-89.9:4?@2=>.;6678!0;g<@*=gC87'%(+& 3.)+&*ɿNKJ((+9=5+2&C=3][TB;5__VIL@`cWUXLIL@÷Թӽ_]Z&$;?=,/0;>?7:;9=;^`^_`aKKN*--1795K329DFDCEC$$!4)(C87DFD084ù# "# #""%%)+%+-&,.*02,0228:%23&12*/-*1%0)%'.$?u)1K$"$'()GGDTUORUO&(+$@Co2|&G#>m0/5+&!31.4,(,)({soJJMʿŸƼɿ,(*ztr=82zNLEe^X~DA6./(,+$^`W@D;CG>AE:< -*)HICJKERSMRSMLHFKFF*+/4!<,%$#upp=88&JIH4<8û -.#+-(+,*/%+',.6$Aw%+E#!$&$?=6QQH]^W$DDn3z(I;k $,% KKH:0,641JLOļ2--20-HFH=;43/-@>79:4uvp'("EIA6:2DH@BF>FLDTPHʷʲɱéոC73GBH%!#B>@?75 + %32/(4*-42+PUS!% upp!)&w|IQUCKMBKKJOI! -."*,#)+%,#%#%&1&B{$>'#!560GE=VVKMOF!#!,I Ku 6}&G9i!&!SSP@620.+{yvEIK4//58=##8:73/1pmlFDA('&464#%#_a^JLIAC@?A>Y[XNNKa\WȴѸѵʹTC=#!UOWxrzxq{~w  #"3.-"%  410?>3KH<86/!$+$$hbf:=>.??1BB4FD:LHJSL "/0"$"*.'" )!:u$&A*% QQF;;.XYL14( /LJt 6}*K"?oį &!ttqI?;" V\^ºRMM" $ ++)+++. $%&567>?@KLM(&),11fhfPTR<>;WRMl`[slrjhPJN!" +,&.lfn\SS"+JHAFD=NICRLDws'""$ "$ + $"_bc4BA8FE:IE>MHCOF!!&21"))%,,,!!;t8'&%+-*4;4589/3+1601S+VD.M8Qt"|{t`TW.*(ajjľ`]\321&$&!. + "%-'-56;9TVSURMTPNQNT.+1"#.%,nioMDD +|xz86800-LJC#!#(##743 "wpw$ y~|5A@9BB9C@;FABNE !".- '',41$  2k5@?>@B@+0*"64-7966Y)WF+J9Ro& ~hZ[946yyv|ƿqnm.-, +$"$+%E1-XIbdiudiiVXU~QMKRNV~xw~||!;9&--#&').*FPG!"#/.+30%)1h/3HHFC$$!-+#:0393+?=:$@b,WF*KD_w"~xpn&8;<}Ⱦ~yy?@A '%(%#& ! +%=!Q@4/ 9inzdiihjgRNL$#<8@FEK +:18cZZ4/3'&%v}zu?60+&!VLAUOS5:F(%+$ aVUcYU*()"%,,&&&#*2.JVM"#'32 -52 !,0e!3!,*%<:+'"JG<#Bd,W@-NIg}$#GXe:FJsnn/.- +X[\QTU"%& !$"%&>#QB <.:afrY^^kmjQMK,(0#2+2:18~yTKKx<86&"$SMC@:>#xzw&"*+$|/74(-+-3/SYQ"'',55 57?'$6n/&*"-0*6-&;66mpqFOO0QcP;s8Oz\hw"# S`kKlGk!BX!6B)+)Z]^>ABaY\%%(!##&((+!0!KA;fOysp}*56 +}zyGDC-(,GBHE;DC4?|aST + ef`kif567!TRJLDH%$* /40$$'#~y4<89?;-3/5;7]`Z!((1::--8#+!#"%--e65F782?A>382nuuOec3Yyt|~HYfGmtDT^'-/05:ÿdii\hgt{{ !" +6#P%J7eO|~y'URQ($&0+/'#%"2%*ypwA65`VY]^X123KJCC;?$%%"EIA}x\e^fme`g_ah`dh`&--4==30CC~==@"""="*V6!TLg@>G+'/!~RON'"& +$#125@gmv$68-&#+(.#bc]31,)-+'"(%+()*1)'*%'" "~yy[VPnunz}wnunrsm  '304978>@!FN^$-\& &43sawu[d]^up.Ozx|~gZM~ !/1/PXbdy[|vw !;>?1/1//2*)/\XVCBH " " #C0)%.'$*0-3.,/1/1&$&B=?"%>JQg,#3MJVu !a\JC>9*$,ILFPOH(&)0.0( #$!'!?A>tin +%&'5*)'!%[VVg`Zvysxxu#!#'628<:/;8%"!60&&,<'P#"T[[Tggt{`jaYpk.K{w|zuk`vpn*+,02/jb` '2qbynbc$"$.20,*,*,1bcj'$1<9E!")#A + + (#%$"% !" "jfh&!##%0&:9=E'"5/'lkj +50+!>C?LJEŹGLJ./094:$&!%)+(}rwpjnwpj%"!   *957;9.62'"&'&$)5&K!?;9xemi]to$Aqy~|}wmbHB@)*+#%"#'6_r[e]P}_UX,*,BDIsux"$%)+ +&<%% $,*-MIK)$&!" ,)(dZm*v}E<020053GHI A=FSXj$$!odi(xr987$#")84597/40%"(";![YVemoXb_Wol%Brx}{usoeZOIG$%&#%"]lq.E+C}PGG)')`dbJLQ`cd!&!!" # + 3;K$"% + ~ig}brH.IS=WB6?VQQ9;>-/4.31LMN'&-*/;54:(" WQU!>9=~w·$! #!/748=;!48:!&,"#CXRy|^xCWeHeq2Gdy{yvpeZKGEBEF162zwv&AZq8549>>digach034%"!d_Y + POUHGM + FBJ?=F::E2)0@5:~XGQi]ldZkwn{ohoJGBUSU[SQJCC,') %!.&$LFJ# &&!*" vsr{źGDC#!164386" 861$""(07U1U 6\/Tw;j-ZEo,Uy.Ho|l`WEA?.12*/+_cZz]fmY|o3,,456UZX~}lkj),-^ch#!||IGJ !" ##!$DBE'#+1.4839NHPaZd B=A{ojleepgglee\WWC>B;44)*+MGE5-+604YQTc[Y'"&"&$&632½źOLK"&$8=;053#(&597) 2 72+l,Z2[EhNfLT^wkb820?@AHHEjnejnfu;]q}xu{{C?A# -3/CHFuzz#! + 202h\Wf]]`\^^Z\JFHQMORPS*%) ")B>@C;95/3*%))&%½'$##!#$(&9>+2@:DO^bjhgfngoyszosd^OMOIGD#%(>JS-2Obn%%% @CACFBDG@BEGBH+*0oge$# "% !.,.$!',&7<:*//%+'/1.(&#<94D?9G?=#3*$D<8RMMh_YfZQqf[zm`whyqgfcXlk`530 !" "($"-F+8!]_\algZ`\_eaiok]c_=C?JOO74/LGG "49>\^cYV\027PQR $ !$!'! $#'567SUSegeJLJJLODFIACF>@CBDG?AD;=@>@C99<4/5$#)ojj-(,{',&9><*//&,(54-/*$KE=[SIsjMA8E;1ME;pcV!/+-OD=reX}pc}rg{pph^ebWrph624-(":(bB,H/ia_1-/cgialmY_aTZ\7=?;AC,24OSU + + !<94!## &16;^`e JKL # &$'!"HFIJHKQNT" +!%#%%#%GEGusu__bNPUJLQCEJACH>@E<>C;=B136136469/14/'*{~ iegmlr&'(,(* +! (-'CH?DI@AHCBIBAHBAH=?D=AC:>@6:<+('--0$)&! Ž$'! @C=%'$IG@VSHi_Qxf\XH>E8-RG,J0}$$)&,bhj|{wuoqhbda E@;OIG"&9;@GIL%PRW61=#a_aXU[XVY ;:@ *$(JDHRPRtrt\Z\XVXKMRGJOFINBEJ?BG;>C8;@36;.05.-3.-3.-3+-0+-0.03+-0  <>@E=?D>@E9;@>@E=?D==@??B>>A??B>>A<;6eZOaWIWLE<64AFBEJEHM@CHADI?@G:;B<=D9;@;=@=?B/14+,-,*,)'))')(&((&((&()$&|w{&!%KEC"bglRXZJNP77:+-0(*-$&) +>8@'#JE9^RClYGu`T)!%2-3D@BB@=UPJQLFGBB:59#SX^SRYONTWV];8D3/8[Y[[\VXVY#[\]_c[`b`_a_`b_^^aEDC647 kffmhn"olr #!$WUW& $,$(RMM[VV{{D@B424$$'$ ""%(&)+),20324779<9;>:ABQSXQRY,-4#aflhgnmlronu$][dffighi[Z` ccfhjhefgVWX_a^VVY@?>'%("%gcaa\` ! &GEG(&(^\^zupwrt[X^TU\NNWDFN=CK8;@9@!$"de_}gehUY[UX]NPWJJSHGNFGNEGNAFL>CH@EJ>CH=BG>@C>>A447//2,*-+),*(+*(++)+(&()')(&()'*&$'%#&%#&&$&$"$$"$$"$$"$$"$" "&$&& 4*9 + + +" + +-((EA?=:9)&,RQPMQOQSPRSM'$# %"[][cba][Xgce!ZZcbcjhipEEP!__hddobbm$abi^`ha_h##>@>:8:(%+ZUP`[Vvrpda`VX[WY\Z\aQSXLQWJNVEIQHJQEGNEFMCELEGNBEJ@G<>E<>E8:?:9?,+1)(..,.*(**(*'%')')%#%(&(%#%&"$'#%" %!#&!%#"726$# !# '$#! !KKHMOLNRJNOH!VVSZZW\YTYUW `_e]^_abc=AF@CH@CHADI<>E=?F=?F>@G=?D<>C=?D8:?203*(*+)+(&((&()')'%'$"$'#%($&)%')%'% $/%.G>K!" + vrtIDJ + "!!!1/1?=?LJL%#&QQNQSQORLRRO#&YYVUURVSNXTV XWVYZTXYR%#%! \[a]\ba`f$$'WXYPPMWQO^VTVRPz}w`c]WYWVWXLQVKOWJPZGJVNPXJLSGIPGIPEGNFHOGIPDFM>@G@BI;=DCEL@CHADIJMR>AF?AH?AH>@GBDK>@E>@E?AF>@E::=225--0''*+)+(&(*(*#!#%!#)%'" .*,>4>&+!,'-!A?BIGJ# "!$#(#'$KOQMORPPSQQTTTW/-0iifUVWQSQQPO#(XXUXXU[XSTPR !XVX[ZS[YT%"!!%_]`GEG-+-" "('&RSMy~xojlWWZRTWQSVPRWNOVIPVHOUDHPEFQFHPGIPFHODFMACJDFMACJ@BI@BIACJDFMACJ>AFBEJADIDGLACJACJ=?F@BI@BG>@E?AF>@E9;@=?D<>C:7572020.0-)+&"$ +!)#"!:76<:=EDJIILOOR!#&"$IFLGDJDBE97:DBENLOQOR)%-TV[UW\UW\\^c\^c"!(YX^UX]X\^Y[^ $QSQ\ZUWVOSQS"HFH=>8IJD)'*"&$#)Z[\[YV^XV||~}^_`PTVTW\SUZRT[NPWKMTFHOCELDIOHIPHGNFGNJOUIJQHGNCELIKRHIPFGNCDKBDL@BJCELFINEHMDGL@CHDGLACHCBH?>DCBHACH9@E:?=@%#&425'%( \ No newline at end of file diff --git a/Lib/test/test.rgb b/Lib/test/test.rgb new file mode 100644 index 0000000000000000000000000000000000000000..5fe29940723e2cdbe17ae007549a3b5ac6746771 GIT binary patch literal 43554 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�a*3_Xn4(NZTd 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 K!%-(}{{IJ?IQFIh literal 0 HcmV?d00001 diff --git a/Lib/test/test_audioop.py b/Lib/test/test_audioop.py new file mode 100644 index 00000000000..3acf1bf0700 --- /dev/null +++ b/Lib/test/test_audioop.py @@ -0,0 +1,202 @@ +# Test audioop. +import audioop + +def gendata1(): + return '\0\1\2' + +def gendata2(): + if audioop.getsample('\0\1', 2, 0) == 1: + return '\0\0\0\1\0\2' + else: + return '\0\0\1\0\2\0' + +def gendata4(): + if audioop.getsample('\0\0\0\1', 4, 0) == 1: + return '\0\0\0\0\0\0\0\1\0\0\0\2' + else: + return '\0\0\0\0\1\0\0\0\2\0\0\0' + +def testmax(data): + if audioop.max(data[0], 1) <> 2 or \ + audioop.max(data[1], 2) <> 2 or \ + audioop.max(data[2], 4) <> 2: + return 0 + return 1 + +def testmaxpp(data): + if audioop.maxpp(data[0], 1) <> 0 or \ + audioop.maxpp(data[1], 2) <> 0 or \ + audioop.maxpp(data[2], 4) <> 0: + return 0 + return 1 + +def testavg(data): + if audioop.avg(data[0], 1) <> 1 or \ + audioop.avg(data[1], 2) <> 1 or \ + audioop.avg(data[2], 4) <> 1: + return 0 + return 1 + +def testavgpp(data): + if audioop.avgpp(data[0], 1) <> 0 or \ + audioop.avgpp(data[1], 2) <> 0 or \ + audioop.avgpp(data[2], 4) <> 0: + return 0 + return 1 + +def testrms(data): + if audioop.rms(data[0], 1) <> 1 or \ + audioop.rms(data[1], 2) <> 1 or \ + audioop.rms(data[2], 4) <> 1: + return 0 + return 1 + +def testcross(data): + if audioop.cross(data[0], 1) <> 0 or \ + audioop.cross(data[1], 2) <> 0 or \ + audioop.cross(data[2], 4) <> 0: + return 0 + return 1 + +def testadd(data): + data2 = [] + for d in data: + str = '' + for s in d: + str = str + chr(ord(s)*2) + data2.append(str) + if audioop.add(data[0], data[0], 1) <> data2[0] or \ + audioop.add(data[1], data[1], 2) <> data2[1] or \ + audioop.add(data[2], data[2], 4) <> data2[2]: + return 0 + return 1 + +def testbias(data): + # Note: this test assumes that avg() works + d1 = audioop.bias(data[0], 1, 100) + d2 = audioop.bias(data[1], 2, 100) + d4 = audioop.bias(data[2], 4, 100) + if audioop.avg(d1, 1) <> 101 or \ + audioop.avg(d2, 2) <> 101 or \ + audioop.avg(d4, 4) <> 101: + return 0 + return 1 + +def testlin2lin(data): + # too simple: we test only the size + for d1 in data: + for d2 in data: + got = len(d1)/3 + wtd = len(d2)/3 + if len(audioop.lin2lin(d1, got, wtd)) <> len(d2): + return 0 + return 1 + +def testadpcm2lin(data): + # Very cursory test + if audioop.adpcm2lin('\0\0', 1, None) <> ('\0\0\0\0', (0,0)): + return 0 + return 1 + +def testlin2adpcm(data): + # Very cursory test + if audioop.lin2adpcm('\0\0\0\0', 1, None) <> ('\0\0', (0,0)): + return 0 + return 1 + +def testlin2ulaw(data): + if audioop.lin2ulaw(data[0], 1) <> '\377\347\333' or \ + audioop.lin2ulaw(data[1], 2) <> '\377\377\377' or \ + audioop.lin2ulaw(data[2], 4) <> '\377\377\377': + return 0 + return 1 + +def testulaw2lin(data): + # Cursory + d = audioop.lin2ulaw(data[0], 1) + if audioop.ulaw2lin(d, 1) <> data[0]: + return 0 + return 1 + +def testmul(data): + data2 = [] + for d in data: + str = '' + for s in d: + str = str + chr(ord(s)*2) + data2.append(str) + if audioop.mul(data[0], 1, 2) <> data2[0] or \ + audioop.mul(data[1],2, 2) <> data2[1] or \ + audioop.mul(data[2], 4, 2) <> data2[2]: + return 0 + return 1 + +def testreverse(data): + if audioop.reverse(data[0], 1) <> '\2\1\0': + return 0 + return 1 + +def testtomono(data): + data2 = '' + for d in data[0]: + data2 = data2 + d + d + if audioop.tomono(data2, 1, 0.5, 0.5) <> data[0]: + return 0 + return 1 + +def testtostereo(data): + data2 = '' + for d in data[0]: + data2 = data2 + d + d + if audioop.tostereo(data[0], 1, 1, 1) <> data2: + return 0 + return 1 + +def testfindfactor(data): + if audioop.findfactor(data[1], data[1]) <> 1.0: + return 0 + return 1 + +def testfindfit(data): + if audioop.findfit(data[1], data[1]) <> (0, 1.0): + return 0 + return 1 + +def testfindmax(data): + if audioop.findmax(data[1], 1) <> 2: + return 0 + return 1 + +def testgetsample(data): + for i in range(3): + if audioop.getsample(data[0], 1, i) <> i or \ + audioop.getsample(data[1], 2, i) <> i or \ + audioop.getsample(data[2], 4, i) <> i: + return 0 + return 1 + +def testone(name, data): + try: + func = eval('test'+name) + except NameError: + print 'No test found for audioop.'+name+'()' + return + try: + rv = func(data) + except 'xx': + print 'Test FAILED for audioop.'+name+'() (with an exception)' + return + if not rv: + print 'Test FAILED for audioop.'+name+'()' + +def testall(): + data = [gendata1(), gendata2(), gendata4()] + names = dir(audioop) + # We know there is a routine 'add' + routines = [] + for n in names: + if type(eval('audioop.'+n)) == type(audioop.add): + routines.append(n) + for n in routines: + testone(n, data) +testall() diff --git a/Lib/test/test_rgbimg.py b/Lib/test/test_rgbimg.py new file mode 100644 index 00000000000..7418e698682 --- /dev/null +++ b/Lib/test/test_rgbimg.py @@ -0,0 +1,39 @@ +# Testing rgbimg module + +import rgbimg, os + +error = 'test_rgbimg.error' + +print 'RGBimg test suite:' + +def testimg(rgb_file, raw_file): + width, height = rgbimg.sizeofimage(rgb_file) + rgb = rgbimg.longimagedata(rgb_file) + if len(rgb) != width * height * 4: + raise error, 'bad image length' + raw = open(raw_file, 'r').read() + if rgb != raw: + raise error, 'images don\'t match for '+rgb_file+' and '+raw_file + for depth in [1, 3, 4]: + rgbimg.longstoimage(rgb, width, height, depth, '@.rgb') + os.unlink('@.rgb') + +ttob = rgbimg.ttob(0) +if ttob != 0: + raise error, 'ttob should start out as zero' + +testimg('test.rgb', 'test.rawimg') + +ttob = rgbimg.ttob(1) +if ttob != 0: + raise error, 'ttob should be zero' + +testimg('test.rgb', 'test.rawimg.rev') + +ttob = rgbimg.ttob(0) +if ttob != 1: + raise error, 'ttob should be one' + +ttob = rgbimg.ttob(0) +if ttob != 0: + raise error, 'ttob should be zero'