From ce1242f1b06a70784794563ce1588bcee6390a62 Mon Sep 17 00:00:00 2001 From: philmoz Date: Fri, 10 Nov 2023 19:58:53 +1100 Subject: [PATCH] chore(tests): Cleanup tests folder (#4290) --- radio/src/tests/bitmap_320x480.png | Bin 7251 -> 0 bytes radio/src/tests/bitmap_480x272.png | Bin 6427 -> 0 bytes radio/src/tests/conversions.cpp | 2 + radio/src/tests/{ => images/bw}/1b_39x32.bmp | Bin radio/src/tests/{ => images/bw}/1b_6x32.bmp | Bin radio/src/tests/{ => images/bw}/4b_20x20.bmp | Bin radio/src/tests/{ => images/bw}/4b_31x31.bmp | Bin radio/src/tests/{ => images/bw}/4b_7x32.bmp | Bin .../bw}/MidsizeNextPosPrec1_128x64.png | Bin .../bw}/MidsizeNextPosPrec1_212x64.png | Bin .../bw}/SmlsizeDecimalPoint_128x64.png | Bin .../bw}/SmlsizeDecimalPoint_212x64.png | Bin .../{ => images/bw}/big_numbers_128x64.png | Bin .../{ => images/bw}/big_numbers_212x64.png | Bin .../{ => images/bw}/bmpwrapping_212x64.png | Bin .../tests/{ => images/bw}/dblsize_128x64.png | Bin .../tests/{ => images/bw}/dblsize_212x64.png | Bin .../bw}/dblsize_bottom_right_128x64.png | Bin .../bw}/dblsize_bottom_right_212x64.png | Bin .../{ => images/bw}/drawswitch_212x64.png | Bin .../{ => images/bw}/invers_0_0_128x64.png | Bin .../{ => images/bw}/invers_0_0_212x64.png | Bin .../{ => images/bw}/invers_0_1_128x64.png | Bin .../{ => images/bw}/invers_0_1_212x64.png | Bin .../lcdDrawBitmapLoadAndDisplay_212x64.png | Bin .../bw}/lcdDrawHorizontalLine_212x64.png | Bin .../{ => images/bw}/lcdDrawLine_128x64.png | Bin .../{ => images/bw}/lcdDrawLine_212x64.png | Bin .../bw}/lcdDrawVerticalLine_212x64.png | Bin .../{ => images/bw}/line_wrap_128x64.png | Bin .../{ => images/bw}/line_wrap_212x64.png | Bin .../tests/{ => images/bw}/midsize_128x64.png | Bin .../tests/{ => images/bw}/midsize_212x64.png | Bin radio/src/tests/{ => images/bw}/plane.bmp | Bin .../bw}/prec1_dblsize_invers_128x64.png | Bin .../bw}/prec1_dblsize_invers_212x64.png | Bin .../{ => images/bw}/prec2_left_128x64.png | Bin .../{ => images/bw}/prec2_left_212x64.png | Bin .../{ => images/bw}/prec2_right_128x64.png | Bin .../{ => images/bw}/prec2_right_212x64.png | Bin .../tests/{ => images/bw}/smlsize_128x64.png | Bin .../tests/{ => images/bw}/smlsize_212x64.png | Bin .../smlsize_drawstringwithindex_128x64.png | Bin .../smlsize_drawstringwithindex_212x64.png | Bin .../tests/{ => images/bw}/stdsize_128x64.png | Bin .../tests/{ => images/bw}/stdsize_212x64.png | Bin .../tests/{ => images/bw}/unsigned_128x64.png | Bin .../tests/{ => images/bw}/unsigned_212x64.png | Bin .../tests/{ => images/bw}/vline_128x64.png | Bin .../tests/{ => images/bw}/vline_212x64.png | Bin .../{ => images/bw}/vline_lt0_128x64.png | Bin .../{ => images/bw}/vline_lt0_212x64.png | Bin .../src/tests/images/color/bitmap_320x480.png | Bin 0 -> 23172 bytes .../src/tests/images/color/bitmap_480x272.png | Bin 0 -> 22523 bytes .../{ => images/color}/clipping_320x480.png | Bin .../{ => images/color}/clipping_480x272.png | Bin .../color}/darkmode_CN_480x272.png | Bin .../color}/darkmode_EN_320x480.png | Bin .../color}/darkmode_EN_480x272.png | Bin radio/src/tests/images/color/edgetx.png | Bin 0 -> 42634 bytes .../{ => images/color}/fonts_CN_480x272.png | Bin .../{ => images/color}/fonts_EN_480x272.png | Bin .../{ => images/color}/lines_320x480.png | Bin .../{ => images/color}/lines_480x272.png | Bin .../{ => images/color}/mask_menu_radio.png | Bin .../{ => images/color}/masks_320x480.png | Bin .../{ => images/color}/masks_480x272.png | Bin .../images/color/primitives_CN_480x272.png | Bin 0 -> 9924 bytes .../color}/primitives_EN_320x480.png | Bin .../color}/primitives_EN_480x272.png | Bin .../images/color/transparency_CN_480x272.png | Bin 0 -> 9489 bytes .../color}/transparency_EN_320x480.png | Bin .../color}/transparency_EN_480x272.png | Bin .../{ => images/color}/vline_320x480.png | Bin .../{ => images/color}/vline_480x272.png | Bin radio/src/tests/lcd.cpp | 19 ++- radio/src/tests/lcd_480x272.cpp | 125 ++++++++++-------- radio/src/tests/opentx.png | Bin 12364 -> 0 bytes 78 files changed, 79 insertions(+), 67 deletions(-) delete mode 100644 radio/src/tests/bitmap_320x480.png delete mode 100644 radio/src/tests/bitmap_480x272.png rename radio/src/tests/{ => images/bw}/1b_39x32.bmp (100%) rename radio/src/tests/{ => images/bw}/1b_6x32.bmp (100%) rename radio/src/tests/{ => images/bw}/4b_20x20.bmp (100%) rename radio/src/tests/{ => images/bw}/4b_31x31.bmp (100%) rename radio/src/tests/{ => images/bw}/4b_7x32.bmp (100%) rename radio/src/tests/{ => images/bw}/MidsizeNextPosPrec1_128x64.png (100%) rename radio/src/tests/{ => images/bw}/MidsizeNextPosPrec1_212x64.png (100%) rename radio/src/tests/{ => images/bw}/SmlsizeDecimalPoint_128x64.png (100%) rename radio/src/tests/{ => images/bw}/SmlsizeDecimalPoint_212x64.png (100%) rename radio/src/tests/{ => images/bw}/big_numbers_128x64.png (100%) rename radio/src/tests/{ => images/bw}/big_numbers_212x64.png (100%) rename radio/src/tests/{ => images/bw}/bmpwrapping_212x64.png (100%) rename radio/src/tests/{ => images/bw}/dblsize_128x64.png (100%) rename radio/src/tests/{ => images/bw}/dblsize_212x64.png (100%) rename radio/src/tests/{ => images/bw}/dblsize_bottom_right_128x64.png (100%) rename radio/src/tests/{ => images/bw}/dblsize_bottom_right_212x64.png (100%) rename radio/src/tests/{ => images/bw}/drawswitch_212x64.png (100%) rename radio/src/tests/{ => images/bw}/invers_0_0_128x64.png (100%) rename radio/src/tests/{ => images/bw}/invers_0_0_212x64.png (100%) rename radio/src/tests/{ => images/bw}/invers_0_1_128x64.png (100%) rename radio/src/tests/{ => images/bw}/invers_0_1_212x64.png (100%) rename radio/src/tests/{ => images/bw}/lcdDrawBitmapLoadAndDisplay_212x64.png (100%) rename radio/src/tests/{ => images/bw}/lcdDrawHorizontalLine_212x64.png (100%) rename radio/src/tests/{ => images/bw}/lcdDrawLine_128x64.png (100%) rename radio/src/tests/{ => images/bw}/lcdDrawLine_212x64.png (100%) rename radio/src/tests/{ => images/bw}/lcdDrawVerticalLine_212x64.png (100%) rename radio/src/tests/{ => images/bw}/line_wrap_128x64.png (100%) rename radio/src/tests/{ => images/bw}/line_wrap_212x64.png (100%) rename radio/src/tests/{ => images/bw}/midsize_128x64.png (100%) rename radio/src/tests/{ => images/bw}/midsize_212x64.png (100%) rename radio/src/tests/{ => images/bw}/plane.bmp (100%) rename radio/src/tests/{ => images/bw}/prec1_dblsize_invers_128x64.png (100%) rename radio/src/tests/{ => images/bw}/prec1_dblsize_invers_212x64.png (100%) rename radio/src/tests/{ => images/bw}/prec2_left_128x64.png (100%) rename radio/src/tests/{ => images/bw}/prec2_left_212x64.png (100%) rename radio/src/tests/{ => images/bw}/prec2_right_128x64.png (100%) rename radio/src/tests/{ => images/bw}/prec2_right_212x64.png (100%) rename radio/src/tests/{ => images/bw}/smlsize_128x64.png (100%) rename radio/src/tests/{ => images/bw}/smlsize_212x64.png (100%) rename radio/src/tests/{ => images/bw}/smlsize_drawstringwithindex_128x64.png (100%) rename radio/src/tests/{ => images/bw}/smlsize_drawstringwithindex_212x64.png (100%) rename radio/src/tests/{ => images/bw}/stdsize_128x64.png (100%) rename radio/src/tests/{ => images/bw}/stdsize_212x64.png (100%) rename radio/src/tests/{ => images/bw}/unsigned_128x64.png (100%) rename radio/src/tests/{ => images/bw}/unsigned_212x64.png (100%) rename radio/src/tests/{ => images/bw}/vline_128x64.png (100%) rename radio/src/tests/{ => images/bw}/vline_212x64.png (100%) rename radio/src/tests/{ => images/bw}/vline_lt0_128x64.png (100%) rename radio/src/tests/{ => images/bw}/vline_lt0_212x64.png (100%) create mode 100644 radio/src/tests/images/color/bitmap_320x480.png create mode 100644 radio/src/tests/images/color/bitmap_480x272.png rename radio/src/tests/{ => images/color}/clipping_320x480.png (100%) rename radio/src/tests/{ => images/color}/clipping_480x272.png (100%) rename radio/src/tests/{ => images/color}/darkmode_CN_480x272.png (100%) rename radio/src/tests/{ => images/color}/darkmode_EN_320x480.png (100%) rename radio/src/tests/{ => images/color}/darkmode_EN_480x272.png (100%) create mode 100644 radio/src/tests/images/color/edgetx.png rename radio/src/tests/{ => images/color}/fonts_CN_480x272.png (100%) rename radio/src/tests/{ => images/color}/fonts_EN_480x272.png (100%) rename radio/src/tests/{ => images/color}/lines_320x480.png (100%) rename radio/src/tests/{ => images/color}/lines_480x272.png (100%) rename radio/src/tests/{ => images/color}/mask_menu_radio.png (100%) rename radio/src/tests/{ => images/color}/masks_320x480.png (100%) rename radio/src/tests/{ => images/color}/masks_480x272.png (100%) create mode 100644 radio/src/tests/images/color/primitives_CN_480x272.png rename radio/src/tests/{ => images/color}/primitives_EN_320x480.png (100%) rename radio/src/tests/{ => images/color}/primitives_EN_480x272.png (100%) create mode 100644 radio/src/tests/images/color/transparency_CN_480x272.png rename radio/src/tests/{ => images/color}/transparency_EN_320x480.png (100%) rename radio/src/tests/{ => images/color}/transparency_EN_480x272.png (100%) rename radio/src/tests/{ => images/color}/vline_320x480.png (100%) rename radio/src/tests/{ => images/color}/vline_480x272.png (100%) delete mode 100644 radio/src/tests/opentx.png diff --git a/radio/src/tests/bitmap_320x480.png b/radio/src/tests/bitmap_320x480.png deleted file mode 100644 index f9396282f9b20525e61ebbef82046876b4cda6b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7251 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 R;Lk!RC?ITZt)FDWKLJ-kF&+Q_ diff --git a/radio/src/tests/bitmap_480x272.png b/radio/src/tests/bitmap_480x272.png deleted file mode 100644 index f546ecd6ce9c4881e63698277a40aa2191858be7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6427 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 M@Cov+_7tZ53xS8K8vp3-W`%Q@ zHcS8jXKF;~TmT?~{NXcT@-Ht&OP&C*sD5gwe7+`TMT&6%X>b;BwC()=^O53!OKn`r z93(dIe?D~HlrYv{d!gTd+w3yxCza#>{{^uFC2WbI?B+@-B`icqevplXAHV<82*F~j zsgsKt|7|G;Gx0%wv&z-}zXQt2UdjGCg#S(e-X`VbWZ){se?Icf;IavW?Vr5xNZG40=pNGTB}+IGuNs%_T) z4ox;}{{M9e*2?#u{J&PAIY|6(coye`|DRPU^T|HR?xg>=tFix?hz(qxhO1cHq`&>& zm5`19Sys*^efYh9*T~lK1$MoHnN9z$BO*lkqr2jN+fnHMOoRi?4OadzY0SSX`O)~F zW&J<)&yX{6xEpfD_WirNZX7FiuB0;@dI=k<3A>C{deg9weOET_+Rr&7}|D+y!N<&|N4|pN{I|xkuk(q z%j)%FTvCV0wKk=nF|9)nj5N^w8-c-|X}7DVp2|B0^qZ&@intuGBb=QXdYDR0Z!e#i z7ECnI3)2|nzXV~BVUqg2NcmUMEpbek569|j=2V~yfe_~j1^IOQ8#!l_CPtzA^LJy7 z9XcM{DiGU~aOVkdu*D94nPjBUlyU>ikzhnKuN|)S&55luw z%I)FE?D*$Zg2S9SY>y)a)790-hZ{0Qc)eBRC+1+J1l+3u4SPjGAzW#BGm|I8FWt;U z*i48m()$s})2Q(w*{z8wH&IJdY{vzWz2gHw?r$arS-%TIv8r-OaA>NwhvwcK zT=i+txtVYa%g>IV;j?i=PBgkALH5t^d$d_z?}W+a(EUi-!4{s1Sn)j7zGN~bEaqGg zxzGF;H2D5812WUXRg$PdKbEgT$JmA)TE%Xh3$JNsTaAvChTK}CIz6G(*l-H12i=E8 zaIiL-KQDQ1N0t5QrB&^4aoU@M=uZ}b`KN;oDZaO>0@Y{lVheBY6$O1CQ3|NKiIgml z;)2%KqMDPCc8?}Ta&}PT`2va)vO1T1sjIIOgXol>alH~743Ixu?nr0FGlh00PKAkK zER~s;W$r>H%u=2XtdyuI`-_9H_`ajU6PuyowSnp+70CqB}J zQzQn&xY?$Kvr4vvxS7opiC07mafduBM@w{{9MwYIzlC-(d_?UpC{^fMzQQ#vmZr)~ zsxE3evYNa|?wT zW2%Te3y9Wr?s8f0P?L^sc)wA3sn~GONYrIoc?9O%VRC;?wb@z;_e$D=t zrq5k%VZdvd9(wO-ObW$3Sy+Tin6!Be!sCc%xR255Ha_u=C<)%F0#+T`fa`6*H6qBc`n>7!qJ`Mzrm*Y;bsQNo zbrqV@_6Vtk?<1iM_-7#+$L2H>eTH{s&G+}zqW!Y4R#isbqpa`P_AxZW`N-Lm;5|s@ z*}#a%TD1u{(3+pHEZ^^wvxmI#la9yK>n;lfVXI2QNh2&gixppm*}RI&=lNc1XEj2D zRF);!vOQ$lD&?S^Y$NEr53l=fKS56qpcuk@B3zGX&n?t{;q4OGw+Lz_(B1EHW}GpL zcH}qO*}qCxep3CsTuI&!yyNphq7-a#^-)~JXf_e&-sf^`eFOsM8AX*Ka10|sv3H=X zbcsK*l$&##zMhPp@pkGn!$^h0q{_fAWB>qhFJ5Pf2FaU<9Mfv~yw7${VM8 z+h^g)oJuNZNi8$lO4HNCantRCm6E8{JhgS^ij+S3mn(OJ+|{buN(LVs`D5no$3e$` z^8inBhM>S-pyF(r-K+5ue}m_b@VytCGH$`0USPQif9Nc+7>hwwEb)|Aa6|)iy|U39pBBoK!B<^dQ|sXyxX%vqdJ6pm%c0 z61H2Mzrf#ofhjZ9G7};;()Z^_Jx7plcc!fpl#`fXtiy840Hs=@cfO4>R}QtHa!7rm z7#QcI?Hug9uPVF30_u>#42JZ)BNc61hLm&Epu8xJU46l5OZ$rVC zO_|ssL*2(*@L3#UnjsAN5}UN@)u2G?V$GI)0B&V0XTd${r6cW4Yqc{Is$m;dK$kJ4k?G|-3ygl zIfpNWCDSXFJFr5uG~JsVSACGW_FEW=!sXilccD}&mC0oJM@)PYAA|ejF-lmoFYQvO z_UsM3pBAxrYww**4s0*WoeE>KI)aON}6X=|0Qwi$ct_E^EbQgnOvPU6Y>)WyOO-<7(9yMk?BX05ari7!^C zBDa#)X0(@@{5)ky#VW4WQ%)`;sLm$O@5JbDUy#3PdQ$?g)$ZMx|7ahG7gT?9!RJ~$ zK7&rzo=Z6U&OzX4d+97zq4m}KDcvG6>?WL~SI$Z`zoj;7k*WKda(J|$`8a1)>Y)(u z>!xq-QKF8g4e}6NuLTyJ%P_XmYoyLd?fkG4`rF3&sjEtz7RL}Tqj`3HII+5$ytGGC z#y!u_5CvhlS8;8>5TBEthGA4&AAYsPPT*2L^`o}%+yb^2$loGN6c3_HJ|KOOxK6!{>YN?6q?=g#*}nYouimInMruzwg)K z$3#pwJo{o0BW2hD|A3?n`yhy7a^-Jr$OoDlX{G1KbCs>u`{L0l7joe62n-Cq868=+ zy;^lrUjCoSzM>$CpuP3pFKoun0QQ^n0v2R#-j-Q!`?DeJ7>UD*7ugA0tp6zTTuG~q zvl7_#3(hVutx5V0+>Y=@6oh7@R@ax=B%(oF<#<60-SP%o=oW;HIfLb3fTunc$e)^m zF7@Y}-O_G3Gh{q4L1;WW*Oq>R_D}oq!|^x&a~@R=&Cll5{DlpmNS5R1-Siy z!BE<*0xRtexlM`}1ztmKz}i9nSrBgrggV+U{o;vBCnhBUtM%aTWEKt{4tQ@}yD4K1 zx{!gk&a8|HWm&a+Ysimv%zsaxo3c?E#_WPu2OLDg&&&6Z2@(WqMvM0hv~N88*(I4w z6N=_KIFy1EfpFFnD!#&8|1rF7(H!&xTv0T3{(NKs{L@_~>^!#YoIT|J2Kl8|{NM#H z-)FZZnea#n&mMrL&Td&LH9+~1Xm&QQ=24Hldd0r{Dfi4^*aO>Mx4>M@cZ4vr5 z_nJ3)*~$yMpMo8HB*KrQzRrxCqjP+t(0gOgfb0mu=2|L?jVDX(iaUrfdIR0;S{klp zyXHy3INJEtt`gR=fU>(~WBwvMPQO3Yj&~IGHS@HbNrLYwd=S(5y%(Wtc1RnnLZc{$ zjs3`Rw+yRW`p=%ty#0ViH7;GubnaWLKOx39g@)hVHr9VPnVU^*oteLTl6u}3q{d}} zq;q3gDtJH}#@4PrY?x-TD={vYO$ufLH&hsa{049-LB}9>j`QD%9VSOrR@Mx@j-3NQS*J8&;5^I&m zo#C;KD{wI_pC)(OxLhtrv7Pit{nM{8h-**8@ zrTmW%ShRGn-V#!uf81D~$uqGH94&AjZP2{RFDhWEn+rP9b`dy@*pooFWtk8(FKZLT zj#wCu=ov=yJkhe9YKA^XljCzNbDDNWvKIK8tEBQ0=MGW7vH>7#1r`x@r$8Rhh_vxa*{}1Vx9vP zz4e@<@5y6PxlCxjYqS8RSx_butQ z@b*z=W60e=yE!L5si2wbl5}5H#sDxQ4Br||3?HE}5x-c*`eH>VMk6!g1{-MUOn*VU z-#>@Rb~63pkT?84;MN-LDOlrZ6X`q&%)X}oZ1f(uBBiWaPN`_`q~*$v$)IjMa7pPo z#0h4qBHGz&&FbK|YM03xChzANwAAbYis1u0tC_@e*G2RR2OZ7~>bu_4cr|+&FLf~8 z6I~KZ6%ba-(OU22qdLizO}hizPc(uQQ?IP|plBb~TwnV1=FG;NFQDT%5KRhc6VuP0 z_y8q;W!}84QZ{UDDxtP4US6GKAAH+qZnIQfT}%z^91WU_<)^a>H(Jl%gp30g$}QWx z`HRXM@)9X|@xUWt9{Pat$<&yfU00d0S--E295=WnsK@|b_3yxZ;zSI_j3NoN@q)$3YkFG;lZsOKu0`gBHG7Nxd_eQP5T?`?zBrw^^Gej5-mP2JWpjJ%`XL4C_O zzPdfZ_USwyC}PS-r1v+P?f2A|;%yHpUhQx|g6T$H6QX_%dlf?)J9Kn50UwJkPbKs8 z!lGSjs3aPlFt6qQQ>p}5MCu*5R61R`y-VvlW@0*3DtS8U_h($0RZVO&Gb0GbJFEw- zT2jO*d}OP1MN-@fzNLBLUUF*{HL<<8QVG^fyjP}*S7JwBQYRbtHHzovZMBOQ2I< ze}K=XeMgs1Qo+}mZP^ItPW2HzhrnL zn%E|K;(o1qf`05Pk(SQn>K9%B&r>IMWXIDwGf>ARweLg7QSbufze3c*X65hw8BsQ95O)DE{2mX22{MEdRgG<6U)itzeY)3i?hC{d+IY0 zEA%Vdr_Gv7RlM!<_!@O7lw#RTr#a5LLFZ*+dEY7aYoSmY7c!wzA#SK$=Y}3+`4!>& z#bD}~tl=JHo3~Zc>(}ychheL_aYS*`}x3if2;+i8bVgj^k(3!*9hI-O$Oc^ zsJ97nI-6v(R=(e?N92y%oPtBgtKkFXMZ>_%y)wV4si zA`J#yQCUZFt3W1l#5S*C85f>oReW@Bxx_@rPE!}&Z`n$ZJPMCnGPW&pLvITNK_-v@ zzYu|33AJA<#99+gReHe93-a4u;vk11~SCw9sqyq8nfb- zF;g3=c1$L5pl_6R_o$ldo8-FS;08LCN^Jed);(IS-~;<{9G8>Y6W(fIb49igjGL`- z;LfNL;itUh-MRZp>b&3My>>MNyXsP@xZM-{$uR415CSQEzU-S$*%%uAyMtZJ-kh$4K%9jEDdQbL;K#7_5WDut0(DBj-wi;#Xtgdod-*4+fDMiA>$|{ z{i!Z!%H^@~%{H`UG0xGC#drg_n)#JJWF{mYFOvK@GGs&^uM)*z``TGhx|JIZUM3K{ z8yR}v4>gFy!$?h0FT!f(*;Cak_ZAk4sh(%2WUC$@zqsN2p+|a)yTo(4O%VN(H}+ct z#}<3TqFK3{n@hn7{Ocy347;?=T9P6IB`$Gbt#?|^w_LIUXzY4A-j{+4{tAKl>TQ$I1DlYa+dfGo+UHpuonXB$;hDx zyjc>A`AvkIf7MM%C7E}bt5%SRoVw3bTI75B4gPYFCqw>5$~W9Gf(`~W^Lz>!HGGwN zP|eerStqvEF=ihBQI8llEAF1tdVv?3cq8>SKA#=6-M17Kmx3DRG*Eq+(l}Wk$C}lx z50jQVyw^fica6x1U~cvOe+Vf4eD=lirujZm(|GNq)wlLU&pi{P`9k@naRhqyGVNj( zJ^5x}Kuukpx-Sz}n{_}!)!<5rWUJZvFTKc6u{mO__Eq@{BORB4XZ!yFQgBX>b$Wn1 zaiTEg7a@6lXC)D)5xBioGHW)%3Sq@}Je|cR;;D);DZKIZ%Z*>g z>8_;019rYH|X16yIolNmtXr446P{oCy zpr{=`$D|q^w&-V`r_s3h)V~TAhW((4ZphScZ6pVfsf4wy2!G2W-n~stg-70+8*WZD z(I4gzFTbOW8m<#{>|Yqd6Q2k|YN&8hH)1>)NgH~2fS2XOSIi5{rw2I2HDt2Jku^`Z zuo;0(Zj%dEh^~Cg{>?nhpHCp~#(GDocN*Rg^~`}L-$I^@3CwEp*l_L{kFD>=tn7ur z@->sj88J+TVacsYLXu*uz>UT zS-n=+9{t(oik!2m%u}FvA*kyXc|LNoN^{m#$Xy5t)1v6G>R^Rc;7V{MG$0%br& zL}o%m*tOJDO2o?mc;06cQqL+6iKUyMZ#ab)H z8`>Rfc>i-P3pT++ED(Wmx-U98qC6q7!m=>Kq#}v7Ztk!;7HSr`O*km3*lKn3Sh#Ih zgG)nM;{ZK)o>NPsf4sNQFD?*+B0{mgbd$;?t`he=D_{4r4ZITVlz|xy#8fMd&382@ zvZGL1CRJ|HguWx^HZ|aQo7?(M&@HY4f0=W#df!We zd&@pWv!S6pwGP*+Uyf)?49JPtwv^!9>G_#S(Pa6wFjO>cT3Yp9s&dT)Mp5>a)eQd^ zoD#!z(7nnTJYGT-rfp&<6=+v@3s%ecLZTCPzzSY1izRhGt`rjlC|NyR*+)6Ld8)C! zsr})nh%?#wws%xJ!`%-BVT-!zp4>t0zjs)x3Nd)h(kdPSe?h`bCrIjTS!8(FJPN4( zcC8Gj9rjBr)ZwK(qSmo^q6z+FA)B2~)vm_v{0-lOh)a)nbW4V_Af-rQjBS7+<%KDb zEciI^|IV$|i&9Rs(gz>gij-@nQgJ^@WD#8k?#jTycJ>x~)J!(uOpmwbY-k&-Y0h#r z6{maEs=foHMN5*Wvy0-us2;k|$(GF~%B13{xg`VM>bV9Pc;`X+8-wORQAYU*MrgE|SSZn~+Y`M5Fmnz}SBj zAGVH|1vtmB@XJ)?qo*v?<4k@_7VtTt{n~61Q>)+?pvgQ$V>LuCU%Xv&g?;x7$y7y* zKV7iI5ELlJsYk%b3Ga$nJ?1w%IC!W>73iH~BonQFNLV=Vn7{Ac?!li+eJt_qb#i(q zN}nkZpBtdtaxs!Jm2)=ul|Nwn*l*p_(6ni*Amd!q=O&vz{M6gvv77W6 zWYj4Zszf&KX2u-e+anl?4k*{MXSIraqWR7WFrh2c>LuKHYnRbLm$YsOz}j+GxRmvL zcHqrie(8v3_Mh$b+hplr?xta6Bj+0yLZr`xk#`-|6_Kd6=&7?TgcTjI47K?K6rTeA zv*WAZv$+>Y`HRxaMibr(RX#OTEx>AC@)a*l0+Kh>LD~!o4S`ZFbi?|RkH=S}*V`#4 z9fsz1Fcmqe2~517oVkR!Afy8-Ih7-B1Rl#jFdXv|VW#JvB~gCkle zUyM3oqwhk{-?WDpX{YVhXQY{Z5dSr3{A8Fg*+5o)?X{Qn1(`?J7n$S98&~}8-l(%> z6CI+??iw+e9I^=4IuNjG>_CGGDUKz1oOM25!E2M${gXO=F+bbD6JHBbTAsUca0lwm ziyk6C?aX`7DUZMuXYlSsLIQXu*xuKKXukg4kjbl|4U2EDVr=c@s#h0;AhOQeVDtEm z*0-_t>tr%VqA*P2ILYG&Qr?QM;( zS!ifgLC{der(9pr&Ina4Q7}{*3lfD1B{H!XZu1urWgTTxyc;SJBTaf^75^PcGfqXA z?9RL{j1H=YXUxGsYY&~EChL=HbZ9E9tA{c;>=tWK9cP~O?LpSlx3_Odm=PwBG8ML8 zNw58h*~vl<*5U_U28M0bAF-QuHIYco9BPH2g8ln)TI8q$5ihX#c@**Gm8Gx2foJ%~ zy8M%N+7LTo0G$7Zewk5ht9{!a#2#lZT&FP)kQlLNU`L;}{usT5;~uw^|22^B|29^- zlJhekPYi6BzN)Z}W3Lt2X#hy+h z9#3@g{w|!v`zhiXF*Bo1OHd``jrT%3CK@G(B>#6#gvlX#B2n>4H zP*yk9h|FpA!#>CQ9FucQA;rdBMh6t?PaLZsw<`te4}adC!wZ06SIZ!F0PdYjsIiI9 zEZh_MiaA)ENzK7_c#9?t9NqV>PG{wToeI#6?EZD|MA%2``F*G8EAQP0fF#Ie%Fk)$JT`|?k)$WJpC)D?Ow7+tbz;8FHFNi)V=CQD8{>1J*f^p9r zUXO_vK-Jf+lh(O64K>jtj_(4(ZV9lzrH$%X(kTnjRKm|U5}VV_Xt;}*YnLfvvJHJF z9ERrr>Ewp<@mjz_G)phxD(lH5%$1s}-!Mx4qID^TN~JSHDWOeR|6GaL9jRDaxM}3LomkFB~;t zuan>%CJA-e%7?tjzY(5y4e<91a{v*kvk%IH&RK12W2+PSvi5JWq1@ACZZx`F+5#Ey zG}ukQVd7>ogB}vjIXkLdgoTeDGn%ONwbv{fi@b9QhC0O;wK}L$#7JBZ=nJuXTk~K4 zidE&0?`Bi*Rj%4ULui*$doGN}Hwbd~*=2E`(`kh>-HA)y4e50J^%v_<)H_oMmu-5< zZn!p_GcZZ(;>b!TzY&#n#*%7zSTXV+2v^lR@A-oa^~pwti{`oseFwRKGd zYeOmSBjA_LhT1Tebkfcq_`}NGdf0kjY-Rie{e2xzxMVD74ie|lKc{%M4z{NYL;N=p zYXf(Y>=%x$=(2vd2BP)8TB~UvfvWioug^4>;}!z(Jp24_E-)D?4g0KW47+=vurd_W z#)cjH_#fehXR;!nOrlVf-k(A+9deXqA|J2cJ$M89D3BxsfoD%>iQzi> zfaKavF_mNz4{a5D%!)FCzYjC<8Ax~Mq%u%D@D3?(@QRA$?XI`k7eMTOjBnvS1NO3PR-@@9Rz-5P{Zv85yuJcaTCnbZ^H2Kc>AypqSsO&+bMdw3a(O&=aOfe#Qju81 z9=ndC_bsu41q=6H(%;Np4-qojFBS$a&g!)j=5LS3YoU^;8y7n5laBvGhixkYv6)i9 zYq5^jVE(`J!vLdsb8$)Rj7R+%>sPJE?VebnY46@iBwA6Q|72n}gr6HA{E`KI`&Kv5u>rQN2%koqh3@=IOT z?>qTxvU17N9NkkJ`bghdF`ev#j5H)ssHBj4Nn}9|C#MY&XHZjE~yrZZFz|8AAHni9qko8&lkyj>7J;RRbo9jg>O%PDE^U8E>TBm`?@c=6rm7@v8ZfXg}?nt(x6AeqY!w z1*9Ofv~%^?$PYX74ZvNpTs$8w`}GenZlVF}N~Z^{i{@)K$$M{dXyVj#(~9mb=uZ>q zFCm|ccIcr*e>Ch^>3IEyqhFy8_^~(DGZGEc#*QY{*~Mv{w7dkp#ax``rhWsz?qU;B z3G_@V-fJaO39)M!ZI+LhM8ba>#^-~B*YK(J2%X{{4Q6)*fM2TTVckKj)@1Ri;S_wWz>59Z8DJt-}{2T9yD%AgmyT1Nh4hljFi7mRv5)__k$K0~UA z>&_|_wqz&KmQJoA)?CTa@>@?x}Z@@0(8xV z+9wJuZz!J-gKn>#J&<~hNu}R%Jy^dGEqy7t23O#0c z3D~eKM#u;8-VpcsfOiS!z4^wETS;;}YOzlJ@o+el;u;jY-eFw1RXEqV+b`BQpats3 z0hu^m?fob6hPzyG9ZYbYi$^Zt_*=L4=rH(IN4ycfMu*vOjSz~){*EorQ;@M@YRiVm zCs%AO-JByL@UE<642n+1!jEkjHzR4S2;FKDX{p;@hBqdolmO#m5aqAC^(RY25zjOw zs&WyYAU|v}Hp<)9J`sqdqdGuI75x=#-&diIO9y9@nvzDBm&YrWf(eJLGi=1GXIMun zTvb?hJ3VcL?*Cj^G0=Q~1+Pk$jckRcnFW{;(?r|E6Uw7A4&Gr${1&WkfIH8yBzy^W zP8xiP+j$FLe+^6jXU9y8HfE+#OWRjLEvvtZX4^+Z`vIYW$cIk4D)w?x9{3*rka1ZbTS}SC zdL)Nx?9G!py%i(%sdQ03%^ODyJd#r&<)LcwZ2&ZLYX?~8){U(hZFBdbyrpXuZQscX z4xTBT4ECWZSG+f4IYYeH&*_g6IAHxjIdr$gHYp~*uL)vh(3#6()POF{-#0$R z%Q|Lm$gLd_sar`xr-^o;6_VIutJViZV%Lu|O5(#8p?xzJl4QdPzgghE0<3i_k(6pR z7syn}Y}yN+;ldjMp=;BZs%Sc%t-U}HAaMrg%D!W9_O+^vt1pq`OOX;`^gZnrZ)!(M zJh=R8Pi}vE$JVTaE$qs&i^iINkiF2m{t$h~;l7(xofX|pyjEpu^1Rsg8IA5G!%tIU z{1Iz2FEa}hE<|%axGd5LHk}c_$(o~Wzbabu<1xVf2m!30*p9E*m-RbIUVItR-Y=Wf z6Q09F-C>w3M-GK9lYy&yV9##$6ICnrHs4yI8*a!jfk}>*p$FXBnJ?ShyxW4o{jc!J zAPdBJ`hrNYV;rzP@KAQ4UfZWjgR7%0(YLQ0HWk?3K`-gDL&AdLP$+JtYo%x_r1`BM z`qcQHuzOb4XFFu}h}_cjv*SRF2ohF-JlUuf!s_8RH0lhrq4@xY(}|)F2+8oTQVoCu zO~iS222W#I4NnZL5pN)&^Ro>W5sPnwpKQ&^-1#Z{!3XPQ%R$WA#!~F6EEsH@R&yiW zj?1=^nvbSXq(orz44S$@-Z)w9gOnIyIKVO3QGAuG7%4cC!|)nF5E&qBGUz@AC(8G} zGdArfQJZRY|74}p7c{t@y4A5jOxHgb?;gw0?g}*VX7o8D9p~rCJHms1- z8Xy)GdhT9`fz)iFdF1r9MB@!r9W~KB8XSo*f;ArOKTONYZo}#yFGEfr=3}RFV#uKO zM^+4&yj54Y0a1?i0v=!KC;q03EEAOq23R(K`lnC6ias4nxZPiXzi>1WLuYTlXy3Rs z@*odaQ6CQA0{XdrKEzvwUEKhi@scScTlJ-m(0X6}f!|dxp+_w@v#p$0Il`AO1Y&L} z-?5c0liy^ux9<}y`;WuU5aHwL7RGZ+;HNj3*R~#%Zm*kEtIb_SBg=fRmX4(eoP|np z@^*^|r^+PS(QL|kVNaF4-}pSsdm+CWu|o3Xyrc}(eqs^OR7d?iurpwoFs{_4Gb+K9 z!|WSfXhtTjJ2JS(2~;)6N!b%i#MK{aCpL$bd8biQ)k#@8|E)$uHVSy8H7=`wve(ly z!M<~ppoTDBEWSu<3izexC+<%l%7uI?pN)kH10{Ut1ECLXvqEKi)l^ zT(}3=-&}^~EXE&ts2im&mv&+~>r-TEtOpDxt}?9D>79HTC*u|OGJEPF6XPvT#3aV! z7;d?v;HYi;hgYhd)>j=c;Q_TzT5PEU6xvddcM=7E|GWyyDJHd9JBSuYW6GOPTO8jE zx|W|%=IfOP5Dc5Z_-n}AjDk7lBZ2tSY4nj5Iwv2yA7vA1pBu8lr*);VMD-b)>t~^5#u+7;R z^+P({iW^;n8+#BPt||lDHDq4dn)g z%&tV99ytzvJ2vXfLd6_*0A@b>CA&T2@jjag2dy(!Txr9qo4Aj66-{w`oIYC7$0{G5 zoW~RDA6ScUs)t$~BJa_G>K*KN>r%I+<4gRtD}9ZH9tK)BLdR~}B)R@Gc%@9>q9z$o z$-LC!yEVxt!4nQ%W&5bWKqUKCp1KSzYvN-i*_5jT^dyDTP}6v$-?h%qSFk7t{K^L^ zu~^R4WDDk6HhkN?Q0gtdcrNUTXT!yuc=1*0%s2+ve~X@&?Jg6@ghwe@7=g`v z!-SX3?M{{w1bntsai0hFBkZyjhRFJzN$lbgHLSbTf)p( z#Lz#uU3Ao`0&6j1cUL=)v`hGEjT+4FVhS+JAcU^3JJ-kK?}L)4JqWQg$`IhEdTy=R z@&qxwn{Yo-a+TnkeJGot+Ou(VrA5w}VYb_KU+mW+_+%rc^JTW`AoPTb*QtyH>pxk( z-y1~C9pZF6TWn8c*{k32syp%^Qe|nBU}J562qLEOHMc%y+OjJznMF;v-ZYz8%U`7w z*df9@3r1N?3d_&%{$;>h!q=8r)2}D0YY1a3qC@*!P=Tn9+8z$XKo+S1Gq`x#YNV}%3t@mzz_w<8Ymy-}Au{ZEq8$O;=+=*S*- zJ+a0}U?CwWT$z>(j$9ogkd$27V8j&V_F-tS!~;?$aNW+b%$b%cd>LK|rF6L@d4^-D z^%->i+$d#SxM7e_fBb&7^3&GFVrzBTqO+0jp=Ok(KA;L_&-v+hZJ(`;qlbM;><|c3 zG;F2Bltk85mZg$Pq;BL{az^1J)d}y~MJ$gaI) zK(o0De#p`0&ts6UK-7J=I5d03e#=hj&iBt7Q^&9Z31Dh!ijPm-skB?1aV;lP9ukc8 zv}THy$;8XEmVbd%wLBF|J)d%g6t^DRIER*LLO0X+RMjWgQJ zoxAtak?>a4&za!EeJWDQQHUrz&uT8{m(OlW%RumlpJ)UwGIGDL246_v)|FHm8NM+& z6di+vquAxOfnXh=uQMf`^UBH}V$+RqnEej2f};upwynki@6bKE%$~+vTa8V-y}Lcr zmC2To4 z$6bV1mxEjn<_eMQmmHBh7$-o?G3sS4o|PC*#_#emOO+<9l72MM$|UeQtYUjHS z4L>#~XP}3Cxm34j;&?SXbQf@cbgxnZazjIyDE-X`a5qF%hLX0ZX!?laaf%)L*pE2xTSt zfGY_LYCs^G+sbMkP!EU0H`ZDOrgVa?m?5a90_iNY*N*oOJM_39f11Mz+{DGiSZ3NY zVYv)h`N{h9R8~nB!u3S-g$K8xHg{2^jo#U=w1$W7P+(y~4Ea)aQT5 zj15kZ=I}s{uQ&UdvnDGPY`I7>rs89TlsKeSCBD*w7&B%=L}Dp2NU?$FwOcGWj~JxT z(>lVn)K7!@B9N7=;n!sd*9o7&mu+~C>n3?%ZzJDKA^j-RmuKm=xJMbQEoU|EG%-o1 z^VW?Jd~g`p?t7>pfaP_grE~_Onq?ZP{s-Khka}w{CNQrWk^7V6Jl>#e*?(4&M8Qx^!#LgpV05po9u`Rt69ihmAcg+zf9E z;jWz{nvXhYYd4ZOwzepK=p*9A{?^CqTxY482-VU=G6{Uu%krhWW3}1m271TbZz?3E zIwd0$^mu(~pmWP9^tt~i8(2zc!V0kwK4_!}l2ba>z1&Kdw~*UOYuw46XiV0pZyAMd zv5Emc$1U(Reqm9Bw^iYSoUt;;5aq2jdz$f`#*#6dsZEEd^0r|IN5|#+@z{RgCenV~ zB6_wXR&MtJJNPOHE%u8PgoeuE;v(l`&27#bR4w2N+iNb4*ap=qvXzQ?!(!9-Jzb{S zT^{K4qq{su&|vY3f4*(~@apbQTktR+7BZ@W@dC2HTX&XERUJ1-!mv7feF6 z6szU~%Yt??Tp|Mep~LsTLv!4WFWN4TT6BFWF+AotUJ3#%c#&b#B@rrybIH(#o~FIF zILn+vCiNo$Ve|Kpnu)1d>mne|10(%Z*#Fngxkfc{?rVH5AqgbmW=sMG5)cG6VuT10 zfrJDDv|dnY8Rbv~c9I$vhZm$|HY=biumd7tN3Ie%SLL{sa`Q@#~9O$QEQh7_#T zZ&drx#W}o4m%}qLA&~f1VcgHH9ebIg&sbzdV8N8Ba1AY% z%ym*^;58QI7Y=fS9FxJL{*ss5xMRem_UC<-S43FSO%U4T?PQkSrudB<_cmd0SBjzS zly8@>Z##6{1Ur8+A>Qfv>Bh7ShHV%x4|eQ8r3_KtTkue$b^mKp z1Nv^1G9Z7~g~1+NJn4OI4eAHWA99c@HdsD72{O(4UiAB#J!DC4dGgYs*+=ua-yf1q z>%*hk17)(z7+5+&YB&UB1Qr?j5#t?Ptj)KTcr{L+BS-*~f2WiM?6`kIHTI;OKr-Iz z^=UN#8Qa+^u&Lta%y}s>4#7j(Fpg|&dWDanirb1-D`cV3k{BqlBySwU+Num(uxTQo zMvR%jrt99U``GHH%nYmQLbSDqHhfR3_@bOc;IZb2cYVf+5}!_rdKp8G5TY4OW#OQf zgn8}3>S+VwZs2GD;q(qG!YLXV1j32JL>m29z(qpuhHk58vei^FD`zI!KHgz7R)1WkH@S zIzeAP-3~^yk7JNJV6l*uha1q%{?{#YOl-%R5RaA+kiYye#^F>%G;lcZwIEJ0e%TWD6lDp~hEeSD_&~tb(>@ z+dA=$-4Hu?6%SjGYOUMqw!n=M%CHJe$6WG-_87wb$Z_23^wm0d9?{c~V|Uoxe6;3>bt_Y z84bbhN*|RHj%r^Jese+6Dp(495#bqim0I!8it@sALC=A#m3vNmu&hqjy4_ZL*2ujw z(PWF?apLTu3q= zoEX*W9E75-))x<%Hsd1YQMl~N+t+Q%tsR9kJ`pa3Sm-|wg4(V;eP^HmyS5661q0Z)8+;x%|ig!wNt7Ri>nzr$9BudlS|AV9-Tn?t z0)GN4naUTc^P51^40Ejx+wW1I2{&iI?s8Ecdq^S;&{ONYth+x_xX{-M9nn9Wb6v%E zsss5=rD^pV&DQxFP_Gkq@NSOs%pf8DNJHNMkP{M{^r#H?ptuf2emc)!p&oWd_Py-- zfyv2HkG#lTn&CuX@dzwufQdd<*jNo@`S^ru2r~F!+&0|GwEe8f7n`V9q(6_ku7&^f zHke%13$YLHxm=cyZdytw2&uU&x$5Nc@E5<{Ef?WQ!9bQ$uHeef=A)f50)6Spr)$79 z^<8c4t*0Jx4QVj%`6MvIayk_4l)sw*LvQ0pZ}P>@{$x_w`Do9n|Jtn<=%eR`=b_ii zaQlVJP9;{kMA{V=m1~DTh6jDq2LUa|`185y(npqHj}U_OnIaDMXna=Exe;UC6sIqn z6nieE>@8xgtct|7A3@VRfgm_T03kEii(j|Fc=zMpe>hu-AWA*C+pa`9_RU=EhfhAs zAH>Ju)|?Qw97w)1+ihhlAc}Llb8w@zC_X{IKxIDAY8&n>44F%SAePyAE#W?qj$0+; zVe>0Y^RdQZAdwh)){E_(fu|ytBT(!j^wv3mve}AKjPx9v%BLDTzaBigZE)FiXXRSf z22a%!rea#qoq0V-ka>j&S@y)TXH3ypA|h~S6SnRjhj~8HFZ0BaYT&k5m7WAt3S$uz z??HxR!<9inJ~OMUptQNOZ2fmA93JxfI?#MBfxXv8W$c=&ga|g#xw}d zz8q$k|1h5;6tG!zy7!sGJ{a1cg3w*gTbD7VSx#s~VW zariMf1X0;hAT<;eIkQ#g>!eoL?i-CP*tx!IpEH8{7dX&oJ@HetcRr=a8foHJImbT66|=*htIay6eywP122g1f^8Y1S)4`t^zG!e?Ol zleI%w9fu+ycLe-`g%SyrN?% zPBaG{o`pv$`@|RNQNa9{Yk)a(EE~g7iM}%v)pj2AV*5hx1Ci=w?HuB^KbV!k8weq|6dT_$AA@9Q%Ewjpz>E1+_ndHq3xIZlwenAaT#lk_=;26Zcm=p1J$P9B9w0$+)- z_sY^oM}S5r;4CYD8nKbhnP-$qffZyfv&}WFJ1wlHgBCEjiam2%sTqIuk|<3{FVuD7 z{G}5qL`Oxp0@(KFKa2wH6>XR+W@`nnoS=rd%O6w7hF>yp zD^OtqhNZOOg2vp2C~oQ3Ku@;wbV~QQh3)HUctLvjPth>bx>|N}VKHMojjP zp*87+^T*;65R9#ywP;BmA_QcC4s(^HQVpcEcbGbW>`#4QZ2?&dD4A5B8w(Q!)@i7s z#Ihg%gcWX3w|{Wfv7I%#sZ7EL;CEc{7Vv~#uS6uEvDd#JmmO#svD@r`=ToJtK@wg- z-EHt7oJnD`sSI8}kUT<7F59n9;ELOO8{o1$cqC#_F|@P3xh|EAgx1C;*~*r??{^&{ z#(a4UV+f3CNA&>P%@Iffjt4e#fi2hF1xT9%(R!)@Fr*f*_EngCANSV-iZ=`e<|zk( z6C_@aL($sH8}JxU^G}s3=5Fjt{*L+yT#MK*5d)VZw{MvBt%V_Q{6=TbnPFZ-$8v7{^G02zQk&E$SxvOpVd#gPGjJn&ev94@k@zJlHb55KUvtfC3XBe zIsmW0vWMN=9EOSAb+%Tz2U`!1DTSM}YwsyKJ?0(V?1q#56ip*%2)>nO@K~RINfs5- z2Hu((_E{8$DZUX*k@Cbhrtp5h9mUX#UpTkZg4Wsj4Xav!OYo1fE`e-cK$8x8#CoYn zt&SzTHo7>BXOy9{(!rm%qE7TuILLK3$sy&vo^^41Tg+0K7RJxDiqs~1jLnW^{y|4#ZIy;9&3Vd%s7 zMz^iv@!(At_7jzUM@nixaPf`+?w^M)yS8kEKkY~*5EvfZXGE>-B%ikJhJCmmF~d-0@>e(aE~ z{%Gu%zm!&ffS>W+`zNBGgh*fitAH39>qSguC#jP^RNuX6>ARwJ$u1fB@%=M->VWqx zAH3r~@Ioo#`WKUMO&PwQB3=HCswDi4s{9LH`G24)aa5e8=07Y}JZkzsk)>S!_w?1@ y{udPMdu-@`lR{Yq?@6q|f0J1MKayB$3IO18%B3Q|dkgmg_!hrpdCXY}qWL!y^EZP4 literal 0 HcmV?d00001 diff --git a/radio/src/tests/clipping_320x480.png b/radio/src/tests/images/color/clipping_320x480.png similarity index 100% rename from radio/src/tests/clipping_320x480.png rename to radio/src/tests/images/color/clipping_320x480.png diff --git a/radio/src/tests/clipping_480x272.png b/radio/src/tests/images/color/clipping_480x272.png similarity index 100% rename from radio/src/tests/clipping_480x272.png rename to radio/src/tests/images/color/clipping_480x272.png diff --git a/radio/src/tests/darkmode_CN_480x272.png b/radio/src/tests/images/color/darkmode_CN_480x272.png similarity index 100% rename from radio/src/tests/darkmode_CN_480x272.png rename to radio/src/tests/images/color/darkmode_CN_480x272.png diff --git a/radio/src/tests/darkmode_EN_320x480.png b/radio/src/tests/images/color/darkmode_EN_320x480.png similarity index 100% rename from radio/src/tests/darkmode_EN_320x480.png rename to radio/src/tests/images/color/darkmode_EN_320x480.png diff --git a/radio/src/tests/darkmode_EN_480x272.png b/radio/src/tests/images/color/darkmode_EN_480x272.png similarity index 100% rename from radio/src/tests/darkmode_EN_480x272.png rename to radio/src/tests/images/color/darkmode_EN_480x272.png diff --git a/radio/src/tests/images/color/edgetx.png b/radio/src/tests/images/color/edgetx.png new file mode 100644 index 0000000000000000000000000000000000000000..3f0128796166cf16590f7d14c8d678118f10c620 GIT binary patch literal 42634 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 ?s;n=uqhLO@6jpj`{1D-wqsHn8H>4`BHf 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 Xw1%vH(&=UVb{dG96BBkKM4I>S{%w`L literal 0 HcmV?d00001 diff --git a/radio/src/tests/primitives_EN_320x480.png b/radio/src/tests/images/color/primitives_EN_320x480.png similarity index 100% rename from radio/src/tests/primitives_EN_320x480.png rename to radio/src/tests/images/color/primitives_EN_320x480.png diff --git a/radio/src/tests/primitives_EN_480x272.png b/radio/src/tests/images/color/primitives_EN_480x272.png similarity index 100% rename from radio/src/tests/primitives_EN_480x272.png rename to radio/src/tests/images/color/primitives_EN_480x272.png diff --git a/radio/src/tests/images/color/transparency_CN_480x272.png b/radio/src/tests/images/color/transparency_CN_480x272.png new file mode 100644 index 0000000000000000000000000000000000000000..8f792854acdcfd8fee5002736147ba071f8f8a93 GIT binary patch literal 9489 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 literal 0 HcmV?d00001 diff --git a/radio/src/tests/transparency_EN_320x480.png b/radio/src/tests/images/color/transparency_EN_320x480.png similarity index 100% rename from radio/src/tests/transparency_EN_320x480.png rename to radio/src/tests/images/color/transparency_EN_320x480.png diff --git a/radio/src/tests/transparency_EN_480x272.png b/radio/src/tests/images/color/transparency_EN_480x272.png similarity index 100% rename from radio/src/tests/transparency_EN_480x272.png rename to radio/src/tests/images/color/transparency_EN_480x272.png diff --git a/radio/src/tests/vline_320x480.png b/radio/src/tests/images/color/vline_320x480.png similarity index 100% rename from radio/src/tests/vline_320x480.png rename to radio/src/tests/images/color/vline_320x480.png diff --git a/radio/src/tests/vline_480x272.png b/radio/src/tests/images/color/vline_480x272.png similarity index 100% rename from radio/src/tests/vline_480x272.png rename to radio/src/tests/images/color/vline_480x272.png diff --git a/radio/src/tests/lcd.cpp b/radio/src/tests/lcd.cpp index 2def7b670f2..b6dc3e50523 100644 --- a/radio/src/tests/lcd.cpp +++ b/radio/src/tests/lcd.cpp @@ -86,14 +86,13 @@ bool checkScreenshot(const QString & test) QPainter p(&buffer); doPaint(p); QString filename(QString("%1_%2x%3.png").arg(test).arg(LCD_W).arg(LCD_H)); - QImage reference(TESTS_PATH "/" + filename); + QImage reference(TESTS_PATH "/images/bw/" + filename); if (buffer == reference) { return true; } else { - QString filename(QString("%1_%2x%3.png").arg(test).arg(LCD_W).arg(LCD_H)); - buffer.save("/tmp/" + filename); + buffer.save(TESTS_PATH "/images/bw/failed_" + filename); return false; } } @@ -324,7 +323,7 @@ TEST(Lcd, BMPWrapping) { lcdClear(); uint8_t bitmap[2+40*40/2]; - lcdLoadBitmap(bitmap, TESTS_PATH "/plane.bmp", 40, 40); + lcdLoadBitmap(bitmap, TESTS_PATH "/images/bw/plane.bmp", 40, 40); lcdDrawBitmap(200, 0, bitmap); lcdDrawBitmap(200, 60, bitmap); lcdDrawBitmap(240, 60, bitmap); // x too big @@ -393,31 +392,31 @@ TEST(Lcd, lcdDrawBitmapLoadAndDisplay) // Test proper BMP files, they should display correctly { TestBuffer<1000> bitmap(BITMAP_BUFFER_SIZE(7, 32)); - EXPECT_TRUE(lcdLoadBitmap(bitmap.buffer(), TESTS_PATH "/4b_7x32.bmp", 7, 32) != NULL); + EXPECT_TRUE(lcdLoadBitmap(bitmap.buffer(), TESTS_PATH "/images/bw/4b_7x32.bmp", 7, 32) != NULL); bitmap.leakCheck(); lcdDrawBitmap(10, 2, bitmap.buffer()); } { TestBuffer<1000> bitmap(BITMAP_BUFFER_SIZE(6, 32)); - EXPECT_TRUE(lcdLoadBitmap(bitmap.buffer(), TESTS_PATH "/1b_6x32.bmp", 6, 32) != NULL); + EXPECT_TRUE(lcdLoadBitmap(bitmap.buffer(), TESTS_PATH "/images/bw/1b_6x32.bmp", 6, 32) != NULL); bitmap.leakCheck(); lcdDrawBitmap(20, 2, bitmap.buffer()); } { TestBuffer<1000> bitmap(BITMAP_BUFFER_SIZE(31, 31)); - EXPECT_TRUE(lcdLoadBitmap(bitmap.buffer(), TESTS_PATH "/4b_31x31.bmp", 31, 31) != NULL); + EXPECT_TRUE(lcdLoadBitmap(bitmap.buffer(), TESTS_PATH "/images/bw/4b_31x31.bmp", 31, 31) != NULL); bitmap.leakCheck(); lcdDrawBitmap(30, 2, bitmap.buffer()); } { TestBuffer<1000> bitmap(BITMAP_BUFFER_SIZE(39, 32)); - EXPECT_TRUE(lcdLoadBitmap(bitmap.buffer(), TESTS_PATH "/1b_39x32.bmp", 39, 32) != NULL); + EXPECT_TRUE(lcdLoadBitmap(bitmap.buffer(), TESTS_PATH "/images/bw/1b_39x32.bmp", 39, 32) != NULL); bitmap.leakCheck(); lcdDrawBitmap(70, 2, bitmap.buffer()); } { TestBuffer<1000> bitmap(BITMAP_BUFFER_SIZE(20, 20)); - EXPECT_TRUE(lcdLoadBitmap(bitmap.buffer(), TESTS_PATH "/4b_20x20.bmp", 20, 20) != NULL); + EXPECT_TRUE(lcdLoadBitmap(bitmap.buffer(), TESTS_PATH "/images/bw/4b_20x20.bmp", 20, 20) != NULL); bitmap.leakCheck(); lcdDrawBitmap(120, 2, bitmap.buffer()); } @@ -431,7 +430,7 @@ TEST(Lcd, lcdDrawBitmapLoadAndDisplay) } { TestBuffer<1000> bitmap(BITMAP_BUFFER_SIZE(10, 10)); - EXPECT_TRUE(lcdLoadBitmap(bitmap.buffer(), TESTS_PATH "/1b_39x32.bmp", 10, 10) == NULL) << "to small buffer"; + EXPECT_TRUE(lcdLoadBitmap(bitmap.buffer(), TESTS_PATH "/images/bw/1b_39x32.bmp", 10, 10) == NULL) << "to small buffer"; bitmap.leakCheck(); } } diff --git a/radio/src/tests/lcd_480x272.cpp b/radio/src/tests/lcd_480x272.cpp index 589a80d48af..2044c1a803f 100644 --- a/radio/src/tests/lcd_480x272.cpp +++ b/radio/src/tests/lcd_480x272.cpp @@ -19,24 +19,24 @@ * GNU General Public License for more details. */ -#include #include +#include #define SWAP_DEFINED -#include "opentx.h" #include "location.h" +#include "opentx.h" #if defined(COLORLCD) - #define STB_IMAGE_WRITE_IMPLEMENTATION #include "stb_image_write.h" -void convert_RGB565_to_RGB888(uint8_t * dst, const BitmapBuffer * src, coord_t w, coord_t h) +void convert_RGB565_to_RGB888(uint8_t* dst, const BitmapBuffer* src, coord_t w, + coord_t h) { - for(int y = 0; y < src->height(); y++) { + for (int y = 0; y < src->height(); y++) { for (int x = 0; x < src->width(); x++) { - RGB_SPLIT(*src->getPixelPtr(x,y), r, g, b); + RGB_SPLIT(*src->getPixelPtr(x, y), r, g, b); *(dst++) = (uint8_t)(r << 3); *(dst++) = (uint8_t)(g << 2); *(dst++) = (uint8_t)(b << 3); @@ -46,14 +46,14 @@ void convert_RGB565_to_RGB888(uint8_t * dst, const BitmapBuffer * src, coord_t w void dumpImage(const std::string& filename, const BitmapBuffer* dc) { - std::string fullpath = TESTS_PATH "/failed_" + filename; + std::string fullpath = TESTS_PATH "/images/color/failed_" + filename; TRACE("dumping image '%s'", fullpath.c_str()); - + // allocate enough for 3 channels auto pixels = dc->width() * dc->height(); auto stride = dc->width() * 3; - uint8_t * img = (uint8_t *)malloc(pixels * 3); + uint8_t* img = (uint8_t*)malloc(pixels * 3); convert_RGB565_to_RGB888(img, dc, dc->width(), dc->height()); stbi_write_png(fullpath.c_str(), dc->width(), dc->height(), 3, img, stride); free(img); @@ -70,17 +70,18 @@ bool checkScreenshot_colorlcd(const BitmapBuffer* dc, const char* test) filename += 'x' + std::to_string(LCD_H); filename += ".png"; - std::string fullpath = TESTS_PATH "/" + filename; - - std::unique_ptr testPict(BitmapBuffer::loadBitmap(fullpath.c_str())); + std::string fullpath = TESTS_PATH "/images/color/" + filename; + + std::unique_ptr testPict( + BitmapBuffer::loadBitmap(fullpath.c_str())); if (!testPict || testPict->width() != LCD_W || testPict->height() != LCD_H) { dumpImage(filename, dc); return false; } - - for (int y=0; ygetPixelPtr(x,y) != *dc->getPixelPtr(x,y)) { + + for (int y = 0; y < LCD_H; y++) { + for (int x = 0; x < LCD_W; x++) { + if (*testPict->getPixelPtr(x, y) != *dc->getPixelPtr(x, y)) { dumpImage(filename, dc); return false; } @@ -90,7 +91,6 @@ bool checkScreenshot_colorlcd(const BitmapBuffer* dc, const char* test) return true; } - TEST(Lcd_colorlcd, lines) { BitmapBuffer dc(BMP_RGB565, LCD_W, LCD_H); @@ -116,8 +116,8 @@ TEST(Lcd_colorlcd, vline) dc.clear(COLOR_THEME_SECONDARY3); - for (int x=0; x<100; x+=2) { - dc.drawSolidVerticalLine(x, x/2, 12, COLOR_THEME_SECONDARY1); + for (int x = 0; x < 100; x += 2) { + dc.drawSolidVerticalLine(x, x / 2, 12, COLOR_THEME_SECONDARY1); } EXPECT_TRUE(checkScreenshot_colorlcd(&dc, "vline")); } @@ -128,8 +128,10 @@ TEST(Lcd_colorlcd, primitives) dc.clear(COLOR_THEME_SECONDARY3); - dc.drawText(8, 8, "The quick brown fox jumps over the lazy dog", COLOR_THEME_DISABLED); - dc.drawText(5, 5, "The quick brown fox jumps over the lazy dog", COLOR_THEME_SECONDARY1); + dc.drawText(8, 8, "The quick brown fox jumps over the lazy dog", + COLOR_THEME_DISABLED); + dc.drawText(5, 5, "The quick brown fox jumps over the lazy dog", + COLOR_THEME_SECONDARY1); dc.drawFilledRect(10, 30, 30, 30, SOLID, COLOR_THEME_SECONDARY1); dc.drawFilledRect(50, 30, 30, 30, DOTTED, COLOR_THEME_SECONDARY1); @@ -139,15 +141,14 @@ TEST(Lcd_colorlcd, primitives) dc.drawRect(170, 30, 30, 30, 5, SOLID, COLOR_THEME_SECONDARY1); dc.drawVerticalLine(10, 70, 100, SOLID, COLOR_THEME_SECONDARY1); - dc.drawVerticalLine(15, 70, 90, SOLID, COLOR_THEME_SECONDARY1); - dc.drawVerticalLine(20, 70, 80, SOLID, COLOR_THEME_SECONDARY1); - dc.drawVerticalLine(25, 70, 70, SOLID, COLOR_THEME_SECONDARY1); + dc.drawVerticalLine(15, 70, 90, SOLID, COLOR_THEME_SECONDARY1); + dc.drawVerticalLine(20, 70, 80, SOLID, COLOR_THEME_SECONDARY1); + dc.drawVerticalLine(25, 70, 70, SOLID, COLOR_THEME_SECONDARY1); dc.drawHorizontalLine(30, 70, 100, SOLID, COLOR_THEME_SECONDARY1); - dc.drawHorizontalLine(30, 75, 90, SOLID, COLOR_THEME_SECONDARY1); - dc.drawHorizontalLine(30, 80, 80, SOLID, COLOR_THEME_SECONDARY1); - dc.drawHorizontalLine(30, 85, 70, SOLID, COLOR_THEME_SECONDARY1); - + dc.drawHorizontalLine(30, 75, 90, SOLID, COLOR_THEME_SECONDARY1); + dc.drawHorizontalLine(30, 80, 80, SOLID, COLOR_THEME_SECONDARY1); + dc.drawHorizontalLine(30, 85, 70, SOLID, COLOR_THEME_SECONDARY1); EXPECT_TRUE(checkScreenshot_colorlcd(&dc, "primitives_" TRANSLATIONS)); } @@ -158,34 +159,37 @@ TEST(Lcd_colorlcd, transparency) dc.clear(COLOR_THEME_SECONDARY3); - dc.drawText(8, 8, "The quick brown fox jumps over the lazy dog", COLOR_THEME_SECONDARY1); - dc.drawText(5, 5, "The quick brown fox jumps over the lazy dog", COLOR_THEME_SECONDARY1); + dc.drawText(8, 8, "The quick brown fox jumps over the lazy dog", + COLOR_THEME_SECONDARY1); + dc.drawText(5, 5, "The quick brown fox jumps over the lazy dog", + COLOR_THEME_SECONDARY1); dc.drawFilledRect(10, 30, 30, 30, SOLID, COLOR_THEME_SECONDARY1, OPACITY(8)); - dc.drawFilledRect(50, 30, 30, 30, DOTTED, COLOR_THEME_SECONDARY1, OPACITY(10)); + dc.drawFilledRect(50, 30, 30, 30, DOTTED, COLOR_THEME_SECONDARY1, + OPACITY(10)); dc.drawRect(90, 30, 30, 30, 1, SOLID, COLOR_THEME_SECONDARY1, OPACITY(8)); dc.drawRect(130, 30, 30, 30, 2, SOLID, COLOR_THEME_SECONDARY1, OPACITY(8)); dc.drawRect(170, 30, 30, 30, 5, SOLID, COLOR_THEME_SECONDARY1, OPACITY(8)); dc.drawVerticalLine(10, 70, 100, SOLID, COLOR_THEME_SECONDARY1, OPACITY(2)); - dc.drawVerticalLine(15, 70, 90, SOLID, COLOR_THEME_SECONDARY1, OPACITY(6)); - dc.drawVerticalLine(20, 70, 80, SOLID, COLOR_THEME_SECONDARY1, OPACITY(10)); - dc.drawVerticalLine(25, 70, 70, SOLID, COLOR_THEME_SECONDARY1, OPACITY(OPACITY_MAX)); + dc.drawVerticalLine(15, 70, 90, SOLID, COLOR_THEME_SECONDARY1, OPACITY(6)); + dc.drawVerticalLine(20, 70, 80, SOLID, COLOR_THEME_SECONDARY1, OPACITY(10)); + dc.drawVerticalLine(25, 70, 70, SOLID, COLOR_THEME_SECONDARY1, + OPACITY(OPACITY_MAX)); dc.drawHorizontalLine(30, 70, 100, SOLID, COLOR_THEME_SECONDARY1, OPACITY(2)); - dc.drawHorizontalLine(30, 75, 90, SOLID, COLOR_THEME_SECONDARY1, OPACITY(6)); - dc.drawHorizontalLine(30, 80, 80, SOLID, COLOR_THEME_SECONDARY1, OPACITY(10)); - dc.drawHorizontalLine(30, 85, 70, SOLID, COLOR_THEME_SECONDARY1, OPACITY(OPACITY_MAX)); - + dc.drawHorizontalLine(30, 75, 90, SOLID, COLOR_THEME_SECONDARY1, OPACITY(6)); + dc.drawHorizontalLine(30, 80, 80, SOLID, COLOR_THEME_SECONDARY1, OPACITY(10)); + dc.drawHorizontalLine(30, 85, 70, SOLID, COLOR_THEME_SECONDARY1, + OPACITY(OPACITY_MAX)); - for(int n=0; n<10; n++) { + for (int n = 0; n < 10; n++) { int x = 120 + n * 20; int y = 80 + n * 10; - int color = COLOR(n/2 + 5); + int color = COLOR(n / 2 + 5); int size = 100; dc.drawFilledRect(x, y, size, size, SOLID, color, OPACITY(8)); - } EXPECT_TRUE(checkScreenshot_colorlcd(&dc, "transparency_" TRANSLATIONS)); @@ -229,19 +233,19 @@ TEST(Lcd_colorlcd, clipping) dc.drawSolidVerticalLine(100, 0, LCD_H, COLOR_THEME_SECONDARY1); dc.drawSolidVerticalLine(400, 0, LCD_H, COLOR_THEME_SECONDARY1); - dc.drawSolidHorizontalLine(0, 50, LCD_W, COLOR_THEME_SECONDARY1); + dc.drawSolidHorizontalLine(0, 50, LCD_W, COLOR_THEME_SECONDARY1); dc.drawSolidHorizontalLine(0, 200, LCD_W, COLOR_THEME_SECONDARY1); dc.setClippingRect(100, 400, 50, 200); dc.drawSolidHorizontalLine(0, 80, LCD_W, COLOR_THEME_SECONDARY1); - dc.drawHorizontalLine( 0, 81, LCD_W, SOLID, COLOR_THEME_SECONDARY1); + dc.drawHorizontalLine(0, 81, LCD_W, SOLID, COLOR_THEME_SECONDARY1); - dc.drawSolidVerticalLine(150, 0, LCD_H, COLOR_THEME_SECONDARY1); - dc.drawVerticalLine( 151, 0, LCD_H, SOLID, COLOR_THEME_SECONDARY1); + dc.drawSolidVerticalLine(150, 0, LCD_H, COLOR_THEME_SECONDARY1); + dc.drawVerticalLine(151, 0, LCD_H, SOLID, COLOR_THEME_SECONDARY1); dc.drawSolidRect(70, 20, 50, 50, 2, COLOR_THEME_SECONDARY1); - dc.drawRect( 380, 20, 50, 50, 2, SOLID, COLOR_THEME_SECONDARY1); + dc.drawRect(380, 20, 50, 50, 2, SOLID, COLOR_THEME_SECONDARY1); dc.clearClippingRect(); EXPECT_TRUE(checkScreenshot_colorlcd(&dc, "clipping")); @@ -254,10 +258,11 @@ TEST(Lcd_colorlcd, bitmap) dc.clear(COLOR_THEME_SECONDARY3); dc.setClippingRect(100, 400, 50, 200); - std::unique_ptr bmp(BitmapBuffer::loadBitmap(TESTS_PATH "/opentx.png")); - dc.drawBitmap( 0, 0, bmp.get()); - dc.drawBitmap(320, 0, bmp.get()); - dc.drawBitmap( 0, 150, bmp.get()); + std::unique_ptr bmp( + BitmapBuffer::loadBitmap(TESTS_PATH "/images/color/edgetx.png")); + dc.drawBitmap(0, 0, bmp.get()); + dc.drawBitmap(320, 0, bmp.get()); + dc.drawBitmap(0, 150, bmp.get()); dc.clearClippingRect(); EXPECT_TRUE(checkScreenshot_colorlcd(&dc, "bitmap")); @@ -269,9 +274,10 @@ TEST(Lcd_colorlcd, masks) dc.clear(COLOR_THEME_SECONDARY3); - BitmapBuffer* mask = BitmapBuffer::loadMask(TESTS_PATH "/mask_menu_radio.png"); - for (int i=0; iwidth()) { - for (int j=0; jheight()) { + BitmapBuffer* mask = + BitmapBuffer::loadMask(TESTS_PATH "/images/color/mask_menu_radio.png"); + for (int i = 0; i < LCD_W; i += mask->width()) { + for (int j = 0; j < LCD_H; j += mask->height()) { dc.drawMask(i, j, mask, COLOR2FLAGS(BLACK)); } } @@ -281,6 +287,7 @@ TEST(Lcd_colorlcd, masks) } #if 0 +// clang-format off #define TEST_CHAR_RIGHT "\302\200" #define TEST_CHAR_LEFT "\302\201" #define TEST_CHAR_UP "\302\202" @@ -299,13 +306,16 @@ TEST(Lcd_colorlcd, masks) #define TEST_CHAR_CHANNEL "\302\222" #define TEST_CHAR_TELEMETRY "\302\223" #define TEST_CHAR_LUA "\302\224" +// clang-format on //#define EXTRA_TEST TEST_CHAR_RIGHT TEST_CHAR_LEFT TEST_CHAR_UP TEST_CHAR_DOWN -#define EXTRA_TEST TEST_CHAR_DELTA TEST_CHAR_STICK TEST_CHAR_POT TEST_CHAR_SLIDER \ - TEST_CHAR_SWITCH TEST_CHAR_TRIM TEST_CHAR_INPUT +#define EXTRA_TEST \ + TEST_CHAR_DELTA TEST_CHAR_STICK TEST_CHAR_POT TEST_CHAR_SLIDER \ + TEST_CHAR_SWITCH TEST_CHAR_TRIM TEST_CHAR_INPUT -#define EXTRA_TEST2 TEST_CHAR_FUNCTION TEST_CHAR_CYC TEST_CHAR_TRAINER \ - TEST_CHAR_CHANNEL TEST_CHAR_TELEMETRY TEST_CHAR_LUA +#define EXTRA_TEST2 \ + TEST_CHAR_FUNCTION TEST_CHAR_CYC TEST_CHAR_TRAINER TEST_CHAR_CHANNEL \ + TEST_CHAR_TELEMETRY TEST_CHAR_LUA #define EXTRA_FULL EXTRA_TEST EXTRA_TEST2 @@ -347,4 +357,5 @@ TEST(Lcd_colorlcd, darkmode) EXPECT_TRUE(checkScreenshot_colorlcd(&dc, "darkmode_" TRANSLATIONS)); } #endif + #endif diff --git a/radio/src/tests/opentx.png b/radio/src/tests/opentx.png deleted file mode 100644 index d85a1a087155e67300f594060d272dc8cd6f0241..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12364 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