From 0e98cae2d0d91fcf538f0eac85b2499b975731ca Mon Sep 17 00:00:00 2001 From: Arnaud Roques Date: Tue, 30 Mar 2021 23:19:28 +0200 Subject: [PATCH] Minor fixes --- .../sourceforge/plantuml/AnnotatedWorker.java | 18 +- src/net/sourceforge/plantuml/FontParam.java | 6 +- .../ftile/EntityImageLegend.java | 4 +- .../plantuml/cucadiagram/DisplaySection.java | 9 +- .../plantuml/dedication/Dedications.java | 1 + .../sourceforge/plantuml/dedication/ben.png | Bin 0 -> 33345 bytes .../sourceforge/plantuml/png/PngTitler.java | 10 +- .../SequenceDiagramFileMakerPuma2.java | 4 +- .../teoz/SequenceDiagramFileMakerTeoz.java | 10 +- src/net/sourceforge/plantuml/style/Style.java | 9 +- .../plantuml/ugraphic/ImageBuilder.java | 2 +- .../ugraphic/debug/UGraphicDebug.java | 50 ++- src/net/sourceforge/plantuml/wbs/Fork.java | 2 +- .../sourceforge/plantuml/wbs/ITFComposed.java | 9 +- test/demo1/SimpleSequenceDiagramTest.java | 218 ------------- test/nonreg/BasicTest.java | 2 +- test/nonreg/simple/A0000_TestResult.java | 21 +- test/nonreg/simple/A0001_TestResult.java | 42 ++- test/nonreg/simple/A0002_TestResult.java | 210 ++++++++----- test/nonreg/simple/A0003_TestResult.java | 42 ++- test/nonreg/simple/A0004_TestResult.java | 42 ++- test/nonreg/simple/A0005_Test.java | 60 ++++ test/nonreg/simple/A0005_TestResult.java | 288 ++++++++++++++++++ test/nonreg/simple/A0006_Test.java | 54 ++++ test/nonreg/simple/A0006_TestResult.java | 230 ++++++++++++++ 25 files changed, 974 insertions(+), 369 deletions(-) create mode 100644 src/net/sourceforge/plantuml/dedication/ben.png delete mode 100644 test/demo1/SimpleSequenceDiagramTest.java create mode 100644 test/nonreg/simple/A0005_Test.java create mode 100644 test/nonreg/simple/A0005_TestResult.java create mode 100644 test/nonreg/simple/A0006_Test.java create mode 100644 test/nonreg/simple/A0006_TestResult.java diff --git a/src/net/sourceforge/plantuml/AnnotatedWorker.java b/src/net/sourceforge/plantuml/AnnotatedWorker.java index f6c319e47..6500767d4 100644 --- a/src/net/sourceforge/plantuml/AnnotatedWorker.java +++ b/src/net/sourceforge/plantuml/AnnotatedWorker.java @@ -170,7 +170,7 @@ public class AnnotatedWorker { return TextBlockUtils.empty(0, 0); } if (UseStyle.useBetaStyle()) { - final Style style = StyleSignature.of(SName.root, SName.caption) + final Style style = StyleSignature.of(SName.root, SName.document, SName.caption) .getMergedStyle(skinParam.getCurrentStyleBuilder()); return style.createTextBlockBordered(caption.getDisplay(), skinParam.getIHtmlColorSet(), skinParam); } @@ -186,7 +186,7 @@ public class AnnotatedWorker { final TextBlock block; if (UseStyle.useBetaStyle()) { - final Style style = StyleSignature.of(SName.root, SName.title) + final Style style = StyleSignature.of(SName.root, SName.document, SName.title) .getMergedStyle(skinParam.getCurrentStyleBuilder()); block = style.createTextBlockBordered(title.getDisplay(), skinParam.getIHtmlColorSet(), skinParam); } else { @@ -206,13 +206,23 @@ public class AnnotatedWorker { } TextBlock textFooter = null; if (footer.isNull() == false) { + Style style = null; + if (UseStyle.useBetaStyle()) { + style = StyleSignature.of(SName.root, SName.document, SName.footer) + .getMergedStyle(skinParam.getCurrentStyleBuilder()); + } textFooter = footer.createRibbon(new FontConfiguration(getSkinParam(), FontParam.FOOTER, null), - getSkinParam()); + getSkinParam(), style); } TextBlock textHeader = null; if (header.isNull() == false) { + Style style = null; + if (UseStyle.useBetaStyle()) { + style = StyleSignature.of(SName.root, SName.document, SName.header) + .getMergedStyle(skinParam.getCurrentStyleBuilder()); + } textHeader = header.createRibbon(new FontConfiguration(getSkinParam(), FontParam.HEADER, null), - getSkinParam()); + getSkinParam(), style); } return DecorateEntityImage.addTopAndBottom(original, textHeader, header.getHorizontalAlignment(), textFooter, diff --git a/src/net/sourceforge/plantuml/FontParam.java b/src/net/sourceforge/plantuml/FontParam.java index 7ea7bdf9a..12373e782 100644 --- a/src/net/sourceforge/plantuml/FontParam.java +++ b/src/net/sourceforge/plantuml/FontParam.java @@ -187,13 +187,13 @@ public enum FontParam { public StyleSignature getStyleDefinition(SName diagramType) { if (this == FOOTER) { - return StyleSignature.of(SName.root, SName.footer); + return StyleSignature.of(SName.root, SName.document, SName.footer); } if (this == HEADER) { - return StyleSignature.of(SName.root, SName.header); + return StyleSignature.of(SName.root, SName.document, SName.header); } if (this == TITLE) { - return StyleSignature.of(SName.root, SName.title); + return StyleSignature.of(SName.root, SName.document, SName.title); } if (this == CLASS_ATTRIBUTE) { return StyleSignature.of(SName.root, SName.element, SName.classDiagram, SName.class_); diff --git a/src/net/sourceforge/plantuml/activitydiagram3/ftile/EntityImageLegend.java b/src/net/sourceforge/plantuml/activitydiagram3/ftile/EntityImageLegend.java index 2f88c79e1..520cd3523 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/ftile/EntityImageLegend.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/ftile/EntityImageLegend.java @@ -57,8 +57,8 @@ public class EntityImageLegend { public static TextBlock create(Display note, ISkinParam skinParam) { if (UseStyle.useBetaStyle()) { - final Style style = StyleSignature - .of(SName.root, skinParam.getUmlDiagramType().getStyleName(), SName.legend) + final Style style = StyleSignature.of(SName.root, SName.root, SName.document, + skinParam.getUmlDiagramType().getStyleName(), SName.legend) .getMergedStyle(skinParam.getCurrentStyleBuilder()); return style.createTextBlockBordered(note, skinParam.getIHtmlColorSet(), skinParam); } diff --git a/src/net/sourceforge/plantuml/cucadiagram/DisplaySection.java b/src/net/sourceforge/plantuml/cucadiagram/DisplaySection.java index e021cad73..6125977c4 100644 --- a/src/net/sourceforge/plantuml/cucadiagram/DisplaySection.java +++ b/src/net/sourceforge/plantuml/cucadiagram/DisplaySection.java @@ -42,6 +42,7 @@ import net.sourceforge.plantuml.ISkinSimple; import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.TextBlock; +import net.sourceforge.plantuml.style.Style; public class DisplaySection { @@ -85,7 +86,7 @@ public class DisplaySection { return Display.isNull(display); } - public TextBlock createRibbon(FontConfiguration fontConfiguration, ISkinSimple spriteContainer) { + public TextBlock createRibbon(FontConfiguration fontConfiguration, ISkinSimple spriteContainer, Style style) { if (map.size() == 0) { return null; } @@ -93,9 +94,9 @@ public class DisplaySection { if (Display.isNull(display) || display.size() == 0) { return null; } - // if (UseStyle.USE_STYLES()) { - // throw new UnsupportedOperationException(); - // } + if (style != null) { + return style.createTextBlockBordered(display, spriteContainer.getIHtmlColorSet(), spriteContainer); + } return display.create(fontConfiguration, getHorizontalAlignment(), spriteContainer); } diff --git a/src/net/sourceforge/plantuml/dedication/Dedications.java b/src/net/sourceforge/plantuml/dedication/Dedications.java index 5a5c4c215..ee78ca4e5 100644 --- a/src/net/sourceforge/plantuml/dedication/Dedications.java +++ b/src/net/sourceforge/plantuml/dedication/Dedications.java @@ -52,6 +52,7 @@ public class Dedications { addNormal("ARKBAN", "arkban"); addNormal("Boundaries allow discipline to create true strength", "boundaries"); addNormal("Thank you, Dr. Chet. I wouldn't be where I am without you", "dr_chet"); + addNormal("Ben and Jen 2020", "ben"); addCrypted("0", "pOhci6rKgPXw32AeYXhOpSY0suoauHq5VUSwFqHLHsLYgSO6WaJ7BW5vtHBAoU6ePbcW7d8Flx99MWjPSKQTDm00"); addCrypted("1", "LTxN3hdnhSJ515qcA7IQ841axt4GXfUd3n2wgNirYCdLnyX2360Gv1OEOnJ1-gwFzRW5B3HAqLBkR6Ge0WW_Z000"); addCrypted("2", "lZqLduj4j1yRqSfAvkhbqVpqK8diklatiFeenDUXSdna9bKYQTzdS264YfUBScUVDYCp2Vcq04updoN98RwxE000"); diff --git a/src/net/sourceforge/plantuml/dedication/ben.png b/src/net/sourceforge/plantuml/dedication/ben.png new file mode 100644 index 0000000000000000000000000000000000000000..e7756fb6e18805b3daca8dd21ade769bcece7cb4 GIT binary patch literal 33345 zcmV(zK<2*`&FTT@%JuLxo)3;L=xG3u>0gQ;5CIX}f-~f`6c3ZuV*D4^20Bj~3d67y=Pv*VQQ$l`PLB*$a? zNxsPhnyCi$FdS+L4dsR+-ty}L7|U@5wxZWf#j{j5z&j;P-9LVx*L5lbY~nDjVN{%v zJ$tylV3kK!nXV_ERU16h0f;`kmW8~WgPtIg0lBXa?%3la1T}FVqVOXbxkE}3UWVuqa`G*B znW{q+5fbNR58Hc+!LS+}auN1IzOv!_!hn64W$nNY=(hK@#EHEJIXzg?%Hii1b0pWh zrYqd2639?C!MC2iJ(?pwy<~j7mYIZuqB?8y49?Fa+c44kwX_&=)xw!l8U5*t{|~QY z{gfp%y*49N0xHCvzL-cZEehk3PG>WD8w`lc!Oo-q@+A2bF-J1Oau@K$a5H+cEH-IR z9I-0eM#H{Jf%!hnvsz_Bpg;K1XrPAe^s zE8)q$F^ebl3ul0L?f!`W?7>yD;yDZ`Gq{*d$2t8B#CW*LW!VU#f%CYxChIXAbNIrv zEY}b2q_3w5uRI46b&VDdFU-6A$sRX3}+GtQPCVAYf0O|_7YGX zPP3RPoEl7Ewl~#41;}jh;o0{)n<8; z8b{t!&xdAem*_jp^#e3PR8}D-=p=2WMC(~9CU%fyeHTQNe=dVw?7R7ww7Mp&yVadZ zzA24l5?5|)f*U&xMSMpbG#?RU)t}KZjx5)Kyf&~eK@Xq!XtTx08}DMLD`|viuJn!S z>sleQoCZhh`x^jGeqj|8mY86m77vk`HpNg~Kg5yX_BSRU+gl zX_*(he6%J)nk1hS^3G+(k&RU+t6Tg{*LG9yy`jfObW*+RmWtSpR~Rh-JWnI4klj5U zNQ?MTVgVd!rr~Q(%mTj}?nZZkY7=#r=`pdCO)ornB@I{(7CILe zm`?P=4b#1#gd4LcL?mIF*VE^dqv{U{Mu>&uolN_@ag08<2SNjB3`Y2iIx+w0EeIVy zxe81BJJ(6jVE}ER^`EuT{{TlAGTeoo!7rnBs-RWDlT}OV1mv5{-X%NLd_F(R0^^Mh z=5iBt@F5{q%@=!zEm{y>scfbga?6Hnr(JG&stf@En+Sf}lUEFj9K|VOw#bWYQm|lC zHek+6MQn)WpD_}H(0J*hk?3`fLaK<(gSJ0un8Y%$f%Y#{tg)hS3MX#r8Zk?{^9|^y zpZuEHFYtyrN62P>l_+SDkt(HoN`C2v(sOc2kq2_cKWcFz;<0b~VJAB`Pj7rA)1f(2Mum|+U`N(FuDx@ujF436~p>gfZIp+q$szZ|+HL=)x>zSuyR28CT9 zgRKpPmUGD|0NFlscLC4YOMq#}RvRnlDfUCBG#~bV6nxRj9Y`!p(c)Ndk6v^i>lF5- zJqA%TlK1S~sJF8*0Gc$EUKr0Ueg5(LP_V@d*C>U5*Gp8PwS{k!MIeG%=}yjJx6ksr zqX235M?GbR8ERJ}h31X2DP16tEL&niv|ABM58M4i6`SsnJegdmEb~~@YS9<5|G+|7z80n!Bo8OsB&nYsMD^EM|-nV(n27iDx04cN@ zhv;?CLR`q+%|eo-$b6+qRX^xEBz5#?VC=v@D1!I3zyEfkaJz9g*|~J%K+iJFM?Gll zt+-}w&O6FaRXfaC0kG3MY=WZiiN0sx!!5|<=>G}e{ZE&7^)@%m1&O4FHZcF^)*4Xr zY|Q+M=S-LKBZTnf`KFmgB@3US+xzf^8T6pc0O%tmjd@b{$EntvKi~*v^bGdflz&dX zA5`dg#=hwS^`aDAH1}4gL_OdT4q_ycn5e5Gn(6K+xtC|p=P)YcILIk5Knoye3k9QF zirZQch}#=S6$b9zZ^&`jq~$svU1U|eE?D!38DK>7tB1EB6ZkAD%*ZNlK=B*atZW{N zqg7?A$}EH(ynv=nsej2LfijbBOC~EPmW?q?oQyMLH0F0k;1$v0SOzcL%76jVvLKR=xhXv-HQC0mmXFxBIT0E*d8)wqOjV_TfP zsySx0CN;?VK^3*abIPo$JLMOfHa06pauZgbTJq9eRpIl72H%zkTUBU1OySUeA4d3x zK1bRyp>eu79(b+YzZ)9QC}vDIgwxBbgay-oYmo*)xQ4_9Lh?E1sQq;XxCpWpTpkT5 zUPlk4Q-`+(PR90=tOI;Dhg z;osl4k5t-Tcxc*Y#i4{IFDzN@AgkfcDSnq2*T_+OXKLMkyUIR!LRRAza&>9h_33+@ zI{5u&^TbuztbpR_E`GHJ-D5m?<7f(P^9nIXfGm8>H2N&;0(6)pBck!3B_k`3gpmU z1K}NwuG-9<3~$AXIyD#}972Saq56dgQ^mmvSdgx#_Yk@x!|T72Fz*V$@LkC~>cAi8 zhPUE#QcB*`T#ftqRo#8wh|m-?0J})*EuIRteP!w8LR#*qSCrcrzc+5d@>qUQFT+Gi zLT1rl*5hE$VQ=qUHtIzIdO9syyqym|1UKv5gUeXKynwVzR<$;)Oeo$}_>|)G2o8zf z-ua%PqaxRtMoakY7u#k{6$Y}%8k@QlkHSqe$WkJSje&@cJAeiFE2shRn@&%4-3#@* zJomy$Hq#%{4};!NKp@!Rjl?E{`+n&b50@z(aGqm*{Y{^*zpK0Ib{3jZ*oEU)EoM!6 zxi;ZtKGt8+T7p@5t(k_y6wh%LSwp%)P1Gt#_R%2zAF>#)r1b)FLk&==%c5DM#06Uj z@0Vn$b5zI+DD@&LNa5Y=7D=m}#cUd5>p*6pXnDI@7fb}H$SRV9Sp`E_U_1X0z81VF ze4T*?5m}Z6__zjI@S>r1vV#3mK;5}joYz_J$;?-&PNt3n6Km1%1>xk105-}RUB^^$ z4sS*SThMImImCy9}$|TbxaQ?dt^b?F+gN_RuHgSO~mIBvmK8?^pYq@~X1bl;Z zlVoGX#j~R7w(K`h!#-kIv_s$l`FSO6X&F0q8MGk{{e{~rmg-D$(_0ov$82qjG7%)k ziz1mN_X*dUc4kJvn*fV0H8@ubN#7$Xx5`ne=@c2p$QaTa7G99` zK4@7`!4+utFgZi)o>sS`A~>4LX)$o2ZTefD??o^Am5K_Pvhdw%wTEh%MYm0Q_}FP? zLd#Zur5$gX*3w|hyK_Mf8fuAK(%7?cArcr}i|SWQL%v|G+K|x4ehppp4CwudGXyQC zM@lL%Kttk6^jI2hdKmS06n`W;@~0yckr4Avb5Yp|)uSb?D{GP=lbuqtyT@)khd~>- zAxfaY4x2l)=pipnd~|rrS?3oJi5JOgcMQCMiuaui5*c55_auIlo~*ojtBhW`P$j7k zuFYf_b9GT|1}cDMJA~IM*c^vNb-_|UXh(xS=w7B-{$#mnJrrn}Ss7z{hd#OT2vH!# zv4@S$J$e1{=hnq~^g!T8-2Ha}O9f?R3WlkJi_pC#5vTVB>XuH#eBpZ2k8x<-fPkI| z{t+}=OTFeG98{7QwHDk{BDa*R#C2XV{`VOV_pu(M(IHj&mpB&?9D2P)y>oxe^Uf=T z0@SqPF>+3V;_PHL1Ol~cpih;fFKygW>CNY6Bd0=WZ=DGgmftFH(nYOAJ<~-tZ5~dv zNVLw*2;3~mRz9`6b_yBY5lh7pq4xj}GS^%8NBYv<|F~8nf}$zT_;C9$s3PJ(Wk3?@ z?>8HrL@_;4EQ#X&_hGNJE2ke7Wb+UFMGMOzXt9u;I|>x4lvtIlq!(j17$(0<_j14l zrI=LMxwhv<&LtzFQ`-cxaE{Ay(VUtd?CDP^e*|ZYIh(?`%KTc9WVsCvZ-S4N6|ZZ;lN>CPtd^%Lgj`0p99ch5`+W-co9}DwGr@wK|n7 zxfF^{uDM+a#fCM*&x0kxE4&Fl1!}Pgbcti=7bQE(;*`hB$snrN0FhJxLS1zj^v-h@ z=m8Fsi9ozg5xZ%p4bgK^T7Dh^-Hl9z7n-ibBTQ6OhO0N{H(e!o+mgVh4zLDfUg<&% zAud^#qsi>|t(tgLaMArq0<~K#D=rruO{U;jv3#yufjl)}=01^Ttj^*g`=)YS@$8+7 zW+U$4>oN6lVcX5TvH@Li_BDb(t(<0;*;gk` z==*=&)Ilxjh_$DY>$PwxyxECb)4hSUU8L~iZPl%KrPqnaIm}tSe8|J-_b?Ml{EwI^<3-Ry8PEhzRKL*Bjto$tCB?)+^jdzT~)2+|| zD=8VJsm6ccAOJ4gOJ@zrqNl9y3LO&y zGdUbYGuci+g8kH1I4I)@Kt;_Eri{Z@aO5WQodB9 z$+h&zfo(^nPkaf_kmOLB%QT}^rA%tNIg90NEECr7`F)&BjuO9yyOl4nXf>m)){`{l ztcC{l#dan>*#tl&7Mx(krnv&0#u!Av`HoYZLS0rD;T2;{LftH_Ux%lK?-d=J1xhqmqQL!9 zZrVmNdMxmq2o@MmiF`ySc_*6gKv98)mB}^acy#vTHDtBj{iFqmI~Md)CM(8ZfRsEL z-wEHG64hLbgV#X&g%DbNqO99E zKgo%~u45a?un~7ceLLmo2fpHAoE{Lc=&|w1I6X+PeSRdK#62H>fEs|_G94f5j9j@# zAZL?(njx=5Im8trkciZ7OJSHC1Z!|>8mi0=D{j!tD=~-=)Lck&iHZf;;AqKfdUp(S zXCRF@dUb2YcLL0l7p5MTWBJ+aZXZpTtmrsdhsx;qZ7-HWX%b~BWRL36y?)b0ET%gz z&M=R7E!m*vjvrwM_l%YZC5?2}RGwWd(10|c_rpatju_)i&|lt>7nWRZap`d<?Uj^bX%1u83*H<91{jguFgf1r}F*f~Cg~CBwZn@II)X=aKe2j|tU>Grf{! zNt~I=DD5CIe2sA4<`iolE^z)HjZHR;^dNT6>^hw;6!1r`vzh%%dsLSvPmXoAow)=+ zRma)pf}ZPaiAyM{q!}?0z~{A`emJm!F$wGDwJHJGra)v<1g-kUGUm{)DM#-XcNE`| zI09+2;=h^fulH_2J-n~Ds@ym{o@+`@rKsAK-`GX9dtaJ0)$rv@c|`pyrI8N=>qSQu zv)UDchdv`h?Sgz*>hR7ox&w)%`cW~2REEwMbPpA0J_6HGq3`SG3zXs$q@f-VIg;oX zq3eaOLYCDl&Gl(@%bOq@X##zGQgIvf)tj6%FzFQ?er zk3NF(kUz)}kwg7)^TUDnZOu}dgi$``33-Lp+8WFVgme1=z-_ds=6R!te`u< ztgJbh0QRQ7Pa?Lg67Td~pt>u`n@rH&b8O^T^_DKJ#(}9LBfs;ZMq0cq`(yqYg`_v5 zFrxQEG7+MFM3fT$BvpY%bJ6Sb+^+wRrSLf`r(o532sDk~ff`{`c~z?DNmou1^wI-< zYGlv(#a>Izs5I6FV5^nXv$n?=QqUhskOsa!SC#}8R!s(Ze`5IoPNmK#HVHDG1{~DW zwP(KGNaDZDB6-7TKo0p(*9*2UhNthE;LvCtLo!(22;ul!mcpExSS|H=JaMNTps%8Em{$8!*U?-5;`6ezji#B{~ zbDw6oJr!#`R#F%n?Lz^R(w9RaVmbLY^7hdzrT$qB*WibhCWe9Qk?lU1gLm`e>7T<}8wHTzZsIASIdz2R4ZX zM$5)cENW7MtIa(}np{lKZ>0^5f-IuAmMz*`WqCZk9^U|KnnZ8Rp?%NN@-u!q>!)qf zgQ3XDiYE6)&FbVL3f66qUHc*6f?OZDjuXXkBNA-MpeyeJc>gdhxdKdByjQbhkM2xx z$VE>?^*VaGScxiIRL1hsTXz0r`^}9EYGfWS);SwqP5-cucskgTti11^ zJ(9_=b6J8F|G$4o-20#1f}o{+_Sw99LZ=*woJ@IoM8KIlW)9Q{kA40n39H;s*0L)l z0BJ_IQlz*dICR0U(dZ%Eb2oh(iWh+(SRIy6i|bqiuDW*m!-Kq+8;+LWzz~Q|LvJ@a z`IR1QSr)h~se`oX^8Ze{#a}qn@ua%St@7k>Q>zlI72XDY%$n&uT(lyf3MeJe2j7M7 zzv-krn!_){H>mUD3RC9ZXopT+if5lm4Dzg|HM8M0pyvGo!qC{ZYML+C<;)FA~yW!nF^Y+k_J(Gmo-3!_~S@_7`hU()Io*yTAo)-u>T{|3C%+K>e9I5XB zh&Rr;#X?(M-l&r{nhKR>pE%W3w3H{NsZ0wl`vlUJ#4|9$=zLf?i^Feec8GF1jB{3{ z1>rg&_!AI8=OQHwl3GI zvqe}&1%M#5$!r-c()4s)nR7!;t`P2@C6OdX&{%e{EK{`$0GltI0uVypvUh@)*Ft)y zHO26}`YY=6F0Q{U*%H`qI4VD^*8f_n-u#HjrDt5_>-JrI-hxsCTNs*(GE^C@)E;iI zfTlzS)#o^FVs#!#WEsI=bYIJ7#JCI>BrrILc6QMANCAqn-;sm^LbxEPGYBv$56S4| zdJ!k*-8+|+vR~w(SB7XT%h<~O;<;{vk!jVGKw_yJ3lW+H1<^mq*u8tih|1Ji`4dEM zFpqh7N&OyY^f#oMq81ybI#*iYht(w&T7in!z9PBa9tqU4~tfA z8?fWSDW!eye{$ys^u2d+edoW#)6g||(130A&G9Q)9(nZE!ZW%qfaOg7jD7fO0ingYuA>b=WG7BusmkicZD{&FCcXt(SH0B*L0}_S#$t`{04k3T~;Bu zw=Rgx*3}zJ+|h-9&J%iPznfcmLn6;UAizhBiNLzRYPBX&bUcINzLx1u`eAb@5z?WR zktKIZ=&oN7S)HvjuI3ZRGt_wa2HJ<0LJulh@EtgvR>)=wzZZ2NM1B2L@70WuE;s0_ z6@mKHnW%*WoxA`aTH4r9M-=Cm%z?B%p<%dx$(cpxwy7mm_Z@P~lWsmTlj#ij2FYulrG zK*!c6F*O;)bQxEQD@%HBrmU}qwinS%C&wsdf$_wMhfPU%=J{^h0G`+ebv0fUZJPHM zhG!w3YQfALHRKN&U4M0vm80&=>BMh3aX3YcL)__$68Iogmb{Ub{*F=pMl4cuACEfv zysk&RUXA+DcFn+-8b_8Vg;I+-tA9UH?EX(8Bpz1;Mn{qzpn)cZ^Gl@%{e`-O*wzoy(7{a1>Z>OFo$* zuSVpfdsuno8<;c2XU>9<=KyY-3dhI(vd{d0(A-`}YV_vo2afE3Ke^4&3+w_K=WK}?mDj?A~Z8)lG@_~c_weSo_Wh0}m!wukv_qW6K9;Kl4( zcE-8%&oux^OZLx?Pzyn?QpT*{h!;+oOxAoNTiEY_cJ;Av_m13Sw%R%f8^nRd#^+?p zDM1hw5}37Q^WjmRvXC6U(hAKjMG+sS|a`P=o3?&|r*&@y%c(lnEq&y;BO}0O$Pf?hx$ZmkG(@0oUBSCod09e9>hyOvG^1XSI0Z0$ zecPNI>#Z*seMS3y{eIRsj<#_D^X*59rv1b7sMO4^ItKk0+XvbO-qM&AVd`SY>L6V{ zNsDx&p?Yq`*26=Qg1x>HF-+`U5=tCC=|J-iRWbj$#`rs~CJZod?X|(DqrQ%J^X<`=u4YfZT_^AYS>RC1+0P;For z$sJY!U5}-sOsf?c%Dw3}Ot(t8D7O#5{5_91BgLKG%Og&Uk3pwJ?@0DfUQw1^&Jk>p zgvRe>N)IhctRP1nMW^DOV=$qkxRWsyVuxU9^GGDyJ{#jHt_$B(9l0nH1?F0<$(fk@ioVqxWy zPllk!=%3x_$wNMQZFr=Qs$ta8f{i^=ky@!GtS z!6Gs2c6mh)aDf#mIqcyIgH-Pfxap%a$#In~m;Xy8$oc;cXmr}RZj-wPF%CS0+tUyv zqe}kw?L|VvPWPD_lxRcn*6vybiV^~xLfWQ-=HSmf%avKc=T_CRs`moN2j#}vt$7En zw|&tJKTke(TRV(M%CIcJ>1 z0vlsrN1y~@t9fW}vt8YGF2I;iiPRe6(gMFEz{?XfeWuFhx>f{c^iXv~sFrD^CH@y8 zLQ@CSHb13G9|UZES;xHAlb`iN4W_92HO@i~3o@V6p=oxQ zZBIf1V_a*Mb4k;C35vFl{3pcyO|@^KO&J=b38COufCT3haZItoglBt8-gnj&TdWMM z5h?W}Uv=8`xB#KW3H+D(sBaY&{>;+b2B)8-WtOj1e4P z2!O0Rg|2-&igWtIih#a{J5`yf+}5*E^)EUe4+03H-AT42@^Zk^_##}C>#a@I06#HN z4^<8!hTkwjOXbis1zm=p-C_|sIzvJQ7JoiwcN(1edJYDnFCf#<(m+-E3Pw{W6s{}D zsb|?`7}GAILF3(??6} zFICZNT+P+*shS9{)v=iI{9pIj>FQO#fI0CG11Qr&aZ7jcdsbP%p;{0D-HX4|`Sv47#yT36AT3hZH(- z_|XQs#81yyDdM3D0x;qai5|y(YobqKQ`zp=zxI!SyoiSL{9aT@z?O^B6fXg?nlB{2 zR;q&A0HXp8|_Ja(*e**dlv~*_N-|Ipv9uwbPNiFt% z1w;YxWh?<~IeL3K&lhR~ncw5DZK(K2>P%X+OT&upGZN(%s@koc3K8S(t&zk)SAQD* zR4JJVlvt4fI5W<7QWaaAT|X5l9{@RF%*=nK_}hGY**YcrKfqXXQ06R-6SJ2VRXzI; z#W+IZ7>37qhPNaC8hV+Zc`pC4tRG(aI0uoev#V*O@Bil#U-P6h!r5=pPhmSG(Eu26 zY3bLI(=s}~148PE<)s-~e7YME6oIF`nBn+5z^Z6)n}$WEOQVx9RhHgr_$n`S5R{WAQ4Le)^syR_}S{4=1{Cq>XBQL8l3S2etWPZ~TdsYL?NsgbtC zV7(L*E^;ppEmj+#B7jS{;HeO$%4}G^qrx#iNN#Ws>O}wqc5-88@b1}|v~^3TZXlB< zf0>34?}Iu*W+?R>B(L5XAE|9kgwZQSiD{1t072B~yQoc}4PcYIhy3JMOjTZxE-8K}ZjE19lVqgMDKPAU-DuokMgU2l@2jn(CT%)DhZ+mF2)JKn|D1^tT5sYzvH(D`0t&y4TaLl_ zmB_A2%*Kv!JgmdJ5(omh6rFbtJu~Y~Kn4$VD~s(`6C;O}CdcRuX+H7ZzkHf82+ z=Xi@9J!gLdHegke%1IIam{PRvcnZpB+Zcd$59W`WFrq`$PohiEBoD&3I9C;O_)Qp(ul2GsrHF~fQ-tuQ#A)!Fjs{3n=- z>7tQpNH))MMdT@WWH4J|6I<<9dgpo|CJwyM8@bkYnGlb(dj~eg>(XC(DCovA4QB?z ztX+I|A!x-J#j%{!(6=7y&@GtMAz*L{r8BsAnxmA4xD0M!-LMn~+}p+IOeY9b#Hc4S zWz;#Q)As#Xok1DaWsZ=6P}ZWh>UCs*yky?=Epp8%>s%3TH4+X1-K7)oG(gwSsVjfmC^$9%Q0;zAoiP;-s-P|7v4-g= zN2cJRqp^5hPlr&FYMA3Iq!-`gW3S63R0*FpQ--SR0!TON3MVVS^0@e}bL|4Of38?Y zegrfZ^Z(vKFe^#<{uwXC3g{ScsDOKF!urZdv-cV}%{4+oK1JI{hs~}f#~9hmL_773 zIuH1RWPxu%Fi{Nx%oVLEW%O(`SbnY-z*Urvh({L|&I$oH<1y}QyDw6*8HgvS2{W+) z0aT9yaMOd6EwUche>luO5rP(5;~{(hpNt5U29Q^<##4Rxl#L~e4NsJ{-6~?CkWbZt zOOD8CR8Oo**!ds2)L!mT2?!qv~@mqz6CtdMFOK z2S!!zS;kVUbV^4&I2bOhzso^_sK-BsMsz-=f~l){GQs+bVff zxl7zgF(W<|*QiUu{^TvKNgm03^3E8sl}@v|e2^&k4c_12LHa)w49FfF&2n@m-2So^ zb}7d@(U`7WgU<0W3)7Qz6KVppM~JB-RQ{o(CJu8O{fED%HY^+X*0DZ29Zn%$)M>lF zAc{|EGZ{NL*|oSCt_#N+a37yK;a4At@Jxaoa6b*p^4FOu>_iNBxS^Cw_3R`|8bW?sCoBr&ITD?@ZbjJp_lhqO_x z6TT5!*3`To8Gu70QDfJFae7Ihd}f#|!Y5^Sq-u77ur3 z)XVvW8id<;*TOOHq7+Y_xTf9K-9C-b)9y?fgwnz!!i*(XaiUn?IW|vEf~;{-pr96N zO=Gj}qx~^_jvtF)fm2u7>|iMy>r7>2H@L#(z`83(R43@R+brWqmtclJZdVMXah#vMn}PRdihVFZF*r#V5VLs1<1RQZ9?|Xc zB3W4TmVUOPOqx74+vn1ZWI!=YgiWx`-!A2D{Z7IhNw@(O@+0#Liut$=Ca3&sSpeW_ zpKd;rt5Me~F2-ZSF&IVj-TRl0>GPliN6kmws!cW%Q-Xtt2b5-%-&g8n*A`8ldB}7U zs)b^?UnSwrRGyRiPu{2~eR_mH-d@ZTm_5OOC~J4Kg28a9y8cWH0=6Kt9b1h1)ba6f zO66}%2x84`=BgCjLra6`+#J(rRXR2u_Esi*5Ek%bnBej+=@}gfYTEN} zT+H=ze*r-d|8XKJy3b_l^B~shlO+fzNJni2CAGuRzQxsZHf@i`nl+F9>ng{yws&tA z<-~%@fQo4ikC~#z@UBA1OwbZaRPrpiY=?1jh;aCHk4jflS%QiQsQ^9 z2@c}-aX^LY6ZXYywyjtp+QpS3I$;704TlE_Bpu&EylXu(@woBwRV44QHF?t{&deoe z<;PgCeuc-ddzDR&TF`@=JN1M>VHwD(sHe1bWM~fWYI|tL2-^!mI$MAFfz<{jZRs-S zO-~klg=_WdVa`Ul6;@7Gj zYD}9!H-_n7iPkMob)(`YvZuU$c0s&+VVJK6ktlfd5XW!v7lS1hD?a8$B@ieVChM`?X}qu zXY>V(4(I(k8$Tm?tLw1al9+KjjG~TN-7PG|#EPOy=0E}aA^anIKj-P`mAc9sQsArF z1eNZA6+qzTY@5q0X^m{&g4Eqf_JHmJZ7k5sJ?2I_jAekGlRDQbY3mX(L@l!D9vRaZNQ8R&O8@87q|R?_nW+3q@rGeCYOdTNM*yZ*Y)VMd3rVoeuK z>f>;GvS?d!$A6gP6!r0PFH3IhTJ?A|+i8s2uWwPYuWS!r zlP1cgfxCgA&bhNHZ-^0rGW+nt$Kee64UMEajOb2O&H`4cm1HG}%p{9?+WGKpgU3O# zUW{+6>ra)l-<83JDj;!K$fGepJG6A+BU7Qn_Ur$FJ%?mFExHXGcV9^1cQ`m z?qz!STO;EEiuU8DqPsDaZT@)zDKM78XQLB}kEa73c4)LB4Zty?_(&O4=#ukg7kdl}Tl-_VpUGa`bH#vdyTMDk zG>DCTfFkDHG^XZVo*o2k$6KR(E~M9gZ{TX^Fe6rU+~Ja3DvzqKy4Xr!rUPin4RC?e zwEG<^&Bb{P=d`QxCFsmYoDg+4 zRroQ`{JL31C6Q4)Dql07rCMz}Bv-#U^hdiucVxo3|9u&8)oI#-w2^W+hqjxyNJQ@)F zgJhi^cTpGiD4a!ugW^lbb167nGmx*~;-;>s)5wZOtlV0=b@HWJ0%WJtHwux8oU`Xiax@-4feDcg2H3fIWuj5t)*Jmg{K!yDzYo~@-BwE z1_{|sazhqYYD(!CQdM+Al%FbDoqa5mSfdu|3 zL;00qTiXh=On0q62q_V@6NZ#g<$S+j-bYpgX3^@lKOA&USyCv>MRE0B*2tz+xRzIt zvmIB7pV2(x^bb3`PCA`rOrCY;+X}J=%~y4zyx>bEdr}JzE`Bjlg--p@KZ-h&NwFrn z8y&85gu$%h)NZmj42MlnL7WouV3Jje8@J-SsO%d&XIF{E#S?Gr29*Ou3e!*+9I75y z?=!2u;>}AST#58uU3bU?QZ)EsV!Z6)_HgtNs9ffkHt~OIurW;9n@WDP3Qgz$svf&$8F&)bmhuSfx(Xz}YS`bnrwdGD#9+peJfKFj@wzC*T@qtD z!T|pFv$5#sg^)t?tLkJq0!PhCLCv~ZBHYDDOS-^PUzl}z!aiaLw#_bleh^g|VtzXH zfFFO}*yO>i>D^V!G|3m`uuF@KObQ|;=-LBzfF&N3GBdj{N2z_S?WNSwQj>bTtf^Ew z0o^iD9kZIZ?o*JfUG$w3u1sIHv#kotZlK02Ri#e->ZX<`RhXt2$@um1Cy(5Em$Ll% z&>D&=B`(}6&tu^gS`;Yab{Ov@!ZuB2;i-#LV{RxWQj^7uH6PJ&X+RT>TcdB7h%i#x zz256rfX%oh9PVfeGXsT@Ld#UuASmsv;D=uD0-(uh104n~E)VrcQyDO|?A4&uOB>)LC>{R0jeD8UNXMuw${&!3w-)0c ze@ehPR7!Ks!nEuOoE0Uj8cHyk+%yzJ%#W+f3(Y4MmIWG`THp{{>gf+gmQdG$?>X_{ zW20b*^+edt7@4j#LHMM@Xc5unCf&gwz?iTojDYqNiUDyEwANQQOUx_y10R~DknODK zI}p!+7WhGDDD-&=Z>Jfds?cj_WjC-qnJWcx~HgB(+=5++y!k+k*aav7> z#{6ru31|=-VFLa3=}QMoJarfFkv-OyPf}b~@T~X(FShQTl2Qb!+#m+G z6WH2;Ghg23P26AiuNX->m9km?ei1>scUF-us33#kP%n180H296eVAH{uxd<1=dN_b;qpYsq*;5lL{@fc(ceQ-yjuItBpfnDJOyp3-9Ak z0_v^y4XaQg+)_!CiAcF2yVq;+^&l%qXCQ3?w;C5dgW8Sh*vl%a)3^SmcdxOU__1_} z6q8J{_a!1J9I0g7EMdZS@iZO)qi5-<%f{j?{{GNp0fi1mDhcr$`i z%`Wct`2iDZ&dk5Nz6q#;*g$7+h)f6a8BIq)p^M1jFpQ;^uoIk4P*hqd9Yw&@0@!)3 zO}=;DzIWqIw!Li;Y0DD9a(RMtNV-9uE8hqihc*FI%? z02KvZedhAc0L-{!p2btQpo%RXj-4i_o{J)ea?Iv5L|s5rCs104+e$zbs0MM=>%H`yZa> zgCS(6cv6Zfs3y_3Sfp(;b53lYd>NTcqrMAjpTW>P(XUczsttEMG)1zA)cL1(SG?nb zU@jt{{zH$TXP6YN?ZSJbgQmj_%hQdk?=#Z~t;6IX$wZYJ{yS~TtV1aGxAyO(u`OpG z$M9m_dU5(rpb4Z{r`FAb1*u!#hCp~O6RH@u8d+h4hu&h|s4g9Ez~ZH!f?MobE#~d@ z1$VnU)e7~UY*785yHvrb2EAQeR7R{80(CL5Hq!OqO(_^=0o= zo>^njo;BgypF(sn2PDJ=Lim{8b~LzgjXOIJNMwvX#Sfl(60>0-cAnWVM=kpHF|d?k*S& z<}El4*)&M7_Bv(1ufE%Y0eu7?jrqd&gsr#fTYW{H*QI;F7vs_H1@NM6V`gp7;^0w{U$lMki@146YlbS6L;P13`x&MHtq-)g_cgo__XT?ZX`f(-^@3)a zd9GLZyjz_%20VVrxc1eU7tOOC*2&{;7t$*q7?0-Fc?ljh=mO=}ToaWuJ`M&u1fBW_ z#rU0RI0d+v-A%r!w6N&*Nj6&*s-kzYh_i^}vthPXUwU80`>!=ey1XkfZziq>obK8S zlF-@e1>sM;o_DXSUN;=TB)6oRqJ(k2=j9Vws>pp-sIcLjez-)&;W`6QSR53{kg!9j z!w=QogT7s+#owJ6m<=vyI$9SAS1sdgu?r1gz<6{+jbXqMiUI{mFjjxb>Wk|GE9;#2kZ6kjgR64@61= z!pD5qUw+k$UXHC83-{tI!$$QxRj&S)6Ydoz;4IMlj(qMO$#&@;cUi4(6!~;iFNG>+ zsdyz>{Cug6;3I-wtkqk`l7m~llz4zJ-w6?%cF36|wNsTh&I}8dRB|l|{)LHJ<&_@o zwMZJ1^y+*LI?mc{P%b5G-LN|!TcILXhC@xrkM)ngki`1qICw^;nu1?;n`q~ieZ7C6 zU=X0=Ds_ZlzRgRMlRg->j`P31 z2(6I{eKq3tEZ%%U@$6I`?h<0O^^H70v8f-#I#aMXSN?iYI3UiKIh!|0YZbC`RAh+e zW&%wN@K$y6MovmJwoKw0LnrhxQ5zyBHc~(NO7yH>F6*GA=D69yLK$d;qn*k_zQBaR z(Xz^cg+`zPxj$&|wz(E81U%}G!0!utaJ0HenTa60@&`R7SX<+TD?{gNl}V+v&0_FO zEl_$~U6}6HfPm3LSoh~^ou2^LR2GjmUZ`@mI0)vTY3##bcj#yAPCkV#5LY6=xJUdmNC(&MCett_S^Grnq6g}*}yTD5ru zh;;nj`uqB`rLMiEO!WawIkc1(?Okq2BMmPQRZ*VR%y%1&Vgi{FE|WxQxc7o8i(2wq zXh5~^W19n)GAmQ>=jT~dZE8b?0sj)0iAaOBu8XahCSTLkL=*O2j3e;@RcgRjxrH{% z_a>PUx&NVP8~=Mh{1y?9_PWs%Ie2R12?002@Rgk9o((6o&RGzQSFx)@+id)R;WKnI zB)-)7k(m2?pcns_dHYjG7%WSIvlGRSI@+G5*zBz41qth(b_|niDPQ5PcHWcrIuvx! z@x4WFOmj2y${Xb<)tP@U?$fELhXTCt?1Ew;pQ6A(eOvT76>I8bm~uvC9qRI7`_A9F zqm8|-vivu?SDrrw8XFi_NGT2!^w4E**f@Ygx~WHq+|8g{kkA#(({<09#E_%>%$!=a z&60-yCz=n9F!L@Hd)wpzSW1Z_(xkftByzLRY<}%>&a=6w8nny*N#bQ(leN-|(uyzV z2Nf5st_?!5PHYM0tcO4(X4Ig$w=tX>t(($d3_+F8mi8#n)-KXV{?KE=VD>A|RhBgw z-_YLL3OM(%uMe8$0zfggZxqzs!w7r7W-71;_EMmo61)~&50ox;4C7$Endj=LAz7Te z{`((Uotz6)nO9A2j$l zCwGzM~`)!B|Skf;0`lo4m$!<9Yzr=v~3vc7_a_jFf~cE&(FEs-XO)h_do? zHHDw6|M4UfwHg|v2ZnD{@(e3HQ}W1rK9@_|DCri43Q+oin8UVwPHwbkVp=)<_|B~1f>miy#8@kOq@?R2nhKi;{iDnM*pEBdH|Ju2%#LLWzetUyqR~T@%U9x#2Hap zePrAC%P6KUdWu32A!qNDaJ68Npm@~*EC|co?A0k{$5Mf!c_F#Dd7!)OqwgJuesIm7 z5s=Gs<0$}1jG}*a+MWc8ESK&SUbxS9+vrt`6p`gvYU8@f(5rq_ms{KyvLgpukgnA& zke>OGoas3&(M^b>B$1NiYJ)ic>j)|6!rD+JNeb@zI&<}MO2wYq`KLoT6eFs?tVLqZ zOxI|DTE{URlcaHP`KyYe*hOh$5twb}oV4waKr(VG%KSkdixYSEHASg`=>~%=j2dAn zI5F9wjrdx6>=^xTRoD!G`S_03zcB{t%b2sCU_?c^-Lge@{x5iJG_fCMF`ELJFLHdZ zjVfGaam(R? zYFvN}G6@L8$*Jc9DQH?izvB;g156PM+&02ICO!vR!(EsF=K%~1Nd72@t<>3CvE-5d zx5vGfKRB*4!*fuYA--{;+WoEuILythPKeDevJuL!AXZeq)rQS?U~~wQ<4raLgb}(Y zpy%*{B-R~Ua6))p^l>02prhQskcWnu|3*tO_1#Pk47lq%-lO<_FI0*l_QmWDk;39^ z4m{522(=^iqce#Eor(@7K%HU`0Y=ry{5J@6hG~18tUf6ryX1K}B6ypl)(o#6-)=B* z8y^sDW918iW~^%^4HBUi&})ZBDK6LezQW!@3Fenl3y;}e-1JZtKQ7cg+CbKeKhP_- z8-WX@N+0FUMG1Lkj}L5m)k;ERq$aync+SW1dys>#RsedOie=5P6Uh$rd#yd!Y3 z)MzaCAEF83k1w;ZLgGz%lZmq+ROy#`(>?510B}li5{GO*i#wZA=*u&QqPZtT0-u|2 zl5k(|^-xAQKGzU`{*a9RMqxO6G8IorOQPRHf?mll_Wh#8S+(NmcQ58Y0d_i86+T(L z=ZdFlo!^xW$Ykzwa{kHT4}v=2EU**KUEfj5B3as!ZgOgrz&3$_7c5i^Tvp~m;Ik9u zBcAV4+}nHOWqN;BW11#+@_b~2jlVPSU<;Vj8?Tm(fHv)%68Xx^HFC&xeFTM%FAaJM z>Np?MPY?cc&?sUyLbKXH-JR6~(mm3q;Jwx70j!vwi6`NMXaJB7I8z4)hHdWkgIWYFK8O0$6wv+hj9!J=U5pP}v#V{|m`E z*#=?bI*Rlg84(?wt)BvVTk?JZ$o{aniN3EUc2tIVmZS}(*jj;M#|Lr= zwC9BkOFoWL=kVocEb~^$t2`10tHbZ_&TPs)P$YSl&;`&&bx!$QM?Q2QmeWn=U@g^J z>KGk)ji;q%0${t~7$FAl@CO`aq)>+p*o5B#LApd-La|=G_Iw)>`rlW&@;VMBv!dF9vW`1$6l{5(cG|=+uSU9s!Zh<9bI-$H&2$- z>xGJrXjXm9&fOo;K!tq3y+NU!%p4SwC|(#m8hq}p=OJ(B5oS@UXr!!R&lH7T*iR1K^8DdX5- z-ltm)0NuUzl~Ubmk*~&Hf+#^cIfVT*2@+%C3Z-cCrUw1&w7oJB&mF$^Dtl(e<(aNK z^1NLD5BP3b2f$x;&R$MO(w8P#&HS|*1PSnMnZ%1Zvf$#}^%s{N+W9=7?P}1L2xDuS zry)H%sXmEmNb&ZGh2X@0L)yrbH~NcD3RWOhZ0=LzhF;8VTuw(Z;1HX*OBnjCsZ$T5 z3_GC^n*ZV-C)(7_sjcEW+TTbV&VU6|+zxlfreDP`dHCzt5tkNtwNo@@EdM$DI)z(~ zuePEj@HgbNg_r>PW_W|RJp?mcsrSlEE4-6_7z^}ivd-qgma{%^v$|Gv7$zL$(W7IR z*rr4#Hk@=Ne+RXSN7-6vp8f!X{V5(5DB!_AT6?^+_?s!fzr$K#_{XeFNOmJMs<}4j zErB;Q(;EBq0kTyvt~}K=YlZC4*|CkAv!VIl2qT>`7lY4crMtbeekjL2Onh3s50Z@< zJT~y!1*nQ#A>@eXf8GS6O!;^>6U?=KV}fWgu|9Ty zs_w}9_wQE2PcBmVlsx*=5BC7Fz-Z6QCujXxm1_INZ$CstN7NSrZo;I#Mip?{F`f#N zw1eg+4|m-_V9oB>=TQ49@u1ff=X%#yQ-QIeKvX@K{XfPj4Og&`HDD5Kg6&cE5r849 z+umJHy}<$c)?*pAH$i%ly4ZVZ%;)I;U@0dVW{TsqFb#ru>(g+hN#Frx9ZQM|)=SA? z>dS4P7)y}58>D5gzTD2gJLg%LXx^7tESY{)D<;34^#0kCF^a}78^vAGVDV?qmW@+U zU!}R7CYK>Wom807Pneq-){3Ffh*^D`2qNQ$W_iu4G>A2)+AMGNQnxjaY*QR@FB-P} z5m}Oqxd8U~1`eA_mo>2pyXi%|@2QgF`f#1k<5rq+eZLSyRuu(gm=u@X$k0s&yDLC` z(bDxQ>jbDDZ-q|`c1qQH9k3-~g_IsW*Mc#k&$Fh-l$_^>o`*<7LH?tONyl6HL3XfdPbbiV#aU4PoApmg2-FeL2FaTcffHMogb~v(|5-ube_L2cBh!e{~}io z%kiTV^rEkF;^&;=<-YMdYcGO-1OFCK0%aea3j=MPN)Tlx{r6P$0g@P zzu@E}3Bxp_XV5}~+VJ1vaJ&x`?h0*&CvTFg1o6Zc zjhMB94w3wWo7}PFi%155HV8S9`tH~+gZ98Ug-}a#@}DnmEO!k@c7g7M-k<;seX~6~ z45G`bcZ0E8`d#p}jXL1<>v33xJ@120bs9ETj~T)}-Ou#dwLP!A6#PV&D_e-ei8 z6aoPI2>We);%!{d>sKa;>sv#3s;r`s%kuwr(vnt%S8*04kP=o4#QLKV_@r40PrsC& zMF30s-kTT@Qr3`cSU}$>?-g4u-FX`7d7(N`L!vo~-{Y)Uk2_ zHdGgQoZX?w4Y}{9w@^Fp-;dc}L9g>WReCn=yXOU?*#JKx-H`L9XI_g@0y-)^E`g&d z*^mu91csx^GYc8E@0xtPOq2h+1MRUItRM9N(+UW49}RZC0ztRA)n#;p^i=s|WP3}G z!JY>kx}JZ0`An^W6fL5pmkpsUaGz`j#dz#A@&Owm0w5}AKfcDpz zLfK=Un#c_yFZ?_%_a^4kmwZeCB|!89p1w-L#w#5Ps&IF#ScUqhU1}h0N7SN!qK;ms zJbx^hRk(u(!}f6swk`2IrdCow2II>Ai^YNX6Zxq~yj%8>Ay=X10A~+qDwXi@FEk%0 z@{nN>l1GY+U@7Gh5K|maJz3G-9Gtwd^{LzOavOCXe zHsSRk9qoYwJggr|*KXt0=$-MXGR~Xb{qaEflg@q!i|$^$?>V`XLMwA4WX1=Jt#!rk zd<`<+1ft}~1s2Cn1^geNqKqAsCAX@UQz&SFR;^J;e;L|<(Jl+A=D!9s$1WF5|EQeR zRA-Z`k1y{NCbN+=skBa^gD1ypQPCB+4n;gqC+u?ov%wcO6(;KSS%GW5WV%>53{v-- zq*hOxo_ZWnPuIvS0PO~tzXoK}>Ejl@=~N5y0$0i|&O`8eZpKqb!ivSJ$|t zoz#jFeCl2K-80S}^}7HpUPGQtVm?T>t$tX4N_LBKvB%&YD^Y5>?+;}AGo@T|)^FLveQ978xTQhsZ-RD<0=kte+ z_DR{`PWitBG(-*`P%X}tVys)$vvS$_TA2@q>b_wK5(^z&Skb{A-A+W( zH&AH55qZd;!`wiza04E!?_spBD{q2*;;pncGb6q(!gja+$+YY-Gy{%K?p;aZ)0Zhw? z+8wFfmMgWa6w0^@ru?R_NU$^y_dv`|HI)@aFSN>CftQV<(|Ue`bepnK;ROWZ0fTGw2W-l5 zD#j0DH-)>0VX(rkSwW9~WQEcyR$V+&rQF8w8>zpfBTpRt-9Xsl9K&1xbLgQh2VF

%A^v8VR@j_#F` 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 literal 0 HcmV?d00001 diff --git a/src/net/sourceforge/plantuml/png/PngTitler.java b/src/net/sourceforge/plantuml/png/PngTitler.java index 8290f3fa6..d4ecf99cb 100644 --- a/src/net/sourceforge/plantuml/png/PngTitler.java +++ b/src/net/sourceforge/plantuml/png/PngTitler.java @@ -64,9 +64,8 @@ public class PngTitler { private final HColorSet set; private final ISkinSimple spriteContainer; - public PngTitler(HColor textColor, DisplaySection text, int fontSize, String fontFamily, - HColor hyperlinkColor, boolean useUnderlineForHyperlink, Style style, HColorSet set, - ISkinSimple spriteContainer) { + public PngTitler(HColor textColor, DisplaySection text, int fontSize, String fontFamily, HColor hyperlinkColor, + boolean useUnderlineForHyperlink, Style style, HColorSet set, ISkinSimple spriteContainer) { this.style = style; this.set = set; this.spriteContainer = spriteContainer; @@ -103,8 +102,7 @@ public class PngTitler { return style.createTextBlockBordered(display, set, spriteContainer); } final UFont normalFont = new UFont(fontFamily, Font.PLAIN, fontSize); - return text.createRibbon( - new FontConfiguration(normalFont, textColor, hyperlinkColor, useUnderlineForHyperlink), - new SpriteContainerEmpty()); + return text.createRibbon(new FontConfiguration(normalFont, textColor, hyperlinkColor, useUnderlineForHyperlink), + new SpriteContainerEmpty(), null); } } diff --git a/src/net/sourceforge/plantuml/sequencediagram/graphic/SequenceDiagramFileMakerPuma2.java b/src/net/sourceforge/plantuml/sequencediagram/graphic/SequenceDiagramFileMakerPuma2.java index 77170b662..536b9051c 100644 --- a/src/net/sourceforge/plantuml/sequencediagram/graphic/SequenceDiagramFileMakerPuma2.java +++ b/src/net/sourceforge/plantuml/sequencediagram/graphic/SequenceDiagramFileMakerPuma2.java @@ -154,7 +154,7 @@ public class SequenceDiagramFileMakerPuma2 implements FileMaker { compTitle = null; } else { if (UseStyle.useBetaStyle()) { - final Style style = StyleSignature.of(SName.root, SName.title) + final Style style = StyleSignature.of(SName.root, SName.document, SName.title) .getMergedStyle(diagram.getSkinParam().getCurrentStyleBuilder()); compTitle = style.createTextBlockBordered(page.getTitle(), diagram.getSkinParam().getIHtmlColorSet(), diagram.getSkinParam()); @@ -175,7 +175,7 @@ public class SequenceDiagramFileMakerPuma2 implements FileMaker { legendBlock = TextBlockUtils.empty(0, 0); } else { if (UseStyle.useBetaStyle()) { - final Style style = StyleSignature.of(SName.root, SName.legend) + final Style style = StyleSignature.of(SName.root, SName.document, SName.legend) .getMergedStyle(diagram.getSkinParam().getCurrentStyleBuilder()); legendBlock = style.createTextBlockBordered(diagram.getLegend().getDisplay(), diagram.getSkinParam().getIHtmlColorSet(), diagram.getSkinParam()); diff --git a/src/net/sourceforge/plantuml/sequencediagram/teoz/SequenceDiagramFileMakerTeoz.java b/src/net/sourceforge/plantuml/sequencediagram/teoz/SequenceDiagramFileMakerTeoz.java index ef488e074..7a8a12f50 100644 --- a/src/net/sourceforge/plantuml/sequencediagram/teoz/SequenceDiagramFileMakerTeoz.java +++ b/src/net/sourceforge/plantuml/sequencediagram/teoz/SequenceDiagramFileMakerTeoz.java @@ -35,6 +35,8 @@ */ package net.sourceforge.plantuml.sequencediagram.teoz; +import static net.sourceforge.plantuml.ugraphic.ImageBuilder.styledImageBuilder; + import java.awt.geom.Dimension2D; import java.io.IOException; import java.io.OutputStream; @@ -73,8 +75,6 @@ import net.sourceforge.plantuml.ugraphic.UTranslate; import net.sourceforge.plantuml.ugraphic.color.HColor; import net.sourceforge.plantuml.utils.MathUtils; -import static net.sourceforge.plantuml.ugraphic.ImageBuilder.styledImageBuilder; - public class SequenceDiagramFileMakerTeoz implements FileMaker { private final SequenceDiagram diagram; @@ -139,8 +139,8 @@ public class SequenceDiagramFileMakerTeoz implements FileMaker { if (this.index != index) { throw new IllegalStateException(); } - return styledImageBuilder(diagram, new Foo(index), index, fileFormatOption) - .annotations(false) // they are managed in drawInternal() + return styledImageBuilder(diagram, new Foo(index), index, fileFormatOption) // + .annotations(false) // they are managed in drawInternal() .write(os); } @@ -215,7 +215,7 @@ public class SequenceDiagramFileMakerTeoz implements FileMaker { } final TextBlock compTitle; if (UseStyle.useBetaStyle()) { - final Style style = StyleSignature.of(SName.root, SName.title) + final Style style = StyleSignature.of(SName.root, SName.document, SName.title) .getMergedStyle(diagram.getSkinParam().getCurrentStyleBuilder()); compTitle = style.createTextBlockBordered(diagram.getTitle().getDisplay(), diagram.getSkinParam().getIHtmlColorSet(), diagram.getSkinParam()); diff --git a/src/net/sourceforge/plantuml/style/Style.java b/src/net/sourceforge/plantuml/style/Style.java index 948e4e9e6..fbc1e1bcf 100644 --- a/src/net/sourceforge/plantuml/style/Style.java +++ b/src/net/sourceforge/plantuml/style/Style.java @@ -210,18 +210,17 @@ public class Style { } public TextBlock createTextBlockBordered(Display note, HColorSet set, ISkinSimple spriteContainer) { - // final HorizontalAlignment alignment = HorizontalAlignment.LEFT; final HorizontalAlignment alignment = this.getHorizontalAlignment(); final TextBlock textBlock = this.createTextBlockInternal(note, set, spriteContainer, alignment); - final HColor legendBackgroundColor = this.value(PName.BackGroundColor).asColor(set); - final HColor legendColor = this.value(PName.LineColor).asColor(set); + final HColor backgroundColor = this.value(PName.BackGroundColor).asColor(set); + final HColor lineColor = this.value(PName.LineColor).asColor(set); final UStroke stroke = this.getStroke(); final int cornersize = this.value(PName.RoundCorner).asInt(); final ClockwiseTopRightBottomLeft margin = this.getMargin(); final ClockwiseTopRightBottomLeft padding = this.getPadding(); - final TextBlock result = TextBlockUtils.bordered(textBlock, stroke, legendColor, legendBackgroundColor, - cornersize, padding); + final TextBlock result = TextBlockUtils.bordered(textBlock, stroke, lineColor, backgroundColor, cornersize, + padding); return TextBlockUtils.withMargin(result, margin); } diff --git a/src/net/sourceforge/plantuml/ugraphic/ImageBuilder.java b/src/net/sourceforge/plantuml/ugraphic/ImageBuilder.java index cf89f29b1..bad920c32 100644 --- a/src/net/sourceforge/plantuml/ugraphic/ImageBuilder.java +++ b/src/net/sourceforge/plantuml/ugraphic/ImageBuilder.java @@ -424,7 +424,7 @@ public class ImageBuilder { case ATXT: return new UGraphicTxt(); case DEBUG: - return new UGraphicDebug(); + return new UGraphicDebug(scaleFactor, dim, svgLinkTarget, hoverPathColorRGB, seed, preserveAspectRatio); default: throw new UnsupportedOperationException(option.getFileFormat().toString()); } diff --git a/src/net/sourceforge/plantuml/ugraphic/debug/UGraphicDebug.java b/src/net/sourceforge/plantuml/ugraphic/debug/UGraphicDebug.java index b36d08ce3..1f2792375 100644 --- a/src/net/sourceforge/plantuml/ugraphic/debug/UGraphicDebug.java +++ b/src/net/sourceforge/plantuml/ugraphic/debug/UGraphicDebug.java @@ -35,6 +35,7 @@ package net.sourceforge.plantuml.ugraphic.debug; import java.awt.Color; +import java.awt.geom.Dimension2D; import java.awt.geom.Point2D; import java.io.IOException; import java.io.OutputStream; @@ -48,6 +49,7 @@ import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.posimo.DotPath; import net.sourceforge.plantuml.ugraphic.AbstractCommonUGraphic; import net.sourceforge.plantuml.ugraphic.ClipContainer; +import net.sourceforge.plantuml.ugraphic.UCenteredCharacter; import net.sourceforge.plantuml.ugraphic.UComment; import net.sourceforge.plantuml.ugraphic.UEllipse; import net.sourceforge.plantuml.ugraphic.UEmpty; @@ -68,20 +70,41 @@ import net.sourceforge.plantuml.ugraphic.color.HColorSimple; public class UGraphicDebug extends AbstractCommonUGraphic implements ClipContainer, UGraphic2 { private final List output; + private final double scaleFactor; + private final Dimension2D dim; + private final String svgLinkTarget; + private final String hoverPathColorRGB; + private final long seed; + private final String preserveAspectRatio; @Override protected AbstractCommonUGraphic copyUGraphic() { - return new UGraphicDebug(this, output); + return new UGraphicDebug(this, output, scaleFactor, dim, svgLinkTarget, hoverPathColorRGB, seed, + preserveAspectRatio); } - private UGraphicDebug(UGraphicDebug other, List output) { + private UGraphicDebug(UGraphicDebug other, List output, double scaleFactor, Dimension2D dim, + String svgLinkTarget, String hoverPathColorRGB, long seed, String preserveAspectRatio) { super(other); this.output = output; + this.scaleFactor = scaleFactor; + this.dim = dim; + this.svgLinkTarget = svgLinkTarget; + this.hoverPathColorRGB = hoverPathColorRGB; + this.seed = seed; + this.preserveAspectRatio = preserveAspectRatio; } - public UGraphicDebug() { + public UGraphicDebug(double scaleFactor, Dimension2D dim, String svgLinkTarget, String hoverPathColorRGB, long seed, + String preserveAspectRatio) { super(new ColorMapperIdentity()); this.output = new ArrayList(); + this.scaleFactor = scaleFactor; + this.dim = dim; + this.svgLinkTarget = svgLinkTarget; + this.hoverPathColorRGB = hoverPathColorRGB; + this.seed = seed; + this.preserveAspectRatio = preserveAspectRatio; } public StringBounder getStringBounder() { @@ -107,12 +130,24 @@ public class UGraphicDebug extends AbstractCommonUGraphic implements ClipContain outComment((UComment) shape); } else if (shape instanceof DotPath) { outPath(((DotPath) shape).toUPath()); + } else if (shape instanceof UCenteredCharacter) { + outCenteredCharacter(((UCenteredCharacter) shape)); } else { System.err.println("UGraphicDebug " + shape.getClass().getSimpleName()); output.add("UGraphicDebug " + shape.getClass().getSimpleName() + " " + new Date()); } } + private void outCenteredCharacter(UCenteredCharacter shape) { + output.add("CENTERED_CHAR:"); + output.add(" char: " + shape.getChar()); + output.add(" position: " + pointd(getTranslateX(), getTranslateY())); + output.add(" font: " + shape.getFont().toStringDebug()); + output.add(" color: " + colorToString(getParam().getColor())); + output.add(""); + + } + private void outComment(UComment shape) { output.add("COMMENT: " + shape.getComment()); } @@ -166,7 +201,8 @@ public class UGraphicDebug extends AbstractCommonUGraphic implements ClipContain output.add(" position: " + pointd(getTranslateX(), getTranslateY())); output.add(" orientation: " + shape.getOrientation()); output.add(" font: " + shape.getFontConfiguration().toStringDebug()); - output.add(" color: " + colorToString(getParam().getColor())); + output.add(" color: " + colorToString(shape.getFontConfiguration().getColor())); + output.add(" extendedColor: " + colorToString(shape.getFontConfiguration().getExtendedColor())); output.add(""); } @@ -243,6 +279,12 @@ public class UGraphicDebug extends AbstractCommonUGraphic implements ClipContain public void writeImageTOBEMOVED(OutputStream os, String metadata, int dpi) throws IOException { print(os, "DPI: " + dpi); + print(os, "dimension: " + pointd(dim.getWidth(), dim.getHeight())); + print(os, "scaleFactor: " + String.format(Locale.US, "%.4f", scaleFactor)); + print(os, "seed: " + seed); + print(os, "svgLinkTarget: " + svgLinkTarget); + print(os, "hoverPathColorRGB: " + hoverPathColorRGB); + print(os, "preserveAspectRatio: " + preserveAspectRatio); print(os, ""); for (String s : output) { diff --git a/src/net/sourceforge/plantuml/wbs/Fork.java b/src/net/sourceforge/plantuml/wbs/Fork.java index d1b0d909d..00987cbef 100644 --- a/src/net/sourceforge/plantuml/wbs/Fork.java +++ b/src/net/sourceforge/plantuml/wbs/Fork.java @@ -59,7 +59,7 @@ class Fork extends WBSTextBlock { } this.main = buildMain(idea); for (WElement child : idea.getChildren(Direction.RIGHT)) { - this.right.add(ITFComposed.build2(child.withBackColor(skinParam), child)); + this.right.add(ITFComposed.build2(skinParam, child)); } } diff --git a/src/net/sourceforge/plantuml/wbs/ITFComposed.java b/src/net/sourceforge/plantuml/wbs/ITFComposed.java index 101b6518a..56b3b8836 100644 --- a/src/net/sourceforge/plantuml/wbs/ITFComposed.java +++ b/src/net/sourceforge/plantuml/wbs/ITFComposed.java @@ -71,7 +71,7 @@ class ITFComposed extends WBSTextBlock implements ITF { public static ITF build2(ISkinParam skinParam, WElement idea) { if (idea.isLeaf()) { - return new ITFLeaf(idea.getStyle(), skinParam, idea.getLabel(), idea.getShape()); + return new ITFLeaf(idea.getStyle(), idea.withBackColor(skinParam), idea.getLabel(), idea.getShape()); } final List left = new ArrayList(); final List right = new ArrayList(); @@ -120,8 +120,8 @@ class ITFComposed extends WBSTextBlock implements ITF { public final Dimension2D calculateDimension(StringBounder stringBounder) { final Dimension2D mainDim = main.calculateDimension(stringBounder); final double mainWidth = mainDim.getWidth(); - final double height = mainDim.getHeight() - + Math.max(getCollHeight(stringBounder, left, marginBottom), getCollHeight(stringBounder, right, marginBottom)); + final double height = mainDim.getHeight() + Math.max(getCollHeight(stringBounder, left, marginBottom), + getCollHeight(stringBounder, right, marginBottom)); final double width = Math.max(mainWidth / 2, delta1x + getCollWidth(stringBounder, left)) + Math.max(mainWidth / 2, delta1x + getCollWidth(stringBounder, right)); return new Dimension2DDouble(width, height); @@ -166,7 +166,8 @@ class ITFComposed extends WBSTextBlock implements ITF { return result; } - final private double getCollHeight(StringBounder stringBounder, Collection all, double deltay) { + final private double getCollHeight(StringBounder stringBounder, Collection all, + double deltay) { double result = 0; for (TextBlock child : all) { result += deltay + child.calculateDimension(stringBounder).getHeight(); diff --git a/test/demo1/SimpleSequenceDiagramTest.java b/test/demo1/SimpleSequenceDiagramTest.java deleted file mode 100644 index 60b70e16f..000000000 --- a/test/demo1/SimpleSequenceDiagramTest.java +++ /dev/null @@ -1,218 +0,0 @@ -package demo1; - -import static org.junit.jupiter.api.Assertions.assertEquals; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import org.junit.jupiter.api.Test; - -import net.sourceforge.plantuml.FileFormat; -import net.sourceforge.plantuml.FileFormatOption; -import net.sourceforge.plantuml.SourceStringReader; -import net.sourceforge.plantuml.core.DiagramDescription; - -/* - * This test is a simple POC of what could be non-regression test for PlantUML. - * - * In real world, test diagram and expected result would not be stored in source file. - */ -class SimpleSequenceDiagramTest { - - @Test - void testSimple() throws IOException { - - final String diagramText = getText(); - final SourceStringReader ssr = new SourceStringReader(diagramText, "UTF-8"); - final ByteArrayOutputStream baos = new ByteArrayOutputStream(); - - final DiagramDescription diagramDescription = ssr.outputImage(baos, 0, new FileFormatOption(FileFormat.DEBUG)); - - assertEquals("(2 participants)", diagramDescription.getDescription()); - - final String actual = new String(baos.toByteArray(), "UTF-8"); - - final String expected = getExpectedResult(); - assertSameDebugGraphic(expected, actual); - } - - private void assertSameDebugGraphic(String expectedString, String actualString) { - final String[] expected = expectedString.split("\n"); - final String[] actual = actualString.split("\n"); - - if (expected.length != actual.length) { - // We know it will fail here, but we want to print the full info - assertEquals(expectedString, actualString); - return; - } - - for (int i = 0; i < actual.length; i++) { - if (sameString(expected[i], actual[i]) == false) { - System.err.println("expected: " + expected[i]); - System.err.println("actual : " + actual[i]); - // We know it will fail here, but we want to print the full info - assertEquals(expectedString, actualString); - } - } - } - - private final Pattern pointLine = Pattern.compile("^(.*?)\\[ ([-.0-9]+) ; ([-.0-9]+) \\]$"); - - private boolean sameString(String s1, String s2) { - final Matcher line1 = pointLine.matcher(s1); - final Matcher line2 = pointLine.matcher(s2); - if (line1.matches() && line2.matches()) { - final String start1 = line1.group(1); - final String start2 = line2.group(1); - final String x1 = line1.group(2); - final String x2 = line2.group(2); - final String y1 = line1.group(3); - final String y2 = line2.group(3); - return start1.equals(start2) && sameDouble(x1, x2) && sameDouble(y1, y2); - - } - return s1.equals(s2); - } - - private boolean sameDouble(String double1, String double2) { - final double value1 = Double.parseDouble(double1); - final double value2 = Double.parseDouble(double2); - final double diff = Math.abs(value1 - value2); - final boolean result = diff < 0.001; - if (result == false) { - System.err.println("sameDouble:Non null diff=" + diff); - } - return result; - } - - private String getText() { - return packString( // - "@startuml", // - "Alice -> Bob : Hello", // - "@enduml"); - } - - private String getExpectedResult() { - return packString("DPI: 96", // - "", // - "LINE:", // - " pt1: [ 50.0000 ; 38.0000 ]", // - " pt2: [ 50.0000 ; 85.0000 ]", // - " stroke: 5.0-5.0-1.0", // - " shadow: 0", // - " color: ffa80036", // - "", // - "LINE:", // - " pt1: [ 156.8135 ; 38.0000 ]", // - " pt2: [ 156.8135 ; 85.0000 ]", // - " stroke: 5.0-5.0-1.0", // - " shadow: 0", // - " color: ffa80036", // - "", // - "RECTANGLE:", // - " pt1: [ 5.0000 ; 5.0000 ]", // - " pt2: [ 92.9573 ; 33.0000 ]", // - " xCorner: 0", // - " yCorner: 0", // - " stroke: 0.0-0.0-1.5", // - " shadow: 4", // - " color: ffa80036", // - " backcolor: fffefece", // - "", // - "TEXT:", // - " text: Alice", // - " position: [ 12.0000 ; 22.8889 ]", // - " orientation: 0", // - " font: SansSerif.plain/14 []", // - " color: ffa80036", // - "", // - "RECTANGLE:", // - " pt1: [ 5.0000 ; 84.0000 ]", // - " pt2: [ 92.9573 ; 112.0000 ]", // - " xCorner: 0", // - " yCorner: 0", // - " stroke: 0.0-0.0-1.5", // - " shadow: 4", // - " color: ffa80036", // - " backcolor: fffefece", // - "", // - "TEXT:", // - " text: Alice", // - " position: [ 12.0000 ; 101.8889 ]", // - " orientation: 0", // - " font: SansSerif.plain/14 []", // - " color: ffa80036", // - "", // - "RECTANGLE:", // - " pt1: [ 130.8135 ; 5.0000 ]", // - " pt2: [ 180.5185 ; 33.0000 ]", // - " xCorner: 0", // - " yCorner: 0", // - " stroke: 0.0-0.0-1.5", // - " shadow: 4", // - " color: ffa80036", // - " backcolor: fffefece", // - "", // - "TEXT:", // - " text: Bob", // - " position: [ 137.8135 ; 22.8889 ]", // - " orientation: 0", // - " font: SansSerif.plain/14 []", // - " color: ffa80036", // - "", // - "RECTANGLE:", // - " pt1: [ 130.8135 ; 84.0000 ]", // - " pt2: [ 180.5185 ; 112.0000 ]", // - " xCorner: 0", // - " yCorner: 0", // - " stroke: 0.0-0.0-1.5", // - " shadow: 4", // - " color: ffa80036", // - " backcolor: fffefece", // - "", // - "TEXT:", // - " text: Bob", // - " position: [ 137.8135 ; 101.8889 ]", // - " orientation: 0", // - " font: SansSerif.plain/14 []", // - " color: ffa80036", // - "", // - "POLYGON:", // - " points:", // - " - [ 145.6660 ; 63.0000 ]", // - " - [ 155.6660 ; 67.0000 ]", // - " - [ 145.6660 ; 71.0000 ]", // - " - [ 149.6660 ; 67.0000 ]", // - " stroke: 0.0-0.0-1.0", // - " shadow: 0", // - " color: ffa80036", // - " backcolor: ffa80036", // - "", // - "LINE:", // - " pt1: [ 50.9786 ; 67.0000 ]", // - " pt2: [ 151.6660 ; 67.0000 ]", // - " stroke: 0.0-0.0-1.0", // - " shadow: 0", // - " color: ffa80036", // - "", // - "TEXT:", // - " text: Hello", // - " position: [ 57.9786 ; 62.1111 ]", // - " orientation: 0", // - " font: SansSerif.plain/13 []", // - " color: ffa80036" // - ); - } - - private String packString(String... list) { - final StringBuilder sb = new StringBuilder(); - for (String s : list) { - sb.append(s); - sb.append("\n"); - } - return sb.toString() + "\n"; - } - -} diff --git a/test/nonreg/BasicTest.java b/test/nonreg/BasicTest.java index 5700d6685..7fc74a8f1 100644 --- a/test/nonreg/BasicTest.java +++ b/test/nonreg/BasicTest.java @@ -36,7 +36,7 @@ public class BasicTest { private static final Charset UTF8 = Charset.forName("UTF-8"); private static final boolean FORCE_RESULT_GENERATION = false; - private static final boolean ENABLE_RESULT_GENERATION_IF_NONE_PRESENT = true; + private static final boolean ENABLE_RESULT_GENERATION_IF_NONE_PRESENT = false; public BasicTest() { // We want a fully portable way of non regression test, so we force the usage of diff --git a/test/nonreg/simple/A0000_TestResult.java b/test/nonreg/simple/A0000_TestResult.java index e8d0a738c..2858cd73f 100644 --- a/test/nonreg/simple/A0000_TestResult.java +++ b/test/nonreg/simple/A0000_TestResult.java @@ -5,6 +5,12 @@ public class A0000_TestResult { /* """ DPI: 96 +dimension: [ 193.5185 ; 125.0000 ] +scaleFactor: 1.0000 +seed: 5605069588648637213 +svgLinkTarget: _top +hoverPathColorRGB: null +preserveAspectRatio: none LINE: pt1: [ 50.0000 ; 38.0000 ] @@ -35,7 +41,8 @@ TEXT: position: [ 12.0000 ; 22.8889 ] orientation: 0 font: SansSerif.plain/14 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR RECTANGLE: pt1: [ 5.0000 ; 84.0000 ] @@ -52,7 +59,8 @@ TEXT: position: [ 12.0000 ; 101.8889 ] orientation: 0 font: SansSerif.plain/14 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR RECTANGLE: pt1: [ 130.8135 ; 5.0000 ] @@ -69,7 +77,8 @@ TEXT: position: [ 137.8135 ; 22.8889 ] orientation: 0 font: SansSerif.plain/14 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR RECTANGLE: pt1: [ 130.8135 ; 84.0000 ] @@ -86,7 +95,8 @@ TEXT: position: [ 137.8135 ; 101.8889 ] orientation: 0 font: SansSerif.plain/14 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR POLYGON: points: @@ -111,7 +121,8 @@ TEXT: position: [ 57.9786 ; 62.1111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR """ */ \ No newline at end of file diff --git a/test/nonreg/simple/A0001_TestResult.java b/test/nonreg/simple/A0001_TestResult.java index cd6a3730e..1366e9116 100644 --- a/test/nonreg/simple/A0001_TestResult.java +++ b/test/nonreg/simple/A0001_TestResult.java @@ -5,6 +5,12 @@ public class A0001_TestResult { /* """ DPI: 96 +dimension: [ 304.7331 ; 297.0000 ] +scaleFactor: 1.0000 +seed: -1212656935193060805 +svgLinkTarget: _top +hoverPathColorRGB: null +preserveAspectRatio: none RECTANGLE: pt1: [ 26.8525 ; 75.0000 ] @@ -45,7 +51,8 @@ TEXT: position: [ 12.0000 ; 22.8889 ] orientation: 0 font: SansSerif.plain/14 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR RECTANGLE: pt1: [ 5.0000 ; 256.0000 ] @@ -62,7 +69,8 @@ TEXT: position: [ 12.0000 ; 273.8889 ] orientation: 0 font: SansSerif.plain/14 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR RECTANGLE: pt1: [ 203.7758 ; 5.0000 ] @@ -79,7 +87,8 @@ TEXT: position: [ 210.7758 ; 22.8889 ] orientation: 0 font: SansSerif.plain/14 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR RECTANGLE: pt1: [ 203.7758 ; 256.0000 ] @@ -96,7 +105,8 @@ TEXT: position: [ 210.7758 ; 273.8889 ] orientation: 0 font: SansSerif.plain/14 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR RECTANGLE: pt1: [ 26.8525 ; 75.0000 ] @@ -145,7 +155,8 @@ TEXT: position: [ 43.8525 ; 57.1111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR LINE: pt1: [ 36.8525 ; 107.0000 ] @@ -184,7 +195,8 @@ TEXT: position: [ 43.8525 ; 102.1111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR LINE: pt1: [ 22.8525 ; 111.0000 ] @@ -237,21 +249,24 @@ TEXT: position: [ 38.8525 ; 142.1111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: example of long position: [ 38.8525 ; 155.1111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: message position: [ 38.8525 ; 168.1111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR POLYGON: points: @@ -276,21 +291,24 @@ TEXT: position: [ 38.8525 ; 208.1111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: is an other on position: [ 38.8525 ; 221.1111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: very long too position: [ 38.8525 ; 234.1111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR """ */ \ No newline at end of file diff --git a/test/nonreg/simple/A0002_TestResult.java b/test/nonreg/simple/A0002_TestResult.java index ea1fd8285..b0d5d3b6d 100644 --- a/test/nonreg/simple/A0002_TestResult.java +++ b/test/nonreg/simple/A0002_TestResult.java @@ -5,6 +5,12 @@ public class A0002_TestResult { /* """ DPI: 96 +dimension: [ 763.0498 ; 895.5000 ] +scaleFactor: 1.0000 +seed: -9181376250803721714 +svgLinkTarget: _top +hoverPathColorRGB: null +preserveAspectRatio: none ELLIPSE: pt1: [ 170.9019 ; 35.5000 ] @@ -57,21 +63,24 @@ TEXT: position: [ 36.0000 ; 245.1111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: is a position: [ 36.0000 ; 258.1111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: note position: [ 36.0000 ; 271.1111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR EMPTY: pt1: [ 218.3794 ; 65.5000 ] @@ -114,161 +123,184 @@ TEXT: position: [ 234.3794 ; 90.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: Long position: [ 234.3794 ; 103.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: Long position: [ 234.3794 ; 116.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: Long position: [ 234.3794 ; 129.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: Long position: [ 234.3794 ; 142.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: Long position: [ 234.3794 ; 155.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: Long position: [ 234.3794 ; 168.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: Long position: [ 234.3794 ; 181.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: Long position: [ 234.3794 ; 194.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: Long position: [ 234.3794 ; 207.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: Long position: [ 234.3794 ; 220.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: Long position: [ 234.3794 ; 233.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: Long position: [ 234.3794 ; 246.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: Long note position: [ 234.3794 ; 259.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: This position: [ 234.3794 ; 272.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: note position: [ 234.3794 ; 285.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: is on position: [ 234.3794 ; 298.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: several position: [ 234.3794 ; 311.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: lines position: [ 234.3794 ; 324.6111 ] orientation: 0 font: SansSerif.italic/13 [ITALIC] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: position: [ 315.7608 ; 324.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: and can position: [ 234.3794 ; 337.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: contain position: [ 234.3794 ; 350.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: HTML position: [ 321.5906 ; 350.6111 ] orientation: 0 font: SansSerif.bold/13 [BOLD] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR LINE: pt1: [ 228.3794 ; 358.5000 ] @@ -299,49 +331,56 @@ TEXT: position: [ 246.8146 ; 373.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: the position: [ 246.8146 ; 386.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: method position: [ 246.8146 ; 399.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: foo() position: [ 342.9676 ; 399.6111 ] orientation: 0 font: Monospaced.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: is position: [ 246.8146 ; 412.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: prohibited position: [ 304.4687 ; 412.6111 ] orientation: 0 font: SansSerif.plain/13 [BACKCOLOR] - color: ffa80036 + color: ff000000 + extendedColor: ffff0000 TEXT: text: overlap position: [ 246.8146 ; 425.6111 ] orientation: 0 font: SansSerif.plain/13 [BACKCOLOR] - color: ffa80036 + color: ff000000 + extendedColor: ffff0000 RECTANGLE: pt1: [ 143.4243 ; 238.5000 ] @@ -358,7 +397,8 @@ TEXT: position: [ 153.4243 ; 257.8333 ] orientation: 0 font: SansSerif.plain/12 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR EMPTY: pt1: [ 10.0000 ; 12.5000 ] @@ -432,175 +472,200 @@ TEXT: position: [ 553.7092 ; 468.6111 ] orientation: 0 font: SansSerif.plain/13 [BACKCOLOR] - color: ffa80036 + color: ff000000 + extendedColor: ffff0000 TEXT: text: this note position: [ 553.7092 ; 481.6111 ] orientation: 0 font: SansSerif.plain/13 [BACKCOLOR] - color: ffa80036 + color: ff000000 + extendedColor: ffff0000 TEXT: text: A Long position: [ 553.7092 ; 494.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: Long position: [ 553.7092 ; 507.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: Long position: [ 553.7092 ; 520.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: Long position: [ 553.7092 ; 533.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: Long position: [ 553.7092 ; 546.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: Long position: [ 553.7092 ; 559.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: Long position: [ 553.7092 ; 572.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: Long position: [ 553.7092 ; 585.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: Long position: [ 553.7092 ; 598.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: Long position: [ 553.7092 ; 611.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: Long position: [ 553.7092 ; 624.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: Long position: [ 553.7092 ; 637.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: Long position: [ 553.7092 ; 650.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: Long note position: [ 553.7092 ; 663.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: This position: [ 553.7092 ; 676.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: note position: [ 553.7092 ; 689.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: is on position: [ 553.7092 ; 702.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: several position: [ 553.7092 ; 715.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: lines position: [ 553.7092 ; 728.6111 ] orientation: 0 font: SansSerif.italic/13 [ITALIC] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: position: [ 635.0906 ; 728.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: and can position: [ 553.7092 ; 741.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: contain position: [ 553.7092 ; 754.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: HTML position: [ 640.9204 ; 754.6111 ] orientation: 0 font: SansSerif.bold/13 [BOLD] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR LINE: pt1: [ 547.7092 ; 762.5000 ] @@ -631,42 +696,48 @@ TEXT: position: [ 566.1444 ; 777.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: the position: [ 566.1444 ; 790.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: method position: [ 566.1444 ; 803.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: foo() position: [ 662.2974 ; 803.6111 ] orientation: 0 font: Monospaced.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: is position: [ 566.1444 ; 816.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: prohibited position: [ 566.1444 ; 829.6111 ] orientation: 0 font: SansSerif.plain/13 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR RECTANGLE: pt1: [ 452.7562 ; 629.5000 ] @@ -683,7 +754,8 @@ TEXT: position: [ 462.7562 ; 648.8333 ] orientation: 0 font: SansSerif.plain/12 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR ELLIPSE: pt1: [ 479.2327 ; 857.5000 ] @@ -800,14 +872,16 @@ TEXT: position: [ 163.2884 ; 26.5000 ] orientation: 0 font: SansSerif.plain/18 [] - color: NULL_COLOR + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: Actor 2 position: [ 525.0409 ; 26.5000 ] orientation: 0 font: SansSerif.plain/18 [] - color: NULL_COLOR + color: ff000000 + extendedColor: NULL_COLOR """ */ \ No newline at end of file diff --git a/test/nonreg/simple/A0003_TestResult.java b/test/nonreg/simple/A0003_TestResult.java index 737b45a72..92b54b1cd 100644 --- a/test/nonreg/simple/A0003_TestResult.java +++ b/test/nonreg/simple/A0003_TestResult.java @@ -5,6 +5,12 @@ public class A0003_TestResult { /* """ DPI: 96 +dimension: [ 367.7447 ; 78.0000 ] +scaleFactor: 2.0000 +seed: -6040919743496430850 +svgLinkTarget: _top +hoverPathColorRGB: null +preserveAspectRatio: none RECTANGLE: pt1: [ 8.0000 ; 29.0000 ] @@ -71,42 +77,48 @@ TEXT: position: [ 21.0000 ; 23.7778 ] orientation: 0 font: Serif.plain/10 [] - color: NULL_COLOR + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: 26 position: [ 49.0000 ; 23.7778 ] orientation: 0 font: Serif.plain/10 [] - color: NULL_COLOR + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: 2 position: [ 77.0000 ; 23.7778 ] orientation: 0 font: Serif.plain/10 [] - color: NULL_COLOR + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: 9 position: [ 105.0000 ; 23.7778 ] orientation: 0 font: Serif.plain/10 [] - color: NULL_COLOR + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: 16 position: [ 133.0000 ; 23.7778 ] orientation: 0 font: Serif.plain/10 [] - color: NULL_COLOR + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: 23 position: [ 161.0000 ; 23.7778 ] orientation: 0 font: Serif.plain/10 [] - color: NULL_COLOR + color: ff000000 + extendedColor: NULL_COLOR LINE: pt1: [ 16.0000 ; 16.0000 ] @@ -176,7 +188,8 @@ TEXT: position: [ 17.4989 ; 9.3333 ] orientation: 0 font: Serif.bold/12 [BOLD] - color: NULL_COLOR + color: ff000000 + extendedColor: NULL_COLOR LINE: pt1: [ 168.0000 ; 0.0000 ] @@ -190,7 +203,8 @@ TEXT: position: [ 72.7816 ; 9.3333 ] orientation: 0 font: Serif.bold/12 [BOLD] - color: NULL_COLOR + color: ff000000 + extendedColor: NULL_COLOR LINE: pt1: [ 0.0000 ; 0.0000 ] @@ -407,14 +421,16 @@ TEXT: position: [ 142.0000 ; 39.0556 ] orientation: 0 font: SansSerif.plain/11 [] - color: NULL_COLOR + color: ff000000 + extendedColor: NULL_COLOR TEXT: text: Testing position: [ 170.0000 ; 55.0556 ] orientation: 0 font: SansSerif.plain/11 [] - color: NULL_COLOR + color: ff000000 + extendedColor: NULL_COLOR LINE: pt1: [ 0.0000 ; 61.0000 ] @@ -442,7 +458,8 @@ TEXT: position: [ 17.4989 ; 70.3333 ] orientation: 0 font: Serif.bold/12 [BOLD] - color: NULL_COLOR + color: ff000000 + extendedColor: NULL_COLOR LINE: pt1: [ 168.0000 ; 61.0000 ] @@ -456,7 +473,8 @@ TEXT: position: [ 72.7816 ; 70.3333 ] orientation: 0 font: Serif.bold/12 [BOLD] - color: NULL_COLOR + color: ff000000 + extendedColor: NULL_COLOR LINE: pt1: [ 0.0000 ; 77.0000 ] diff --git a/test/nonreg/simple/A0004_TestResult.java b/test/nonreg/simple/A0004_TestResult.java index f1638c69a..6de9b4c58 100644 --- a/test/nonreg/simple/A0004_TestResult.java +++ b/test/nonreg/simple/A0004_TestResult.java @@ -5,6 +5,12 @@ public class A0004_TestResult { /* """ DPI: 96 +dimension: [ 559.6156 ; 681.0000 ] +scaleFactor: 1.0000 +seed: 6985134683589840646 +svgLinkTarget: _top +hoverPathColorRGB: null +preserveAspectRatio: none ELLIPSE: pt1: [ 139.0000 ; 7.0000 ] @@ -31,7 +37,8 @@ TEXT: position: [ 49.5000 ; 87.3333 ] orientation: 0 font: SansSerif.plain/12 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR POLYGON: points: @@ -60,7 +67,8 @@ TEXT: position: [ 17.0000 ; 198.3333 ] orientation: 0 font: SansSerif.plain/12 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR ELLIPSE: pt1: [ 128.0000 ; 650.0000 ] @@ -97,7 +105,8 @@ TEXT: position: [ 155.5000 ; 248.3333 ] orientation: 0 font: SansSerif.plain/12 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR RECTANGLE: pt1: [ 235.0000 ; 298.0000 ] @@ -146,7 +155,8 @@ TEXT: position: [ 272.0000 ; 470.3333 ] orientation: 0 font: SansSerif.plain/12 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR RECTANGLE: pt1: [ 351.0000 ; 401.0000 ] @@ -163,7 +173,8 @@ TEXT: position: [ 361.0000 ; 420.3333 ] orientation: 0 font: SansSerif.plain/12 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR RECTANGLE: pt1: [ 115.5000 ; 581.0000 ] @@ -180,7 +191,8 @@ TEXT: position: [ 125.5000 ; 600.3333 ] orientation: 0 font: SansSerif.plain/12 [] - color: ffa80036 + color: ff000000 + extendedColor: NULL_COLOR PATH: - type: SEG_MOVETO @@ -239,7 +251,8 @@ TEXT: position: [ 138.0000 ; 133.1969 ] orientation: 0 font: SansSerif.plain/11 [] - color: NULL_COLOR + color: ff000000 + extendedColor: NULL_COLOR PATH: - type: SEG_MOVETO @@ -274,7 +287,8 @@ TEXT: position: [ 34.1176 ; 165.1119 ] orientation: 0 font: SansSerif.plain/11 [] - color: NULL_COLOR + color: ff000000 + extendedColor: NULL_COLOR PATH: - type: SEG_MOVETO @@ -345,7 +359,8 @@ TEXT: position: [ 217.0000 ; 198.0556 ] orientation: 0 font: SansSerif.plain/11 [] - color: NULL_COLOR + color: ff000000 + extendedColor: NULL_COLOR PATH: - type: SEG_MOVETO @@ -404,7 +419,8 @@ TEXT: position: [ 264.0000 ; 355.5079 ] orientation: 0 font: SansSerif.plain/11 [] - color: NULL_COLOR + color: ff000000 + extendedColor: NULL_COLOR PATH: - type: SEG_MOVETO @@ -443,7 +459,8 @@ TEXT: position: [ 139.0000 ; 470.0556 ] orientation: 0 font: SansSerif.plain/11 [] - color: NULL_COLOR + color: ff000000 + extendedColor: NULL_COLOR PATH: - type: SEG_MOVETO @@ -482,7 +499,8 @@ TEXT: position: [ 278.0000 ; 420.0556 ] orientation: 0 font: SansSerif.plain/11 [] - color: NULL_COLOR + color: ff000000 + extendedColor: NULL_COLOR PATH: - type: SEG_MOVETO diff --git a/test/nonreg/simple/A0005_Test.java b/test/nonreg/simple/A0005_Test.java new file mode 100644 index 000000000..712a14dcc --- /dev/null +++ b/test/nonreg/simple/A0005_Test.java @@ -0,0 +1,60 @@ +package nonreg.simple; + +import java.io.IOException; + +import org.junit.jupiter.api.Test; + +import nonreg.BasicTest; + +/* + +Test diagram MUST be put between triple quotes + +""" +@startuml +title title +legend legend +footer footer +header header +caption caption + + +class Bob { +hello +} +class Sally + +Sally --> Bob +@enduml +""" + + */ +public class A0005_Test extends BasicTest { + + @Test + void testSimple() throws IOException { + checkImage("(2 entities)"); + } + +} diff --git a/test/nonreg/simple/A0005_TestResult.java b/test/nonreg/simple/A0005_TestResult.java new file mode 100644 index 000000000..a1b4ddc66 --- /dev/null +++ b/test/nonreg/simple/A0005_TestResult.java @@ -0,0 +1,288 @@ +package nonreg.simple; + +public class A0005_TestResult { +} +/* +""" +DPI: 96 +dimension: [ 128.0935 ; 282.0000 ] +scaleFactor: 1.0000 +seed: 293863236578191100 +svgLinkTarget: _top +hoverPathColorRGB: null +preserveAspectRatio: none + +EMPTY: + pt1: [ 43.7612 ; 0.0000 ] + pt2: [ 122.0935 ; 11.0000 ] + +RECTANGLE: + pt1: [ 43.7612 ; 0.0000 ] + pt2: [ 121.0935 ; 10.0000 ] + xCorner: 0 + yCorner: 0 + stroke: 0.0-0.0-1.0 + shadow: 0 + color: NULL_COLOR + backcolor: ffff0000 + +TEXT: + text: header + position: [ 43.7612 ; 7.7778 ] + orientation: 0 + font: SansSerif.plain/10 [] + color: ff888888 + extendedColor: NULL_COLOR + +EMPTY: + pt1: [ 20.7059 ; 11.0000 ] + pt2: [ 101.3876 ; 46.0000 ] + +RECTANGLE: + pt1: [ 25.7059 ; 16.0000 ] + pt2: [ 95.3876 ; 40.0000 ] + xCorner: 0 + yCorner: 0 + stroke: 0.0-0.0-1.0 + shadow: 0 + color: NULL_COLOR + backcolor: ffffff00 + +TEXT: + text: title + position: [ 30.7059 ; 31.8889 ] + orientation: 0 + font: SansSerif.bold/14 [BOLD] + color: ff000000 + extendedColor: NULL_COLOR + +COMMENT: class Bob +RECTANGLE: + pt1: [ 25.6999 ; 143.0000 ] + pt2: [ 102.4463 ; 205.0000 ] + xCorner: 0 + yCorner: 0 + stroke: 0.0-0.0-1.5 + shadow: 4 + color: ffa80036 + backcolor: fffefece + +EMPTY: + pt1: [ 29.7685 ; 143.0000 ] + pt2: [ 55.7685 ; 175.0000 ] + +ELLIPSE: + pt1: [ 33.7685 ; 148.0000 ] + pt2: [ 55.7685 ; 170.0000 ] + start: 0.0 + extend: 0.0 + stroke: 0.0-0.0-1.0 + shadow: 0 + color: ffa80036 + backcolor: ffadd1b2 + +CENTERED_CHAR: + char: C + position: [ 44.7685 ; 159.0000 ] + font: Monospaced.bold/17 + color: ff000000 + +EMPTY: + pt1: [ 56.6726 ; 152.0000 ] + pt2: [ 98.3776 ; 166.0000 ] + +TEXT: + text: Bob + position: [ 59.6726 ; 162.8889 ] + orientation: 0 + font: SansSerif.plain/14 [] + color: ff000000 + extendedColor: NULL_COLOR + +LINE: + pt1: [ 26.6999 ; 175.0000 ] + pt2: [ 101.4463 ; 175.0000 ] + stroke: 0.0-0.0-1.5 + shadow: 0 + color: ffa80036 + +EMPTY: + pt1: [ 25.6999 ; 175.0000 ] + pt2: [ 102.4463 ; 197.0000 ] + +TEXT: + text: hello + position: [ 31.6999 ; 189.8889 ] + orientation: 0 + font: SansSerif.plain/14 [] + color: ff000000 + extendedColor: NULL_COLOR + +LINE: + pt1: [ 26.6999 ; 197.0000 ] + pt2: [ 101.4463 ; 197.0000 ] + stroke: 0.0-0.0-1.5 + shadow: 0 + color: ffa80036 + +EMPTY: + pt1: [ 25.6999 ; 197.0000 ] + pt2: [ 37.6999 ; 205.0000 ] + +COMMENT: class Sally +RECTANGLE: + pt1: [ 18.1999 ; 59.0000 ] + pt2: [ 109.8937 ; 107.0000 ] + xCorner: 0 + yCorner: 0 + stroke: 0.0-0.0-1.5 + shadow: 4 + color: ffa80036 + backcolor: fffefece + +EMPTY: + pt1: [ 18.1999 ; 59.0000 ] + pt2: [ 44.1999 ; 91.0000 ] + +ELLIPSE: + pt1: [ 22.1999 ; 64.0000 ] + pt2: [ 44.1999 ; 86.0000 ] + start: 0.0 + extend: 0.0 + stroke: 0.0-0.0-1.0 + shadow: 0 + color: ffa80036 + backcolor: ffadd1b2 + +CENTERED_CHAR: + char: C + position: [ 33.1999 ; 75.0000 ] + font: Monospaced.bold/17 + color: ff000000 + +EMPTY: + pt1: [ 44.1999 ; 68.0000 ] + pt2: [ 109.8937 ; 82.0000 ] + +TEXT: + text: Sally + position: [ 47.1999 ; 78.8889 ] + orientation: 0 + font: SansSerif.plain/14 [] + color: ff000000 + extendedColor: NULL_COLOR + +LINE: + pt1: [ 19.1999 ; 91.0000 ] + pt2: [ 108.8937 ; 91.0000 ] + stroke: 0.0-0.0-1.5 + shadow: 0 + color: ffa80036 + +EMPTY: + pt1: [ 18.1999 ; 91.0000 ] + pt2: [ 30.1999 ; 99.0000 ] + +LINE: + pt1: [ 19.1999 ; 99.0000 ] + pt2: [ 108.8937 ; 99.0000 ] + stroke: 0.0-0.0-1.5 + shadow: 0 + color: ffa80036 + +EMPTY: + pt1: [ 18.1999 ; 99.0000 ] + pt2: [ 30.1999 ; 107.0000 ] + +PATH: + - type: SEG_MOVETO + pt1: [ 46.0000 ; 55.3837 ] + - type: SEG_CUBICTO + pt1: [ 46.0000 ; 66.1992 ] + pt2: [ 46.0000 ; 79.1811 ] + pt3: [ 46.0000 ; 90.7328 ] + stroke: 0.0-0.0-1.0 + shadow: 0 + color: ffa80036 + backcolor: NULL_COLOR + +POLYGON: + points: + - [ 64.1999 ; 142.7328 ] + - [ 68.1999 ; 133.7328 ] + - [ 64.1999 ; 137.7328 ] + - [ 60.1999 ; 133.7328 ] + - [ 64.1999 ; 142.7328 ] + stroke: 0.0-0.0-1.0 + shadow: 0 + color: ffa80036 + backcolor: ffa80036 + +EMPTY: + pt1: [ 0.0000 ; 200.0000 ] + pt2: [ 122.0935 ; 243.0000 ] + +RECTANGLE: + pt1: [ 8.0000 ; 208.0000 ] + pt2: [ 113.0935 ; 234.0000 ] + xCorner: 15 + yCorner: 15 + stroke: 0.0-0.0-1.0 + shadow: 0 + color: ff000000 + backcolor: ff008000 + +TEXT: + text: legend + position: [ 14.0000 ; 224.8889 ] + orientation: 0 + font: SansSerif.plain/14 [] + color: ff000000 + extendedColor: NULL_COLOR + +EMPTY: + pt1: [ 2.6679 ; 243.0000 ] + pt2: [ 119.4256 ; 260.0000 ] + +RECTANGLE: + pt1: [ 3.6679 ; 244.0000 ] + pt2: [ 117.4256 ; 258.0000 ] + xCorner: 0 + yCorner: 0 + stroke: 0.0-0.0-1.0 + shadow: 0 + color: NULL_COLOR + backcolor: ff800080 + +TEXT: + text: caption + position: [ 3.6679 ; 254.8889 ] + orientation: 0 + font: SansSerif.plain/14 [] + color: ff000000 + extendedColor: NULL_COLOR + +EMPTY: + pt1: [ 16.9796 ; 260.0000 ] + pt2: [ 105.1139 ; 276.0000 ] + +RECTANGLE: + pt1: [ 16.9796 ; 260.0000 ] + pt2: [ 104.1139 ; 275.0000 ] + xCorner: 0 + yCorner: 0 + stroke: 0.0-0.0-1.0 + shadow: 0 + color: NULL_COLOR + backcolor: ff0000ff + +TEXT: + text: footer + position: [ 16.9796 ; 271.6667 ] + orientation: 0 + font: SansSerif.plain/15 [] + color: ffff0000 + extendedColor: NULL_COLOR + +""" +*/ \ No newline at end of file diff --git a/test/nonreg/simple/A0006_Test.java b/test/nonreg/simple/A0006_Test.java new file mode 100644 index 000000000..a7858b484 --- /dev/null +++ b/test/nonreg/simple/A0006_Test.java @@ -0,0 +1,54 @@ +package nonreg.simple; + +import java.io.IOException; + +import org.junit.jupiter.api.Test; + +import nonreg.BasicTest; + +/* + +Test diagram MUST be put between triple quotes + +""" +@startuml +title title +legend legend +footer footer +header header +caption caption + +Sally --> Bob +@enduml +""" + + */ +public class A0006_Test extends BasicTest { + + @Test + void testSimple() throws IOException { + checkImage("(2 participants)"); + } + +} diff --git a/test/nonreg/simple/A0006_TestResult.java b/test/nonreg/simple/A0006_TestResult.java new file mode 100644 index 000000000..57e0f3286 --- /dev/null +++ b/test/nonreg/simple/A0006_TestResult.java @@ -0,0 +1,230 @@ +package nonreg.simple; + +public class A0006_TestResult { +} +/* +""" +DPI: 96 +dimension: [ 157.3989 ; 233.0000 ] +scaleFactor: 1.0000 +seed: -2375783792654745998 +svgLinkTarget: _top +hoverPathColorRGB: null +preserveAspectRatio: none + +EMPTY: + pt1: [ 35.3586 ; 16.0000 ] + pt2: [ 116.0403 ; 51.0000 ] + +RECTANGLE: + pt1: [ 40.3586 ; 21.0000 ] + pt2: [ 110.0403 ; 45.0000 ] + xCorner: 0 + yCorner: 0 + stroke: 0.0-0.0-1.0 + shadow: 0 + color: NULL_COLOR + backcolor: ffffff00 + +TEXT: + text: title + position: [ 45.3586 ; 36.8889 ] + orientation: 0 + font: SansSerif.bold/14 [BOLD] + color: ff000000 + extendedColor: NULL_COLOR + +EMPTY: + pt1: [ 17.3206 ; 194.0000 ] + pt2: [ 134.0783 ; 211.0000 ] + +RECTANGLE: + pt1: [ 18.3206 ; 195.0000 ] + pt2: [ 132.0783 ; 209.0000 ] + xCorner: 0 + yCorner: 0 + stroke: 0.0-0.0-1.0 + shadow: 0 + color: NULL_COLOR + backcolor: ff800080 + +TEXT: + text: caption + position: [ 18.3206 ; 205.8889 ] + orientation: 0 + font: SansSerif.plain/14 [] + color: ff000000 + extendedColor: NULL_COLOR + +LINE: + pt1: [ 43.0000 ; 84.0000 ] + pt2: [ 43.0000 ; 118.0000 ] + stroke: 5.0-5.0-1.0 + shadow: 0 + color: ffa80036 + +LINE: + pt1: [ 118.6938 ; 84.0000 ] + pt2: [ 118.6938 ; 118.0000 ] + stroke: 5.0-5.0-1.0 + shadow: 0 + color: ffa80036 + +RECTANGLE: + pt1: [ 5.0000 ; 51.0000 ] + pt2: [ 78.6938 ; 79.0000 ] + xCorner: 0 + yCorner: 0 + stroke: 0.0-0.0-1.5 + shadow: 4 + color: ffa80036 + backcolor: fffefece + +TEXT: + text: Sally + position: [ 12.0000 ; 68.8889 ] + orientation: 0 + font: SansSerif.plain/14 [] + color: ff000000 + extendedColor: NULL_COLOR + +RECTANGLE: + pt1: [ 5.0000 ; 117.0000 ] + pt2: [ 78.6938 ; 145.0000 ] + xCorner: 0 + yCorner: 0 + stroke: 0.0-0.0-1.5 + shadow: 4 + color: ffa80036 + backcolor: fffefece + +TEXT: + text: Sally + position: [ 12.0000 ; 134.8889 ] + orientation: 0 + font: SansSerif.plain/14 [] + color: ff000000 + extendedColor: NULL_COLOR + +RECTANGLE: + pt1: [ 92.6938 ; 51.0000 ] + pt2: [ 142.3989 ; 79.0000 ] + xCorner: 0 + yCorner: 0 + stroke: 0.0-0.0-1.5 + shadow: 4 + color: ffa80036 + backcolor: fffefece + +TEXT: + text: Bob + position: [ 99.6938 ; 68.8889 ] + orientation: 0 + font: SansSerif.plain/14 [] + color: ff000000 + extendedColor: NULL_COLOR + +RECTANGLE: + pt1: [ 92.6938 ; 117.0000 ] + pt2: [ 142.3989 ; 145.0000 ] + xCorner: 0 + yCorner: 0 + stroke: 0.0-0.0-1.5 + shadow: 4 + color: ffa80036 + backcolor: fffefece + +TEXT: + text: Bob + position: [ 99.6938 ; 134.8889 ] + orientation: 0 + font: SansSerif.plain/14 [] + color: ff000000 + extendedColor: NULL_COLOR + +POLYGON: + points: + - [ 107.5463 ; 96.0000 ] + - [ 117.5463 ; 100.0000 ] + - [ 107.5463 ; 104.0000 ] + - [ 111.5463 ; 100.0000 ] + stroke: 0.0-0.0-1.0 + shadow: 0 + color: ffa80036 + backcolor: ffa80036 + +LINE: + pt1: [ 43.8469 ; 100.0000 ] + pt2: [ 113.5463 ; 100.0000 ] + stroke: 2.0-2.0-1.0 + shadow: 0 + color: ffa80036 + +EMPTY: + pt1: [ 73.0665 ; 5.0000 ] + pt2: [ 151.3989 ; 16.0000 ] + +RECTANGLE: + pt1: [ 73.0665 ; 5.0000 ] + pt2: [ 150.3989 ; 15.0000 ] + xCorner: 0 + yCorner: 0 + stroke: 0.0-0.0-1.0 + shadow: 0 + color: NULL_COLOR + backcolor: ffff0000 + +TEXT: + text: header + position: [ 73.0665 ; 12.7778 ] + orientation: 0 + font: SansSerif.plain/10 [] + color: ff888888 + extendedColor: NULL_COLOR + +EMPTY: + pt1: [ 31.6323 ; 211.0000 ] + pt2: [ 119.7666 ; 227.0000 ] + +RECTANGLE: + pt1: [ 31.6323 ; 211.0000 ] + pt2: [ 118.7666 ; 226.0000 ] + xCorner: 0 + yCorner: 0 + stroke: 0.0-0.0-1.0 + shadow: 0 + color: NULL_COLOR + backcolor: ff0000ff + +TEXT: + text: footer + position: [ 31.6323 ; 222.6667 ] + orientation: 0 + font: SansSerif.plain/15 [] + color: ffff0000 + extendedColor: NULL_COLOR + +EMPTY: + pt1: [ 14.6527 ; 151.0000 ] + pt2: [ 136.7462 ; 194.0000 ] + +RECTANGLE: + pt1: [ 22.6527 ; 159.0000 ] + pt2: [ 127.7462 ; 185.0000 ] + xCorner: 15 + yCorner: 15 + stroke: 0.0-0.0-1.0 + shadow: 0 + color: ff000000 + backcolor: ff008000 + +TEXT: + text: legend + position: [ 28.6527 ; 175.8889 ] + orientation: 0 + font: SansSerif.plain/14 [] + color: ff000000 + extendedColor: NULL_COLOR + +""" +*/ \ No newline at end of file