From 715b01fa7d7a0bfe372a05e73151bb0e0d2c4206 Mon Sep 17 00:00:00 2001 From: "Ilya (OgarkovIA)" Date: Sun, 29 Sep 2024 14:25:41 +0300 Subject: [PATCH] Initial commit --- bin/Debug/01-example.actual.txt | 3 + bin/Debug/01-example.expected.txt | 3 + bin/Debug/01-example.input.txt | 3 + bin/Debug/02-alignment.actual.txt | 3 + bin/Debug/02-alignment.expected.txt | 3 + bin/Debug/02-alignment.input.txt | 5 + bin/Debug/03-alignment.actual.txt | 3 + bin/Debug/03-alignment.expected.txt | 3 + bin/Debug/03-scaling.expected.txt | 3 + bin/Debug/03-scaling.input.txt | 5 + bin/Debug/BATFILE.bat | 10 + bin/Debug/BATFILE1.bat | 3 + bin/Debug/BATFILE2.bat | 3 + bin/Debug/BATFILE3.bat | 3 + bin/Debug/ProgrammDO.txt | 77 + bin/Debug/input.txt | 5 + bin/Debug/lab01.exe | Bin 0 -> 2579081 bytes bin/Debug/output.txt | 3 + doctest.h.txt | 8171 +++++++++++++++++++++++++++ histogram.cpp | 8 + histogram.h | 11 + histogram_internal.h | 6 + lab01.cbp | 5 + lab01.depend | 7 + lab01.layout | 25 + main.cpp | 91 +- main.exe | Bin 0 -> 88044 bytes main.o | Bin 0 -> 55252 bytes obj/Debug/Lab3/histogram.o | Bin 0 -> 30352 bytes obj/Debug/Lab3/unittest.o | Bin 0 -> 553 bytes obj/Debug/histogram.o | Bin 0 -> 81356 bytes obj/Debug/main.o | Bin 0 -> 134044 bytes obj/Debug/text.o | Bin 0 -> 50509 bytes text.cpp | 48 + text.h | 7 + unittest.cbp | 43 + unittest.cpp | 1 + unittest.depend | 13 + unittest.layout | 15 + 39 files changed, 8515 insertions(+), 74 deletions(-) create mode 100644 bin/Debug/01-example.actual.txt create mode 100644 bin/Debug/01-example.expected.txt create mode 100644 bin/Debug/01-example.input.txt create mode 100644 bin/Debug/02-alignment.actual.txt create mode 100644 bin/Debug/02-alignment.expected.txt create mode 100644 bin/Debug/02-alignment.input.txt create mode 100644 bin/Debug/03-alignment.actual.txt create mode 100644 bin/Debug/03-alignment.expected.txt create mode 100644 bin/Debug/03-scaling.expected.txt create mode 100644 bin/Debug/03-scaling.input.txt create mode 100644 bin/Debug/BATFILE.bat create mode 100644 bin/Debug/BATFILE1.bat create mode 100644 bin/Debug/BATFILE2.bat create mode 100644 bin/Debug/BATFILE3.bat create mode 100644 bin/Debug/ProgrammDO.txt create mode 100644 bin/Debug/input.txt create mode 100644 bin/Debug/lab01.exe create mode 100644 bin/Debug/output.txt create mode 100644 doctest.h.txt create mode 100644 histogram.cpp create mode 100644 histogram.h create mode 100644 histogram_internal.h create mode 100644 lab01.depend create mode 100644 lab01.layout create mode 100644 main.exe create mode 100644 main.o create mode 100644 obj/Debug/Lab3/histogram.o create mode 100644 obj/Debug/Lab3/unittest.o create mode 100644 obj/Debug/histogram.o create mode 100644 obj/Debug/main.o create mode 100644 obj/Debug/text.o create mode 100644 text.cpp create mode 100644 text.h create mode 100644 unittest.cbp create mode 100644 unittest.cpp create mode 100644 unittest.depend create mode 100644 unittest.layout diff --git a/bin/Debug/01-example.actual.txt b/bin/Debug/01-example.actual.txt new file mode 100644 index 0000000..b0a2599 --- /dev/null +++ b/bin/Debug/01-example.actual.txt @@ -0,0 +1,3 @@ + 2|** + 5|***** + 3|*** diff --git a/bin/Debug/01-example.expected.txt b/bin/Debug/01-example.expected.txt new file mode 100644 index 0000000..b0a2599 --- /dev/null +++ b/bin/Debug/01-example.expected.txt @@ -0,0 +1,3 @@ + 2|** + 5|***** + 3|*** diff --git a/bin/Debug/01-example.input.txt b/bin/Debug/01-example.input.txt new file mode 100644 index 0000000..6ef9fde --- /dev/null +++ b/bin/Debug/01-example.input.txt @@ -0,0 +1,3 @@ +10 +4 4 3 5 3 4 5 5 4 4 +3 diff --git a/bin/Debug/02-alignment.actual.txt b/bin/Debug/02-alignment.actual.txt new file mode 100644 index 0000000..693ba1a --- /dev/null +++ b/bin/Debug/02-alignment.actual.txt @@ -0,0 +1,3 @@ + 9|****** + 33|************************* +100|**************************************************************************** diff --git a/bin/Debug/02-alignment.expected.txt b/bin/Debug/02-alignment.expected.txt new file mode 100644 index 0000000..094c19f --- /dev/null +++ b/bin/Debug/02-alignment.expected.txt @@ -0,0 +1,3 @@ + 9|********* + 33|********************************* +100|**************************************************************************************************** diff --git a/bin/Debug/02-alignment.input.txt b/bin/Debug/02-alignment.input.txt new file mode 100644 index 0000000..2539400 --- /dev/null +++ b/bin/Debug/02-alignment.input.txt @@ -0,0 +1,5 @@ +142 +1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 +3 diff --git a/bin/Debug/03-alignment.actual.txt b/bin/Debug/03-alignment.actual.txt new file mode 100644 index 0000000..693ba1a --- /dev/null +++ b/bin/Debug/03-alignment.actual.txt @@ -0,0 +1,3 @@ + 9|****** + 33|************************* +100|**************************************************************************** diff --git a/bin/Debug/03-alignment.expected.txt b/bin/Debug/03-alignment.expected.txt new file mode 100644 index 0000000..693ba1a --- /dev/null +++ b/bin/Debug/03-alignment.expected.txt @@ -0,0 +1,3 @@ + 9|****** + 33|************************* +100|**************************************************************************** diff --git a/bin/Debug/03-scaling.expected.txt b/bin/Debug/03-scaling.expected.txt new file mode 100644 index 0000000..693ba1a --- /dev/null +++ b/bin/Debug/03-scaling.expected.txt @@ -0,0 +1,3 @@ + 9|****** + 33|************************* +100|**************************************************************************** diff --git a/bin/Debug/03-scaling.input.txt b/bin/Debug/03-scaling.input.txt new file mode 100644 index 0000000..2539400 --- /dev/null +++ b/bin/Debug/03-scaling.input.txt @@ -0,0 +1,5 @@ +142 +1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 +3 diff --git a/bin/Debug/BATFILE.bat b/bin/Debug/BATFILE.bat new file mode 100644 index 0000000..5bd034d --- /dev/null +++ b/bin/Debug/BATFILE.bat @@ -0,0 +1,10 @@ +@echo off + +lab01.exe < 01-example.input.txt > 01-example.actual.txt 2>NUL + +fc /N 01-example.actual.txt 01-example.expected.txt + +lab01.exe < 02-alignment.input.txt > 02-alignment.actual.txt 2>NUL +fc /N 02-alignment.actual.txt 02-alignment.expected.txt +lab01.exe < 03-scaling.input.txt > 03-alignment.actual.txt 2>NUL +fc /N 03-alignment.actual.txt 03-alignment.expected.txt \ No newline at end of file diff --git a/bin/Debug/BATFILE1.bat b/bin/Debug/BATFILE1.bat new file mode 100644 index 0000000..409d3b2 --- /dev/null +++ b/bin/Debug/BATFILE1.bat @@ -0,0 +1,3 @@ +@echo off +lab01.exe < 01-example.input.txt > 01-example.actual.txt 2>NUL +fc /N 01-example.actual.txt 01-example.expected.txt \ No newline at end of file diff --git a/bin/Debug/BATFILE2.bat b/bin/Debug/BATFILE2.bat new file mode 100644 index 0000000..b1d96ca --- /dev/null +++ b/bin/Debug/BATFILE2.bat @@ -0,0 +1,3 @@ +@echo off +lab01.exe < 02-alignment.input.txt > 02-alignment.actual.txt 2>NUL +fc /N 02-alignment.actual.txt 02-alignment.expected.txt \ No newline at end of file diff --git a/bin/Debug/BATFILE3.bat b/bin/Debug/BATFILE3.bat new file mode 100644 index 0000000..3c5de82 --- /dev/null +++ b/bin/Debug/BATFILE3.bat @@ -0,0 +1,3 @@ +@echo off +lab01.exe < 03-scaling.input.txt > 03-alignment.actual.txt 2>NUL +fc /N 03-alignment.actual.txt 03-alignment.expected.txt \ No newline at end of file diff --git a/bin/Debug/ProgrammDO.txt b/bin/Debug/ProgrammDO.txt new file mode 100644 index 0000000..353e4d3 --- /dev/null +++ b/bin/Debug/ProgrammDO.txt @@ -0,0 +1,77 @@ +#include +#include +#include + +using namespace std; + +int main() +{ + size_t number_count, bin_count; + cerr << "Enter number count: "; + cin >> number_count; + + vector numbers(number_count); + + cerr << "Enter the numbers:\n"; + for (size_t i = 0; i < number_count; ++i) { + cerr << "Number " << i + 1 << ": "; + cin >> numbers[i]; + } + cerr << "Enter bin count: "; + cin >> bin_count; + + vector bins(bin_count); + + double min = numbers[0]; + double max = numbers[0]; + for (double x : numbers) { + if (x < min) { + min = x; + } + else if (x > max) { + max = x; + } + + } + + double bin_size = (max - min) / bin_count; + + for (size_t i = 0; i < number_count; i++) { + bool found = false; + for (size_t j = 0; (j < bin_count - 1) && !found; j++) { + auto lo = min + j * bin_size; + auto hi = min + (j + 1) * bin_size; + if ((lo <= numbers[i]) && (numbers[i] < hi)) { + bins[j]++; + found = true; + } + } + if (!found) { + bins[bin_count - 1]++; + } + } + + size_t max_count = 0; + for (size_t i = 0; i < bin_count; ++i) { + if (bins[i] > max_count) { + max_count = bins[i]; + } + } + + const size_t SCREEN_WIDTH = 80; + const size_t MAX_ASTERISK = SCREEN_WIDTH - 3 - 1; + for (size_t i = 0; i < bin_count; ++i) { + size_t height = 0; + if (max_count != 0) { + height = MAX_ASTERISK * (static_cast(bins[i]) / max_count); + } + + cout << (bins[i] < 100 ? " " : "") << (bins[i] < 10 ? " " : "") << bins[i] << "|"; + for (size_t j = 0; j < height; ++j) { + cout << "*"; + } + cout << endl; + } + + +} diff --git a/bin/Debug/input.txt b/bin/Debug/input.txt new file mode 100644 index 0000000..2539400 --- /dev/null +++ b/bin/Debug/input.txt @@ -0,0 +1,5 @@ +142 +1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 +3 diff --git a/bin/Debug/lab01.exe b/bin/Debug/lab01.exe new file mode 100644 index 0000000000000000000000000000000000000000..6a0c4c3e2d413c595e49c1e26f4c93fbe19cb5bf GIT binary patch literal 2579081 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 ~qM19H8WY(oz$~i}gXg}4GszNJC~yhqW5f^I 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�Q;r{T=HHozUXs<({H9L)(ZD=Z$zf%B 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

t}(+ZjN4cyZLkb?*X62|RUOF+g=`^vQUm)c4T z8p@6yEpt1`Y~y+!1yT{C=L-h#l%MF?UI~PL-kjtOgw%0lF_6neon8i{B1X>}fs9}< zpuAAI@kt`Z~-Ugr0>!CVrs3=@%SFWA z17wzHU-tm1JgGI4&%XdNB693SgV;M2o}K`td@V0E4@h>HBO8IFMQ{9ZAa&PsnWum> zoygp&{P(?@~mZ_%oZ z`Xi8}@U-q~#L%?C%&L~syj*8b@>Fh58)U}CnEM_eb;7T^fzS_4!_D5$0ny*lQ0x^T z6W``>J_v+PAbX{byat&d#-?RJir4T`1t9u+NlNn|Az~eO50x^lfGqn4kkMAI=hr~S z#7O;b8xZ-gaG6FRy&1^p*E#zoK&Fdq=>U=xZRcH7>KnY&C=mVS5f#;M0vZ1R zmw5(AR?OM{?ONQg6yx#i)fQ*^7ISSxAqR`XEx&8uV`1>4r`E|(5dpObvBn79*Z{>Ri2>rZ0kRBj)M{=2m zfQ*Z_{0lJx{{>Rn&P$zmJ!}?Z(>Xwj zqU~%1GGa1{G~W+oSlB!Uq%7+6w?LAje}3r=$jrMr`$a&;Kg5v&kZocF=?7BT%4Hq| zQYY+r@r}sC6uwur5}LmQnf;=DJpp87gh%6VKT8Vj{5O~RJ&=U({e|zwicI9jF+j4WzTk4=3_`?c{vU*F;F_~Q zwoT_fKo5|*N4U(pf$R_wyN&eR%Vi#=QesT`Gmv9pg;&c*yay3;-VLSetBw$nQ6~Wz z{}|W&79eTS`*i}*Uo}$MG5};V(!lG--VKC)bY01O5J*|*`5KUlsM7;LMnnvs15y-i z`Iwu~-bF2+38W~-oeYp6;a4Y+eI|yPoVu4aDrD9{CV2z*{l5qqKkgQmn=Yeb%ehmU?LTmEu*#%@mtS^28WK?9! zzioo=!i%>8*)248kjy8!&9?(dh&uf&khI9&uaS%y2Q#=MPj8G=@9s;w5&Hwlh zki2O-&gwXa9ec4leiLLi8O=DE-%8J(R7AusfXoQ)E=@BwUq*--yEBEpJ`8b*?V?p) z4VlV2xrHM@Mh7{v3rNc32EALXqYtl~5$)oow<0%8T~MUn1Y}s$`zj#m64(3=Ae9?9 z@(~~tqQ3S6$%!DJY0I6KVk##`IVvhY@AWeI@%)LNHzsr&T z0h0I@M-Eb{SL)u+>21)q#zclc3z>0|&;Riu=n=?eK$^sy zH)x~{4>Q3bueh^4XSa{SHME;wcYd(;q>7PkYE07V9QJp}>@6e_6 zcIJ@CpLdaFF`|tCL0{qa3H|P|;H9F}4#=bg`?rBq#5`ew5L2f(Yu!mtE~KEFYKYo% zB5~G7;Dwk&UJRs8%;(<;WNe4_f=Yb}2r2M-t#1LD5ZUr1kP*=?PP_vx7kxB36BNci za*lM33BOt)llr=rq3c%x8NQw)9{^HkYKKNNI;k-%^n4aF#eQDun?N>*{COP6$jQ9k z{|+Q!@|oC=xf2;R!1cVA5V50pF_2La`Sn1?R`620ft2AmMO{VyMO&dq#Q9<%V`IG3 zS|CX=x49okYB!hJ1ElgguK5Q*D=Z{LPY)y11XC+zXe^@#R4Gd6S+NUAmd_0yAnv3$e%$Vm9x3#TY)6R2zwupF*D** zM*SJck{9q5$BRd>W)%I#NkGmtGe#=a1fEN)Br8juDN`7t0BF;+eeWRr;M-+&}UM%CQ~Peq-+4#|J91abk8#8xg- z05U4Zf}4S)(Ij38|Z-_FTz zQ0f7(7XB-ci9ya)w+%Ln8TFY!Hi)Krg3^NuB+Eoo5^(Jb>f4W z&YpE`U7h(f=(-D~Lf_K1o_rTJ?TdYdOb%D^xRd(e{Omb>h4x~pZ;me4S?VhF=lgm~ znfBg3%poJi*7wAa>L2K>Cgtui`pGhx&hECgh0L0^{sNXCfu^(-iy69;nCNcnfovXs z`vu)sVfl(@E?TzY{L3=SRH<&le}?zYYzJVnq#;&|zS-;PXATd8whA>*hUC}vQrS5+0F z8^wi0M_Yd;mn-!mBYYNQ@~9h{=8^{)I#RTzEl91Z_TH|1VJKHDWjfqEvD9^T7c;01 zC@b_JNBwMgN7&VYXj=eEvpZWuC*Cr4S!d5hzF>8!xD29xBcr&sXCMO~3dK@qZ%?Qn z-EE}~EV>eNP#?1|UwrPl?!T7dUzyC>TrSgBSlii;7L!qpPJ#J?AI2TY<@F1TorPRs zuoKyt>+M0q9LSaMBHZQm_3fQFu8P=V<9y|XEu{tP3RFwW@-1!4^3BaF^DPY-2-Y`r zw_R1pbbzpTEm~@T=z8@*lG&M6D{MWTL(S`4q&dV>MKfLQE?bkcniEI7J3-O(Oa%m3J!x2jAmZ8}+^wE1$VR6jR!sna<+ zqx>>A6Fd|HPnVNdX#6elrH#E|W#Bo_M30c7ug&m;s_N6ehw=IS)KesI7& zRFtUBbQZkI;T&g)=25+Umzi9ME%h||t-P?cKC=>?XzSceGZLcaqMCb!>h9-KZ>PFq zXDo34_N2lRq8?FjyOC;f_K9-c3rtUxDfP8=mim{eaiTuOBD@lVg%{;X713M>S1KsZ zPLySkRd8cVYX&wgsSoO75$1aTpb{=;v?8s-9Bwq>rvT|Bj4N#zqIzmk4Q>@oO5U)b z0_Fy%`m*I~>YJPE=j*F(3s5yfRWr}zzv>95LXoj6${R1h>(duH^W;fLYX)@OPM_Wr zmTD1~wT=~h4q+utBUTuhei|&)Tt3oBCabkOJy(X7b$x08PP^TX(-P1f2VP^PQyJN7 zHS@MmPtWbOt?4RcI@_0B-rol{K%M=Weym8_Ft@MIG-JxYuB~gJfZA?efYmbA^35#^ zRJE&R5=uSqEOUmO6@0{Es#r}RLW8%UiqPT-MQGAXs|Y<>#Axwy;_#MVa}4Q}X$-J2 z_H5f(h6UL)Ne#vZ-p~RTqJe8cXF28>QM(Fbg&LZjm6VA$!=#*=RZ2O9`Q!rhsnwb% z7r9*XT(l;mVp-?4BTG)L&OBTFeCoQf$IG$U_35p@49j6@F}BoFt!5o&Y&k3~#unz0 zH5xd}Ij^d!i^kIGOR^}f{@e?jK#GNdN<TE%!G*|6wJk49X25o~}CbIext3^*bthM{sfZD?F4IO_8&JniA5$hGbY-C1#1uE$(Mg5H&RgxM<)p_knL>ssYKRcQre&qaHMwGj z4Y8hr<)vrF6zMbeMY-h#-dSdPMogxVW{O;H8r9KKT37sKr%^nKBAUe+H-nd$x|4_y zVOpO51tPQO`6p9{1;S4U_>K|CLk0ZkfOA?v-L1X)YTR~Jip7Bf=a1mqglbC8$^?sf zE7z)`dU5I#^s@ahm#Cq7V=p4qveKugmZ`g18u}Emm0ZvjHLVQ1;;i8OSNv-zxfZJ? z9az0yRm2XNx9;*W))F?eZu043b_I=%=HQG;=cod~aSofmh-s)=t@w;{I;ns)3tLje zED>T^{B=W2p3sFr-0~tQ-lRTm@!%PH+|ofaXIU15cx|^=co#|CooccA)`%pDKY_K& zg-yl8{K!mWW%)_XE@jb}lSW^m$;<+MMWdRb@YR_M`U+3cRLrL}$|V1UOcsrvJ4x9| zOowE_h#8M1_`FX==x*ckMr_*m(v3>o6TyZcA(P z%4IDVdM7~UFYCdh1n3)_dlT$0eg9yE!u0)p@mGDSlS*f3+uc5K2CEu!&PgucQ8Zkj zS4DV6c-trL=__qd@C9RS!+C4P#5JtE(^T^ZX?9RDmoc&72v54zcwKzj&gcdcV zR`oXIltYB#&@t5IYAH2lmJ~1r?_IwvoyT!G=Z3y>BOgcFoI7lh0>*Ru=wAc7=Vv9P zzG%u@63#|fzR=!=?>c30WR?!|1?Ok5WQ6AVI2(YYdpHx>R-%Wjn$tK0%g?ard<`3_>e^#k=`sXlteHY)D#+yog zfVk!m(b8#VrI#B-uV=Kg%6~W6${Q}=vCqZbGI_v4rYJ;|tk!6&M9V`#GGr1Sw@+#ScU zS9N-s4*%qFqyurnNnsrRaSlP?OyWv}&57FK>hP>#osVu}{;V;$E=BXqqe0$cN@4{vrF(L8l#iW;`t zy;l?G9AU(F$_s+1X z1|L`0(?1V~R&Y)kN8mDO1nO)q+L49o64c{|#w`A!Ddd;85^(p#&8R*P+s)3&eXH@B zQ|mb6UO!J=)(6?ssy(M$-DZ5aO0>s8YouInaXosHKqGJz4gImxu{6*DD`!4px@2o7 zy(U%KHZ}f6Hj?#|Yg3-M;fU%@^bE7AOe}4p%RzS2@Diojk~b`TXUw;qm2dWXf@+7l zq^!}7l!zFT>)lg#Skx$1}R;JRtf>fQ;P;oD6Qt3Iz& z4ZW&cxEO+wt`pqO{FL!g+dwdT4cn(NA!+KU;rKaU5ptN{)OI87x@i85v%=FQGP z2?b6cFJ7oQ)k4KS1*ZtYZ$DLa!&{Do&aVW*mj<0(t}JJs2l$eh3Y;F#xHSSG;D$lB*9Z|*C224T%P?;%#@#E` z8YfjqGoeY-dX(OcQtJ+@sgkMC<=JH)G-ih^?;ukS2(PMu69a+zaDbr|djH)89 zfyX|lZg0>UCiEoseu}$8%RP*c(z>9k=ABwYby!L~OQN=9bxXrKML!ZQW{J+eE+6fl zhb>lZ1Nw;PLAw_ROh*HEaCyALM3|Q6eJ7XO^Zb)}o=s+pR@WJwcMIR7_w56lJVIhm z)y^&t)|Bb=ViJ4T)(c4NBASI(LIGWh*~rzZtI277LD6-0b+xJp5vC>Pb}myIvxMfL zS;18A0Got(UX;s|u44Z-@RHg)^LDd9xG2A`Bx z)AFjj)xr7c?Y+fS8ngo^%L?;#6^Q4)Szs9NBB9MAjj}%$+Y{~B{ z8??}Y3Sat4S%}uYwDqfsT6IcU zB*ycwI+PqvuM@mRv;?33m6@M%GAk{A*{NG^S(@XXYmo)3EoP*&s+gcdEWYO=DUbE> z5IVx%7It36SB|=!sa}cT*vG>Dj^07}p;gUeY`mA6VL4jo@~lmk%tjpQYFQUa#alM8DqhzPZ-dY}c&Hc;?xL zDY^BI@AQQM3~^tx9ahwE^Wh^ddF#NjJj?JzB(Q@dA2yP1Os* zlxYmGF?Qlk@|BDMxvMl78*0hC$-a^?zzU_pSmDJsb|kzuXwu@av>01ziHL5CUbY;T z7CB=GXf}b{U3MGwT31z#x&iqFy^tPeGYZukyTWUGZA@tH9lk+c2KsazR^7X!TD~id z?H`?#>Mxz>&R>`s4z)S&nfE@*g3k=$BP)bEUmw9&X-c^c7r}$V`fp6hXx)=*8(74z!Gt`JgfXxL@f^03QHH#b~p6&JWZae-;_92R;Q%(XDst%0y0 zX>FlVG@U@G29F^m*t*`st3&5PsDzgvYrA^av~~3(4+`A_^u?leb26(|t-v};&m2}{ z>g!YV$pR(XysmkH`j?wK-lhIbdt1Mm%bWVt6goEc1s-dr&dMuSlS|{q!LQD}8luy^ zs@^7Di_dri#{#mkEq~zDKl(pQQW_x4bQJJOB#fD zrT^)5L!enfZw<#chuYS3uB%5R@DZY+p-i#R*WcTN?`xFSNa?aD(-Pm279^NOPq7HWeX4^UcfSHgmc($8whm+% z)NL=fzlz%|bT1IQ9hn|8HiNck63x%EYBGg%KRcO*u2+T2=f-O8%&>U!o=x%Ob+8Vn zQ}K*EEG@?L!_s0Liq*|A)8ol|M#huZ<{U<6>e+ZWN{r!$qr~+_bX-%>x$8O2lq=R= zPq|_hiQu7w&rGaw#kDB7q^s3GRH}hPs|~)Y^#)$`jmNYHj7JUeiA3i!O6RRxr=A^M zXh2Nr{jc^CA;eh&PlNv8BPo$mII850sm*CaRF9AR=%Kb6mAW0Gr8yUkNc}XI(XKFp zdCnw9UvQT%4J7R`Gw}uz_pX>VjnAKexS7@|Jr9x$Ova$P(1Qd`D?JwslMmKveQ;1) zrTZhEmu`g^z0!j~QOy-Y)a6Gd$;#Gk-MXN4TNgY{LDg-{4@n0zfe5?K)ccY~sPngPM z3=~nsUEi!Mv|+-JWlp{jG|_h_-}G|BOtBB&8}3{0X>%`@I{JDC-GBEL)L%NlQ(=Os zj44s3!#gF)R3$q@MM#LW@sTpFO_4H;$_=p|ZfMKMg}5S75sqq8IlQC+d07JnY!Vd^M|fx`olNqk^TLh zXbNq3qTlQasN+LwOofS;iVifmh&7xBi#e9Yvmxbvr;Io6V5NlS@#S#ZqbLrn>B0*E z`ulRtL--n7T7N6p=V7yZ&+NkL+G!Yqc6=o}haIElA@}3MK82)*-Yjqxt?IGIfPIw< z*Wv94cn8AD75J+jA1rfK;KR}Vc$uOTu{it~oxwj)bm&7J0-YkF!%mK@;Sp?jD%G=uG>lM0=g~5E-(p;DC14bjYHrR zn2beE0c}x?+^e-^d0sr9B*ydSlVlRndj5KfNyYPdG-EOme;&=4Or0El?`iso7->ce zq{Hm2Cl%wvro&iFOEG;v!08qJnEO_4apQoVsKM7ci+I;JR(+YGJ6LmFwA&4lcHD+@ z-og_o<9C3M$8<;4Ki;Uj71Czv)nK!*uka4@#bSYzepHZiLy^X5y8Uq_8}VqGW}=~Q z>IB5dYmvNw8dOXT+Luh`@=F1+^wdl1?Wmg-qx3&WXE1p!H4tWAO}b3Dq^mXQ(k}Aw zE^$UZ(~9j&#sK@0)+bEUxfK!xbJ^$(E*+>lBtMPyLRE-xFmJFh+KqQKf?fr=uF$up z7dPz8UXIzsqDD3e>E`-+t)sJNt=E*|(|PfoL>c4!B+9reyTfqK(J*KElJgc{gu7;D zrHJObwr2o$GZ6{gNnE&Qpgl84A0xojHcY5d33c{F$heAd8Z| zt4g{`L0wJMaiof~XAv(x!VqDbQd7lM$A03fW>o!Lm$9m#Qfd3yQkp-Q>*_^DyEW(l z&IcwqfPze-VbJ-~gb`@)X>h+#!LG~l&W9?Tak;Uxx8J$R-mnZCQR)c_Yxf(EYzZ+; zOIolTY|r%$^iaxFEr5xCixVN718{EZ_m}dWy+I{upy4@=`>s@_EN*@>+6t+kkJARU zPA}mcK{rY)%K@y<^5 zr>d|RQL9QjswqR_q`esR^`wu5jdkQ^niqW8%x!`%hw1ihb@>Zhixyu+&!ugt0NsJr z9ppivV303?f|{8fMy2ny<$8N^1ATostcJs7z4(v^+E#C0!(c~S$z2Y514VUt;~!_i zmMv!)=&8yRuLPd9fu^>u!ur;X+eYaqq*;!KGR>&Ya1t$*v z^O1As(v395k7Y1U&1GWg!p}l^*NCq=N%6r?@AOX+2Wo)80H-g@| z4PufR^I1I4PUA+*{LHfMVwX=vz5f!{%&w}2p0@77Tjt}aXFav9 zpn0$>3Flg9m#DC|x39C%uWr^DJ$i}njH7M|92;$MA6M(Vx}eLhZ|+PiZn>;=@zOaB zb7_~#=unLxn`AA{;rE=|CROL~NH+ z>Pcms`-uK)&ZB7VH813IJM;94j842bLb~rL#BDKL>%nWhaiZ1f4Y4VQibW~)4;7`L zVb;)No3JHQ!g1Ojq^hGsRhJP^S>jOj6^dQxa}5`V)~~To!e)r3Nn6|3-ENUiWcnfC*-9 z!3XJ3Z}n7wZICiEsuv4ni?BYLFHS){vU!Q?%@4f2u)wQqHsy9lY;IvXcYjg;#;7dn zTn$z1Tn(`}WHJ)!LzsLRd6>L1CsWF`XRr(BR-pdVRi^(m)f*=%obJ#|r1(W9$08#h zi$zu;D-w}#;oej&6y#4-p-_*i77AbroN$;N@q7=Ivr<)0HFTb^q1jwA%1z5LmxA>1 zDM_$eArYuuNN5soIQ7q9Oqjw&3{AL*&7)^Ho*Q0ib1gu#xu#W`$c4|3JdQZRhBS__ zWkvX`E5M2fVcUub;V>(#SzWjdwrHpYwy4eT%@~6y+0_6RcGXg>Czk^v)2IgED>9|C8Bw}rom^s9!bb`!w_;^t2bV=iEOMnvmLj| zYA`0&Y(tb2dSP~odL-QNswG2B zu3A#9U%ch9zN6;N{n4KM_paP~WS)%bcxe&nYinZR-lJun7W+}KRPBG=V)xQpe0C&is- zqunh}vj;kt1GFW8b8P(a@_<5ti+T0rHCIMEtWvvKn0a&8c{rcsoK_cG&$I!jHn`O; z%4FqzJtzi3brM{-w$SN@aR3C_Y5BcSZ50P!Y@|)8kb(=GYe6c{a~-ea`JctV59LMLMIVcEiDFv(+zIPACHXI1Bn{gV4E0xX`^bNjKv4SNZ~P9tJqE z&{Y%~*V>4xSY8}(E$=l40&24yiXttaJW-hCtcr9;>eQu`77N{OHq3UoSFt`I;26$YQQv=oii8+Jofqnn_P3Bmz>5xm%y|#Fyn9?tmiE1t#xdeOwRK zgB8ABTX-0B0!Fk>zlY$SoQEh7<{^uVs-7B}ZBQN7JC&kt5=0wYGi`jACg02=T#9Pb zZrgEPnmlcoOK556s%h#Z8d{K*XZfUp$A)?)61A zbST7&TDhD=u`A!34u$ZUsF~?dc+FyT)tfj=`Y~+@@UPw#$mHr51oUE*8$v~RetUAA z)u`sptwu#EbcFm{Z}n>H&A=gN8SL23)4S62GD2^kSnPV~!)rl1%|U{E!y1g9QFIT{ zJ57pBM{9)eguNYct^#|E^1v64@k!t;y%+Ala>3rHopoy6*yX;>QypM4yQi{f(8jAd z3=(TQ*E{GjDb17Gl=V0!S1jcIjSHKU*hRfqEC^-L_(OtgjJp)v0(WpCGt`*eBK`RZvQ5v1<#~Y&~?sd5e zT}iCy!f$-3L#uSs7u5PLn7$9_>n(z2Li)a#|E`jnD6+k#jI;0v(HtO6llTy6|Gf(u znnOe_lj-hCh^%b{Z7xqjdJ-l_nBh$UoN+nCSWn8CD1=DK=}VZ9GvU*-@JJy#u^ka@ z-y}FhmAjIuLg-uXgy`bi;86)C!-;1G#=Yf0dGWS_bS zniN~75!}*o=E(lC&QPuwcVb5jHwbC_r@?v7!#tkm-9cBfiRlDh|6s(GI&pRUNJ#U*%Ml__{*Q zA$V_6A66BynhBfyAC?}rNH{D#)!jlYtJXbVE`^yBOHT~9V(F>w7Byz)$>?}BqGV&3 zXY|H1!O5+dCOEP&O^BJZx}n6Zz}QhRdaFl)MB_%m$i|3*k*#8a>QfFs#pCL!W_nyb z)!jk_ro^pSdSbX0OHXyTObe^lY*ZxUoo36$Qk`Y)(8vhgZO z>5XSX+$fLSYEJCUyP}94r>i?c zK38=_3&nB-!f_nY!FJ|7iuEPX5x4z-`qf}oxY0{U#I7c!%uY<=6*Q8tU}JOa&RBqt7528`LW7Jm>;WrxcO#Q z!V{7Ya_*$x8Al_`FnXe?tTq)uWwp^TnQ$sLlI7LB;&!_9|>hh=`O@)738Dj#mX$?&k2q9Ua7F2W3>Cz>iUr(CMYoZ>R! zRFrm+Ed^?fOoUfPCYq|6SEQzzS6aqdpXhCO?*R)udOKI%wZqXEr?6-61DbSMmV%Qm8*Q@H41)A4p(;iwp(5-)^-0*)yS_ho=_8x2-+{@KWrE^x1rn<2WGnHSC+tE9^xUfotpv^BX zrTSTpcmWWo>61M)I^TT;!6zqqqYXmj>~f|?IJL?jO3AGMU%LcDs7Ka$2S z!yJoUCfGEUz$^q@pSl=ArY?qP^;eS6>aS<}VvyG8mdP{K(^sWTpl4Oe1e+ESM%_t- zkcEd)=TusZqqDu#ys|T$!^ccl>JOT>l;+~QYx-cW!-4-n%fojh z3d;to7RLLBSmD^^=)=pbTw`3i2wRs__cYkp>IH+XtzIrFv`hMHjBWLTA?8*k^wNf& zNUM@Ip0JZ+^~f=NT%k9Qk9VmwMjl4_kJJh-6I@AQ;=#WDKkB}#EFN*wK;*L5M*oycmo+=dHcA0+QY5(upsC`>cCcB7 zHy#9SzBz?_bGQ82-LCJy9=`cZ6Qry;Mv5n@Q-B0hDL{T=7^O)O5|c@| z?JCE`uN!0!fd1cSWA6?oN={s%zXP4YFqtrJ$c8HoI&^Mshx-~zJS$O)JVl1dERGHP zInd!n0-r)|BS{tIhdQk&gXopzJjXbLoh%-AaO-Gkcsq=4f89_SYjN)NP3HzOYM-TW z4s{ud$xqQ}`?tly4uEgh#@J9d#*}}1KMawF?`EXKmO#@HGAmjz@c!`Y=IRuN-lrXm z!O!6z=ff*ivH8WB_Xx(tfPu=!5Q@~1R}ahG;nm_j6`IqEy>csRlOa>S3JrV+8%kAcwZXv{_@wCfdRbit6%E;(nlf>g(`NI6t{MyjWn) zp}@eBt|>1o=ROpiP+p4K??HPQN;nI{>tk^td;5L0Ke0Gy8m({PpdtGmo)&=O(C2ah zM`c3b!~TNwVK4IGkyL&}x`qwDWBk2!W&f~*pb^eIHSp)6$cO&%g40RqzO!^~m6))F z9U3U~u-yRq1!?GqO61fPW2W8}mf%vSNLCU{7GO*t6-`m$LLDw!+5h%*3W30_S=Qfr zW%u7d?6wcDPHYoklBv)b11~azriH9vVpJ|Q1$)u)`I4{T>9!cv z2*%ZKfmJaT_H2=(4^= zgf>`Wg3dIfl~$k!5NCN_EQ&jbiE?~FF0)rk^r%=Gqa|Tu zIqV3D$5NWT7I^#02rFne$OtRWp{NzK3vAr(k3e6c!of-U#?x?n^|qldX^^y)OJbw~+KQcpmW)T`2@ z);$F*NwqpjQVntB>*h+5s}wO$m7;(tnF@Z>9aK&nAgL%}N-EZwl1U*TO6m!Cl6shC zsb!?L0z|pA*shY=5oI;DlsK6UDm&I`AF|(3;Ca!X zJu>|{*keOchMtu&pnKT*pwqTfwBtoo625>G#2=tmLg0G1p{8BnlBqZ{fi9|lo2`OdEv)OZj z6M*`Rz^Ko`Hj^fhnNygGBtoo625>G#2=tmLg0G1p{8BnlBqZ{fi9|loiDwGXnxTA? z7S0z_m_yD?VUF|lWRi_!yz>*;XQMHZeH0#Y+RknELR|^EtT{nUxM)#;EUOOy*$PUK ztzbZA%B}MSIbD%N*cC|$c1m(U!9LGQ)F6NR&qij42i9kGXiK`sd zrovKPfOg`AO{;jD&9LYSdlRG6rqKo+9UIQ4Q5zk3AIF(Rc_&VRab{f%iW51t^<7^J zjI!cA9A(8hlrH3t+3Q(I(-AvJ`D{FjD;I#{ZT$4xPx-h#2N|Eg(yZ|uWS&2jqTxzh zr5rCHg}VHhBwT8kny1hh!U}Cv73SNOLyjMB%IDYdrjUPh-&E;Yvk~l5vyrMdwardZ zD$z8mChDG4O&~wQe1Kq^c|>2QiCOD35m`E7^*y)|?`9*|g=Qnpo3trdoQ>IV9~_+6 zuJ?IjyDkjH9#?tGV(@v45%1s_BO-6eO^re)Xk8h1TGvrd({0^d3?_Iqg)#5j6vmvF#T2JYuVmcI zoIMDGzXseoW#;%nNCqC2Q}sdDt2(}Ea!qtVDR?y(fcJea02d)Xw#ptlGtDWm;(Z;( z1v^w2QC0iMQ4t$sC~|9zA)#l=?r?F~Sv}nr*Cqw;1gxBYSym7C6SN(dD-_ewrhV#8 z&)UVq6o+zTH67(qmb|y4ISHMs^%Uf#l!}o*ax2cpH9pR*G&i803xD#E&!;kVpE_;m zjyt3+GrZ-x6gU->s-CkRwaS<4P}J#insv6ErX!msjqp$^pEaZgJoQ!v&I3rOcmk*1 zMU}{VenR_*PO)~BW_(s_-Pfr(^^Huw3KIIyrZB#&Jy-zoF(KO z+m0*TYPEqKYPC^yrPh_hwG&OEW})sz%|g`)?m~g6V9@MY)jDlf)$vVhk};PV1Xm`t z>b;!QstZ6=tC)SdWU2AjF9aX8irx*aB4Wzs4+ZH~8<>Bq4deDUzUgEU+opGv1=!rFK`^3`f8TE z`>*awNqaXQzIiLXE70F&kxLHyM(izo1+nz5zBjkq)$(?I-d)~3+%8Us_qDq9Pq+a0 z;^Rkif!57(wT1_?`de(HeTR$J?gg$cJU|k?s1;safCn#ZBzj+ika;8-B6fQVSNL6m z6$0k{@RK21Au{gck-mjnRYhm5$#$U1#c$kPL?-9ZUVKRH{b7BG1J&4K1;JuaY zzOE0KE1>dz16L5Qmv`6SZ#uZWatAMw?d*re>f3VHLF#M{dx)2R&N)t)g}259tr?F` z#=+zR-1KN&*iPXBSgW|8$Kzdici7ymr%Hs^&KT!FD;k?CU*E0w`{md5o<(#5kac(~ zzEp>sKca#XN;SNT!scjSEWrvu7K#)4i6qo8pNvZB1J(Ss#lr!b+2_jGB{IHUk z9#(SfU}Tg=7LV=IZyt-#3!TV#-!k-DT(xg92ruT_qoUZ*cW_0NHHZ2bMSEE#&035k zP4&x4hK^?mI%;BgTRwWG6U&SF=oQ6K^dxf7-?MEs3yWi7JFYTGVf0EAee^&GDip|& zFh1z)XrP0)zV7x(E`(bQZ7<$_g#Lwn-)XhIgR8^W7pAH?>-zsh)=qu64VE!yu3a+W zdRi}c7hGd%I-XHu3SH!@H*gjD;oWAtw-0*Q8>72R_zV7bfMLhSlY@KMtn6XV$&3mO zC+Kb;zS)}dg%CR%h&`^?e|%X!y_9&lG=xmNercRchI=WT%zauWM%{MzWxex{7L~K- zSs3&UWoF2pTCc8)#pTmlRDcIIrWrwO;7`kj>P1pzH=?qVA)opReE@z3(Olhb_v;J$ z!b7zt%M82)1KWo++<*SzY7hT&O}Z!$alHul;+PBbLcRDns$K+hu1po{MXHBBSG@?F zcxI89hz;nUSzzADx<6$(O56`Y)bVa#U`Ti z*iO z4R~z(%NnMaw@)4XUw9JMr1p=G?s?>;Cik-@n%=XR0=Ls}jehifg9T$W#;61XCE)OiRl2+)fGf%ieud?c;^=EXx=W#h1|?!yR7m z8pqu{0VZi9DDDPan3ps4e&KNh_ufDo_W^ta_i=IWS4o?>E8?E_dd#g~O??8PVmiAc zPvTTl6rWT{njwj5S?D0qRO&Q+3j*!BP&4*Y(;rAR8-hBfKPdDsjVZJsLd|RxAy!PA z$VNpu)vOML^OLZpN{XAQ_q9l~dVi5#v-(hn3X>_#hEmvAFT}b!Wu2Gr+T1@is{}K` z(Zo_d$JIQ&f@*;pGirK8z-%A(EQA^Qe)l5m?fqxBTi6IBgn(_gtyikg15@aChRD{dcVy~%(M7CDKPK%;%x^>*)Meu%Qz;jH(Hztw`;Ye zuHE4UUGbzZHj!-=`-aGg**Dqd*_#uiel68(LbCe~P5fbu`rdvq@0P#!pUl=7&B&H4 zS@WZ+J%+eGgU1u1@*Xcx8k>}b6eLd>!iXl>-f?vTJzZsjn>{$^^?lbXGGn|@s>0Yp zYW`Vb`*NrjVhi(YerNNsGH!Vq^yAu`dP?R3=$!m#Auo;pk#fvD@qfYOCGm$ni7x+d ziL=#{RoqeVq4HmwscL0*e_33m(H%0#pCY<1ifgvwvVawr)%MYDl7eYc$UpdeF6=|R zgnm}E`T<>ZvqiAlVWF{TZWo1x8!+44JZCyfP<-Bh~6?+2ZH$44BNv zl6D)mnFMObcG`99bQx0|XGT$s2-TI_&nI*=UBe%!))BKMd?6sMC&2T|iFOAVR2#CC zOiI|GSI3L9ycmvDtD|LkeV9I#`B>6!!*+SSUK3H+PP>ksW_WR&8AUOoFDY8YRI!ej zD?Q}>SKf4hLD>^3qJgGV}wJ}LLGqnlQ)AUu?IrHaD&zY!Ak)AVA z8|)TuHx0dWc>xsG9W10X?Kgg4r7duyis`u z$P$1zD)v5}BPd;Kr0`y0RPMdPsMz~tOgZ~COo|vDotiu)j!tbvddkPR%t@*_=Ln8- z#g?W@O{W`=aRpfOlpcgnI?jEb#GRkrm_j>0yAkD9G}?WhRGpdHm?WK<+63uY9PK`D zdd@^`iu9a`+KBYb$Km)s>`KQyYh`k4W1^N@6FZuYe8a72+#CUuXXl(Fn30q`>_?20 zHud}nd5XITN6isTL_nP?Q%69Y0?80HzMN7s`iaN(i5+=7%6!`0;z!*V zNV4^C4V~NxMqlg!qc5hP4wmiJgbMn!zMMX--$-8{{TSZqx6*g|V)|(xT^oH`UrwLa zm(tJsrb_;t0kH#|fmRP(0{UTAts+bbI0MZdI0H%#(9L;mX^d15yu?LohB0#hHlF7xQQI8|gdmTj@LfR{Bm~NefG zJs0*aT6tz;^u2XP(*{<_ASRu{9U)ur5%5jb>T zbOnIX7qe&drS#L>tLD!c5Ievbka~~=K%M&;eKCJVUrawfdatKX>&xlW`i=C}*(Vvi zIQ>@oPG3qt>s6u$2;?1zq7|_#MJvq?4ZTWTrIb;@R@xoHR+=3`k2H)+A=6E^VQF^= zb7^)6q5^k1D4Pu`g}jw^hcFkZLs|Q&%WJf{*acd>jk~Ko#C^XQ+^IKmcj}J2`gqq| zTeso|Jwl;-sRVueUn;@o6b>tgFf&cw%-MFT5MH7kk*ssFYER2KS@{YAa#(ax4Er<; z_Cu!OF|tL7<2>r(89x)g-ha6GrsZCKSX1|XVE1yv#b3g~7P0@+;`9E`^XLno-t*w; z{Datzdu67Oo|J#%@e2MOwQDnDZDyUN^H{miQ#$g`4=quu|!i1R(yS? z5Q}FZ(-;|Z>0L|RK1*cgA=46>en9;~A~PGA#>mW*Onkk{m!^JHJwr0_k(u~)nnEQq zHIl}srdHa$Qls)|98$rjxnGXq^Xp=6Xoc6)w7>q-gCYKplKhU4R}JCaC39IUw7Bht=!oacRP*tIq)m~sz8K$^rAB;4zmA_2CM|qXU4Wh* zD8_}Uo&%C|FmcPKMpyeDlaJN^U48v7sYqh-b@jL^&}wI8CvTSP6euG}0jwKI3y{{6 zLEjeut$vb&)#|0zr0#v3irOrcB|u)G*C|j&MyI0IlQb2z`bjFP)#IY9&IGZ#MGr%k z{abjq(~K41kX`qm-#=X8AN+m0=+}?^3*JEte(-Xj{s!#r)(_rX_!~>T2dT~V`s?Q2 z3r0U-S;KI%zW?GS(GOVe9muV|tyh0sJbnCNSpuEpM=TF(or6MmyT1Q=_;&Gx6uGb1 zf-!!(x!W8-bBJE_6P8_=vE7%={=eVvR|j|?)e+2p_ga0_SKEiDi;pYNuo(G|iTvI6 z$2yb8KO%V(^W}cO`Fal;PeaP4KO%V;30}b~uMbZU=;dw?O25MnoUixayVcL1X6M!Y zc6YbD?KX$?Zh6@5F0Z<)Jp;;wkITRR6U&_9azFfmzrWeVM#A4%>THM2 zxWBN(n^j`R|Ba>2R*{|IFD&tPl@LNdV7c>EM9Ke&WzP1S|E+zc=l;SHZ-#oyRo&rl zEcNbg`Ll~`;a?)j)$(Dv+8mxd>O1rcmOQuF$cyJdCDfTimD&Fr ze?7n1ZSN1ky89E$oLw)WrgxsZzaojD=Ja**S@^-rK_1^fE*~yF!LE6mfy19jW_fk- zFDEek8-0BlQYZP+wIEKvEE$%JJve8 z*+3Htl}HE&`X!e%S2?;A>UH~Ha!F%zNXh^bmGu7SL<;`Iw$68mPTv!Wej;Qs#X&ab zh>Q#*@h^l`Pjiq)qc^ zU|0aoFJbZ4P%D1-JTs|9#R~q8tk@oF)}`%RcGH>7K6zb8UZ)J>%{`0>mw&9opp*W_ zYVTou#A*9)UfV&R!gy>CjXTC>zh&BHJZrR#{pI!T(06qD#Mjiqi5aZ-_+~uZEuo?F z#%x9yj8z0vyD%m(lL9xPYvV}8A5y*dW_+_-FArvT6J;rz8sukW!wh8az8`w^fqwEE zl7^fCqj^a54#GF2yUmsHuSmnpLl}j=2i6bFhrf}O8*cP@aOn1<@3^xIUBs-fd$o5R z>ET~k7mZrbfC@>30g=TIeE^YgI(Kpw(NGfT6fFuFkpIevoQ20 zr0WJ5P67Rmq+ql%OzYTxp)YSX_xttEOkE8E_yrAXhA;DoR}S3XeCqMry^QI6oSd)EhuQI-g1wma&R!udg@h5O_q?J};N8|N$! z>E@J;U0lz-d)Pj7xE;YiAe**#w%XpqEXjA6C4b8Lk!JQe|B5U?@6*l+UG43^@E1Q5 z`S)lh(nLg_i)`A~ca)Ew#7HP?oF#817%rsMM$4@)~ zr{wG6ot+~dVrJTy4)d|N6&ZxpcY;l)4OTK9w$O095LiR}XWGUZ(s}#D+DJZ=HlSB& zXZ40e4-CSGRL?F6-EQwadEB!lJ|cZ+IH1jh^_4*d{f(p+r~7Za&HW$UVGHv_!#pN* zC9|KA&YR`KgPB~0cn%Yh(Jx5y;Ws4Y{y^Wco-gpoIvz=yTDiwXl^p&B*#)R#%~kl0 ztROsB*LwmuSA#WQ0}cNstP}}3D3Q?9>J==b9A2Hg#w?r(--r*ffxj^u$Q5R)-b;nQ zDXGD4Cxk7%fB3%t)>o86QyBe%tU*i$3HvYf#TEfGH2DgHKv%YWXO;bmEc7+okPY1* z_`9ti-S^=S^xZYGI4}2$jP@5K39Wb#a(}q*SBHn&OX3O~TT@@aJw~6q&#$}Biw<(i z)oBNY-k8O+CN(`~6QWnr<5~Bv-swE_N)E4|jX|yGrKqD}mvG^f59FS{p}abryuR7) z9$}>H7kj(I@@t>B<7Rwn2;|G(Po%~%`JQB>E=FIBKyTAU=t+=2!oH9zC=MMgA-5!w zMjx^0`%3$Gb|(E1%iCU4Dxds_<@@TzHDu0mH2*kMQC?=ShGd{oeY5|5Z5H2psrUy9 zZ-}AGE4H2rlTcX0!NnTsuUO;c(nK34m4nGYV7*2DdFVLiACO*}Q$7Ir#}&ZaO4Iav zRmB@{y?`G2RZ%En?=<&cf{gIXjK0`}}FuzgKqWTz`a}%9D*Lb5U)iKya%%s?CWTgi3SZXxKcnuY+-=3q6`Jg-oA3TQ! zxIN8{@)-PLKUyCUW|nCbL)gmXwwmb)^~z)Le}@M6(j=4F^LE~vRH+rjsINnz3`LU_ zfare0vbMH#AKU~3BYVP)?PC3^Sd7o)nAql`290e(%V}C4XuD2aFDEpe*%zz{ZD;n~ zH=fxSuNk&CuKy1jS(CEYpFaG4)ls`0?SKT5{;f^=R#gVO&sKGCJ48TrqT#L6g=9P3 z!P?*U4&EpHv01I{hFh2s4uiE+!md`BN#pKew?6Fp&QCbH477NR4P(eGY9-oqT^li$6(=_2+s>oB7j#N(f_v{_p8 zdzvGK_zTv-TbWZ2hCR=b$98%u>~W4z(r*}t-OY?aSs`r6p!hw{8GiVJb%;IA5pK3M zI`~X%clN5pH;>wXi?%%{deJweXA;Y;KbSqy!N;q8_6_Nc+1re$jWIKZ%}__!PQn;E z*iMm8zaP2?)r%CZ7&zE7jT0%4pcBHD(rwb1Ncs)yWxJ)ZV)hYf_B*4IbowyLutOS4 z*o6vj1FD{|N!p7=zhYUpl#eCdZ&(iP3BaQ0XDscuGlYl(0skYG41200S@biOc6+NM zS^p!J#9OK{Vf;Im51Xs8bodp^`d!vo)c=Sj(OzpTi+;w^(T-~@AAN{4@XqT<1Ao98 zVG}kM55HpBenU2v>wm#A!)^{NH2j36!iE(r7=FdFZYxQg#>2W`sPj#RLR+=5UHrSZ z4B~zdcQ76OiezD$*{+d!vvy(G{)D959Cj)i{qE&W8FYKQ1B2*SEbDi5dk)6sVRuv% z2Vze*)*(JeIA#l{okxM039J|PX~TzH13Kui_nXidKI9ru!;%X9@3}lJZGOeFXs32! zJ^n)I5H1Wlgb&DC>~-{kKuO&gSZxxt>5&LjXjVdM#9@L-H%~+e7yHP_{NK{R>D4aPbIYyM7$M8CEE)hxbPyG z6>8VJXXETpLaC+NmiN?XO+K}s?2*r%O}5IX`t)Y_loc(7Y?&Djv}YdENIxMhSYb?d z$s^$WBho~B=rI=l8AkNHQ4+xh?icf*5k+aX6AhBW47Penqlw zAdUpxPe>{sFhQ2h#!G(VJu;S#)bQ?mB<45hhZ-3q{hoZBBcggff}KdwtOgN2$aRsY%!YgvOhy9PaHGd$S`q(@q+z6r8$>%!g&&ZF-Zwm`5cxQhkAAP_Y_zXg%5q-cK!})`ldpdgx1k;IA_Y<;JJ9mIEYNE($Kaio$C}0N* zQnan~FajcnY^749Ep#-2w1U2;`qc4+)CMJk>_E%t&M@GB;GdB+acBYI5nqw6+dZGm zLYT@N9d^K_1NO3K!u~hLax~iz+m2=$!l%5lj*dJa9Ke<|86`1f&AFXbj{!caE5K|j z>V6`uN{BiJtZcZr$%*2F5d5e($Ouu(el*7a<%A{Ku@ zmZ2+^3H#riT-$*Q$F)scj~$L)=#hi29v9;GrZeX@eDcdZ4!RC^_VXK_<@`vmuW9cv{X`+kW(kJ#C1f0Q7RGSkV=CpqM_y`yjj_tW zm?*fTBPc8TgqD(UHpcLPNTj<%)jXVyF+AA8%cuZx6K$iI4o6Bx5gTlb;gOvv8AB*D zhM4trHWa$N&9_yy|AKX*b1JyTfw2zc7gDEw5Cypite8AQ+O8i+!M5wt*jMWOO5`#r zfGt29o}X5U2vGvwLi3>%57BIa;h;F15+W6o(3tQu9O)4jdlbVTazXv7il7e+?yy^K4*Sc;3n<0#T7Zd5xVTR$8oZU5 z{`hE5aS27e?IM|Qcn6Mo2_0$5y((I0>k zV_;&ts)W3{!cqSpd#x+Ph+YFQvmM+w-u8{Lr)S4|z_? z9@}nYZ-RT;AA2rj*gUR-UL&d@J{-1Ip$>X7)Z|DQ)Gx*0C*m@UbO&b*B$W>jcNF4a zS03t5dK4`9$3AK@BCqYUAQey3r$Y+Bez#t&1@MBNWw9x;=cNwm9qzteFjx zGPZ6{WX-OVlUWTX_iA>7q|CBA=U21q*%aw)jE=uS@%aHYo@)R%&xnyyI7(08;?cxM8B7}MsnEk zE3)XfLf4FXL7C@nZ*tA7lM`AUy0bwsL~s909T zUl91gwm9KTXDlKGPA3KNAwv%iw0%`wGg*Pk7?(Wy51iMY%wuVl~Q_hXA< zhdxti!x3}$g_t}D=K5=QF2)pW%NA?~es}0XZ z7sjouo{ygb6*govp$0t>YJZ?6o!*A_phT5c@_5C9;&kK74{8k%t<`|&Z$VHYdM%Gw z4^MWff+(n&mI9HuTS0_L=*dwlmoG>NR7}XZBo{kKuoD$IR(icdy?U^Dm{1d8nk8Fw zSwzLPL|TLZwO4$xLX4VU8>{hmSeC+o}n4V-QO2S)924mCn6YM@wQ8e~MEU7C>sylONB@v!mg{W`; zL6RcNuy9f(Ze>K){B;8YqV6&S5LMZhW!Q$W=j~e$WMu_k6;ufj78S9F5h!|I z@#0B5Uq)$(5aD=}5CuufEW<58GX8K>%SnnX)A#wvu!_1ObcjR$UT~p3u`)7i=8mUI zHiG!TJy33MR;l6#T*%4wi5o8`vue+s3#>XhnN@QcRDF*VP_<$*o95~$fz3foWV4^B zO|FEh2ZK}7VunkhRG5*P5;I&ORmqsa$Dks|vd4qmQ`(Du|57P)TeM6`ga?BTcWqV0 zB_t`boL^#90mv0ZIPOlQzM-mM#KI!`a1)Wpw3icEjfnIsfu$5q#Z?%hPM*Ik3$M+V zD1pCRpQ@4w1x>AAwFbh)&Ge{5wt<_V_ccg~EIJB}!J0_@>2Y|7{ah9Y2P+tbyW7Qt z5q{&Y469CvAW2!Io#kq-@PZ<{=+?3-=SWs$9r9Aus+AF0vrU0nPI1?y!P9{CQ(TOe z2(iC9P1Lnej3xShn82#-*MXdfs~bFvD)d-bWFO`MM5eu*vuZCdW6z31HEiF&{JiL( zc7kJl0AdeXHmT_`n-IN{9?!aGE_dtxBlplNIlSUhMLeFYJ~-bmS=jTf@JQ-AlK@b# z4kxc~w!6pW?n}3U=Qo#!EgbV-eyvqMvto<97u@RRJPz*G+-fr_<6FP~t$}ZoQ4!xH zg+Ic54{*m1gz|jSoFlg@V(sc&GecA#QYF$d1Un9f88I0`EGY^(FHXrwa1 z4nviqx-bqVSJ^K2o4!w4>oUOvK&l}_GM8`aka7)=6yIU_SX#okxVZlG;rFYKdLqwG zxWTaf7h9mFH_GsZa$HzFmk|CtL3k3YuXg6X%D-0fUcd4QlVcssh}~`Om$w&x(Q4i; ze|G!L|JGv7`-klwg#Fc?#UZqr9e0ny`@22G8XlvRP96eo;0(8`iZwh&kyW^fGeAfc zWC-SHiNBFk2omeaa7?(|b(``OaT+oVyFC7Fz53$ehLT$=Bhi(d9!{m@y{l>~vkg1^^OX5Wj;tmDf)WdK-1h7qp$lpzFpnSFoXr_8(;msv-*e#-141sOtg_ooaa zQW2uyJ3xgfSVe{st^<`p1bLbL{%TN}?Os-9ceo)`W_S>mSq?|dWyXWN%)UQ)Ei>=M zh1Sufp+W$p;W0{mV0?S1hmb0W5MZZPzsX)?-b;&YyA5UvfLO(&l-ul8w?FL6K?(1J zP+n%=-!CdN@5N=-iQ7eGIE11M5#LKH3|XY2L4i48b3dsH#_4Eqpl_~3=`}PMS_C66 zvyX1_6nhctsBm0>W%+CXa!M*BO|l?|lyQ?M%zzJ;gse*37+00Hv8p0zb48(_#Fd-6 zgD#-~3s&psx6^YMi3w_UT=G0{XR=*kFC7v+(a{|slGXquP z=lH6$&(#%4Pb+3FBGXP-WI0{tDMc_{xh!9|f zOlrFq6N3PYCGQYRgAu~iXQf5yY!J1a}dL`R1squ<{@tE8hcEn=;U zxjIY92#fO_f3K{pIxs_q-TL8nxmtJo<&D`lm&{R>>P=U`dleC4tRhMgDC*3C6=6M8 zG9Y5$NcYo+c(Owh9j~Rrif3>nI95Z10RfSlcfumeE>hzXtZGHZ#ns}P>>2B*aAZY$ zWMl?@Be7I|^>@OGJBh9W4Qe_xdCv4m@|^Eg(y8rY0dtvRP!jnQU1BS$8Y2x6Mto01 zxD8eW$0>`D;ryn*dsc*o6=VqLc3T+&QV=1O@3a+RmQ9FQKw$9Zt5QDfMP*jyJHq>G za%EQCJ-M=88t{b@11EfCedzuU9V0G^eGr#&S8SyN>b> z)fV}MwBw6$MSil{N^EpVt`Zk%$}#P!K77BfBGS382p2|I?w(y47*-G=5ZC95VoB(U z@Z1fds%Cb$D^%0U!rhk|h#;=_Lf!$wenhLprOMq!Ow(D7uH_YZ1OXV=0WBF2F+hF_ zEBZ)7gaIVwy+|i4vh28w3u4uZUR-3|&2nfOutZ0M0~0tJh#>B)%dgo*_YeC7Y17tY!}(@#(>%)OvVt5r=<0DT zsJW=C0XOJ6-14#W=$)I1?rMZDvQB6|a> z?7rfr9HqFnSj4`cgz&ct%Q&S`MHmEhB ziR;o7FRJlMr4K2}XD3o6oo~Wr!r|UzSuXO7l*VUb-jr3u)SGgY*m^@Y(Al0T=I-8O zQEjWwFV6f->>=vWaIH8X(6e{uXJS8Y=27nsi#L~l!+pqe<*mW|OziX9kZ1BE2NHP% z0|CgNP^-xYC|E;=VY?YB46Gr;sNBOWYsw%RO!gkw%ed4oR2F3c7(h+Ig}7x|22Uso zz0dAv76zZVrr9ITaHX;j!wj|=-qYNy%n+Z(xLaxZaCJCe9iAT6m#d3+U$))j=F9s2 zVr6di=05pLsSNM4F383VIdbodbC&UJ-!|W$$i8k4f&~&&TvnbluZUs|VI9p{>eTrv4 z0|ST&R=$D?`t^_rAhRH|m+TkN@mU~NpneAFLe30s0G>!LpofA01pw3s^yp{fUz*8d z&ctV5_2C2$nI^tW+rh?lOqhhiHsZ=6v?&D{SDAVDRzuC;NoHSs<(hrTjJawiH|DYLt;c zOc@DJjL9LWD)h$cqNLT3zkRhyXHZJe1p{Lfb!bSnnjq;7WsyYA>ShKwm!olWIS1== z-{Xa?@dHry#hcE)(8f#~z?rk(7=!j(Fq!2n--7sTK-7_52!ZgHTw4_SFRP2i>%;Q; z7LMTb?^^h$G+cf8cyY4%0$rKx!)o||jN&Hh{Q7oz|A+4b^_>;egq_2NjfZcA@5|f! z?|1z7H$T5@zCw#1S_$wfBJg0Z@#nwS^q02}-i)2cA0bKj z?>6@(|Mm}Xbjo%bqf+`By1|ES51w_;7X8PLzb|eDb&{` z1TGdZr_n`PQ73j~O54ZH#}9{V-#?{A{{R1_gd*!|`zi zbtWUxhoqMv`>R9fTwp_yXW_UGNNUMd0)!!#P(?H^TsPQRH6!3mq%Zr~&tbHke==RSzDKQ0b&T>)aaa(yg*{rG5>SW*~V{g%Iy`sYx$Z}u05Om+BR764AVk2LT7 zYI$$9d#Q}u0*qUk`|aW4KnsOVWm1nmqN$sqW15jf!>Y$j9ewPfhsgzBu?&f1hWVT2 zE%a9USrju_;WJl0j9j4x+6+FkoD`-yh>x`alFQw`aIrRAd8Py^!w>*T$2gf6y+i@T zRF`&2!B-dr6E9Tq#|t^MP?hoJD6}UcX^$_GCW*u)mBCMhXxK!kiq@B00pcK7M;!zU z$bAitHn=Kyy)vTZ>fqV@N;NbY*i>gE%+H~K02`II~h;(opLO#KZ_u~mZe?F zY*B!=B}r>!8kH6$y`)7+e6qG@2+*=L16r1%fZGxpIFcaYB8f7HZxpoNEoHN?ZW?f3oi{>#4GuOGyS zsg@M+41BzSWh8jH5avVnBD`EjigpTU@Th5bv)$b-W#PtLCR1}jQ-8CIm?u~3!rHdHCyu=v{7EMaKs z6RRv6#wh=WdCIyH3|m|sR~3hRA?D*`ReV4R@j{moU=oAE$MO zk&1f^6xVa-hfifHqMQ^HOG2E9;$d^Q?!K-Mmn#^Qz2CsDfc5h3`uk0{fw!uchwaXO zSggJ+cOC2)fLb25N@^(GUM!16UZd&6t{-ztby4~*A7n=eR zEJay_8^&*MAvuPCd|U3nnL)RCIW^9s1wn5&*YbaC$LB45L*s=D0cNh}hjZNazWe$Ls| zQWaUbb<-+Ktvgx5dUH|C!N-~6x#>#|%dOEA!EHe_)j2FHMObVtJUQwpO9ZpgI^dmuWaqhz4 zt6#E%%ScHrX5k}ondDxa4c(_AMMj8XNQmYH86j^Eb$C&n?L4b{@4fHh4R74D9le^0 zyx;%E+;*~txtCX){cic{^fVM6#5SD{gJxr4=4QX{U~dR?%d^pfK!J)1rDi4#R^NBK zZvS+5y}cDd2Qm`!e!)#;vdN0DGv^0n?cd*nWrdkq2Gm)7`C(dYTD$qJo zG%7ZAJW5N7sLGkfxkN#VV>qU1AoDEMq7b9GhlF8_Qj!!|KJ31)&0&BnuVzN+TfvsG z)&F3$U6XK@qP=40{mGMIStr?{u)0V;dmCZ&N)$s_E+6)y_)$Z?P+^7Wt^r|^>>?0y z;UGf^+MIR}yYdkN`>yNIwCHNN`UW!|cD+U9Xw8I>3+&?=%cX8Y$fe)o==L0yg6$=R zmVu(l(t^NxNpHE(889{IseWNBQxRjOldy4ZNaWqcX{sW`dMEDSKoGF7(Eehf>Dkz( zDpruanKG6aqd*um3zV-Td5^+3A<%EH zHz7_))`Wnxs0lGv{aHA!R&zpPR|?fO*s9cY1`X;^zUH?kgj|aCzl=-WgpiAG7@*|U zGQ-d$2rc`Dp=#Mnddr0-1mdG@LP!-cR@xqvt0;?=stB=gt58M3!b1DHCd7D>v^i27 zWfNj!*3yJn#k4)BMs9JMs!07xT7)`Mq9DbIn}j+{EH6fhngjt#B=1pBt-&r~n7T9X zO;*Kq7*LI9Fa~iQhPfy2_p5FpU1?66m6FR^%R1)f*1dU{>n*F8hdT#+SAdOTzi(c% zfkl%up}KM6au1A>B4;9T9mYI4vv*mWb9Bu0`3LH%YOT`;a#rTzoC#dGoY}nI2{|#T zT*jFq(yZNJ)_Wgk%5y{g!e)!7W(@;w^M(JeKV2Q(ZD3caxd;XR4Yy=o!e8*e18k@H zlx_|>3gk2SN;M6q-LPLO*+z7PIF#x57=>D(nNwbf$C=`}>Gut=WxUbUq};eN-oP!I z3eL;8-r^~!m@*y}@D)>@r!(*4JD(49gH|c2Q+Zee_x@+)QqO=bmyM=8w<*%boZ9VQ zNWA>*8d~?EJ;BY%surwxz%^7ldgrE~f-c$cee7hh2%PNi<8Ynp$-@W}$uA|0jZ_3- z1k2Nh(Jp|`THzHCCM{Pi&XEdJGro^PsQK`Mc;1j_U+F1yEJn_qV}X3qJo{SbY38_L zk=q|k7}iP<4sH zYE#)|*}C;~COU3(V(Y1F%{rce=IvsssztPCq+k(A)hxc3?J9}Hyv>mE)D~PQ)5Lru zv7^@sO6@|<$>%XCyMv(A?${Y3ih|yzl^^wGVgT|zJ2a}qe(ItjZ*~I3@lfzvy zrPmrKJ?`XQn}m7}uT{8Hdc9bf#C}|_|M;?eIa&_`*lX!0J`C`+E%1a+^yc6j}>zf#}a9Xn*n&1Umd z%$F0@!R`2yM!}vtfTH;fIkP{Np~ark`;#-65q5dt5$a{Q8lkVGd~Wz?Ms>%?57Tg& zGCKAc(K9w$<`h#4{G>53bBoW~bhQ)kaR~MJF#0kMxeIE{*j0Ro2#h7DSq|6z9cPrD zOC3v@oPQl_l-?UO@?^6!I#0S)=Hip7)zJasrkMPiCplL;8kU8a|mGCC7v!U#(0gt-5LhncDjZ;z;^iPCMfyu9MFf+Qt+yqIv*|?DGQ&_KgaPk^?V2|}$ANOKml2jp_R?*WB9$NswU=qf+riVdcxLYSu4ns`CEZ@My+bs7i?Tt|Q_mrTEau*@~R zyyc|npTwpxwt0!Aa#xVb?revQS6=w2xSboUEo|@xkf6J9Li%Bt%k1(~lMXtiOi!qve}WZDJ8(*GB%i z$|2jcfo+%`8mcr}5d zPQ1<0HoA8?UjqCTI; zM=5NoXp|X6k%ChQ4ez!^2MOTO+F#D?1GksAP`Y5-qy4X3Lw)v@^fNM;F%pMokA#ZB zjFI^7vqwV3V8%$?J$ocn3}%eP&u5Q>iouMLczX6o=otLtw}1Wex8J&M|NXkV?E39R zC#%EL!#dh`(Yh7O&GG*u+PIk9Fa^D&ezG41p3A>>|0xRl>!>K<=DshF-#q`!o5ZvI z1*yitY{4R$8|9_=-3nK*=3z;hOEdq1R;-!dL4H_au-9zH8q61?bLx0fYV5}=W@86} z#UjL>5tzs#cV<*Xu~nS3*c_IjE(pQ0(S8NuG7~Ht*-eU-*;Ro&Dv9>{3cT}JG+M*s z%(2%pV*-(1A`Q%gdHFPPQho4HGo?iFDg;V0fstriK6)JzYbPE-|JBOznxcJ{I!x$f<=s0SLx;ri-mVa-o_fHsYwIXE~t;lBJZ%5R9-4M<|ma>`?PB zEHPeKYMG--TDHQJ<@{_SPnnYy+GPn7c4NM%8;cSGZli_%8FlWs)}Jb9y8G<`QeGh6 zz}_X;@^taz)n>n2zB)bq%PSv~v4(uxIMxtmz*2{zAr5 zq9?^OlK{z^+}P(5RYFyYYUcj3$5o}cq_PGX<^q<7&5w1r-+aB-1lb^G$`WLlMX>h` zHbk0Hm7O z&a?l8inA){ESmL-bGyF)CQ;5GH(%EG_CAf14(?ov*z!`|78*(=>nf1N?Y$+zqCi$? z*IrrTvq;&ll@;2BdrlyX?>cjP?D{D>aq-(VI0P4z2vG%=gq+}Fl!-VAED1T8`(PmV zslqWR2ocP6Fe-$g;1M97bIrP`e@~ki<#J6iW;Xll^HYs&rYXdX-T)G!MLI&9?7ey+ zR;DM#%O1K9WwRE`tV<@w%-T+=m-)N*Qq1%ndnsb7C&f!1w3osqYGO2qs5`PJ90r)e z`#M(hXnc`}L5H|K^0Gp^()P&Mm9|GcheF*C0dADAY;-(byi*nqthXRq^iC*k+nS%&2V+;-b9F>i5v(pvd# zwdgrckyh_vAI0W=59?{s6)^aAg;h0bg}PYpMwQ_-KT>3@_=kO?NI-v&1#9k)^oJWI34$b?Wv@dU`)X=+~JU<+=|e zkYPa0)2<<#3457$MyzHHs7S00V%{2ROK?nu6Y&+5I!ZQyPBkepN~Tgni6+i#_9Nk{ zWxV;OY8eaHEWcOn(ut+L?NHXJ9pJ_JDq<73mzUaivrRrQ6+TX0YJZ}6DcV)KmgQeW zqRJ;3^@hn#c>w2P&30)i7qgkC;jjyI38Ovu+x=m;Ufx}Qzv(uI^=^6C?(A)|$s>n$ zX4N_DiP2Sd4Wzklm!2?a z&3g^-lY4Ix?isz;!B6S^Vqp^halQWI%kt@YBG5=-(kPhq0JGcn@C{#MU%PgC+H$aH zB{5|rY+-y_FL%$A7aHKb_n~*vS`)E-tZ@cC!wKr@=zdnXb;2bRyjcB&XAZM^d*Zx$ z7A~;vbTlT7hI=C5`Esnkr(Z{5$|#)R#CU{yyxZ>j%FO2u!FwF!GG}YXpNP_wQL+cZ zp1-j(r}&y!Od1O_wfPd7yb(NnJVL!c_DTmozd{c8-KZcML2ncz=zhoB9K7AU%^bX) z?KyaJ^GAMZlAfHMAf4%H8jL%Kzue3d#+@e(pT%FcKQ%T1v-vGQ|ADSj;O8_lAtJ5u z^$z`E2_j)~p_--Q5rN2DkgVB+63QP^i);o-Zxi=PQC!aEzS3$mz|0;%WzBS%r;C!s zsQF>HszLXjF2US%c%6Hz-5TF>@g-tG(%TGeInK9iJ(3G~OH96oQ?>u}$CwXr7sEFg z>P{WnNkD3zoR~L+q6691m-O&7RWlY;J!(h^>WY))8@)NzX%y_9bEf1jDv@q6e>7`ukh26b0u(Chp69kCxq;^q^C$)?D z!nHwgQ2a+&zgulgsWOSiuTsf!v$@rNQrlJDwNRO&RjrCrA z(FvhZ!8p_0UK$H~%VY|&H6sd3FGJWN-l8bB%K5!xUR-G1wXvwWbH#)rPTeY0Gx5BPNjlvyvJJ^I|?m$Ln=a+|ix zJDfJ&m(~DYQLmvB7sEA>kXg}kFI*}i6!(4CeD?+VcPwg z1gqv(>ncx!TN6T6y>eqSyDv>$G2yud!cl|{-GfT4c+FLbTGbkAT%qY;OS&~&vfj|a z3ry5ljHnBATqgq(del-2G1xix(k z=XmD|yao1bdnCp&nKC9P3lx(do29!5t$$CwxUI-+2j!Pa+>*JnyEFx#DdXe!_!xg& zemU~yK)2ILM`4yI=yt36*#b0y(_DC66m%4(jKZ*EMVbp%+$v&Y(P)65(tEpTD6AHy zc3q48Tz*4!c=c=2@{Mh^G`>50%KxF`s_*74%xdHMC(O34;^XR&8Hx?Wr^>Y*RQ2%k zSk4*CaESaR$8tKBlg2Wx52GtQvMtb`l1{NJl+D>q3;ukbAF~juqEaCiMGW?tn@y|A z&SbP>9v<=i<$U$?=VEbr3ztc_#i?=)_BpN0pOeUp5jnh+i0FvS7?Jjkr^ZM^QA;YM`Xr`JiU~N=!lq2N3ZsW-+t@5{rBtcvg`f> z+ia%a+jBfP+s!^29E8hETb_3Px=6SGwz=CcPJB>*?-q+Q`?!fcg|rb zdK2H2sCzYZxl)YSykCLwZr2P8)TjECq` z4$CZXnaK}`+glhitiSG-@bmT_T8I0?<@ImZaJ%nEv-5ITY&o}^Vwjt#K6kdTWcA@u zfc1Vuc6%PbCk5vHUYKG3_V(6X)iG>TG#dmq+O&p^PFL@T|4glrrSB|2I=>*K$MI`4 zP{FVFA-()&Pm^NWT-wh>cHQ#+X}Grt$}lA2FCCqHN5Iv3-B3g(@p@WZ-s=;nn$eqg zxHh(Rt~$-RH-bKQ|L^nbuJ6TU1^4(Y8Y5!nWVNMW`iRWJq9r1aFCvf3#iB7Hv!o8y z-0`IbA~FjLJ|eKSqVt0_bCR{KgUUf zg9f8H(~>{Y?fA@?3U8-rMs?m!j9Ks&ZvXXV&Yl5o>7;GwG@Qt`ihV=m#O#}F^X%b3 zuf4#}&Ze2YG27jjHC*L+aRI}U_jaoZ+}F8&??0It0nNykOqKaj)gD7!pTXk^QF)JH z2Zm2$ld_P4@ZvZR%FI_p;U#jh1C4B#P;P-EyNb) z*Zfrfu`+HnNtmq(d|ZFD`wpVH06HiCS;$M{f215UPyAmnc}e{3dAPoE*%FiSlU3YN z@S*Zwo2lv!mf!HyS0%f@EUwb%4jJT65#1NXHJlsimonhI$UnRNerp$!>{3T}viWlH z7oQM+vgO_IHo%{aINl%oXIfB~=ag)bcEV+KMY_*QL!OGW(r}BQ>O%0mTMZPc__Fp$ z_}dTk+hLwL;^Lf=9}H|?45_5Q=`LCemM{Dn@l zJF&t4Y4Lgg=h;N(i$#{+^Wf?HgV>JSwO2?_%D?e=1^{EI$AH&*-%xglO%HDG zVkxmn?72Lg`~X zpAww+{H1Qe<1@-jWh{&_Br8@(XRVd2bCdw~}GFs1zZcAXd82V%pZ%Xue zPppARxmy6E`{(;3iwkpa2fU26xr6H;9=323#KjM@Zx&#*T6jBLP51C^`+dK>|FZA) z>jyDnswG7<4^rR2wVvIV%~!Z0MueB^NYPFK?O_Y=C2V(hOIbKG6%E$?`l}WzQjuW6 zWgrbXh11d?rfFWzn+`G6k|O4*UdPLIq-a^P*TFIs4OW!wGOS3&W1-67ExOF$`sp5S zo4@R9mR}crITOpi+QHeqa>%EfpxagRMAE;KZVZ8{wW%|`zW)^7X#VRQdA8!ZSFsHmiB zuz5&_Lnu%<(YVe&BgHvVlB6uB9+*g(i9?tjSROV%*4=*d^7eBy+1MO4&|R%VeKC4)GvPrbD4c z^h~Zh?7j;eNhB%D6eoSE81E@94WcfeJH%9rLd4ad$p-%VSGbX&JS<+2;vOT67l|%fjA|{cgAo zsK0N!f6-LTrEWsV<>cZcTp75Mx!+3)EdxcNWiRP17n)yFY)dhyych+-phAh{Jqq81K>x4agg7Bt69UqrCd62+HX%+(>`I~j2V0do)Sy9a3v;nd z&2LQzxfJVv8JD^VAs1N_GPo~pLX5m`7@$m-vzeFloC{3|nASESq>30TZ4b&-l*LL_ zgjl#$sG?wDq5ZT)sA8lFQXFLyVq@0QgjmJ2J*azinyN_sN?L?EQlcQmiJOEvOe`-( ziJAlfN+j=5P}yb|4NTpc_fxClIt-{rG#G=p4&ww?YwazB!nNJBSt+@!wX9>ln2ovK zvWoeyC;fDZB%fJXxpk;NG&vKA>o62K(_pA`W=~9;f1t!yW7=j}8=bkB&zUnJGUA-+ zWQn*muQ2AF^Kqso<(Bo{+qp&4M5tfbY!N*|U*4Gy4{gVd;!z-dIvm&6yiv2uInld) zZX)praVXRAF$(opGpD=|k2A${)34OCWxUbUq};eN-oUL=#`P9YLFMA=EPhn=ktxs9 znfLL{%kESlR8v_ksmB8M{%7S<&wwqLjix-eDbnUWEIx1U_v_u^vcCfc@*4aHhr8Zw zVD`_vQerP*OE-bekWy1nc{S|H#{I!$u?V^_+11%ed!SF4h&xPKn( zeHiW1=d2Z80b$Z|#o`>P+H1!5Q3y33UNp}e^6V=;g^tC@xpOR#Pnu_6>paaIcYeR# zV>&?|S?*`XX{{O}40an3OIkHVGv%Gk%cS1G_nH-8P_)v2_f}A=gTZQ3*=5ijW z9?-P7jY;zkwnf`F7K!0h ze*FkMf0#^jw#G@1JGs{;p`OEQ74DQ?FBT@TAJ^+YzAT@P?0FmZq~4pkeDf^h;hWu7 zolhUknco+U=u<|(mbs_(a(Cpk*W-GxLw}{UqRD$(qbzx56V$zML+3xc^-tL1y*hMo zoZcl1+;jPaX9u%?8y`;n$M6k`(rm+>?yrJ!Fk{j>Sef?ps%ESZukg0 z|BsR%rr|PWbnG#eXKb|0DVY}dNn>E<8K1T3YA4|15bE(^3}zg17l*(gPkw_3j3uZU z57+%2XOx~-9ZQ*B^;=;PqawQmRSYJ>$b?27xA`m zKNOKa+di!CmAg1Ufvw@b!nB7uq2-yGLjdO^Z;aRY+bv_m$f*~5pOHB<2YO9`NKt_QgP0ox?H1DxxI zAd%UZxXGv8**;uXty)xxzEOuV!hSci zj`CA^DWu|dZm{>2U!UR)BA?BTC~#!>M;KhJHYV?n<2tcXdYy{`35^Ymktl)ciWDC; zJ8+oVC`t;KvC)kNwoeufSkjLb{j9%+^`oVnP;FunVmC+rxym8i%Yki}9va#Zf|@%d z1^>KzSnk#^l(oD3>|HoXx1}oXdD0l~wdOEapj*RSj&2NjIk8*XW-BUYbfmNO8x?TAQ4 z+3)J`{`-CnxAUylhfB1b0+m*CN$ck>9!xc<5nDtNOuseM-;vCb@l6Ov0q^V5P%rBd z+_6G|JQfS3j$@zRmjPRkHBN}sL!TK3nNqC=J5@59hZWgHq%NatkgIfu(=GbV+8U=O z1R-)=v-Lt2ZMG?nI82W#_t-Q*2F7yTptD6Hc~Tc2`_|j1*IAu*}4c} z>$)}c_DWS6nyC4^3)I4df2c(Wn1W@$@mvS*TUdiE^XOZAhr_Kxs`g{H0 zZ|Z2v#p)I+yL5S_Nj1V2ubZE*|L^_bI|mQZj+mnkW+x$!0iVq`ZL4Vzv-Ow_si@PP!}m z^Z&N@>wRc}@q=Tnj`-bO2G->)bm}(SSNCzc{mpIIQ|2enK(*f(ree@^;^@e$u&4BX z*s~-}^;Nb?=XSd&hhci$DZRE!#li|>GMAO0l)ppIOy8e@*L{5h5}mGxAQZRIe#$Qm zSzY1HIZ0*u5*f}J$#AOurABf}hLc7zt^$sAZIBZ6`8>`GUiG32eZ8QHMww9*DcGfN z_TnlVg=nKaJgNH2`ReD-#p3c7F0pXWV3cdC&#u${_8A$>7>UEPM?%G5#z_44*(0H1 zFk>X{o;?yO1~W$D=d(vb#bCxrJUx3PR1Bg>be*mBTgOzIZnoK0@~dw$o&oqDzy0f% zzx~#A`|sD?WoOs-^BrI9+p^qz|39Lafs?{KFvBJR@8b_E%O>!p)t39=~}m znm37O{tHr#1KWZ{G*8M)@jDl;m~9k)2@Ba+gxH}0(?;Yzh>9q-ii3yEVHxV04lEn( z4j`@+!LpIvB;%Sr49KIBXupc@oyVfliWz5)y@i2M?1U>?ltpox@wkNijw<;wl zN+qSdj4Gs&?Vm#fgQr=E#Z&u4S^D_VtA{bl8szMHFAZ|0EJZfQZR3Y`#2yo>QdILK zeDn;D7&O<^V8$;bNCRvzV@(Mr)Sc})idEJiXPH9cutUz2rN~6Kkm3@mQq(+ONI`Q= z4Q8A#G?=lb#|(S5nVJ?VHv52YC^B*tISOP0Es9t1D0o>5CeiFNBy2*G7Yp1)q_sp? zSze~nDZ|RNJQfN#(dXpj#tM7OIAV>X2Dq|v+d-qXhHEXptatD@N60Djm?zo0{sg4= zTOc&@Y%J}<#27U{-hm(P1ZR~{BurUGqcamAe7u7+UXu6rL(XjOpR?I_q(z>izRO?Z z*lLmB*gA?}DULHpFdREBVVO>2m}1P1Xzjc4A^V5yTxbmKOYL$L(@a?v-w0Guyb6KR zUMe^eBQ5eA8%jlmW2;4iBQ?{*rxVqZa`~XSz;VuxGf4XG+Im0whRs{zjfRE%JaTHG zPXK~3p6O!ik6fr`iH$gF=~+&wfn+IVG6W+m!x7442s_mL3rma_mRjbhl9sJ7WjQ}K z$y4TJg?3rOgx#1g>c*mkfO}w}e@3114GoG~^8l9x!a|1Kbu2EBZ(xTMY+1PY@oKZ* zEnl6z`^zgI6JQ`O*@PkAYK=978M#fx>8uzueEpur@OCyCONpKY55~4lc$6N67me}k zC5RQriV7406$!I521fhK!{*1j+i$+!b7L~GvJ}}&sKn2bi<6H~m7*Gdv*%)QzAa@p zQkg=IlI8>;@lyh%n`I3OBTW#K&xpWCd}CB8)QG3arT9Sw3ah9K${OUR z@?m017A^`Iw-hG3WOp@?d8V%AvCuFgS-Ak7_8yLaAdnT>wO4TXWGdUWvO>FXZwItg z%xmi45L~z+L={*Pa)OIKCgLQpB;;i7H?cR!DZ()*2ob^sbi#lK1&@IGJyh{MZC>`u zHN}|O{Hk}a#x~OwVn%P>2+<-PAx`!#yAUhWlj3C$x`)hIi)GeOi!qz4?EHOqDQ5a! zyEv}N5~ma|dAMB)m#B%+;w2$5TCC>L__hGL_2Tx(%L?sE+aqIF+8*^B3UxmS$l4>J zC9$tlaVoY)y>~)Rs`h9IhrB&93ZZ%NIkcSBf`a#986yn2uHhfX;)445ss-0YK$}HU~pu zvpKkVm6;tmjI>BZqTM1l3K?n9b3{GDW|Qc2QT4=fXbg^y{7gPqP6+#gdE9tZSov6m z2Cq4Lu!Vi3MV_O6H%F~5Xtg*g$4Xt$z%ib;$aA3Hc+ZDI z-F%F1At=>wQ^m8&!N(yhzj_L_^4n_BbDScr-os9X&HWx;0Ew=0!8ap3R-;y^i}g-U z!f3u2!O9nL!O?TZsFl&AF|v!t$Edw@SlDBh+Php8(r*=R!40Tmu_f zirY+ z>+d(+=CIx^58Iu+>nnM*&(5rxMvs54Y7sqa8U_?lH~0JCj|Pq6IU2f8&S&vj35~pV zJ3L#DO7OiCcTz%mA6##6N``E&rCoeR>d+$R}rL`4g`&;7-dWI8JmeD<{aL0p7CU}kc3C|*C z^)@}V-Rjr~8k0uDo+*N&`+Pap-$AdVFl7`@&cY4h-6PcFa1%venfcrycxz(Px@;m! zQ%1=iBzpeF&KzfIVlinf%rxgqX!1tz@bL)s{@4o?{9Fq;^mn6zXf(Z1jHdhDZ*%Z= zb2xMGcDCo>%}w~=R|@F4+6j`Hn$eFRNTBC`M?-THMn~{k2t7kuvwf?v;mqc}{9FjS z#DJgQ$b<;r@x==LAqt|PhL zfQp;xK2H}Vi&68#ZefG2K2>!+!nA8LhkLcOPf*smx7w}oJr`f!6(qgQ(5~Zr%hn^g zkhjF-YdCHDPq@J1{s(Nw=niml{~HW@rw;8TAT>`;%o{<@lbhZ4uJ`4mAlnvHJ!(h^ z>T;8EugR4V-)jmxwx#x64}_?6Nj^?qYM<+cB;{#!0p)20`%$FRE6x0W%yk! zgjAIix2FZ$GW|z9Kthcy5`%x zgEtdrHqQ}B80S5B&)qx-eY0G_OL3?LMwyj(!ruAYrtR_$r;YckHGo&tYv}1UFK`yD zfrQM8mW$c4484QT9e$tN&-ZijOu5ijYFviXGy09`4UDJ668Z&`=*pcj?S4&yRr9NL zMX3Xe}t8eQ|m=vK7 zU|g(jp}oI4yt&=3mbb~V#zm8bh=cfM-t+bUeP3EGCtW=1lV8dk+rT{Bh@&-q7w2f> z1m5_yIre^uaZIL+$;kr6&-E4PvOM6(h_DuT6lfxYh^W$_Ln?_UcnKC|pzmM4t z;P%%Xd844)^`xUPOB8fFSKR;*zYN!0cwH296sC;AuzN+C3s&56jN4hF97#05PwBl~ zG=w@qQY}pFx)z)Ad+507yEzN9+6MR3@0P3h7l&TaRc9 zH#{Z#%ej5K{qk1x{=A<=v@QB`5}7d~hnEr&9g!I$^52&d5gm~kBXajrBBCQQV?=(w zl!)kv%ovfUml6>jktiZvXIqKZL7S%EZgvd(n#>xxuE{a+%?6}b`@?c~`2O&!`^Rtp z`sHuGb>05^b$8jpOI361OFAB$9g!ao&TZy;-*sQ_zuUa@Zh!c)*>?M<`&D z1ee4Hx&C=%h;`OT_Iv8nVv|9*43eQb`q zS0BUS{r7u#(s>k*$iyfv57*1pA2-X*?Zu`sFTTen#&9_^rL{R}oVJt!mA#yedZ8?7 zOBqo4^W7HqjoYlznjF}|7$$G`aD0Dzb93?2v_;+JcHdo@1O1yF{C#Tw{@26${th;c zHf9_Rg47c#T{JjtDX&2oTFb@N;p_(f|K$e$rLW$bO-s2`$uSZ4X44e+(|+9Hh8$E}>{HBf zbtTn$wS#5Jw3B0gkcVaN!BL`Diw!1S5`~JmC|nJnhz@^ z9&#h8M3;)HeZ*X!l0rl(Hn5>S9Wo|7S*;;GOrF7`U4i;VYl^_B<`%X_OHj5LPd8cp z^^`Qo0+%7ql$};q3({IK=aAmfc3N4%>7F;;W(!jz6NRi`u9YJk@tBfh(Oe@(dxk-s zmi@^GVg^T$JJ0ry%ZH0kSErpmXCvK4e@||{v=r-Jtr7FgG^j18PLaZu&JmhZOhYD2 z;@x6_sfVSe=*n2CZC;HU=?bziGN}K`GqBi?lMAaoiov3{5f@!CgF$-?gXPs222Ohn z15_Kdg#j5D#e*#0(zGZQ@}xSYx^eYR6|2P*W&tQ&js=SKP8G>k*r_6Q>CRA`VI<6H zJ5;`rSfe{bdRDZZR#u^{&~~br(7XDYFxSd4RN;itmH*$cd965S8eLu9cpXJSE|mYz;&IfngymFmXe_>W2v^TQ$@NGN+db*6*C#S zMRAI1wMQkZxKqW%LDj9JY`AVwTMV4`m>8hipp67FFp7t`Q$@wm)efO(UEz5nDpOH& z7ErYMNlTb`x*Thu%7Ai2#h_*&VvzJwRPHNvOSm=8QP>k)M%VAoYTg&)59Ksl7{$TP zv5w+kEl4>~VYGASVJmYb4!ng?98_^2IjG`56@jqoJSIJY6=^&uF7bNr7(TJ3QJlik z@dh2$spJ>ZyU5ZQPHrQNIQvp`yb&oAD*t&S(!?qnkuss&35((*lPNMZhLLL9i8Owc z>nb3rM^r+ofTSLc1{&j0sJF(@4OYf*i8kJhp%WPz!zivr$54tbjp7t)QP_twic@51 z45v_KjHDD98p9}Tr-7|KqoNdBl5(P|sbC5A)rdLOEsf+9HtI+-6GJH&k}_hezS@=_ zarD{|q&`r=5N-Vt`_PU+`5+i!@k0Z#vH+QKON`7bw<5Dck;G>bnH_~B%2al=+jPjx zAXaYl*{&=}kSU*gvFy>m>F{?eT>=<*c?24;LBQjEH zfu@yfn6oBUk(#-dtu}J)*M%C>xL0mO##6bC_}D}vi(#3lk-(tci0$W*8_~T!g)g0j z#;Z+a)@(8~ic!eu%uSjHR|B6&*Iz&`D$U;c&bZ(Ce zX|9!Bd;f}wU8yJ3O0wK*Ymej{Ttl-%_1YS_iu+eoqKNxflrpZ)8j}y3X!Kv+zoLAQ z_pc~z-#=<~zf=cP%|1n{uRjx8ydw(+rJ{&I3uH&xULbEWfTF{ z_4FureAj3U6K`ZpOmHnQh77hdijOOnqsTZT?wpCK^W)Qk)cntz{rUi>f-XMx$5Zu6 ze%Dg2O63BN*PjyBD;4l4|K9JvZ6EKJ_fNxZ6FFd2tAI#(SVydC6%Z-5ZrvPqpvl~G z3I!aBqf;YsCQ&$f3m2mBUv(7X}#C~x`H%&Z zEsp8%s&EDcC64R-X`qmfM}tQ;B>l9vn|)_r(YB}T^-3O323Ki_<*8URq~(RnU)DcR z&??)}vO0k}#l4;k??A(SkGA8Y>s6nWtSA}TyP2ViHdH#Z0pydS<3lNH@!vy4AP9Gx zdsESGzaQXcA5~4y7*O&s{Yi7VS$?ybA|53pNzYi4hKHN`A(6e_N>-)ksu=sMpDNhgK*wmkydy7A zg{}x{S~VJKq^J=WA-PuE_mut)VUcLQ?yg{yw^uVAEQwmw!;&bV#=p-nN+lmd)A&nt z&v#$U%#QCcsB}D<5G?MW=#@O4)Vmn4LCYfsvRifT7ip-GsN7#hD&_v7CglDto%@Sw zRPHY-aJgTqq~IR zoG(x$s(pbLDk`RZ5oo~kil&4Sv+{*-XQf2|gmgTb$ru9Fw5(`UJeCY9&bVqFk0$gi zhSMu~Jj8UkVxF2z6HjhQm9_YISX-Q3BMDI2N(TJo7KK=!+@iF|(o{$lesYVlUYpz^ zb)ufJD?TMkgMv1?Wc66Wan&PH{}j|vT|y3Ss2Cs}?-ed^1vtKx%9K2wtd!Q~q{J@Q z3~71c@+X|!qEh0dY)8wAotDz981R!@U`5G@nx7J<8KtbnXXd8l92f&i9;JCHF_)4N zC7&=)rC9UCN=iJI2FRg9g^d{C8U zd2*|yp+<@taS=Dyiu+kAYI2L>2%{W70@w@#j>oG-hcC*ZX1pj{Q8g{0jd}!qLMoMf zU`;ndqMMFmR5~6_2o`r*^hzF2>Rk-jpyd$*Sw9^@B{*3mL>g)&sz{WPN=2fmiHpRx zUL=aPs3K8R;EIG)$p;oCe^Hky5;7f+Cd@E#4%I7pJgIjvV1t%N1hQ_}=JUj1u~>au z?mBp7Ks6CAz`v| zCE$y6eDatqBv4IDl}5#5$)MsauGaBrLeFA2y^_O|Zbdy`-EQ}A-TTGwFfi-vAF#f8 zf7m?@?~zPo$ng^Hkae`=J4(EU63HHkA^W-1zOMcN4N*3Ri4s!B96^&K*aK?_A?-v_ z5OyAq?&GoII8Gvr;D%V7!0;^}ODyuEF0RJN{3v6j>5`yiYKMiNB9sl`QcXw;}=bP5<}@Tiz&oL=OSNCP7|j|ypY zW_Kih{9wrE&qSiOs?A0dn@=C0ig&L(FHZVxEfD0*{a4u3vgodsm#YhSM|&*eW*qF5 zB!BinZib68K`~p81S0$@=DCq@kzaEHVZU6NC=}XB+?pQ;dnM0>g`z&v2*F2?sC7QA zMlc_7Y82>-w1kkh(rGn8LBQzRRa|0m94C=d)}!$aA4!Sv z!xtJ-Df6Q)PWVw)%KWH{V+@x|h8DQuhE!UM5S)-8q-o)F3i&Wz>{2LTPbB#&2GVF? zBuB82Dlw2k0pkq(idiNG(r92LN3f7a{hA0llNKu7fRRQBK7!P( z^Jz7L`G^ywKxdo{B^z$KKCY|_S(!7S<-sif$$2mav^;7Pz~wqzPInxR)~njm!&F|4 z!@*uj`Y56mykfEDED%hJ?IUL=YJ-|A5KPJ*saEi)o{XeKOR8|rjv^+EFY1_#%a#%0 za`49i5q{P3%=o^oC@ClRs~pC0m7^lP#sR6*YaCqUS2<&h1Je5CX6%NkF-eZ{Dg;(B zZ+OKh8Zs4(CFo@(P#O)4Bx%Xel%H6fz$j*l9HTByU=%}*CKg40q_aShtdnDu{YWtc z>4+et(l}C1r!dFCuQ5_hGP}m;kP032!I#3!J&A~;hIPfs8ZQ=z)m$9ewL6w=VZD#l z@n~pWLy-rGz)YVP!vwS>wJU3kWF*4koCLv0ySP#7+!Y8>PGB&~!3}PRk`QC46SBu@ zQggAx%F?*Ug-WVLA&QeBh7_xLOm0=QkWF-D-=?F#F5wET#Sir_b>Ie_V7*jp7>qQF z2|$!82*tO#aulfwj@QtN2tbmYSJA*2g*LIACRBbw8Yo)DS^}wBx`tn%wBhxvLxG=JG0siNB8VFEXQ2T4TGX6n>~`K zm!w+O{`xn8DkKs>0>}g)_7l+^A+s{iIf<{rM*(1BrM{d{~Fyz|6^Zw=-$OMZW?cCl>vb z`HFtzi!@iS3-5u-S$qC!C}kL8TxFPI+=5;%o5>wfaBO)&RNcA2%w;%XJ{Fnl&IM*x zc5r8uHs-*&z|6`HoD0l#=K?bqv%h(&rOn0*sEl)gnUn3ATUu>oHqHg+Ow9fot3qN| zeG9yqi2Zd|1>UM}ftSA>sL$W{Iq=TEGR9X^HcKCbCi^n)D>Cjp+ki}Ejg*k7nlZLzz+)nyM8Zg|V(&lIk_^|*Xs&jnT%XBI=5LW|tlz*;Ri z9HpM(`M^p|MJ%N*e{Qh88yxs5c{PU)Yb%=yyG3{PxL|FDn!}Q-ph~6OLBdL19E4H@ zbE2?P1cN{|xVa$7okKxEQaP#_T_=DBD`IqxT1MIj(2`PLhIFWcI3Ys+4=NLhpRK$Cb%knWLJ~6-70pbJQ}@a;PPxzQ{{5rkFS8LY+7>Y#&2$@~&G(FPm+(~H|n zb1@u9b$%)Dq>Oo*DpDqPb$%%$FMYwfN>s>MY}NFUwegi&r-Dw}#3<8~x?+^H-W6!8 zbynz$ys|pmGrz=@jw+s3AFYPE`6X6f1x~9jJHOPhmXV)ds;q5rfwFT$%HqsoC{w6q zeu<5zVSb6jDb5Kg)2E1~Oea4_q+jd|e3iVaIUsHNXzsRZ(OsPiY7txoRVw8shm^WF z2&D>Uc1S6LL7*DqDG;vmVHbc>s~pvgt`neUbdFj^+6T~*QeWgX{Rc@JWrjC8S7a5E zvb~lDU*wfW%M!OZBePeH^BCGPEOS&dx}wMwr!u2+)H2d?s3oPo$V)P&sJL8)g|5gd z%u%)|HTWX0G+LIp#Tl7FwHt}yC!hIirTj#+(of6h${{UF5}nRZ$w!Nzl9IY2tH~09 z+)UwBc_OEbk}W}cS7a4N%F;IYI$rKnHg0a;ZHCO8%7*266rR(^oX%E~r~W9z#ijn% zXF7L{E93KQ0Vi{EQpRR?@L>WA6J&CtOmT07)0a+~$-UHE$!A$2uH?I{*$dxLs<;GR zOk8EJTwDS#$`v(UvarNXTBal@2~(0+&Z$sE+)-uP0*`()GD(R-M_QLvj+D_wSXg6X z2{nF{Pg43>LX{(BbV>_(IGu0Bo^hnj))G{cs`7~$gQD8e1enJztF6d6TrKx##~Q`ppsazKota<1io7)5PBYDGPTR;{{+jESsPjM}@f zOk{6I#za=j{GpM(9T^i@IT?Fi4eC7WA=5_YXX~^wy(hz2%sTJMa0)#sr{LYrQ>q*( zqohxrPG`!!7_MTvWVr-hYOZABO7c2yn>|e@YDH<7oh2*upi?SA=}4n;PKCLg>FhaL z^ufZQcd$V%r%eEW<7E=D1y=iSv|Fi=B}AwrSLLK-vS)*7nXD6K64l~_O76vQm0Q9bm%z($(c&dn>XNd}8@W|QEC@DxG#p#7 zgPdeE3(~6)vA`Q6Cg)2^Dsvcfi?d_q)?>MEYh0J3Wqr2=&*`Jpe|`&<;ELloE^=whTXN(!Z9nNShri71&U zi>>9`METZ~G)h;C3hl(;AWy?cW0V&j{gMXvI+V5*lBTbOMVqi*ESg^89I7W*CzMiE zcD4kh^OOZ* z6qUz7xnfC+x1{maC@Q`jvlW+7)CQzZBgGnUIk9s$B8i zXO3B(Kh5od6^`7h_8^Q|?YjKe_3>=6TpoYycQ4DE)$MZgbG>;wZg-D=z!k2rhxr42 zxVpdJt>*`q^uc;{IKmnE)75Lg>^FB$$NevGUEDvfj~@-HdF~#=&u|fz|Jl-fq-e+2 zr_J^@gSU8R04I|WGI(N9KRML<-S_Q!x!Lb`dzes*+!o}i4f^bz^Sj+WthSFi$20nP z@;rB*+s8jv_uJd$YXANDVe@!QX)j}wi2Hu?`2F}J%S|6gp1bGca(B1fuO7c|Qri?Teu#oJZACKFIO-|SQ;JNjM!>8r~W)E5*KFIt*{by} zaBM34WdykryRsCwx?C$dEkU{WWxXuFKW@cs*K8|SZ5_T`??eq18Y6yPJszD1Nu#hv zhH43z3BEw)UrarZX;%K``40LY=2mn`rqoeTQ9X+DyY0QA{!Ye-UyXQzUyI^$wuoL= zfBCqAIn9@=wPjG*D_AaGwzr$dDiq=o z&gK3VitSZrS(YKml}(qwtkyp^OPH!(-EXeGLaDf%{uY(OGJ;&mhxP916{e7lfU~8D zI&zV7F(ZQpI0!10_j1~B~ z5hItq1hbvCdVWPd7)!O@1&-AbV^wZ~AXmbU z7&*eyh>^3;jTj5Ia@F%75YNqriLU)-_3-(H9cyJN&D(tbh9*QnCG|3pA6s&?XpIcj zvQioq%Hyr0prU%r*|8-TvNJ~fYQ&SrOVYK@qrdnuPF=klTfQ*kK8}LeV+?f`94(5P zL$pSQYAUf~OHO}bY{{B)W6P|eTyJeeC@;%0B)PKk$WYV;xPW=*b#8PjR}u{rCDf6N zoJ%mavIeo@8eGc~#){x-?(!+*)d}coLWPXNEAiKgx!Q-Yf6g197!Q!Srd?6D=<7Pn=JZ@@36U{Vpf}hR_7D0m<3Rpr?u*I$z zTeYkQp6R3pYUl-$E1G6K)#R9`OLin16+XyQkH$}LV3KK^ zkg2M!G@UUmxcd|x0fx%z;oy9SA_>q3d8(o(7ufQHG;$YYsYl}`KVTu=GwIwEY2xnOhqpXJK zeI|h1y+D|*^$J!UV{?h+osg+2xirR}mZdVU@PYvL`^gy$mDSS#$IF-j3LoUDroco4 z9~U5v+yzyv6P6xcZOfzbZ}lFS8kK;Lkt9 zHbTg}>*e9~alN@+zHH&pzr*o%ySw^J)&b_ou9tAk;(7i$=Mvt0%D5>REEcQV-=7aF)E-A7|!!ps0H-W}Fk=$UNq zwz;x&vEP3Gk;}mMyLIl-`TgcD_v|Am-s~S&_ZeC5e{6nc9$nmRe{OO)`u=v43**zx zZg;=BfBLZkU~GnNv12p+g?0Da->z@rh&njmA@~WJhHc>PIzhM7>DdT;T)2arceu?5 z&Z1oZSnZd`{c3wWe15sQLUx5Y)gyB=apWcgU0Vh5%D^B65DU7xWCxQ^RT+{$ZAq3^ z_Wd;{us>{Dk<1NFE+&6=vMVw1FK9U*`-^tLztM_0@mo+(JgG2=?d*|DGvu5KD|{** z{etRH^HjWD!i9z0dke+PU`VQPinS(8l@>Gn9uZ#oBxWc?4L+0rk zS!oEXlvtQQ-9koVYA2j4(-4i8$<*`)CU+IDya+fCZA`8)amVb45|B9g%5ZHOJnW!- z4*q3MHkZ830sytkw}A7TnA4Bq=Wewhw9h|K3;V*Q7WM~kA(Nf#$r7c{{TAXpJz!*h0`IZ{%+1#bWpkzK)l4h1f1I&c{{_9ip}?j0|c=%9!bauwCMSQRPS& zr#^(s0?fKGOuC&uu_qYuH}}{vrZ#h5nKI2CWNJ14M66s#nOM1>h?RR+ z!OMvll3$%IDG+=Y*|}E@9paeIG?6W<#^t^_ofsFrb081dabUWtJOWOec5$(lB~e_q zWnOUw(0FO%imQ^4D|o*s%HPyWbtPQw*brSKqw7#>8L@w?jS(HSjIN0>-G419^~Fir zEzZAAfBDY#KZ9xBElyQVf6*bqd=!(P3N6m^O0B69X1X=y2!>t~7Sl7C218P77q#!; zx%7*FNi9V&%(>yw=7#U4b(d&pUrFZ18=)34LP;#>O| z{t-WiGC?iuKN*`T87zn?MX|+Ksd~z#aBAiwy2W%fy36hN$K8HDupjCh{*x#=f7)#R z?XtoBgFc7l$Xj3e&hekb=A-%XuzMhtH2jI!et3F5+OPQL#3cVFR&cEzDINGPVsUOh zCqdowKgjco7NQ=;x8*lzc&{&~<+CP7&%4*teuXy)q`~#E z)i+>=_=079Xlj_4*Ji=+V)^xlBi6cgaIV@oS6Dl3N~r{YX^Ruw+T;Av7ALp`oLmoy z$xtlBbX9onqBNDP1gBFK)OlE}hOeIQ?pNQ<%e7Hegww0)eED?)OX>r3#YmmX?ApFP zGp{+RJVd7!_zD;D?rFbSZx3+$b4TVyK%KfSj4X4;ZDU!Q{hbOJr!34T>6@SMN!0rI z`DmKX?bmP9$K$zY#M^WTk01wtra#HE0QvU%TTvVRsKKX~MaEb>hO**}Yr=PtiV7}%iTM|nXy|12Q;XT;mU%|oT>Px354ek~yT zXT;mUz53L6&1$|YAp2(#@|{P%%Oc+vko~g=dHN>BmS_6COIRB=1!Vs$LY^+wv&fsQ z<}ZH~pvl7s`^!9LHK`7N`=?3o?}wxoOC+JCNlJw=R3&a5d@d{MU+NGemdy9MM~(78er$L zB%o-4B&m^pTM7 zq$Dk&Th-CUixfMG$@|yY1CSK>LRmigtUmg$ReX-PS7v>j)8Dj1IzCUy?mX1O-l64F>@%B0B))25i8Y!|ou z-bI-PZrWbV{X5}Zy|(W*wXstBi7RlKIrt}90B zROXj9nk9LNPA!?$5q*)0fjV`Ct0Q_j$?AxxeGF#F?F!1-(k-EM0l3rT_f#@l>juvI<3TtWSdy&YOTmAh}Evz z_QXm68e*N+hDEYXtaSZY)YvPOH@-*(O%HqAhX?Vx1PYdxE714bjf) z=OX1MT(icGTf?u-m*DuX&%wXUMsdOFO5m^c_!cmlZQ>$EzyD|6e&aXw%s)_zU@I+r zg)<$vx%&kUBmd8FMz3 zGN?&eQEsbo=?{f9YWMWDt+(!vsXOB?Q`L zY7x{jQ-Yiych<)^g_}~IvnE3Q(V(pjM2)O@|SmGKPF~r}99WIJdx&B9LnXXI` zY-V3l>dP!Cr4Wn}BE=h&yy)bK^J(0ugvhP_p1*n1kxQGVZ}06I6t*xH0_w7A;}S^& zh(YZgq=3#FcIX7btG(N~&5opYZsXm--4(al*A#Gb?R06iG+lBF5~3fjQ(e6D)~POr z>s6O5!1d}&06P_u^|(%H1gTR~vLe^1EWzv4=a%R?WjPq91_lMebd=u+g^f?agrJz7 z@X@ze;57e2Yyu{-`N_o;GZ7PlVsK$ii#W}{5SxIBY=$CEITM0naA8G>IL*Hhn*fGv zjv`Ju6M|xJVLgX9&A$+v0ETRqB2GCIf?{yPq15~fu?b+v=BXSLF(D`hH|%}RzYv>% ziEO6IF%c7jVsK$4fjG^-5SxIBY_1|sITM0naA6*wIL*Hhn*fGvwjxeB6M|xJgLBT@ zzAR!Bz>v*XIVNI4Pz)2yVH2nM7h)4I(Y;v2D{Dh=46>O(CT{L0ZzYw%lsxhLoyZ9?mTc%ES>EEUjB@6t^M1Bq*o|F{QZitT%KW^c z+2GYGDMCRl(hno?Xdy2^?~1H2Iufi;_z6w(xwEn|gw9Ilc*ayDcXHA)MKiB5rf7Cn z=Hw2*Rwg8bH67chk1RdzPmt>{_1wgV`@EF#p`S87HxnHn^(P3Cx++=ebhg>BrL7i; zecvj#xAjuYTMgRS+IopD?`^{Py*+q(Z!&zH$XA4;!8rOa0E zsAR--G$kSWDf#?zoRZKxY8gvweWEvTaXnCjz$^!9Q(+2*0m4*~4!-DyHeaWkyd8Jz z{xp{et^S_Bb%PrwfL&bF?tWp`C$$jMW;LG>4S`G$U1?ESHPZ%_!gZ>Pm$|yq3wkKw zDTCNQY$^l*mn?Gi>PrAS(~qombxI>hotlzWu1;kMUZ*~{+|?<|!8kR-jcLJ*IN2bF z4OTCXQjZxg2Wxbq_uuTLaC07tT-5=KzJH=7zF|q6C5@#K1nc4AG7nx#t{`^0pROl%ilfwHVh>j6 z#j%5zk}HUv?yu{Ko#H6+-7&xh6H?O}P?JWV%J6c}Rb8pAona0h37FK@Tsx5q;fKeer)zXx=< z9b(D!aUSeOx_k=9-JQ%++lC9^QYJ@O(>=wSru%vN{_HE7*Eg zC^a7+pC9JNsnjr4%`p8q%(w_n`I2D9W{3%?bK!Jij?i?;Jq=TYu?o}TxP90x;Rc}3 z=9BnO^G$#^&v(o1akF0?cYFIF-fMBSFeUYNb=)j>``gVP+rp2-@GvDz>OO1^ht>BD zT$gk80f=``o5!oKzg{2U|KsKTZoRsTLU%W6RxQJ>hUc18)))61- z#VZM^5rPXz4@E=z0F|;Uk9q)ta2kPAC^ng`q-v@xn8Y* zm>TJ|7M=%Ecst58HFA2jUP~83ptcn$jYt0yh~sHQVB*mu(RdaY_ALY%gl|ssa%*UP zh9HqPe#V3F0%hXYu21nHNK{$A2WSqafEQV|zXs#G={yrR2FzNTURw>#*${2b?;=mu z2a#%NsQeiCtfdixXkmMZNRxd^5E|bhK3#hNVjYbMVvA<$i^!xF(ZRRSa5GCC$DJj>Tt$Up3)7zrGO^%iIAz_-q=!2U{Tfi9Q`+oQQw0)c} zU6mQuaLv5N`gy-!9$p`AcK0}<<20nUHFPuo2eVt-8#b7`5!=d2|RaaxucVr$9}Op&ljUa}}69rw>0 zGqr_fFF_&}S)?;4%6F@K_SdbZt{>)lb`*&BL0yOFD_gR*zu)9v)t1f0tU_E#|{1YJW<0+$ULM97!xlb^N{*4 z$N)7QnsQHqY*<7VG%w<3K10|iR1t`VRhd8hXk@*m*^+%6YU9iTft&$RS$YgFw~O`h z^~sFoFJ88{F!8tk2i3JMFk0@RFKdDkuv@F_wx1f#I%YXuRHPm zHM4U6J~pjjf0PVPs8IzE&iN9KN+QD=?tA%oBr&aG$35Ia`o^X;?1l6jgvhXl`%d`v zL1EgTM}93o~iOqcRdKC>lm5;~>14ArH44b|C+P^&ov zI^!H_UPkm|zdi^OSvwH+Zu%fl3%qxmk?i3daOgh#cLQfK;AvFme1@~-XZRo%{y)Ok zRq$!{)aadr>cp{K+bhpcla9cJ(RE~;uRhHglBr$#b>O6SHA1B6(f}0Ku0{yd;!A}d z={>ky#Z_w^)ueH-Z>ZV4F2V+2lx&NP%CSc1;gcHC2tl+gE|*LE3fO(p=1Y72aTNng zDUT74aXB46UKS&+-E^_dhmial4BhEd+G^3?{a`)$m83%OY#N?(G0nX|v2~6C`d07) zlQNX7a|~vvoly(F=e&T4^_qT1FKBaU66A)^Wt%)&JQAK>>>*lglS88;;1q{G%_5Lh zUj~6Z%^`d$uLlQ@5d+Ex^L0Md3^Hyi7}RheNB#JV!T19BEMB-cBKG|t5C zEGkH(;bHW|?M~w-YQBl;0U(jI!eC3?1Asc9W;f!Ho_e{XZZBp%3C}5`vR8GUAS!al z=Ly*CrJN_>Ib~kC4(?l*blCUnR=7`)hOo_cdOf{$Sad&cb93Pv=|;J1JFf3iN9}kc z0Os?Y9t|*IJKhL@I$U|vn>`Hkt<(ms)*!XyzTv@X8?;7))G{s4AmlH< z2F=VsR4fh6btr06^xEP!CH_FpHx}#@5<&7Dt2g_kK&kPcv3!QN( zaY3g)?>KeLW3Hl0iOY;o$rvQY#m6NKATMFyW5j^E8)v}cV)^%Jukv)Z0vv%2vgUWG z(71|k_asR1Q{xi;**m8{^_w~baS$bs5|d4-)x+}X!F{q(NvOoOg#Ho2unwj4kBmxq zA8fL`7PB+7DWNSs&2Y=r&CP!E#}?KcZc9oF4kaE#10Q}Ke-w4cRwcx<1wu--7hRAm ztxCQDj*DEJjfirwFq!$X+5G!<^?IU6+c<|rYgSvPaf01udYbaPXk;A`v8_9=o7MhAd8_Bc zC|%!C-(dRpT5A&%zt86PqbV)!+&<`H$q#aK-96eB=mz8Zj?JL{O@)2OW-PAn*bPR? z#em#MduHtdT~BnRLf6|HQ(zq0K!v`J_2x!g*XYiA(jRm?+hK>Y{guQLc=&!B^$7Z6 z(6Z2HI7Mm`n}3vNqcf+0FFR{WEzX4pEb?}!$n-2pIIOjwU=*3=uNtVlt2El*+U-{_Ll#ES6@bc-WK&l=ynF! zq2KLy4-@_uoLnLKlD9>4)ABkGe9uI?5();<`yfRM+xYZ()Nbbu>WYK*l>uVgOvcW& zTyr~Eu&8MAWrs^+^7PD}gAgP?4JLW)6jFZfsD-c#P_n2ZLCfMNqFAKaqKf3QVM<;W z%9&KLTtXDEoJkFfWCy1ytnskU>5qo>FO2v{!bumvR!V{cv-^Liomn10Uqm^T6A zGyRM{(6$gn_)~HU25*+Z{8T@!BQ?ojofi+_4W1%G5TMUv5_O!j3&?(Z>TggV!_uF5 z9=3)lPS6;pkHfYw|C|KJi=~YR1Cyy4Zi%n6Rd5yZMOXZox`6Ue~71w`the5v?d>R7`9JI%JpF^i)^Al?0 z`e-&DxUo3&tX_+gXPpygaCKfI?~thNF=H@-KH>Dkbef!&(?uHa{?Tvp&l}mhI*h}8Zt*%CSff96(zjHiNwyBr*SbxsM*xG{CO*- zdaCux)Ye!W9J{1XCC;gkN?=}3B`}ht5|}llQr0VzO7k}30gX>m;>JOf6mJGi^Q9RI zb1$l5GoZer*URNN=rk?$db4S%hsvd8{3TpHiK-qX^4K;FD7HYIb`rF4Fk{aFp7xH@ ze*b#RCt5Z1ObgIDbgJjbFl3T*t(a*Jw<2Llh-&|Yr>_ChbR2-3q@x})myUX*Y&yD0 zU(vvat_&n8N#iA`Obp~H)diDY%#_GYIJSUtAh08~k6H&q!K*TI!8VWXhIDmo-ZFzs zM`ac0ylDozamZ1TF$A@wSYHJsihEHrin-o#x%5>%GEB|gtV-$(!Y!-rO?}%bruDtO zBNyaOMs?h4sU%_9Jj2oY-mGXD16$NQJTseL`I5X0-fV$GQmFE#K0RPEc)7a0#am9` z?fT{0@_Mnnez!CWEMIh6quEA$Z&oWVT%6oI*e+3KhLdkExHe;`5<8c%Z*X*No29}n;m#pmB{;KV++ zVgc(oTR1%KW_8%C%|h3_K=JlG>6CoA8-b)V^qPG$xgu;%mFDJmzkd@DKlA?0TJcOjO{mdbb8EEtEjCx@&U>1-<}|Li{kqsxl~(Ezv7gb;n_po6`f|6QHg}&c5yog3ks9_A zYgpkp^=5u^cXkWykeE&7GUWE?uTyU6ZzmoRw>@agRXsRU&7CVJJkJ1HhIxjfwb>aU zU_?6L=lx8oJJ{8I94ZI7dV~*Dz_WMhBef zmwNSlBcilhsD;(GJ47WJjn9sb^oa_4G<+XnTHO@{`xO@!Pfj}^W<^2z8uat^$*ZF} zacn`q`E6rk&TW2M!p>_8H2F5<=7L}+V6gZC)se1UByY^G;fPwFtbNocF0;Wxh(1xHBm)<;(R^QHPpAw*W-wM z71xl?z!W?Kax5vWzyEoqRYg4@c1_dp`{_#S?r<>yW6D(u#}Xr*B(T)F&>j z!7}*Uwyn%szMfEAiaG;R@C?YYq_pC4{OL=pih4lonzl7qfY%ou9o2x?#HFY+Fa^(m zsFKo(9|D}dw5q5F#I7kq!4mr0mR9Ebg|{W_y(&+Wj`X%X_vwc|I&mH8%r*rNEsxEc z!4~H7qIm%**r8Faj5xLW=WxG8^nQoM>7&n_7`YX zh(JeUY+YBAHW+5X5|(SP|K>i6KPBP+{PvH({^xJY<>C2e`FS}VMVOq2iU%6bCyD*f zKh4QM?_foK^ZNAsxQ4^>e!GEcGHtpq8NoiY)Tp`OW});)-K0=-OMCjXan&jVG(vB@ z(Kn@<%GC(2))LBSBBwH>PxEKlT?Yq`l0)v`0do!}F@RI>$_9Wy^PadGZ06o{Vqw6` z7Djm6`Dld3f#~xx1mQ2jBsL}<_Kr7VV^Sr$qB43KwG_|@lntOM2@UAx=kUoHY)_ld zaD*%T4%7LYX78#!(UI6fBw|~Wy!2p50%L-OBVX;Ik$8YDoE=F_<^onSF(@B=^NB#V z6^)=Ic6q!ot!;L)yrCW7H8;vczK7{8sI5&`D5m#HEP`fIvhy-Af(8lI+N6dky%#qS zG#??1$*_b%*zzk<2%0IO%sKbO!t%Md0rJs`1sL#A+HyL~J*w=~4v<84|5P*y##X>> z`bB(&g$i~KtMd0mXx*w4xvpZfRFfdz~UNSUW+lSTt@@WTZuV5d- zQ;U;?>G)&!d{{l+9+rpAlawiOsxg^wSMT6d=H>17`}TN{@GvelmiNH&1iPT8dyFL{ zsfUE)ar0ft5qgw3poHp6K-NjZlw@Y9tU0E{sm8=)XN`w(sj;N_StCh3BphLWN;pCf zf|-pA;2M5!HO%3Z3S8tSKm_b?YK_QpRXHC)kNKVw;zq)9qhr zX*y($5UJ<;UQ^JZ5#PYxiQCOS$l0;5fm-(}heL=yfB^Plq~PU3JNbE!9LGoCaMuuJ zVFM$IL*!}b#$JSqS4$9pO8{b`kr`BQ!5hD)Ho7O6m{Xm zdRpVcHlq2MtR&C)v3C-F$&5tTI*3a6`hXHe`Zb@7qE;ZHsCQ78C>sNqDr_E<E5JwY`0fNjs5JO%3f(MpG*i(Zu#+V!FH$L27NQ zW3n!sSWjyT4QTUiTtrW%F^|J9nGv++raI>914g_v%8m2FfKI~Gb;vjJKN*- zkInM1{r)K7VVxvQFj`-!nG&ZG6TAjhIm6l4@R?-Brjp5gL&3PzSlC3a@vu%3rX-Oi zOo0ps{!oWZED;l?a>&#`(i=@5 z<~-vzE%3Ati6$y-&i5=ktUwK~G*e&!NCXdy4`Di_S1UA$~>H;-5A zU!GR`<1c4tfB6L&%VxB75~7g;y)YFxxmz}vSgTu8rPTVJd2e%f;b!sk9>@V*kj$a2 zFz~c@2zzvatq|8kZJX1qB;n466-09t zw+PW2A|lg8HS6Q=)r;e)N0lR4O~U-osY*O593SmH2C^|(U|YdmER=(>*uIAUUOfy; zJ*pf@kG-1yiARlNq5L2rwy)v8(|w8%nOD&vUd2ZU??Q7#hXx~R&G4OrDPFLt;MCe@ z_C3VvDYR?=Qf{!Oh^h$HSgHt>6f3sRQxp{qqV{>zb=3)?IE<;Ci5qdfl$|g!WBIHe>1}burTGtgDYnM0mXxjClYFcH*qr**|t~Rc zQsL8wL`Cp04kUe;^PDD?xik#>rU7EnDaQmoJm^3xnTk$1CNlw1R&O5Xyn(XhJwHZo zXt`+GR3;WGrg_xjR6>ZFnC4J}2?6@%rg(u-7KwfmkVT?KIiydbZw5ju#Den0Y>!~a zEhW1e9u$FO)XCvFyBZ!lKH&h-u!e}kMa+v#(x71lF>T%$eM#%q_}yjF5O(2^$XapY z=Cun4^+3zf2t>vm<ESiQ7<7;kKl19EUSNQjUenh~(2U>CB^l89h-vg~UsK+(TdLTFQr7wXs*XECd zek;{nYd1(W*Rlzu#>r^!O|<*or&Bo&SLVLN@EtDosq&cgoB)xzT@UrpuFT);xlyi>O)B!iE#gPvmbCQ+vnpB|Ba4)oyjB`|&ecOH(1m?Y)8bwa-(o#VAHQ|Kq-`8?2UecHiE zlAG1T&GX%Id)(|-$KC$(+O%iuAFI9D7XwF$!R8$Djmt=#I3k7`PuN_ryZz^V9KKkTopdA*i$(TPOS{?0(Xcr5Uxi6c|zu_MG(?;A#JtS(g zF4b`P`jB$HXeA#Jxvf;Mo7MibdEG#Z(YoHHz6D9%kF76{Gj#P>r!I4>ypaYdAwWqf*CAEkiZjtsF z$$=WvLlRryne^|?X@dPp>f9nvX%UetB9DjRYMd9`C{vHOEFu#_(>5^we1AP|1 z=aOd`Kl7Fg7iX#G{50bW*;nwLpQ0}`as(Rwe1HRfHfDkn4xOI<3tQ2;bq4#B_!u9? zGJ|<8IUzeVLZl$@q>PX-laj&Q+mx%XwgfTFI#I!)xhfb{f*8%2RnV~ZRp8LBf`>J) zf`@ixyd>?J6bbVH_LMvyV4Zul-W=hU6+Bi7Ui#mb(4RS8-tX3{d-4U1+yk|m*T0*T zpT>&f+4%f2kEvIGjSh2vJC-yS7+ERDy}@m~uw};0LO{>)m3|wRTnHI98?EE`4*DU{ z+v5;n&fxSDFw^0fYHAmCRN|pMvp0d+`^d!gq~ew5a&JxzQ{E@TL${KMiONon$=r#= zZ6~rLjn(?c2Kbm}M(O6*;=F=tw$y(zCr$$U>Fo&ol74+lqtibEKck;H5J;>|a?9d99G@N17a@9dbPi04h%BWi)`1-%_ZIffB6 zp&Y{qhD;3cmsj#)7k$~8Iyy#kj%jNj%bwEwd^DXN+SyqT{br|1;v$JkSZh#eQf0D# z96>RH5yh(*!3cs}1a9ume1;<(e$c7S)QK>`@Rk|n+^~HQC>#>=40_np6ET!r@+{cP zlX7GnG7LfYPDD}g$Z)jwpG0!TfR~gv)CRfoZt#q9u7@I0Rd>uVw)YT3x<L z zkAc_Mm&-5f>krGX+i>3O%}7Q>at7<%0=U9Zez^`mhIyK z){{T~b^}9kH|Yrji7i~Oe6u=i*6F(W3FyX0XNK$PN1|^QU6F1`bYwL3Hm7!#2;Me= zfkiGG#KeJd!0O6!`Lw!aw;fzAug$Y7TIttcU~s(t`I9tb9T=#iy}iAJx@<(Qe^QxN z<)Fs4!r)?n_sshxG%NUx%IEdN)fQe(-^`oIyp@c>XJ}vk`{8(ZzxsY4+wGg23(T)Q z%ynnSY~GWmTV|H)reoIN-}za~tMxsMhq;OMPMj7!rl}gChr^+IT3_++@g-#n)#rP* z9sfo;Iz62hG1-8~NZUlK?E0RxDIM*Bxkrzg(gXAX+S#SwF~W1u161cyoHRfkg{Oc% zKs&UVuCr$A!NV!*L7r?tWVv*Ec++|S=mWH~g>{VZ9P|LyaasC#%CeLv8xUEpEYW`2 z_%;>L2WV$Ae2nlM^Z?ayS$aKXS;~_Qh%8r@=ogFQ%Mv|Sbv*j0bBl6m6CPdEuAeQi zV-h|GJ)p$c6I`YVm1)xJ^DSE&)}y+s7rswmC)rAT1LDi&`k0f)3g`p0r+KqEao!a8 z2E><3J@R$v8}x0XLm^wI(rxCzb*%f<`na?gD9>|sTXTriNj|_dRjFA4&A-+(I6Ef_ zUSQMna<`v$0=tRJlO@I=DI-$FUQ`ZiGk?-faC1$16Z??ZO`SIE_Sh&|Eyx5tOdTxF z>~tDTsU2Y>$GCG279IQ};7mQICjvu6oj3=FipAuW2{Xj)>N7zZF*N zQK4!%X`FU0Tc5h{t-bGLOsnF8pufg9*_@tzK=u=zCc;Xnje)-$R81>Z~ zOOYm3$J{QUWE_x>!EUTz(Fv+6U8_m@9begzy*^(%6%0rNO{#MXKl+%Jj00knz5>3E z2~a~fAUaKYaw}kOn}fhOAjYJg9NnbOpH@?K3I?QsCZCVti0B0G0AL&tqqypf2~a~f zAiAU!|Nf_!Vx58kX`m^^zn{Dm1LJ@g#l>n&fEv01(IurAzZ&?{+G3r80coHq#oT8C zZ~M;WzIo6yii_2l05x<2axf{y_`SlPR*H2B2Bd+e6muUa=*yInaX^gXVl^f}4c&m~ zl2VLcO8jZ1Sf^k>8feNC_i4e~mSXNZkGEwUbfcaoS%XXU+}9xbD8-d$Og3uhXgO`( zEx0gu4b2N(!A_iNWsRqX|0D@-kqUkb&7YPEN(nF`7hf&V4QE=_4Ih z&{d%tRvK&TLZY-qF>Cj*Y<>N=Xgk9xdCeiAzrdFS`{VP|FU$Y=?H_;r&)=5I!}HDZ z^K$twbFxk4yw6r=yJFkwj7OX9{%Zl(9vY$3U%%{O@pkne%YS|Q=k@L{zYx23XlMTN zPhfiz?0np=m+(D>xt8Yhi`m>mucCRmx}0ad-cG_~F_N{1>%2Ztm}&(8B$T zS{&d$lc%fe&J+T4k<-A{UF*YqhtfburCi1sh~1lvj| zTeJ-{rTXjjEtXgFcj)Jz!uhAs)3d98KwE3e58#-;Ltp=N5kFmBd*AtQ;(LC0Sv>*W z4DSC)Y%UL*$K(Fh1~A)&KQXo@gvfUKDYf-gV@93MZ1pw7{ftRVe;|0KhUjXu%7ZZ3 zFW%Qve$0Q9rx$S*pg*A9uh+Xdj`bfmQ*nxaa<)*qH;=dXY<)Lf*y!zQHwIt9!4M#@ z*)`lw!6o6MKMsPt_vgU zrCrYK?^T$SbLSy~J4J=Nw6fIfzy93 zyd!M=S9-NG{%B(Sf&B@++Eo+ds)Nydhu)H|_WSj@U!jll%dc&b8o&1Z{PJsCjv7D5 z3L_nIFcF;h0DUv~tj=~Pxd+4#dPw(^q5Ug-a=<4rtK<7?V7bL7a4eO7LdaktnOA`i zh#w$6AR;V+dPI0~#3%5nO7P@&d;-h={s~cWlT(2Yh#zp>AR>Hi#UjGeA|Dq%Abx;2 zkCNa=pbC~22@dYfii`L=V9kr-6={<9EQ!w;lM;0$|Jlr(m9021L z%fK=-5n4?}7^Nm0%84R~#(5$ilb0}C0=-!`&(YwfjB4hj6Dc;4;r*`2{31%DB0mvx z-XbM*S8Aa1IxkZzCd!J)Psxh2M5Z>2_|QYklZURZh5YFGpe9RmloC=Clv~IaW`@}MP~l; zZ0dbV6V*CsdCW|xif49E^4K|54UcnB^0=v44HfZGvdvSIP|eKC*7lu5nHBjpvYO)7 z!aDo4vFbW6ZVozJ&C#ThZo$*>HMB~m=K-x!vYw{wDVAZBX>MoD&D@djEk4^TS#aWA z(?Ow5$OoTV#nbHEKw-`$GNZ3|bDVDKp5rmCv0&C;?HY0)*oAr#cY~|vo@egW>dl-` ztFLE=IX*3OZq~mWr&ColTR+d4=~YEIy{h85`gUD0Ql~OMW#25xLv(71C+nLP#Xz09 z!dZWPS(429Yf;Oy{*7pT>GXbDeQjw>z_p9prUtxP?G$%Y@O}I^Ij`l0(`Dv)xkl;D z%yeZy*drk`l6FS@Y&lP%%GfZ>*QU}Xkn+>&g)~OG!XfpURzc*}`WU9w6e$B;aS{2De6ou#&H3cL^)XKC zJ0iW1t8@)Wc7dunM(?du0IH`oFj1aZYb67T z(Jq-a$LPJ43PAO=DkqJRer+iAnO67Y*2)-2D%!=s=2Z0FN(GRL(|V&cM%W(GTpQ-a z$>u1jzfuLn=~h6ck=j*K{L=s0d~u5Z`W*c0I-QH)dOU%@NColu7BGI3GU84Xw{-!} zuya393;P*5wXi>U3z29$tM`jXQ8;OtBE2%EASVBz{=Bur=}sOvZT^9b&Q4dRs0!zl zdD^sqY3wD<4^j^qU67t0RpIQIwVN0)7PTW~%&g>dpU{!xK9sv4{O&ENLU!`o(}~Q+vA9&dIln{|uhYkKywx;byY~ha6cD47#8Vn;xih{D^q@WoeRr z{zqzw%gWRef25Y_YA|(4pQgUdGHwdN7!jmtX_k0RKTwOHRWN1V{y;6J%@Q;%?NSu< zVyKl_@1aKZ;&iHN21VeydX*Jej--5 zniEyc;CHl7c3>cQ^2GVLWg0Hf;!+8gjdp}kgMPPy&xlDw3xd}$FTM06L^Fg}(X_3> z&f5D;8zgInz;&vNmtS0=w6mnz z$`ZUzeQueiQO*^-B?_uwX-0lhKVeiUuyEnwKL-(6Z#Np-;%+}m<;tyRodY-TSdLMoWEnsQL z5&?0Ch!e$NTd;Gc&K;kXYd!?7X!Ko3i|8sGZfLDi}bsBedx=K%!~{npRt8?y6B+8BM7z9x{uPC!Prt zIhl<0n_ILw5_v15oW1D`n&0HoC?x~dsLap6nawV(k|GqP7CNB^-;`=a#O_LVKRxJM z15v^9j#@^XX4EpGqn0t9rPNZV2yGgeY0fq&43JV$Jf|wk^?2S@<`hl%DV+2%6*iS9 zQ`*iBA2T~|$U9jY&Ol{mE_Rr*dGn06;eq6t_Rwha$nA;IW{2}r^5NbXB_H}J`P`g5 zY&Ov*DRot{(wY4R=GeWF-IU7?cIV#4-qfjbYY)*{g{V$D-~RTrX4IAO<$jZMs8`xjxy+88z9cgUT^goM zKYc1@j4mDIhUlhd6#TpR(`6xjIU^c`TXD!duHOuVnb8H}QbPy=J;Y!wM$|c;ob*h= znvRqySoe`S1#3eJCuK||AIWwfSG9#%z=J52K$ZlnRnnM)6)mY#u3Oe26(%sg*hftGNm%WlSV>$+n{Q)FmKF zC6G|T`m!|UU=3R2L}H%TsqH4Ej{ZvkqmMgU@fHOE$z|N&M43;^<@d+u<@)E(GdKeH z_+!6&F~M1z05DgCfqD*fChHt&{+oKu!FWyIu6dH!sw zVhIZMX6-Xdvi436H&M%dUwg5AxOv`OeT6B+%lqAWb?zkAVz`HA}JS)XoJ>wn*^w)gXi z)XYK*S3^HhKQ-&e-5+zP?q~~9j#9TGCpV!XZ;^!FY6aLL;aO`*)EqT+Q*&yXj_Ig5 zktPjno90>zq7_@iQ>%2%i$aKVQF8??i-Iul)3ef+MZ-${^sK&RaVNHjiX>@~=qdM1 zd&X5V-?XSmsar8pt_>x}TP6`^?fn@8|CIK{e4m^1;8LTcENfp;#`%?%v1wqopl8Zr z*1niCoUZxKKQo(|4 z<(^H^r^v>oY>lnxqh^B?h5Mx;AJy52ZbeQmZIDx)i4$in54jYwUnFVjUVQRzQkOWE zk5A7xU4us+08`j})FKjc2`L3b*Qvc}@Ipo@;U|c^ZO|Hds+kw>EcIKAUA55d+G{;L zMaf0cHB7bI4<@12Ls{abX8gE)T(15w13cA>le(!nFAtA!qqB1O?426;Zk`{W)O^lK z&39oMd?g+Fw6UpQFP3leQZs%s9TPJ#u)Z<}hO+%2uI&!|)T|#4&yV_aC0=UA3lpa@ zM)YZ8(|7kQ;q0d7v^yLWIXLZzDE02Re7C35Xjtqw#*Rh&ZoSx;GO2taqZ6i`nD6}i z({Zn)b3S^ui%kO^Iw7C5w{h{^G=I8TKlD+vokPdwJM@s@Tq^ia)22k8$Slsq3z$$i zY?RrEPI|ucr-o89`{>y&HVt&>gnZ&s^VCpkoR6B#QT9Sc?mfV{(isQc6jbD?X2!93-#R-Nloq;Odu?7p zQG`%*4O6X_%sMFa5HB?&opex8Qa3fHpLS3%dZz|HH|?O}b53eLoOe*rp-&qd3|4h* zf}5+T%}R5XmdrW0+tQMLMAc6nCz*9nq$}}KGtTo4su3`?tTb1_m6Pe@-QrvY=Z4b`5Rmvaj!qbr*wxKDXy}}eo(-oRG<4{MeA3~U%>5(Tgi*pgD9aQP+COGtbwYds5NYPvc=ZVt}s_5JV2Sz6@HE!NP zQ)--#nr)t|Fr_9pSHYzTbyIU**5)cWM(?ENOXeFCDVzAVv%C3*7Ix>WX2*F41uOdK z+1$K?hRyk?*>K)L!G=C+HZtp=;3Hm+k)NyJ%6#iwMGKby4$9p7lJrHn^%HWBi#bqN z>%;PJ(rY}t5AH3HN@G5?4R*?i;^RQnO7Pp+@N9cw5(nODZq+xkxF18B#wzqS?bQi| zHqljBwOahHRxJoU)tup{wQAzfUC$nTVykBl-1Y4K6WwUnxu|B7FLl9P&F;UsZ6Oc5 zi`-me$TdpE)R%&&m0;UsM%ro#fw!7l)%K{hsnFZBSDTAsZj$K2{yA|13k#)AbTak?u=|AUh>*C^9{l>k>&WZNyZLc9@H|}b7 z{LEkf0`#s$RxZW8Yq51IyQ*37ga6iSp1%8U&E?6vHIu!!I_~rsR9U-}oPa8F%dE$% zGdhEV(X$i6T#4}u`@W2~I3u%kd`Xw-n~GcvpjLnj+rou@pFq+W)eP-1RJ(@iB8K9t z&}!9m316*?I;)w3m3%dI;H~B+Yx-(t;@iNBYx@nn=&R=Si~MR@@7l%+3(HMyiu+EW z`WEAwQu3hyIf7B#8w}mmanq%Lb$U~0HM8Hapyu_iZLDtBLL0I3R&!4u2B=9VH$7W& zV7jQQ5#8u3eyRI!1Teq`UyM@hiysTc1J#(|TXzmG%t$#{)>KcU7~_pAWcA z68a8J41fy6xr`qmc=85cJ+J!^p@9}%^{n_oLIbV$MP6|c!H*2|r3+ovtn-%!rgT+i zjJdaG;H~Dq#19pGN=s9V_^Nr+j}Fu+og2wRUm{~h5r~q&F)?GtoTuao)uly ztp4K!HLG`3v(ir#)V$Q$F+&v@v>5}d-9SjElI=osvxS1WoV=TwEi(sG%ovV7gM)h5 z_ag@+p3A8?BQw{6a=vsbrfCW<22d-&$%-L!Ib4ithV~e$6E5l^hT^NxYSnZ)My-oF ztC@q@7&Ud^t>z~4F=}Sw+rW$SF%7)vtLF6+GHP1y+Qtf_^rkk&&E+(${E*3*mr7@r zYb-){b=-71MxEZ&Sbf|f~Ya6SXjcLqivL{5%Ett#Ua#%2z!@AYya`J8%o47|H zoy*}ky|11ZCuFb`i6x_}p4HFC=xMz#@=AL@!nqtajold;`nBnKD#mRh!Tz_nvm66p z+~TZ~&gHO?

dFHXqlvl(6WtbRU5PwRb=S6sSqLI!E|u4>kKHpXr?X)9WAKE~v& z=Drlp<#5G{_^Nr+i5PW?rx5Kba3ZE%1wyD*_z4*`yLZ*I;)INz6Rr{W zbUH@OOPw7vv%_DInX&@1L1D;p^4s z_0`pf<=>aLtK$lmbf<(y43<a9*74$Tu{{5xr{+N^*q20O5J)WNQa(JkUp!!Vf!7Xh}W%cdkoT{ z2f95|hC#hs?cvhHHM#K648k6F`v>S0!^MPq)2@ELhTGWBmseNUALpYx)Sa3h##2TL z<#&qoKTj1YWgHr*$+U}MQOsyV6`IgL3{yCx^(cI2>&3&A%nI2Aq_7-k4GeN~fZS=c5@>yqdRkV_R<|g)kkO%N)KDNG>&>Iyr47(AeZI%PwQG@>d_Vtr&QJRH09a^Lf+1=WEP}1`W=;N5O|RtrZO-2tbdH3s@U+jZ=dPbnnq{e%St>zj{df zl6Kxb3NGh0@z$ki@86^1{S^d+8Nj=Dq{a+VSx|M0erF?bISSCBV{r}(SNqM={c622Usu8MRqM9_JXD9a%hl7985_0=BK|!pU<6=>hs`Ry z{|FUrmG#nz=qa)FA4xqXDOp!oo+Q2+%PphMWacZwCW zbVLNBWZMFDv_2uk2ra_E;YH9|9#FH2sv|a60EK+5ap`F~VzOUj`|{KNJqQQXq06f`}hveU-*WqsZHl{J<< zd4Ln!X(NP0ZT@7wA;g*P#4(QSPqYM`;qOQVY-nv8)7*g!-W`C_p$OCEb$Xk%YGQCk zsFK&h|GmCkeuk=Oca!|Jak>zrXy-j`)bP48la@_y{f1y?x{erK4X7pXoROI-*c9&= z>W1=n&Oq1U2J@go) zLywz5@95@+5FJ`z-LyjndUq%YLTP>Z#UKOpv=2Nvid;JLlb_VDX+gbE6?OQ=A@E=XYCJt~QNnb5SJ-{Ys{h zqiGHsl4c5KhUnMgUQ*3U!go|N%(Pp$$Gs;lF7_mY+wvuV7@(!Akj!ERloAqFV}Ydz z1Jb3rpv*eJzemO5y(ua1wfFvTT<-3=S`{8^q`Iy`6w4b>nqtU~)`x`}nRd+uEmqcB z;?8V|yI&0`a2!-unuUOU#f`-psII55h1$B`d5aLQy{IKPUFr3Kv~7>O{`M`4H(F(1 z!DD2OXzLi*o+6lo8=aQzg^^L%+xA`hwr@m%%)xb~VG7z;9J6?XRrVCdRAYaem}0gU zMHZ_k{XV!;n{3`Tc7-F5A$sOTzg|TSW~8R(;Wnm|U(p<*3(9D3IvI!|T5tiWVa!X? zXRMyq`H@f%8DZ(?^Wd1;|1@W|E`MxqH+wkr=S$D&Nm(?^!)}F(p$a|PIE5w+|IvI1 z7L$Y)Y@9w5^Dun~=JZ`3pYHPq@aI3Z`?mb{ZuxBiCtH5`6%IIrcHb^o4uu=1ai~HB zbNceBl)c#?JZ}1PZLN0tSm5gFk8ex(@ay_`_U>-Ce_8Es@u1P=arND_-c1#joP0e> zN=MrK?Mx`*kE<)29#Ht2&#-Ib>WOY~!syz#I-*mS>-l?!sbK&0&n?(eEgh)??`zvZ z?kcbpqDPB8z0n<(*VJEK-Jw`}PIG#xRyyl!ih(Yr^%oIQ;S zoVQcZ|7y3Lgz3ZOfnZKw!>bS8G+)-!TjaxhYGhkQNO5{pEe5GdaXM7Rb@bP{lEQb| zZ(2zOJRMQFdS<>2Ztp`(P4bMG zTLrX7@8T`=RzQ37LNDakxjXZ*w>uL9_2`0rNDSB3&0>I1SHnc{<>C1Tt__ym|Mz;y-6vz`-QYTz|FU~xPDhrB@7FgA@QMlW zP1%0gn-4_)qp4(`Kf={~SAU^bd23Ht!;3xPu2Z~)wW0I`IPQYj1{|{?1MfWT5flQU zqK4{*q5VNps1pbEG)$Z(ccAtpQ+j!+FHH?GGH`g+@EEwBl#8!3MQIJW5M%Y|O72GO z&e8CSRMggz1@Y~sm}n!wP?FQ4Ar43zV8%MOCMki)ve0kd)lqaL-nXi zFF)-OmZJ4&vlnK%`(6EAsy)SQk;ClK$=){FlZ-4NDr~9rEFwxAhS;Og=8V5%)#q}9 zx)`fRSN3+)uH?&H;M(=(H&OcwQ+wovNL{IC-d(}nt6dq(T)~R!^v!#6eJZBe0IW`3 z!8NL#x&o{YUCDK-9l8>%4qaV$v-5BMyj%M(l1^?I?t4 z{yEU0N=+KTovmZj-GTNfjjvtpNy-?jLzfv01c$Zvq+ANtsVusLwIj`pvM0yz5?5)w{3=~3Z9`jm9nU=T84bm;Imv38UU z4}wY>=3_hxO6fvDE&48nyB`*Xv_qhZhFB6A9T=!X9}2mqwIe|Y3TkPHhrpniJ{VM^ zPZ_+t6{U1wppJ%cQXxGcJxa)3vY03hS_n*!8oX7uM+<`VD4|!&_K2Z4J$n2lvps4& zN{<%2ZMH`Wg7hdMch2@`Auv5^f}3Z1^aMa%is%irU5Y3WD$=)}aGt5V%eJRaM`1eD zFqhF{BI#pe&^omF+i5!_c@R|6(75|cYEeoTN{^Q5!rC4k69Q_`=W`^X6#x}9q~&~n zZBH`H5U4^QMl7Nkp+keeNfy&WFT;bNl7>9-C@7^11-0k{a#z##G_i<*IvS!uke(z# z5LBX15jYpN??cQ9phH1;<1MC#K9mrsLy@~|seg(kLK>i{d$Pqz>Ys5Lviw4>)a^(e z-Sx0tvu0YVlSO6jkLYRFbb(p6j@W`Layu%0fYYHTb3ty0vJ7H}Mt6p}xudm17=`Ik zsjPv9g*R!DE6lCo<<@<8lg#;0`O+(EGMX4$Ji00GLt*wYhde$jlFue zj$$+9_Yk*+BoOidpoL1L!dM1X(NTyHK&jcX~$K0 zYFSSlYv$t6QwN`u(UBV1G7ssvx}h;?k4QpEi1T z+3$!fl&864?TFRYkQ!4QNv4N>9U#{Qkth0>!1Zz;xfX^?^-JxZ86ihDFMa6RhioyT3-76A1t znqFRH2BRhW%%yPiiPWTxZ$^qu3_K~IP@K+}jqG>dXj z161`FBa%=<@~*ca&3bxEQhXt`KEB(G{Jp;>be|R5_q9h8hQy#SpN&D5h{->Bn4}JEAz| zVMnVSQZO004tKQP0Y#KiJD{90sNID%gV~j)>D{^`3Tzg2uvS;By4ulHtb-k_c0gfG zwGJq&DQI_5=savifh0lpRqj%lrI&O7*Vjp1gi5Ngb)=ZqbBZ zdhemF^BtBmQjezjPR#+DLZl8&QPxQ=ckZYz4Qw5;xiUby^!jdq2kB8V=U1N+1aV6G z-@s55;p=aDto=w#r?aJDW$uRVD0s}3)qcd-P$-x?qI=Xaa2;tE*D}dn&>iYq=sKcv z71G_l+o3#$>QOaU&Jn62s2){#|8if;LtuK;xWMSFK}+SEmpuFC3o!FXWEm#VxL$&t zdF$=FV2TgWMenNa=`BLSo5|tCs~Y8=!~c^ysNw zJKdLNnXf~Kl(aH-kM7#l)?MkH-XYyrbs4-KecaX5U1?d;*YK4Yx$D}eTPF^t*9oto z#xy-4XC}_Ky^T5(=-ZMWH$RW&25cx8i+2yZ$Ia{0^W*yX`Q^8pcUM=7%iG=ZcC+3- ztnQajyY1r)Wf0k_jQfGx+ ztg<>A2`kuoR%kswK0ZIpjZ>*%s+wUW9A;bur+i5;V>85rG`w&+F-K^+?G(-8~ zg&{pX&&6veEnZ1TjSyT&dMFyw2dI=?dDH_CgwqI=1fx$6pF37VBS0FA9*73B_^@1> z*2gyO%k^sg!_-KxweUQU!rM`%sgcvG^;)_R0=2D3X*~LuKpama0uzrOiN>?Iux}yA zAbfM0ms>;YGX#mW@iQKT7bp|Ic72KuL88j?J-~O<+r8AQ`!8ctM>D;)8k(~qXwB~; zPu2&KYH6ta82GHE5rSx8dx%JreM%4--yuF-djMh`jR|50C#^4{q};Oa5TB;}J0?PD zZIgYnb|H{-opAK6X{@9Xfhg&2Nqrvlw(e1Gb+@Fkvi8LV?^gGR0#s~*Sm9KL@6FL!3;S!>CnnP$w3iilVJnpUO4!Lv zgeQ-G47kZdN=<(D?~3?GLcF+eF<{4+4$X2;YX}%Liyt(n(3+ml6E&=a%tNYxG4TR2 z52^oxbS}c7DfcAEhDBsS^CEucGlYFY6@h42mHESuM%G)JE!oGRHqI;%$QclorN`!N zC7zbNT>jn6&0PKQ%l5Ee{c`@^s{kBQJQt>h!gS{2!7R6AXX|(~Ouz{99bm3^4^ON8 zW=4c5Kz0^zku^nZ2>au5NoM8e2@SiP2A_|-nz_Zgkq~bo!81lOJbN8{P2Y59yjwTS zhXOB?dc4j^pwF0A<8?+dyn4KVm&BVclae?y55tO=8U-1YJ|=-@9@2mr6Zj}6pHr~V z>xyNQYlRy=z-i^KyH>a%?ydP^Yp!*Cc#}m138Ykz&;pT|F1uM&e=lEAPfV-W@yZn6 z53@32(+c)S$?%05Rqz%I>8Kzwtl_?od-#Pkh)t{5anH4Y9h=s$7t*g3BEuT)I|x$p z4MAvEMTPK0sDT}#LX!~HM)xk5UO<_L#fB6RN)4%dIb;dqHzli~(3k;1rlpx;tGQMZ zr`Q^nx$CYK?s7vqhgWS#jU6_Vg>0CcTGYfeqyQytNLkY=cHBDh72RUTrWI`3MrKi| zQ3X%dkQ$|mhSUZYw~kr0i=@r1X?`EKjs@)4w1yqEk9p+Cu!b8pka^h9u8JBokOkDh z4pE^Y&8`8>->c8PpQ@P*6DqLpQROjbGa07cgm7?;XCBnq$x!VU0s*SC6QPnpLsn-p zX5cNMj!ANenAH^;V?hoPGa05!c_^RR5;qAoANYhL&V2MP zjS#5C*Ev1XdvGyzE~s!XQT-YR`-Ym~C6cc>qauh&FdnQYdZwhFG(r$9i_7H_zbSSf z$oV>ue_X}Dvdd${<6%yRkC(-W>pWe$^C2X^2E%;%l#cJ|?|z0f`IV$X@NAkBR~ZAv2m(Gh=c=Nk+5Ny!tdcj6h3rK1l6O^@HqtCLR+aW9-(7E!sB zRjRpQoRF7S;xZ#tG6rE{NLP(xBQq{7VBlla0qtU(0gDUx$k6V5o=$2wTz!GfzH`S% zXk5j&``4uSsc{Ma?48q}`b{I=IEa!*iOHta>S6ix;6CrDBvfKsLjMS1Scg*jM@A*Q z4>nm|i`g04l+YIDD&X7I>tVUNx!G_2*uwh6ZAodtp~Pco;3LuFkD~6_s)Ts9KuD?f zq6>1RRmnHNagmFAYkYe~+E=!{v(G6%Z{^$C{PQXbiG@XpBWm5@u1Y10&_4Tc4W`o##2bvm^bgqCe;fbBscE*0wKdU&nfLBd%*xoz?G-ja%_X z1X9kLl|-$0gOXrGf~~k72zJE`JWwbE!<6dK_Yp#}Cybbtarlo;c_bgBe1Vrw@aoa0 zhn{a(lqMri8KsJEM3jq#$;_9{=HJjsKT)J@oI|2Dt1Z(w!R~)OP5GT}UbmwY73+wI zZQXg@toA3$TRk5}>H3cP2ExDBT3i44eKx-zO=)qb0K%|My#F%#3U%sObc1ny$7WEb z@7Rpxx_h+a(+x(-#em#MduHtdT~BnRLf6|Hm4vz8ZFAJVj`ik7T-WG6ebOIv`{dy} zPx~uL?ZCtL+o(s-7lW3CJ_~11`A2y+I&&KMva_bt;#_!KBX5U_OwWyk!&<|@)pfcg zra5f;al&@Hh08;fKP+HnSmZJQapsJ$&%R5bbW#-%ZNdbU2kK5c^3rNJbR zokGgb9S{*_W67e51TC1K@M4i>iz<@KhUs<2LOGKvmP?2NmNThgk?i0!g{?$zP=u2m6#tm9H!r1mU6OiCKWBW*8;9|kenuZ?TL>cjDLI*gH_Kpts-GZ| znq;ufi^m2BPZ1#q(C0CUI?h?<2%MxI*|Us;`f6)O*cw7HitK{MFnt`hh56?sI9@Dm zJQ$cv^@_xTnhK6HDC_Zw&WH^XA9eyfA2x7s)Eds(zCK>qR?+O``TFa(C1@eXSc^?j zn|Y18Dbnd6Z}C~D`K1$cg!NzD5!P=8pT+=P^(hANsi=!{=*YnR6L2@f(QI&VV}9tt zy%s0wTwl?q-6?s8L~Re)gOU0Pr#Yrm0=1kj+NfYdJ7o`_`uqZ?PSxu{**wqT&Sn=e zWQ~7;DN1v@0c=_&?d#e07EX%5n-8F3lZV(MMsd@f33X9LYodzUrLyQ#)MYl{a+^x* zxWJsB4eDsaq_fZEh&e!A|E*O$q3nmD1As}IHbSP!-w1>`6_udIZ(xOKsBZ`p;5ZHS zkeM{p1Le|?IW;B;WBIQr;U!KacE&u7i!nmYrp9HCfrGv0rFyFM%GB0a9Gv&0PbJQ& zkV;@)PbDytq!O4lq*B%^lS=bW<^hdQQsTxzlN4_TP4lH03Ue>2Vl$w=qSwpiIOsGj z^?I{usfWs?W&BxPJ&CFwB=Xoc4Jfuio#vXj)**#GSa{l=PCNH6W4`yQp=Vlv)?n&6 zG7OpITq|ap!>veI5~A8a;puCDG#v*ZC+Voi%%!6qDVvUNW>+-DK$i@Xl%(+zR3--U zl1CLCKpIS|;9+DEO!p z@W=IqnKg%zyVTg>n_h8a18b+i?YYX!yZas7A8gb>m-yw&%k`(_S9hJ|TcMAL;0z}5 zrwGjT&{jX~-;W7INJ8UjZX(UDtL@_fzOMNE+YLoZ+Xp~BSzfIPb$x<>uq++&`vwNXx=ZOp}}vsKEFI%ZQ-@_&AgM$`^XrW zb29(?;dpny`hGCSGqiXW7+;$ht6q-LyctbD%PgT!2iL*B^Hbbc>w6f+21{3c04+L9 zlhmby0iZfs-{tS|wPXs-=XSaWk5u^+6wH>HA!_3?^LmmplVy3sGGjlv z9bab1@v`H=yU(A>RiNMqs&?IMx$I2n4Ca86VNdj#rZlE$rq8!*XuAO*9-1givSM}hCH+RgP@OTAi8Ri*^*7yeq7?BRRE5PidaFw2{a=;KFys2lv z;V5mKL!(t4TGCn2-ChqB=ZI+M8Ya!v=)5)kVzHiYM3mCg=uN@x4pB))QZeX^Z}~GcX0ufT%Rd7_0=nZI0cf zbIf|eq&ghktrU?Ch zy3+dlNlR;IVB*p`B&wve;-dKJ+g26ziA!s+46c8LX(|S@maiuim!i(V6g&fREGezH z9Dn-Ks-hkcyQT;Q3-J2FqoW!So46Ep2BzQ{5LHrI@k4;qmsS<^fY>!fC|E*&+tSK> zzwow%y*Kx1(ve=?=e}~#M<=c$o!O?~q2;l8JK4hAr8F-91$#WIl@X^_{~YeOh~96( zIDPaw?jg~KwJ6vKlFr__iOS~OR3G^?#)0VbG6dl- z#3ME)9`+(SVq;Pzx*{`r8nqPA2$T(=DG3eert0vC$x3_tBOWyir$7=D6F|kp=>Oo` zG6b?sS_CDr%j1QC+q7kQLp#80ZXt<$57S#}THBFOOz$OH1kKhucXBP}A7tyN-Ql?3 ztR8Nj@0Q!+X1_Y__UztJT4W%hTH80G$&`Z5n@b3qj}Y38AVTr+wgk;;a}6(|(KN7p zMT>u4AK|;P<#a6j>ITx;9GiQyI&9!H1HxtOU}LGPrIBS&Sxu*cuV7Fi&S9bZo&e{K zq4nU5(?&>OMX-L({TjQ8Gy(&&h3RcVOSFAh-7lYZp!N!Gmwsw-k}w^A?4A#+$J@j5 zuz8X)B~CRa^Ev1pWbE>G`+a*nNO%~R8q0fNd4i3_(@n(^lGH=O@woY}qf zJHqW|ALQ&<*g&m&^}@UK0|;QRJ_=qgw1=Gc$Z>oG4tHr#7B(=VNMw{|sNsmMA8_!_ z%k|kZd;ym15U-=Nn-q=aZu5kcYSQJBDpzOQa}CqGBG8lH2_QMKcWYV3&{L3 zkw_#Gll2kBcUMJimY%pq;&&Aj(v?nnB7Sv*B1Gf!2pL4Bgao46DP4qY8iFyx;z?8v zVI@I{Fg*jJxZ<@p`gFz>T(qAm1q%bI+MLQEqPYia6a;(mMDtu}X_;~!YQi$0wBDEg`LlD;>q<3olS;GG2}#gs-U zv9LJp_s!wy{${%#qLf6HJ}#8ULpEx4T>WgD!|HA`gio^45KhQ1%tv#IDs^$9wo9nN zI^TpjWvcXXNh+a_PqNYwPLUFZaEdBPPLXjQ_otTMoDVX&odvTL&tX`%^Yx*hWK`19 zL@Gz52BK&*{+O#7`ZTX5e-t&v#64meeaqAf8OnMgzvNr6QC2PSD6c{%5F{yuQ1XQ& zrTCS|NEeB9g}7eR~Az(A8*MW*eY#6*@1NVG5djZx$H2y>Rr}hbXC~_bTRS{)`KlO zknT`D5Z$4AK-s~1uw^CQcp){GKUb!QP9$%FP9$fd3?7m0G)C;)mR3+kp;wk#40zVM zPl_H4^q97K!?|BvU9g8DJ+(cEqAO@ACc;))g?}@82|ljT%OhH|vI@zeifZ)m_`pvX z44e6RWqat(W+Nw1VfjA#Z$?j@;u^g?qA0#s|51%T9Vf{^k0wL@DLR5r4D&V zY;}0;7q`^mFamF8#~iEijxs%T`uuZp97^Kp@N6K`?VpuIy%c(7>7~%4u}=T2r0Bsg z$Ukdw`~5Q&bZ)mFd`L0j2|;qCe@@r1ddTsJysd>lxJC~T&*%0~_saIr9p#@%J7fGa zYjc!;PS@y@;Z5Xido(nQYxMC5{cRtIuzVl=z~T0h4~q9v_Z@C8b-%c!4&R$yEkqa{ zhgSWihtY;(z{5~}+?%IuN)MxL51Ux6^oWTkIu5`xjQWgT^q}IysN3R$sK-;GtWx3` zVY(=K;E0x#rTY<6Y120S>X4;}(H_x~3i#lbR9FVLq*r_p_Mt5a%27)euVqIw-%3hC z(sD{+lvYW}V!}vVOiG-r>pd~)I{J%od|?@blZ&<|zl^*AcPo2E^G2Po*idqPbNr5l zT;D9E6zi#gQl@W~QnHww<%}m~o(=Fi=0ht6+-ITwjMy>Ec#kWlJjzshig;PMY=0Wh zD%YP%DG5xt61K5>wAGVp4~YzRzEm%*(8kjoxl|vmNDoO`k? zW3Hx3K&N!*$FUy8&Pq8>hz1dCkL1)@DaVPD72W9RbFMa6cGcFOZEbiQshgf8L{HH? z)y}koPc!X*P%cKa}f_)V2)Y7(UMm4rz55?HMCGbVwt#Bu3QAd zQAkM4QRLfZ@ue=fh}K%b%dmS%>262Ou~OST=@y`*$O(Ei*V0qkBY@b{18BKYmKOYNs78Jqkx$~QdqNJE^eCb~h7YaN%ZD!$8p$V7r;E=y-TKM$ zBr3|D9}3l3v5O;XaDLzH?#iA&Uq;zLZijsQ&VYdREVy z)jbafD?_;mkzJJ{jV!PB04*#q9{<%`w~G==7>aUyPrbG$s5mg6)u zr^IPf!gf@L?&=kq*ez2_)TWxJL~4mnsMDzT)ao^jNJ{ux;8VioEsW`+QFqGvLN- z+~0aV$NyaBIS#F#|JUku-!nzxX|J6xF}-tv)v<7#+?z6osQTP zsiKIOl_@~RX>x*uHc$en%C{g{JPt!t4l`8Pz(<_0da?J_&lJTpzu34kAI& z7VM*F9j|a8N!8ebJrpA=Oi@#X%v~>NjQnFol3l)(M4vAuX{D~9u@Q(Q*IBTaqG{P) zil$&MMccH!ByGuFnznI!Y1)!~G-EqRDKcjFiJn(2Z;CkUyTVm;Js@9QCF%k|K+J+FtJ zE!Ryi(tScBejDKI%IVPJ^1DTQ#LF@l{AdhCMPL8;)*x6ozFTh>^R?KiGrWeyO2fZN z{;N6Z;KzUR%SqI)ehsd%e?Bg;ESSQKoL_rS`{HPh$#x(@eUf|7qK(MD+bGQ!RIr~! zdcJ%Vxrvug^r#C}N3%9k2Nn;1#?P8vJ>ZF?!TqGCR-Ts`Imd9y*U9jaM^*+i>aJus z(Q8ntV@o_cnJ>P#;FoYSBdZy1VOyb_HRHGD4ORhf@tuNx7yj{{W*q)0=x6XJE-4y} zZBSjqm&_$|fgvse7+`CoD;v&%#f7MG^I5UP$-0Jbhs3B?E^)rH;T%Y;kAP3n3rrOB zd>p!En4%|i%P<9pj11upui<7F>>!OR8jf^>YiW$dw@IIl6!geo=V8*lLA^|jB!PvM z3Kgp=)BMvh=#*dz^Ximf3I;g|Ov-D_^h2gY_{a5y$iZO}Hn@)ALosEcr{;_n zqib&0+xd|<9V4K8`0{Z5vH804^JdS+WC}^nu~w@jq35YdyALu-o>ZWryrf*kK9&y3 ztTqR%L0^5o!BpHNJu#73;bCcdmHa_3N@JBIu^|7loTrzWCh_qW)t8WYDCbFJ7BjEs zxnHb{!ShP+Jm#5|Ct_!%!}?6q?B>hVUY5&u%{6_ylx_o#5Z>_dQ8>a18Wu;n$EHVJ z2;{?~gvlr;a@Rc^j0_m5-ZXGbc4y4h!~Nw7!`n9++h|;)0$1=*f4e{4uIG0LaWOzq z9aj`RemLtA=!Nn6S@n?SOhEy+EP)7z4~0CsxnQ{AwX z(~W=0QaS#l!A_(29O(%xhVPnDDH)YEyILlD!(ys%^}@vjoTlsIH-UV)R-fjMv<~VM zV2|6Tec`t0;5UJMIqix4rOy!Cg1W?BnvCbh!Be*T`Qq5{&uY3)oH} zEguIS*sZ4$bu3RQC+D)qYZtrqU67&H)dvXu_4?rZv6tsQf$SqJ>+3Z4=a1z0!ZN1j zOyezTjEt%4rk|H%YVPsu94BZ;?>v{c=!EVn*J`4;<7;weKVIfa1QY0BjAf-3e#Xl@ zlH&w24jlr%P9xwLb`wZ9MxUt_u;*<-aGXHKsGl57Qs+O`Q^z5gKnG*m`8Y`=F_Pm1 zG7j!K(+D_*-2~D_R{XF3xD}5>Fo6!n*wnvX+={_*0vQLJ)ieT*VK;$vkrmrr1OG8! zJPyGGIv8Wcsciz!JLabLJdEc!*sP`za16T%S}?L=yIuIZpKU-x#%e&;Oa- zAmgPR+NG60F6oKbGmsOUievb{=CJ?^Z@h9RQFTC|zD0>St(0AB)-7pMpaUFUglKAAN=W z1^eS^_p15*^IyOI^0{dar<>-gY5qw!=JebnT3VUcaZ4+^D^u}))#CASHk+N}T;yue z9FF_d<}P*IOP!Qduc;m9mtP*vSiTwpugY=IAmUzQOcMmpkfh?Z#C+#i+xKk(tLfY=<|X`1sV=b zm#f2WduWTh8bA7JX;huy2F++JjT$s`+#i>%1I}r2ynHGgDX@JnAX9@$Urnzt zHS^PBb6$=tL#zfLZGl0k*38$`
Xu~nrgS!5-BI7P6~ji*S}VB?1P-Y$Mz;%<;d z;rJU6slme=wsFJg;)iwS6~J=TY7mmJ>(%`V{gRz%fkAjAYOwGa3Mcxn(*}Nm_N5k@ z6^&IM9gAxGIP)I28Z5TECq%fk$G$9z3W-$Wx!?Z8weFR8B#{a{AEBT5;jp^f08y!L z4~bOZLD-`jjGy$tOUe&_er%e%&50*A2F~0 zBT|8f;&<&gaL32nLQO?fDiPhE=xhkaLMXh@*Apb4Oa&$yTj8fLsVHqSk3t0!yoynn zLg1P;oM*+Hsb&plensO=p>0BLST<_cAmDd5iV>LFH3(>4q~s{_w$Os9UxNa#?^L01 z^=nX^U;b6>s-Ot2T*H4>!(Ugf;jcufvj$Sa6#c@{DYHwZj%p|lOPo~?AuwzcaJl=nmcsO^atH|^bOQ#vl$+ExPv({4)y##d9_Vi-R+e$#H2 zr8>}cE%yQu9Q*Rhmj8I^-|ef6z*V;x3dC?!%FMvkwP`q8(hA6;bYS$omzmUD60E8e=gX040I>tE_ps>|zFuXmi{;gMo z3Lu!;H3;76CB)LDXji`m#fSU(V^gIINudgfUFI#-$Ol2eA{p;7-|t)8NR2FRVUj`A zuRt+-bNG(^9Y5%C=36WQ6i)DCG8LHcAay%0UhT5AErNocchTPOuoIxvL~QjM468?F z8U^sVs^vZ2HVx~-nwE0`^mAOHU%CvX>RRsO(Oc%FRV#R3;1P0MyI^@%>Zja!a6`VirPKWP!4FL^M zh`^&zf#hBNvVc!w0xadp1_Px!<50H@aAB)gXhRd}Sx_~Ler2n3BYC`-G8Y7Z9kC{`7+83P>1uT-w_Y${~p9o^1;%J+k$2vy)R z-jWyKN;idsL?*yft{?-3DO4bVAIAAA7|H6mny)do?yy$X~@+DW1I z5uE@pTBl5n1{)Emz+s(Q&EBk#NCh5PN3lwD-3so;6+Tt0!v{2`K*L=a$&>Mk4-1A# zRA3QJT%ntY$`ptO4v+M5X!-66i+n7%mz5B^t;?4_R8TiuKxQ_Dd{3&sl@7bMZ5*8n zRJP01g#u>wVW?CfvhodY8oVo8x*NTi+sjG_<10Q|P#~ga_rfwx8F!Tko#9`h1=G9w zOj#eP$N;Ds3+q@{$X?I_e_p?9uF#qJe95ncsnQAfzO2+3swrVx)XD|IYIYSe8mp%B z4P~%B3KdAK_#DrdVF_qVfu^s|nIlwa_|o%Y7WFt@71Hr38I|-dkI+LR6?jYry&}x@ zNmO9Lx@iRrTe|{*CrW8(84{TQPr0cWFtu|zL8r_?NCFiaK`R&gOI^2)`=rStAj;9J zKxtH+BV9B`_7SysOZIx`Q{Ae^)e*2b#wR}B9v@7yTB64R+c_4am!D)udPD;Z)_;;Zp`Av{HEYIKEWl>#?u%N842h^*G)&e`JDb7gQ<4VofV z)t)}VDxWn=(wYz*k5pxYZh(y`O^B@A)O?-QTH1Tz+cw(?{9B%2mG%;3tGY#&-gBTV z^>-PNbv`dawA>ie#Hw`o&iOuVkW~$xBR4U|IzJeLoFI;y#Z+tjVTRhodMr1^7+RZCO%!DZCbuAu}bW;^}rM90*N<3l?9iCn7Nk7Q1XyFy|HenHEp! zM8*dsT5Ehh57*TGLU*<{-&f0ak4t~P)ZAN?rDof(8sThGgpS&D2uX*3(M4KCIpl;2 znb>srNao4#Sz-p?^>Me(U%;Q=YWJ=A_PY5t!_Ago{=fx?@cX=AIVrj6Fiwil5;OSn zT6(~G#cc6?zHg5E`RaJUZejJZfq&ifRo_~z+WByK`SV+Y4Ncd_^VhfA{lk2}v=@yw z$N62c1&f=nr-D+Un@{HhLHxYDWPQN+O1p0%uNvuQFDP9ZuL|i#+O^*ApbY!h|EysT z#ZsXijMp3>R~f7%QGxf2pI_zFg0c>gaCY7}{|Z;dSL2r-=+RI`at#dIoAg?;o7 z-AS?k_*pyY06rB`nSMq)@5^Hdz0Rd*)S%IQt_qD$qXvy0tyH37{7lg5wra*}2AN_M zMjv%3tS+W76y3fxZDXaX!4nXv!Gl>ec97J7krZl>V2WFbL{g|h!V*=hL=mXL!SdAL z5Cm#)oac51)?n))T7!4?9C&+(*5E}H@`ny*KGcRYA)y*vh(khhWnor=ki}JyD1L{R zGx0>1e*B=0fW_gSgK7U4aa=)EdU<(y^YxEEubWxoJsHls;W?S#IA8g4%rf%*@oWNK zCIoy|Zm;&VLG=F=S?1dfp60tedu1P_9Um>pw@zR2d#hzoJUSJ4=s<>jBC-aMPsk!F z=x$atJiB2vR7uC;8Q)@wXF@HiNvK(D1u}Mln}(c4S0HQnoN0~TLRvMrqPJ03f@e0+8QrlNU9o@d-t?LR|=IQRf8&i z{ImvGOsxhRJuzk9cXe;6RyAmjW)05dYoj%4OcJyROFDg$qJ=ma#TtyIg4(*dyk$^wa_M@Rf)@c zMzs=`N2>x?^qgu1u839zuDX{}D}<Ctrfb!A|ynpL115NtwCXl)F9zSKdg1v^d_|^OGIjr zh__qov|=7_twJN-aIHZj$kgdZJ?T&b#XJdHgTp-QT7$#TsKFuMhOM$(k5COF?}gWT z_2^~Z3PkF~*9s(xKn;RgKdYXOtw4agZ=p!M9b01~jz}Gn>K+Uribe$v`;cpmMjR1~ zq#!fls8}PdqGGX(4=K$1uog%;35%jYmIy`#4U1#EDB_vc3WW$N7E6IVf{X=IN5-NV zuNnJztA$cQ!{R6qCk9eOqy~w2OV%o-0E-|~gT}rpTZ6?CsX-#2maPFJ>D1tHkIdGf zaa3xs*wjMge?yle?-71-SCv=xvX5sRe2xw}VdEtD!MHCWVxwKX^t1&d*PI|mR-30MRL zy43I2)~G>~uqeih5rQbDP=Ud{Bx`js9)=@gkrcFvqhg^{QL$LY3uGUcwMZ&xSR4h? z#6W6@SR~`6!9BLP%c4RZia-Sd|Ha!1BtD@EMCP%j`V>n*X#z~u$rb~tKI1aU@{4#< zw?aE(-@C1_vazgQOe%Uqp{65`6O6f4$mTtfThSaIoeDge2XZTrWhho)G#7c(8?6<< zB$*mC=GodxG=j_&XzEmBz*MdH85djKPKU$lZbOe7*R1#oSjukSFY~)J$3b<9s zmVA1*V)#kYtH5WxEl2BgNni!Gh}HzSuyt)3P>N6mA~^Eg!y+|G>mpl$*0jZQK<=eI z0d6$cB(}(OD)3lusNejpY3hhp1umFPt%?kZ3KYhd(wz>K`zb@U~KK2Tw96jAr_>lENzK_SP2`)o^`bSu;=RzO?W;7!}$uy|2&Oy5AJ8 zQN%y1em5UA`QxrngCV383{#A(ss3mr18{RQurXQ(Rqzq%F(Q8$B-s9Xr<|ANKTEi z&Yz}0*4bZ3vDOe%^s02|zneQnLnkRth;fomrAaV_%VGs{WudQ$aaGP_d|j%CGZQJAjKZq)HRQg`CY3c$cl(MXmvhdyJ8Yv4|R!BM0-u3RG-nXJ((BKC{ zs?d^oMH5ka?WL{y4NFa_29tg`aso^~r3y@eH4S;(xuUxiaI28b*nkM>$Am*0l7t^1ucG8~>ZHX*;-69mo(u`{*>9G{n zHoQvwDNT<)DXBk@o)`1O(NnYiHP*8Iq!eoZtq3|9jH55z$r<7j+7pMw3L0qq3XSgq4wjCIjU5X+5mSMHH*i``OWI*Z1x`i zUgIS6rsXI8 z{tk6ig$5V)oz_PNUeX$W{8SV#8r@2x2&zU}%#Vxjg!A~3`XaYHn)zSC_xC6(V<)0N z6%w%aTcR6SsvEs}01UC$;o=OUHdwYn)Qsclku&f_gGyVVgGvtt;ybTC(p-8l5H4+i z^qS5@J$SfzAc0BFvD#;d8A6Z#CgV6*sfm#z@2f_rZX8`}F}+4Gj_zPJ^m$ktm-Yhe zqcmL99!ksRe*U9v7Tf#X*%HIaZS%jU`FeG`YWMhiu{~{$&9S}Tt>?$~&>V2+v_0U1 zIzrvtoNjNq;O2CH)9zob4*U75*Z8jfX0qE&yE!tg``vtT)SvK!A=~Wc`}sY7IBZY* zMcZuV_bvWHn9>~Qcf<|D>*2UMo{p>S=In5sZwZ*6pLiFyG&u?g8`_z#LzFK!Npk`{T4rlwcu0qJ)Zf z=8GTr_uYQ`Fuz&1&EdFTZSEM=4L&vV<$QN!9kq|UeX|3G`Thwt=+72+=59C5O#iuF z9Y|AFF#vVokKQk5i{1KkXqN5$d~*kmH>cJ5xY}?aN7|xc{ncW-UcNeigFn$?dy-k{ zHK=PoQawn1uMsSMIy0b8H}iel+@3ZIY5`_|AH%;-8)G_Xe`>=|*Z=eF(|^61onN4I zyIE|P&m-Z|>ycZ|#Sc>n}e|Y0TC2pT;BTKTX*=#YM*N zEcq{6lK$e@bbgPBog!KjLeXd?e$@4YUo{>7R|@mbo8LeG_3JO6o954EHhbINxBELZ z|5LNuZr3Vm_lmrw-{0Qu+xGIyPpMB1@Z+K%I1d7cbonGozoF7D0fm1NMRYNm{cy9; z-)PlEyJJV9el)buKD!n^0hSpS;d;r>MoxguWQreoy33-WZsr7YHC&|NYqMUtjqp6x0g<9sQ}G+&AszCs+ZKc054th4FsgbG4IJqA@! zZ#h5CDVgebql81`CN+si?W|m~O#g8Fjt~PQF(M-#-Zt$+vu-zc$M0vaRND6y!nfUV z|El>XrGL*k-KTRmRT_c&H6Wl8iFRzWDm1@` zM9lAkOqWJwAMYwB*>sdsV-1I@2nIO{ZS7!7ej@xN`G?;m&)^%Z4T&8)zHkB{{LLo+ zXKzTmiNfIrU4wE)wzNs3Hvjzn+mY7`5})YzfLK&7``wpBXXqk&zv&O&oEQnR+b!l2 z%jUFsK%{T<&|N5%D~u?m*io#p-M4uDBG#tIGFdRiHd#=yj?}Gl;QIGKovQPB%R;uD zjNefHBB&@o`kB~JC71c4DKSu7^}&Rx8i$bjq^&;n$X(;*f!{KyjB}u+RGx_owPTD2f zHpzT8vS&W~v_lgmryVj#mI=6|%IM(WwBLKPPnBoU&XVJsMW%=sEM&@P9G!Gb>;3_a z-)&AP`*@CjBEz9LBRO}o-_DnmDrnmMe!DkL3Ngm`N_HHORp0vj9_FiVRzu4B0r=;) ztIbO9pzy!UUf)tO^!@}zB=QuWXXlu79FZ%@m%zof0IZ8aaZAcRgj0Zz%!a?lA3x7# zvbq~BMWbYeHtXSo%j&5Eg#aRXa-L-%MsLBR+ei|i22{u(>#muGmzBl@k3y90veslp zjc!B<7Q-q8rul|#u6fu~>U~e%UZtvMDFb?z z=k7$Q`}yL3Ppf?k;}5&W?A={!`;Y2oKQG_H0VNAxh{CF~>9QG&*~Sgv-E8+q5AeQS zxAQ|QBHimTvO73lwGKFTY$@@pX3Qz6tH%=GpJ#y@|LMXl-=^XELX{%V*O(}yI&rNl!QOs~so76Dof{cLeh^A0fMxXeDqSRs0du_bqh*G&AL3>T zB?4WfPA;&*-cZ*0I~L&A?f%Q(e*VO`8R_FqBTG>Us!SubsEpZ@Y9IcXq->hJql7Ws zEIP>~Mqv6(8lNN{*G)IvEEL|3{5XlW*>X%~CEv`&GA{pNSkfQOKk>gf6m$Hj>osQzYVd7^*qS$@7X|Q{*rKerqG*{b0^A~=iU*fp(^Sj4~{R*4DR$u;DJkobm0^XbX z0U6ob)w;b}T;kZhKC_bgh=bVbKuhA|hr`o>_DXIpzr1T!TkLF2V(P598d~M8V)Vx% zs<7gyAi?E5wzYCCjvEpM&TnO#_`Y~VP?Kx-_lLIqfla`dj|_z@=^DQ*SNn{iyglGZPF5oy z58t;B*k1cYMa&!`NCNa3uyeFw>Z#lC-KaCNo^gCZHNV?rQ3b`U+vuidcqR-$cSXmr zqm1R&QKo~{kiOfAV-SHZkb?*ek|5zj20~BO9ELenvjc3G_v*yjS+NUhXGMb)Q)L*d zKOP9L>5%mmv`G328qNvE${RbL`68BEzDNfjVWEWqrBqwLpg3Zr%kF#Fe=I7Pz zCC+UxzJ6=IG9!wn@Lz0wXutmPg(6h^9M(bbIl2yF&h9!0@!#Rfi}|{}xScQB;|$jc zHj8}=B+UXRwCKy_*Do|9Kx#;ZdVU2wYmAc}IFz-0@@k~Yz9-^qoLB2BiK+f|v&NAb z+EnZcGY%r`R+~Q0-r~S@d$-*`@tLTD+n|upVUOOe$rV&J22oH|n`feCPn&n)?W@{> zx36j*Z;!oo;q9y1fw!-!>;As!cH6oIJF<_s>BYFdWoJQQwQLW|Bg|JZYK(-+SIMa_ z)0^|Cauu?eauqU&I=w~~R(Gu&w(eSH`NL@$*%$ae<*8OUGUqnBbUQORI|RviXkpnd zejcwDi`C^j9CqKHj+bBAE5E@Q@}~K+xW;W5_%C_Ku)+l@tTw~T&t9X#X><6#x@9g4 zkU>HWdh)rlk`=UbC1Mbq99%kPy}@b>rc{HHJw#p^c0ha%s?r z8YDe3F5_c=CX5}->GN3TTnDNUGB6jtz$Shsm}ZNe_?b)VH8$}xl}28I)g1mjOaF}2 z(<)Ow{y=OK^!ewQzAl|1gJdNbTelnbn(l7q+{ws#)}f57XMA2*E!zR}2=i64;PO?n zxPs2!0Vgb(M-i6HGEepB4g|^Kc^Jv!IV?#pl*f`Tp2dR92}Pc;`)WlHpxoC4Ve185!-=ZyYl^V@njp+v{iS0; z*nLeAc3%^Oi7R``EMoOFMcCEN6K3COEk|J1mHB%IanJXP>LgSixBHqR?Y<^(>yKI7 z@_Pqyu5b1x1-Q>wON_*ckE9d+n20{8OPX-*0ij%HI7c8;;oL(e{G;+cVHX$a3%jV$ zI9JmxmNUxG=k(OGEiyQ^hEc2~<`3>z>HD=L{q5|zv{k4&S3eOxvV zATFDOkTyK)d%`A77taDo7T5ihce~*#M_l$p_cLMr8~arL&Nu7e!X8>PrRQn#h0jqK zA^+xp)64f*sYL}l0|{wAgtW;SL9%W%r}mkV6{1-<$*Mc-kCTM>cPwN+6HY zRWG=7tv-0^T3rCstPPLrcMvEKpt%iUJnU1p0%Jpcu8J%T+8+obwjD@tF}-; z%j+Me&m}Yx)5=OC6=x_W`T;2VZP`=SQ&Laa41}cYSrF;cIT-2EDIjU>reS2tCP8G% zW*`K3Q}%0=oNehGj3jN?D{f?7VcmstG4J7~-H}!C;bL`vbHV}$%vPt4Jr9e!v}tP; z$XwAzquJv7d{6#e zUGX`kLF<=#%B9$K(nB)|rFArk%h3<7Vp025y3}n27+i(ya`hhjy4I@=;)})Of>VU6 zcewfl7oc1|s>Q*5+Tdt45m(NzO(NCU&hM|jHQ!!0m)P6=MMo2Hk(2}u!o%Z(%2I}u zQ`Ia?cakEKM_5@PscV%`2hMP%CL|@xc_ptK@k(p!ygrs{&+@AvVN9ZegzIHPn#6BO zD+1hKL2ZM+toAtIwnbq}w(ku?Evt@%EUNMtLHp8i*D4PaIGJ%x_YmFBkIn6Ri$@}8 zV6daemj!iJT+)R-QdsI=-9FK!rKcU;R=UCkuN3^_I&+!;Knz?D9~7eRAb4;?42q3o z?gykW;{4RP8j~<2p)aIDrRzDxOS~MGr1{WCGcg!}CZZ$=X53Daat&H*%+o8v z+Ws?;?$k$>rcL)sgRUZNy5#hvl^tj87ydXb5eRa9bCoqe&-%J}c(&A8P->#HplD}T zZWMOeo`odRXh)$iayVx*)S+D9Vs4zf5IZbrbU+||KVLUE>B84`Ut#aW+eSH`=VoDj z(K9o`tH3H~H}3gaG)7!1B*FzD2keL(*gQ{aCS(Vkp%RVeQZJFbwWq`2E-!yxe{8<- z`^`M6k8Lb1S^>Ly83(r7i!|Dz#tPr>TfDun80sZp^N7*k7Iv>vW)iWhcOJbC@=i?wFNw_ob)jAdZV{LmjWPsHM-Wa+cbX~ZEe6%q}NW>xb% z>C}BDu*^y{noGSzy+N#!XlTsbCt3l!dKr6TW+mf`G}=Rr6%O{sN+8&Lf6Sb1u~KFg z?KPeyZ@%f8#7!ukztJZfrBBPTGiIKc)r+=VsgE3QBjEI+k`0KNCv3REG4q5x(G&V& z=IOb;Y#a8+%o9pDIA)%Zr;c6qNYN8BKQG^o~ma@v>jBiT_`N9@k=~KsxNDN=J6-|I$ zF>;KT(lC8dNhyPhRQQYcOJ@3_lA3_~W!qHEDPGok;}rFa${e%rZ|Ce}V_XL^#^zaOL&Ig&T$H5gx6BEdRkWFwtT#$ll8ubb`$R0^S}$vFY_4Q| z$wmaP3b_Uk$x5&>v3a%yi+R4NoGQ&-(HF;ysaU?WlvNI=NXQqq*h-%|UPNN}qOEAc z-u+8m2EQ>G0TmLPu+uzNn;83jSqVH)gMQd_P-0esaR5-%m|g zojjP$*4sOrGmahv2D>-=(}oV^L?7`@R*UbC^FFKPUGFD%5#8*3xxJsSHi}1rlJ{Mc z@_rMv5VZcBuUB}Ybboic$9v2PdQlloGx}Z7Jy$pV&n7 z@%c~QN8so##|C3iMvMj%5{MoDR*`8n1|K!(_mKoIYK6$l#L-VTz-@JO# zeEeG87q3oW34XQkqgOL*RKIHURoAt<2XGqEYhwG*uO0fcCCq3;XW`N`%#kT7;Au@@g`4^lVer6@>j};kuG?;b)LzvHbNp2h4hE7Kbh3cNoh;D7AwnM#hy+L$5FEl0EfykO zLQ0V?(ZwW^BO(zAk}e^bNS9_tZJ96f{FW^s{m%%*+P<8t`OgzgJ-1|+uc)x+d^=G6`qMaH0|~_b!*7w z;}=AZ7xr=yRoq>9_4Ni*Gh7~%p_oY94WMWO_&nXzy<`1Itpl2zu+jYFgtcwt=@x3( zxUb0x_iLgIu}Ra3dv@p=9Na31hr)1++Y@%QeEH-2cyH1le!=rM`u@Qc5@Y{v-DN#^ zpnz)dG*4E+^%;it18C#A#0>3+%TC(HmSYZS^wvfPS1=kMTtWC7bX$9E5!Bf&iLn{F znQT-=i*Rg3gLGi)bm%VKoNgvHl!HMOO44TqS>5$j%<8VEVj{uCsW0sLQqQaSZ>V_j znCU_yC9bk#`n0WAcz#WJGxH@iUguc)Wi?a(N1v_#&1W2hi?lm3p#r=|Vn2kzAAL#d z#w)4GdcOgtqnnEJ^0cGUntt@V$0H2!^7Oru2D{A3`*ee-u7j>DY3Rz|Ji30%A*yle z3O-3q27y@~j4Y_J$e%nYaTJ!P8_# zP+7YF$xEc-(*n7DTT8sZEq=Ez6VVg2;&(4+?tkj!0?GBOLjgf<0Yc|Nv?;3E~HeN|Rr=DXyOsxQdLb6HI@R^8FhF`^!4et*E;iFl> z$i|;LX!GK8D1gUZl?Vh#l;~i><8CJtRicZDD$&7&gZ@q?szetPRU*g4y5?+a*b-SL zwnUCeoMQLdTYb)wSD$mV;YKJf=u{FH$kI0yavUIDHwRN7%fS>d90o=(wn+w-xBQ2d zN5J+6de-ls|N8Zp&rS1Zg9n0Ec-VBm-|lTx^>#DAZ`HG;ep$LA8>Q`|)wl%nIN#v@ zK?-|+|HnW799sMm4}`Zgku0bZFiGIoq3O4O^cUr8n|;(Nf;xcjFGveI92DD|)!*OF zSL@Th{q=(HnpTGG9%4n#Cs$Ozu$ueq0_|)GjRvNXD`K`(s6ZZ1ljA)Q0^IQ9<*Uu@ zHUx~gHdRbdu~MHL&}2>XKr2utzf(#KmvWzWi}?Ww$v^(2o5-Qd`OWGltQY@Y&kqL& z`0~paEajVS2cmezmL5yd?I6%3KIl9}^G|yJHmKP})V6z2#|qbLI`8!~M%xKyGwP~+ zK~{bC%JqdAOxe2DQ_l)Ky_qrD|rd!A8 z*XS789kSt7EU@8KjLQ5PslnKvNDM5WL6oIG91ic{uwh$294h$cu07IwBmN5vr%Gim-p!i$F)#JkOL1`NE z#8*L<$y6=LH9UK5xOO*1`G2 zijmp;$z&sgjIR6vqBJ*}Kgd?DL@9SLR+PgufeJ$8$%Zq3s^;A=Fpc#7a5RnZQ_(b0 z9Vv7wnl3<|#bezx;!jCes$fdGLJj_)I*kgZqAA6nil!9Z8?`4AeIlBk=o8TtqI+?{ zG?Gt5QVKp1Ng;O_bW9`qbX2AE(@_-)h{Bp_G%z7qse%c~3LW^-(=-a0il&r)BARMW z3}W6UIkCB0{O)b;7QYuODaE`vUQH3>q?FhtEr)Yzor#e-l3zjP3dm)bmTV0Q~XrEvg6GbD(#Mp11i7k<3VoT(h#A}G2Hsi&^ z#OEAs*l21aqo>ByR>`5fuHCeIbA6oM0%bNcz zW^$iOvO;=K%=w#Tdpkd^k7h6AcC%a^SKAG5#G)ghshu>~f%Lzp74C$?U2xJU1OBIH}D+$Ak_kp z)Mvu#KA&HheiU!rRr*aCw=tbGO4kO-y0*3X>xD*W*ryEV^ZDDLRAcuS3y|+ZQ53D9 z@8!EQOxEmvKAdivtA?*x$f`2hdzR~Hv|BgYfYwC|4 zK+X(aos}Kn0?s|Cdq&M(;C=P`u=mwB@PmOZ-BfD)vbr8o$HE*@Cj%|hzq+w?R?30v ztdv2QQ5tp~X>Jxbj+@08bhAu@#F3i7TTH^X(ZF#kfkMgA92d9E%sO}T zr>1ZIv@)lix90#e5vGv3f{2s5f{2y|S1M(~G>f&Ph(Xd(#Aq!IHE^a~g$%Duprk1E za0`29D&kW2lJ;?9N&&Y-KyH<2P^Zd-yi#QXR;hqJ;*~5EGD{XR+(t|Q9QQGmESfQu z2;D0jlH4CpyH_J79tvVnO~zSN(@w&pnMuZ1%0oQi*_-^V!_6cjKIsv>lTCk>Xo@pH zny5~e&2oO6|DPxe(m9zm8xn)eN&hr`^=@^y+3wrRM>Qdyy;1iEuGGfstJDo}u8N(V zT?;y{FL=LNWA}bFeGS3DILnhgI zlc+WS+&nx{GVSALtFmTCo3BWGF&3NnWcbCOl+8t(!98<}zJ`{D;WsKnd7aen&cdQ9 zCKsBZ#`~bI4;h+#R+hh_4RKawvBfF>{b_OZPNDw9;tU9&2p!LEQDXb#7f@eu(0_H1 zADZv;&2ruD2OQ*k@yNGKcnf!q27D3NXlUJ|L?&pu! z?SjNao9)`wn-A|Avv+piuD4jY0m_FtTsgG=>f^=i{afRnT~mJj??1m?{r$4}a((&V zzx~yGz5M*wC)KoDe{MHqbMu>Zd$sv=+V9c*xPYbGZcg{j>YlsfdUdm( z?-8y86*&L*<^kXvfLXLl{l}N@koVkv1IORL+P|*7zwqtT-+r+l@#obS|F0`ta$|o% zW&itUJfn7khOc++Vs*P({D$eCEe&d4+dFicYntKPpGn)7o5gy2K%f5GX~X@>enllB z^0i%4tI40gvE$J{|NiMybI?qkrD_FyB{yL`lcn*sJ>Xfo;Lip(JAG|AsPbknnnh)qSXl(uEu02veVawX$ z`lweQEFbzPddse?(eqk+Zm8|C|1GzodWTU%OlU{~Y7^Px7JW zFI+hf4`Tm(pufM*d4QEg;-8>;TdTcCd;l$z;cw<-Go~(o+0U1&M>Sf8pYTrKT*3+e zMhm=J9rkk!m;uo?EE@fA7nXRm)MkR(<9fM0!BOHTWf>Yf{@(v=Fd}RhTFaZ@@7sOb zB9?%6YX0|xB#~(i^tSKqBUg%=5FeJSJ56xU&8GiAhhMG#t^ZI+bYUKKRYT(!D3}Wo zXL1Zb&iG%St~pT9f57=;Oi_PO8C==b&NrtWp#JJa+94!ClIHPv23!A$eo8S46(PwC z670~TAy)BUo!^Mx^*?vphl_jK$VFv#uP>;#zs6wEtfhPlbVo&Gxw^g8|GYUjl$Vw= z`p?1?J=kCObHqxz7R-3@UH_Y2|Ddj<|D120&=<`g@EDj0-!!)v5_G>OS7;s;MJR?L zkDQ$eX`1fOs#&PNcaZ4*oUKS9MgxyEU)(R(o7gk3JJTPz;O#x#!WCHE>b1-it=8 z;8%}dQVGog`QiE6FL<-x&X;s|p8qrPIn({H;XkaH)GG9P#ZqCxjLENRzh!==_Jx=T zYd7fPhAhAIi-&mc;j81{n%n*Mp1D%c<4S-O{|c2+O%5t3Qd}z?8ba!KuO-z_j5YE5 zX_NTzxPMCg>RFYdsuNyTe*TqhGcKGoSyurTNOvtJNWlU#UlJDW2%=hOgzh8N+;5ND z#n!c{`$|>wU%BpTyJ%Ny#I4kp@b;v(@>gQj=HsK$2>s`0UZ|oar z2GjiG^1sdy7Pb4o5L5nj^DoS2&nUdq`3DP_;#P*^%y7-|gYM>#(@v&W%g=~EKXJOi z*qV(=&5T9}V?UWkaVW~Q3v)^uy zXYh|dTPKIAim=mQV7bgFy4&vT2O2Vw*H|N5$MgY;N928Y1y^&Rrro`oA$0MG?B@@P z`h_foki?WCbrCxn54463?fMqe-=qGmxzn0364`>rzffB%E*~6Wnn-hdyL5?Wa27SJ z9ujREBIKn2;bA}DA!EwmNwQ1eSOq+l;m3s*HFv8HKVInE4`y zCBLA9H2JTrB}0UyQz(6j4~y^q4@kXO&Qxj1(=huJtkFyZ?Qeh){f0fm@cc>5i+bx@ z`v(ZOKPeGr5aS0Gc*tM41?3Mk3?mVTIXt~VVd|As!Kug8}~t5tr?8zWA=FdL+Os`wjJ08|1wZbS}P&5QmAP zV*Vp)9uTj(p~qCo{0eYCXxeTSWN-s<>I<0j7oO33@(^dL<9)%8O5?r)?9bjIi;2+Far8^57xTI|^PxnYQi(jxv{1XOgY7+oq^5SR8P)Q>KVe`}eVT~y0 z)<$Xcw@QPbnNNBQ!=E%Gx|_pS-(Y2ut@l8s=x3h#h@Y*Ia}t+noi<>^|8h=`c<^6V z3Qdp4J^gRevx!Bi0?3%ztr1d}42Np{^M2_K*ZNnExH6yiPuUL-`xLPtOw%mVWtnmE z6B}w;2>#>+CyIyZ3t=cFzQQofS2YtOgWqBF)hVl6n$9(}>Y)~z&7K^+dC&dHX=?W; zuamrbcX9FN0&A#rrU2XC?1k4CO@q`4a-q$MGozPW2Ky@B>b)Ra%vkZ7WO6eI#&DH~ zntO9maG_28beHzy<81bUG)Z$$rtuL05D~;{mJNn{%zU@|B=Jiux59>Y$Nj4;L3&>@ zNig;BBnW~KUvaEtyIrl3fK0!q>G1}a@EkOe!mb{nO4?0$SVh-|b3r12fqqBH+vetp zy7koq!TEEB6*5{zFiFMtq?g5NBZY@9XRnd2Y@e9G)x+nT*O!;)t0gFK1AOA}^fae40C+w9H*k?&Ipv#<1BYFT948U-|=Gm)O z?FS^9EK-c17(@u~jFit^pCsuWAmdYAf&(aZDIYMD%c|yC87bLJ=(N@^Zv~=r2^eZ1jldrkq zM{d;x%RtaCkU3i&xouL1*7#;^(-^KtjqU*429$)_Quv{eT^QT&Op|)bds_NKPW9?x zvAR6_ge8dfzj(hzs0QzL7~Rq^O13_T^O0?Wo&e>?Yd>xiJ|Nj;2_jvc9ldOu+M7m& z0orMY3MJh`sy3@0ydd)$`3ANnYai&Svb)edh*&a(X<^o&(`#Ixyi2MJpvQ0*Pzslw zS@or}-?6Zyma@L6seGeIG?rYpZAtM z67r^zfFM?T?1(^28OQ~`1?h8ub=mPZPz`wl@7P8VM^S4er`B4(u3kq9MPBuwa$4m(Wy^#|*EjIS_s9rx?w z+XXE-Y0aaLXz$USj<+AIe|8nTD8Y8S1rHT=CCC*AJcGg(#_Osi9D2_;&fI)b`z@TN zNhswI$oa5C*e0A$(jkZu77Uc*qvc&%X~HV4(wJ81TMBZZE4HMs$2FF^%~I_*TB#KSvSl33Hrk5pXG@HFXELO+{&>HvU8IL+MCB&JuXUR>hTAuf)jUHT- z9*;2AGkdFDyc_SR4af)FS{!Q3UT(?zDLNXQ?Eu>LfI||OftKQoRtHST|=75b3f*LEI-5Ty0|*7eP#zqVN_7j+g#>!kfKzJQx)vHarV zNMlTD6D@~jjUW6jC`dC_r6*r?&E?sVX*O>vpoT*2KRTjlwPVZg-m}?!`LEOAc)M!X zG?!5>#yK+S$bhQ>;c zk9K327>vk7h21HSVt=p>z?-D%pdvLwX_b|ZZ)ab5w^-gav-d#UONwT%ehycR3Hv=# z_$M`2p@3IjX-$ww$g;N4wd2V$2ZB)?iJ2D7mJxLD0O5DzH;4m;>Z8gZsqVwV3L<)Y zXyKS`n}$XR{+S*QqYE@B9#?((3)ZPHrKLzxg~$svic^rR#&KGa_O@BFv7_nL{OY%r z>bqorHeFKS_!T#p%;PQXi%~r)N;p%A z+|8S={E!yS@_*NEZ?S_WFhKj6BTSwMA=L<9fP0sWR3-u1W$!41v;o+y&7gB9@@)V7Mv1#HIhJk~-$qOp#{~MY3|>fr4eJ#UmG*HM$Zv7~9It#m zcfnrWCH6|*uIG0L^hQe>$9#D!A}#LxyKT0&7^UVrnCd<43+5y!dUx?O3rz*=v#e>E z+${HDtq1GnO-=-g;^Sv7^Ex>@@qPOs}3-@*5Ywij3Q)h$<>CG z83KZ}!`0%4K9j;fA)>w|`yzGFSaz-#Zq!nq3bp9>bdRG@sbg+zCkgZW!yP94oV}K< z#IsF~VibGl{xG^a_50pRMtv&CF!Iq#)(&$O7DZU@xS_##2&hJ-B>l<#$HVvS18?L4 zTjnG)WAqcod-szH6KDW*OGRTFkGbT-5FBS|kC(hh3EXK$V?w+wWXP>?BaT5yJ+`=l z{+x!#pIG5u+gQ=YkHT7821R#7%JzD@#7-Q_P_v&;co&nk)yD#GD2fxEn`^Y%r+Z$v zb8c(75 zP0kr1(KoZMY1Sb<qHV}t#^?6(69nxuY509S0egqV?ABwQ3 zw0hTIX=c85>5FFpsXLKCk2{o2_1M^if9^R_;jog2a6`1q_825;MeePdgOdxyB9Pp* zknJeS#B~rugX6dL0l_v-ZJt^r`1oXm-5KJUKx}d2J(EBDkW003sNUtG@>)4J6lF62 z%71FcU$0O~R|i0}kwjYqGM>g;r4b?2C*k|P!(?Vb-6Fk{;|ugI&`*L@l<|6ZFb!&j|Jmtjm5 zrl*QigVOY7cCP0Bur3^kNbMrHp3|uLcC*`ZM2X!ebSh@KUh~+E5az&VS}En>BeL=S zo16BIWJ9QkP}MA*_D#Jhvh|-C7LFtuH+7Rj`^?G9uY@tZY69OJIqVy}OHg<|9LdwC zV12(kOPJ1}%mw->EZMYA@vy8F?kIU3M|Dl5s$`#XBhY_ul-;>i^uMjvm^|5?FFPF3 z!0f>n-x?gIDgU!twx1A$ecS#WXBt=J?=*SLsXpTpjML6+Tfjy=+8U#BAZD1l#f}ip z2@1V<(kM5e9gV|*tO2%=nSk^o?|M@wm)SAWjO07-9D!rZMDRLqfpIjo;3SsYbmqdG zCS+$@n8eo|lpH0+z-*aY<^5^(sC)k^Tc%S1G$vh-^OUZ0s!Okz= z!3Ta9JIgdRc9dE7PmSrNnfm&@berkas1Pso>?(YwR*x3vyost*3ikpU8~q;ZxI_~z z9YCnLXI%z}GYdT{qKKHqDRqmhd0aF&DXp>(E`ysJ(ep;GrW9o3xj@QmlSEUi4tROS zJKMgrd)}^u%`=?MfU5vVv7gQ@(gm|K>6rESRP6tRi|#;0&2Cb-I>5^4FS+F6IsrOb zYHqW*#C5yZJmvW}U1;EkuEL)=gVf1oIS6>p4#p>zhF6CN4kNTfji;^FTsTptI&n`v zjC5i)9C1-?WWzVa!j_5~4$RD^K8yYDSAYKgKMe-;Z@+y0-28U=>wo{={QZ}2|8@EG zD~d}sa&M$5Me%@+n=sV&RWDqby-{m{W*Lykdzl5;E;$mi1L-MMYZ*^T<`(uby@AH# z7DkqIti+_@jZ$3JbbUM=PFr=Pf|^POKe`#lYvl4QvuQpGy&|6r2wCe@Ge^-4u%}ty z;Q{4^?p&=xn%xr6o}0~5!kL7{k4X67eoVE1;7cDi1^O#h^5*J^GTdB7&)`9>(cdBD zK1P@^#WH(5^cbWpRL@bbsJ)dv(5X~x&)~e*C$Jdch_GHxkE3)70PkSz4Zx*iaWPsW zZ$%-KA;VN-h}}_~GI2Jq&S(kK*lXHLdfL&hRjm1{SkA<=A}$n0K;1?-406HA1bWIh zn`H+*G2xA@r=2;Ko4=h)Yz{MlrpkxV3<~SEh`;FBCSzo7DK%lIsWz7jQCL~cCwpD1 zu%)>rUuuBSCka9;O1C22+jcNJ>iwusm^S#M-NJlbJf>0b>n$n^k6i44gbn9{b8k2$ z&znH|5RJfQyVTBYmr^m5S_B|h$p)C34JHjxkG&W;Xm`!o{~*)+x9$EK^XauY!>=4w zIG+lT% zpkPEz$}Iv?i_tDGsPI+fCGT)K#do7<9OS0Mb=*Aa>^7|Y6Z-tHz=h)+ih!r<6y%1A z+bwA$PV+j6?w2xs{5QMb!F^BrMDD67e@!2}83ZPNM$_{fTsY2)pta3%!ehqFE7V8aI*1LZSy`)0^6ZCpT9pr!VJOu~Cl`n1pD46W0iP>a0>D z1R+OUJ6d~ygnEq&l~X?PIpdSkgSjyqQD2j%lmO;|&{7cRBi^TUGWJI;ah=Z%?y<%H z-XDI_p;7EJH3>3~pGrbIHS$E;5WTifXTcn!< ziFpk_?piBaH3=I~zHGGrOGMz-H0om8hYA zPYn!IR%B57h60(dEuL31KysyKC1SkIdb$tJN(QT?vO@{TZ0V`tlRkLECneyNPBH#i z0~TkdlpFLO;e}dNUN;yG+3Bd8h|OZWyY*5xTWUWIhX6ADr{ZDN`r(jk9jDkHL?y$n zYLW|B+w>Aj=@s0BUa*1-<+!n(V=y$T+Js{^#+&ALV-2_Wh*>c8H8=Dp0#>l#Ef)Z~#su zdr-1^m?i5HS}bji*rA%M@Ogs*X1Bcf(neM|DjtWQEC#n1b<0C7aa_+Uel4 zDt1Mtcl#S@=+22;RGw*%abrFAV(Q?jor!wg($l5v0v2;t!apLOPlV z;kx-9AJHN!qD}aOo_D%ohg{}1A>U1OHnmN6Q%E|lg-QJ^OVFVi9rly`Y@_p7I);_c zuCkaSqcjeKFqE!Nt#(hKZA32`7epvVEE*Y)x5Y>eA1+ye2Ev*cj+fz0bSBKa8z-G-3&?d!tK(F#lug zIpLmE6^DDy!r6hIsE`x`yo8z$nCMYPd?LT5gB>u&-Z|>Fm`LaaJhEMphUO6GBPSqf zOrx@LI^8p4B02v}lM{DHTnJ5b4_{{HGv4u#>8Jpg+FmEft+JK(Hd6(5C)=T$mh@IK z+D3-8>?N*mHjCN*wEhQ-DmJ(V*KXo^KKZ!SQW zi>bK)U1lkJ=i3doUrECwNm8?Z)py*uz{^bL6ebJ|8*#h=UPkSy)xnTwFjhcq)^P!n zZM*3D3_U){a9CTucU_)!X)0!N`%z^oCN!p$V}SaUOX25i{PD=m84M~9df2=?7^LzD zNh>49I>-BSu~_4V6DXWFnX5aD_%I#qE1?#QwP}n{nHr`gHqoJOK2tuxYqfxg+Fj>M zoHBYf8zM8~>1E;2NA@x zFy-9Q{uO@I#`d5@CQe=bgLMd*h_kuIH^@3fTB{iX66kcusnSB#+rwFxCfwBr=u*zW zs$C`Fy0=I{8wyL+Lw;eDi-i_9#}QfyQ|4mds4Zno(7ayfqbSd_Dof_q zSZF_o8JI+dG7*(j^C`#!xa2n5S$HTaDa)&cL)AeH26?V4kh+mOam|Rs=fzaQQxeJHJBy{~W!s<~2#!g#Qs?f`R|XW#fvC}8 zsvT(sbx51-#2%LWwlyc{jL}3psK$lZAmil#OS_J4$v>~VOouY**uZ;@hckD0`5F&9 zVV=I-Bi_0^a|?CBpx_XVlT5Z4jWKdH!Pp)7PI2~DclNH-ihRSH+^x79*$=kew2`{I zuoN4N${niaVslPgaJm?fbE8MV zjV96P%Im7ZVGl3*3MRjLwT#_^vt~E8!F%;BFr>^rbu7Kp5t`*c63V~#NDYtFiF?*4 z{46lIS#J=kpFD*z`*D+GHhWKCdrn042sPsKy*REIjR8TB1qjsxs%%$5Y^(>RF^V)| z_LoG14SR-EJ|{U~2YyflM8;>3O^L(V;ckCtd}Iu7!evi2O*3~1eZRshf%Kf3?mM@* zH;xumxE-RKNgyiGOn4gQ5PTQz9}sr8jHUXCm%B~fBTB8}CF3z-T%IMzd^7~TfN?bE zbyN(|6_Ixwm|+j+8|k;qlD22C+q2}p9P2BEsyM5V@s98>XbdBe8~J!jn7#|ggF&a? zgmDTpA7_=u_Ne)j$)wJ!(>zEWe%>rEaL6H+7i@if6IQeuWD9Ux`D6__sgo&Xku`reJAvK22P3M zdV79&zM;Kg(SsRM@50OyV>8TnP=e4~dX0C9kF#3OmwLPXGdIOJdF%#iWl`y|Qyro9aBT0tVU6{d1MUZD>0cBm(XdNH>-gnnsx3#funjm( z56;P*x9r!0@jj$iJ+A4|BZ|3HMgv+@eW56$0ps%ohVIQ$k!@46Ou}9iM_%#&v=v@0 zjJSO<7koa0->ZqAld;59E%s6Bx>FT`8h3$q>=-7sCW8B5wVT(^+L{TDZ548kioAF5 zA()%id3awuKX%XqxJ&v(ikq)@-{&-5@hu(4^{4snc-rGu3v2*;r1LrCBFe0r1&8&1 z6L)^5jxQjuhi>fH;wVSwHJJ( znnU?Ww^l(yrhKWMC|VhsCFG(#473RbOBCz%4VIckP$fnq7jN2wuwJ95a49q4W~I5X zw=_l;u6E8v11GnVH&wBSRRa#b2+x~R#1WSq+1N57!b#Hz&?J+oYJxy|71s+>yZG}; zyM%~d=@uEZH|_L`CQaM5fYx=)%p2v>a}hl)N6XoO`vcu|OPf`w`N%=3rOm~bpQCVX z{DH8miyd{Ri>LgcphEJUontrxa8(?4iN^|ki?zQ%}=~qdQ2KWurqCEvrt%i zVa04gL%3bci#!{J>t=DFC;tx*Qn)9G{b$G})w0^x+7WZSrxtg+uZ%oNPDaPB@6*P@ zuAyUmV+!Y-o$)5q2*Fb~B9UOuhkd-+Zr3LI2*Tj5ok1oR8LwHg6yG0m=8(58;;wCa z{ZHFd6gE=>jJT%6G>vvfiX60WGSN&<_xk}CTsU&*O)lkUdJv86fxn{_bz+Y4F2@z- z!}Yqi>wrZQ7_hMZ`VF=i7*~zU0+ikf$(JsRns$Jyq8= zHr;n>dHya6IIPk;vLyO`9Tn4Hv#aHAQg!Pc?)?6|+O&H7f`)moGIZYgG%J+qHK_`1 zY{(UU4kI$MbUk9b9SU(S4kiLhI!+R+Hqj*EW0M4Y{;`M4I0$;U#I#)T zbd9>C4#drxiF?6ST{oaYl!XaV{O7G`hjsAQ8MSmeoKh|T?O+{1;3E)kX@l~*D#txE zQ@GJ5%bMld4 zGtr|KbZj3S&^`jmPW5aFZW>Rhk2g#qAw#>Sl})SHwlk+OwRXd494CSOkpmHlPAA!Y z&ZMhoc9&8=xdiss!IFt# z55+wooB%{-tS=9AXT2RrmJ2H9t%@dE((9zY(yNvRxW6Mhv5%G{?j7iAt+eJnSM~aWJ27ysgo!1t9Gf;#~%V%+0pA4 zq#5CF;#GY=DCl>FYTVL3T>Zfwo}aG7)c^aB!|_LRA0D#~H6ViO&cq;(U20kwm@6-c zIg=Jbiok&fmDKujYN)bqg@T7+ah=~;OyrLp?9x=cy?yN1;B)1Y3#AN`*8o7MI$@lC zsLNZkAEy=-C)kDF+3O>{2yc!u2L_f6Rdl$Ka*phUOY_U#+&Q)anvAo!+r&tnv;rEp z$Xho^3(Sx7YCVq~ZUtr>IbGd9l1ZUUVxES9#cwftk}&u^xqvH8-K!U62e#ZlinmxLn=Qo2Pov4w4+6Dnx_Z zSjtVfqxE>z`=m$or$>y%&3m>BM!~(@wLj}9Wlnh==>aNSqexX?sUem{5l#O)!;ei zYE+|uH1YO${#tL8&#VxWKhdqA4Kq0pfM=tHG!>BhjaX{lwjm+0*T9~KN$Av0U8!1E z`hfh0SKp6&csdoG-9{bbbKJ!XY{R#h-SZ)O{tI^wo_0I+t^nGjYJ{{sHuWlV^jb7< z589)mZ}!BEoUGBh`GVId&h?4KKW9jtDJ^F_)H>3NIkM}zJS3cVa3H50WFjLCo4ukd zp?{^@3<9?MIqqUmx4|-7_nD0#0~V}ovc$UWl{O_M~@Luwp2Q!Dlu zRA}>}D+#C~1{)WhYeCdZgyyy5BVH!q&`{qghC|^CjYi>w&jfSPA`N%DZ6Y|&n7tw| zn_sVt(FNNV4-4cwv?X9m-aoKGWV=VM^KsGcXxpCJw#3iKkQJHanOOl$@iY>7#vDcJ zH2lhIY@|AcB^K*7Fc<51c&y>$4~Hj&LCfZ0b^MMr@^ZE10NPudinDAg$QA(OiwD%z z9&BG?@EO-^wzp-wq)U^-fG9FbOpg$~XVmI-aMis+5B&yD%2{c3Y@jw5AkAbi90O-J z=fa_Ba}BJ!FUD@8g3{8Pl@xwyp}vE{zR@|Jea-CC(c*_q zN{tzB<=4ScBDJDN5|yyP;vKjcN9(V!k)pX7aTTdc$U>32C)jqgUBopBZDqq=Mcq`M z23Yl6Mb4>H$x7ELsdwkkGl^(0Ur1k9;#tn@HS(+Tqg}wFrgsr;WN7aWKUTX3H4&o; zNcMo00n}N@+~LHYE1IKuehWIEMHjw`bZC0ybSA|Io*kJ*0F@x20X&_2XB(oyn%*Wo6Z^zGFQAPIK0LJ)>F<}20w_OudG`MR7D^nL literal 0 HcmV?d00001 diff --git a/bin/Debug/output.txt b/bin/Debug/output.txt new file mode 100644 index 0000000..43a7452 --- /dev/null +++ b/bin/Debug/output.txt @@ -0,0 +1,3 @@ + | * + | * + | * diff --git a/doctest.h.txt b/doctest.h.txt new file mode 100644 index 0000000..27ceb3e --- /dev/null +++ b/doctest.h.txt @@ -0,0 +1,8171 @@ +// ====================================================================== lgtm [cpp/missing-header-guard] +// == DO NOT MODIFY THIS FILE BY HAND - IT IS AUTO GENERATED BY CMAKE! == +// ====================================================================== +// +// doctest.h - the lightest feature-rich C++ single-header testing framework for unit tests and TDD +// +// Copyright (c) 2016-2023 Viktor Kirilov +// +// Distributed under the MIT Software License +// See accompanying file LICENSE.txt or copy at +// https://opensource.org/licenses/MIT +// +// The documentation can be found at the library's page: +// https://github.com/doctest/doctest/blob/master/doc/markdown/readme.md +// +// ================================================================================================= +// ================================================================================================= +// ================================================================================================= +// +// The library is heavily influenced by Catch - https://github.com/catchorg/Catch2 +// which uses the Boost Software License - Version 1.0 +// see here - https://github.com/catchorg/Catch2/blob/master/LICENSE.txt +// +// The concept of subcases (sections in Catch) and expression decomposition are from there. +// Some parts of the code are taken directly: +// - stringification - the detection of "ostream& operator<<(ostream&, const T&)" and StringMaker<> +// - the Approx() helper class for floating point comparison +// - colors in the console +// - breaking into a debugger +// - signal / SEH handling +// - timer +// - XmlWriter class - thanks to Phil Nash for allowing the direct reuse (AKA copy/paste) +// +// The expression decomposing templates are taken from lest - https://github.com/martinmoene/lest +// which uses the Boost Software License - Version 1.0 +// see here - https://github.com/martinmoene/lest/blob/master/LICENSE.txt +// +// ================================================================================================= +// ================================================================================================= +// ================================================================================================= + +#ifndef DOCTEST_LIBRARY_INCLUDED +#define DOCTEST_LIBRARY_INCLUDED + +// ================================================================================================= +// == VERSION ====================================================================================== +// ================================================================================================= + +#define DOCTEST_VERSION_MAJOR 2 +#define DOCTEST_VERSION_MINOR 4 +#define DOCTEST_VERSION_PATCH 11 + +// util we need here +#define DOCTEST_TOSTR_IMPL(x) #x +#define DOCTEST_TOSTR(x) DOCTEST_TOSTR_IMPL(x) + +#define DOCTEST_VERSION_STR \ + DOCTEST_TOSTR(DOCTEST_VERSION_MAJOR) "." \ + DOCTEST_TOSTR(DOCTEST_VERSION_MINOR) "." \ + DOCTEST_TOSTR(DOCTEST_VERSION_PATCH) + +#define DOCTEST_VERSION \ + (DOCTEST_VERSION_MAJOR * 10000 + DOCTEST_VERSION_MINOR * 100 + DOCTEST_VERSION_PATCH) + +// ================================================================================================= +// == COMPILER VERSION ============================================================================= +// ================================================================================================= + +// ideas for the version stuff are taken from here: https://github.com/cxxstuff/cxx_detect + +#ifdef _MSC_VER +#define DOCTEST_CPLUSPLUS _MSVC_LANG +#else +#define DOCTEST_CPLUSPLUS __cplusplus +#endif + +#define DOCTEST_COMPILER(MAJOR, MINOR, PATCH) ((MAJOR)*10000000 + (MINOR)*100000 + (PATCH)) + +// GCC/Clang and GCC/MSVC are mutually exclusive, but Clang/MSVC are not because of clang-cl... +#if defined(_MSC_VER) && defined(_MSC_FULL_VER) +#if _MSC_VER == _MSC_FULL_VER / 10000 +#define DOCTEST_MSVC DOCTEST_COMPILER(_MSC_VER / 100, _MSC_VER % 100, _MSC_FULL_VER % 10000) +#else // MSVC +#define DOCTEST_MSVC \ + DOCTEST_COMPILER(_MSC_VER / 100, (_MSC_FULL_VER / 100000) % 100, _MSC_FULL_VER % 100000) +#endif // MSVC +#endif // MSVC +#if defined(__clang__) && defined(__clang_minor__) && defined(__clang_patchlevel__) +#define DOCTEST_CLANG DOCTEST_COMPILER(__clang_major__, __clang_minor__, __clang_patchlevel__) +#elif defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__GNUC_PATCHLEVEL__) && \ + !defined(__INTEL_COMPILER) +#define DOCTEST_GCC DOCTEST_COMPILER(__GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__) +#endif // GCC +#if defined(__INTEL_COMPILER) +#define DOCTEST_ICC DOCTEST_COMPILER(__INTEL_COMPILER / 100, __INTEL_COMPILER % 100, 0) +#endif // ICC + +#ifndef DOCTEST_MSVC +#define DOCTEST_MSVC 0 +#endif // DOCTEST_MSVC +#ifndef DOCTEST_CLANG +#define DOCTEST_CLANG 0 +#endif // DOCTEST_CLANG +#ifndef DOCTEST_GCC +#define DOCTEST_GCC 0 +#endif // DOCTEST_GCC +#ifndef DOCTEST_ICC +#define DOCTEST_ICC 0 +#endif // DOCTEST_ICC + +// ================================================================================================= +// == COMPILER WARNINGS HELPERS ==================================================================== +// ================================================================================================= + +#if DOCTEST_CLANG && !DOCTEST_ICC +#define DOCTEST_PRAGMA_TO_STR(x) _Pragma(#x) +#define DOCTEST_CLANG_SUPPRESS_WARNING_PUSH _Pragma("clang diagnostic push") +#define DOCTEST_CLANG_SUPPRESS_WARNING(w) DOCTEST_PRAGMA_TO_STR(clang diagnostic ignored w) +#define DOCTEST_CLANG_SUPPRESS_WARNING_POP _Pragma("clang diagnostic pop") +#define DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH(w) \ + DOCTEST_CLANG_SUPPRESS_WARNING_PUSH DOCTEST_CLANG_SUPPRESS_WARNING(w) +#else // DOCTEST_CLANG +#define DOCTEST_CLANG_SUPPRESS_WARNING_PUSH +#define DOCTEST_CLANG_SUPPRESS_WARNING(w) +#define DOCTEST_CLANG_SUPPRESS_WARNING_POP +#define DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH(w) +#endif // DOCTEST_CLANG + +#if DOCTEST_GCC +#define DOCTEST_PRAGMA_TO_STR(x) _Pragma(#x) +#define DOCTEST_GCC_SUPPRESS_WARNING_PUSH _Pragma("GCC diagnostic push") +#define DOCTEST_GCC_SUPPRESS_WARNING(w) DOCTEST_PRAGMA_TO_STR(GCC diagnostic ignored w) +#define DOCTEST_GCC_SUPPRESS_WARNING_POP _Pragma("GCC diagnostic pop") +#define DOCTEST_GCC_SUPPRESS_WARNING_WITH_PUSH(w) \ + DOCTEST_GCC_SUPPRESS_WARNING_PUSH DOCTEST_GCC_SUPPRESS_WARNING(w) +#else // DOCTEST_GCC +#define DOCTEST_GCC_SUPPRESS_WARNING_PUSH +#define DOCTEST_GCC_SUPPRESS_WARNING(w) +#define DOCTEST_GCC_SUPPRESS_WARNING_POP +#define DOCTEST_GCC_SUPPRESS_WARNING_WITH_PUSH(w) +#endif // DOCTEST_GCC + +#if DOCTEST_MSVC +#define DOCTEST_MSVC_SUPPRESS_WARNING_PUSH __pragma(warning(push)) +#define DOCTEST_MSVC_SUPPRESS_WARNING(w) __pragma(warning(disable : w)) +#define DOCTEST_MSVC_SUPPRESS_WARNING_POP __pragma(warning(pop)) +#define DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(w) \ + DOCTEST_MSVC_SUPPRESS_WARNING_PUSH DOCTEST_MSVC_SUPPRESS_WARNING(w) +#else // DOCTEST_MSVC +#define DOCTEST_MSVC_SUPPRESS_WARNING_PUSH +#define DOCTEST_MSVC_SUPPRESS_WARNING(w) +#define DOCTEST_MSVC_SUPPRESS_WARNING_POP +#define DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(w) +#endif // DOCTEST_MSVC + +// ================================================================================================= +// == COMPILER WARNINGS ============================================================================ +// ================================================================================================= + +// both the header and the implementation suppress all of these, +// so it only makes sense to aggregate them like so +#define DOCTEST_SUPPRESS_COMMON_WARNINGS_PUSH \ + DOCTEST_CLANG_SUPPRESS_WARNING_PUSH \ + DOCTEST_CLANG_SUPPRESS_WARNING("-Wunknown-pragmas") \ + DOCTEST_CLANG_SUPPRESS_WARNING("-Wweak-vtables") \ + DOCTEST_CLANG_SUPPRESS_WARNING("-Wpadded") \ + DOCTEST_CLANG_SUPPRESS_WARNING("-Wmissing-prototypes") \ + DOCTEST_CLANG_SUPPRESS_WARNING("-Wc++98-compat") \ + DOCTEST_CLANG_SUPPRESS_WARNING("-Wc++98-compat-pedantic") \ + \ + DOCTEST_GCC_SUPPRESS_WARNING_PUSH \ + DOCTEST_GCC_SUPPRESS_WARNING("-Wunknown-pragmas") \ + DOCTEST_GCC_SUPPRESS_WARNING("-Wpragmas") \ + DOCTEST_GCC_SUPPRESS_WARNING("-Weffc++") \ + DOCTEST_GCC_SUPPRESS_WARNING("-Wstrict-overflow") \ + DOCTEST_GCC_SUPPRESS_WARNING("-Wstrict-aliasing") \ + DOCTEST_GCC_SUPPRESS_WARNING("-Wmissing-declarations") \ + DOCTEST_GCC_SUPPRESS_WARNING("-Wuseless-cast") \ + DOCTEST_GCC_SUPPRESS_WARNING("-Wnoexcept") \ + \ + DOCTEST_MSVC_SUPPRESS_WARNING_PUSH \ + /* these 4 also disabled globally via cmake: */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(4514) /* unreferenced inline function has been removed */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(4571) /* SEH related */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(4710) /* function not inlined */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(4711) /* function selected for inline expansion*/ \ + /* common ones */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(4616) /* invalid compiler warning */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(4619) /* invalid compiler warning */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(4996) /* The compiler encountered a deprecated declaration */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(4706) /* assignment within conditional expression */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(4512) /* 'class' : assignment operator could not be generated */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(4127) /* conditional expression is constant */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(4820) /* padding */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(4625) /* copy constructor was implicitly deleted */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(4626) /* assignment operator was implicitly deleted */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(5027) /* move assignment operator implicitly deleted */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(5026) /* move constructor was implicitly deleted */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(4640) /* construction of local static object not thread-safe */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(5045) /* Spectre mitigation for memory load */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(5264) /* 'variable-name': 'const' variable is not used */ \ + /* static analysis */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(26439) /* Function may not throw. Declare it 'noexcept' */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(26495) /* Always initialize a member variable */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(26451) /* Arithmetic overflow ... */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(26444) /* Avoid unnamed objects with custom ctor and dtor... */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(26812) /* Prefer 'enum class' over 'enum' */ + +#define DOCTEST_SUPPRESS_COMMON_WARNINGS_POP \ + DOCTEST_CLANG_SUPPRESS_WARNING_POP \ + DOCTEST_GCC_SUPPRESS_WARNING_POP \ + DOCTEST_MSVC_SUPPRESS_WARNING_POP + +DOCTEST_SUPPRESS_COMMON_WARNINGS_PUSH + +DOCTEST_CLANG_SUPPRESS_WARNING_PUSH +DOCTEST_CLANG_SUPPRESS_WARNING("-Wnon-virtual-dtor") +DOCTEST_CLANG_SUPPRESS_WARNING("-Wdeprecated") + +DOCTEST_GCC_SUPPRESS_WARNING_PUSH +DOCTEST_GCC_SUPPRESS_WARNING("-Wctor-dtor-privacy") +DOCTEST_GCC_SUPPRESS_WARNING("-Wnon-virtual-dtor") +DOCTEST_GCC_SUPPRESS_WARNING("-Wsign-promo") + +DOCTEST_MSVC_SUPPRESS_WARNING_PUSH +DOCTEST_MSVC_SUPPRESS_WARNING(4623) // default constructor was implicitly defined as deleted + +#define DOCTEST_MAKE_STD_HEADERS_CLEAN_FROM_WARNINGS_ON_WALL_BEGIN \ + DOCTEST_MSVC_SUPPRESS_WARNING_PUSH \ + DOCTEST_MSVC_SUPPRESS_WARNING(4548) /* before comma no effect; expected side - effect */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(4265) /* virtual functions, but destructor is not virtual */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(4986) /* exception specification does not match previous */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(4350) /* 'member1' called instead of 'member2' */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(4668) /* not defined as a preprocessor macro */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(4365) /* signed/unsigned mismatch */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(4774) /* format string not a string literal */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(4820) /* padding */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(4625) /* copy constructor was implicitly deleted */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(4626) /* assignment operator was implicitly deleted */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(5027) /* move assignment operator implicitly deleted */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(5026) /* move constructor was implicitly deleted */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(4623) /* default constructor was implicitly deleted */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(5039) /* pointer to pot. throwing function passed to extern C */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(5045) /* Spectre mitigation for memory load */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(5105) /* macro producing 'defined' has undefined behavior */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(4738) /* storing float result in memory, loss of performance */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(5262) /* implicit fall-through */ + +#define DOCTEST_MAKE_STD_HEADERS_CLEAN_FROM_WARNINGS_ON_WALL_END DOCTEST_MSVC_SUPPRESS_WARNING_POP + +// ================================================================================================= +// == FEATURE DETECTION ============================================================================ +// ================================================================================================= + +// general compiler feature support table: https://en.cppreference.com/w/cpp/compiler_support +// MSVC C++11 feature support table: https://msdn.microsoft.com/en-us/library/hh567368.aspx +// GCC C++11 feature support table: https://gcc.gnu.org/projects/cxx-status.html +// MSVC version table: +// https://en.wikipedia.org/wiki/Microsoft_Visual_C%2B%2B#Internal_version_numbering +// MSVC++ 14.3 (17) _MSC_VER == 1930 (Visual Studio 2022) +// MSVC++ 14.2 (16) _MSC_VER == 1920 (Visual Studio 2019) +// MSVC++ 14.1 (15) _MSC_VER == 1910 (Visual Studio 2017) +// MSVC++ 14.0 _MSC_VER == 1900 (Visual Studio 2015) +// MSVC++ 12.0 _MSC_VER == 1800 (Visual Studio 2013) +// MSVC++ 11.0 _MSC_VER == 1700 (Visual Studio 2012) +// MSVC++ 10.0 _MSC_VER == 1600 (Visual Studio 2010) +// MSVC++ 9.0 _MSC_VER == 1500 (Visual Studio 2008) +// MSVC++ 8.0 _MSC_VER == 1400 (Visual Studio 2005) + +// Universal Windows Platform support +#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY == WINAPI_FAMILY_APP) +#define DOCTEST_CONFIG_NO_WINDOWS_SEH +#endif // WINAPI_FAMILY +#if DOCTEST_MSVC && !defined(DOCTEST_CONFIG_WINDOWS_SEH) +#define DOCTEST_CONFIG_WINDOWS_SEH +#endif // MSVC +#if defined(DOCTEST_CONFIG_NO_WINDOWS_SEH) && defined(DOCTEST_CONFIG_WINDOWS_SEH) +#undef DOCTEST_CONFIG_WINDOWS_SEH +#endif // DOCTEST_CONFIG_NO_WINDOWS_SEH + +#if !defined(_WIN32) && !defined(__QNX__) && !defined(DOCTEST_CONFIG_POSIX_SIGNALS) && \ + !defined(__EMSCRIPTEN__) && !defined(__wasi__) +#define DOCTEST_CONFIG_POSIX_SIGNALS +#endif // _WIN32 +#if defined(DOCTEST_CONFIG_NO_POSIX_SIGNALS) && defined(DOCTEST_CONFIG_POSIX_SIGNALS) +#undef DOCTEST_CONFIG_POSIX_SIGNALS +#endif // DOCTEST_CONFIG_NO_POSIX_SIGNALS + +#ifndef DOCTEST_CONFIG_NO_EXCEPTIONS +#if !defined(__cpp_exceptions) && !defined(__EXCEPTIONS) && !defined(_CPPUNWIND) \ + || defined(__wasi__) +#define DOCTEST_CONFIG_NO_EXCEPTIONS +#endif // no exceptions +#endif // DOCTEST_CONFIG_NO_EXCEPTIONS + +#ifdef DOCTEST_CONFIG_NO_EXCEPTIONS_BUT_WITH_ALL_ASSERTS +#ifndef DOCTEST_CONFIG_NO_EXCEPTIONS +#define DOCTEST_CONFIG_NO_EXCEPTIONS +#endif // DOCTEST_CONFIG_NO_EXCEPTIONS +#endif // DOCTEST_CONFIG_NO_EXCEPTIONS_BUT_WITH_ALL_ASSERTS + +#if defined(DOCTEST_CONFIG_NO_EXCEPTIONS) && !defined(DOCTEST_CONFIG_NO_TRY_CATCH_IN_ASSERTS) +#define DOCTEST_CONFIG_NO_TRY_CATCH_IN_ASSERTS +#endif // DOCTEST_CONFIG_NO_EXCEPTIONS && !DOCTEST_CONFIG_NO_TRY_CATCH_IN_ASSERTS + +#ifdef __wasi__ +#define DOCTEST_CONFIG_NO_MULTITHREADING +#endif + +#if defined(DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN) && !defined(DOCTEST_CONFIG_IMPLEMENT) +#define DOCTEST_CONFIG_IMPLEMENT +#endif // DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN + +#if defined(_WIN32) || defined(__CYGWIN__) +#if DOCTEST_MSVC +#define DOCTEST_SYMBOL_EXPORT __declspec(dllexport) +#define DOCTEST_SYMBOL_IMPORT __declspec(dllimport) +#else // MSVC +#define DOCTEST_SYMBOL_EXPORT __attribute__((dllexport)) +#define DOCTEST_SYMBOL_IMPORT __attribute__((dllimport)) +#endif // MSVC +#else // _WIN32 +#define DOCTEST_SYMBOL_EXPORT __attribute__((visibility("default"))) +#define DOCTEST_SYMBOL_IMPORT +#endif // _WIN32 + +#ifdef DOCTEST_CONFIG_IMPLEMENTATION_IN_DLL +#ifdef DOCTEST_CONFIG_IMPLEMENT +#define DOCTEST_INTERFACE DOCTEST_SYMBOL_EXPORT +#else // DOCTEST_CONFIG_IMPLEMENT +#define DOCTEST_INTERFACE DOCTEST_SYMBOL_IMPORT +#endif // DOCTEST_CONFIG_IMPLEMENT +#else // DOCTEST_CONFIG_IMPLEMENTATION_IN_DLL +#define DOCTEST_INTERFACE +#endif // DOCTEST_CONFIG_IMPLEMENTATION_IN_DLL + +// needed for extern template instantiations +// see https://github.com/fmtlib/fmt/issues/2228 +#if DOCTEST_MSVC +#define DOCTEST_INTERFACE_DECL +#define DOCTEST_INTERFACE_DEF DOCTEST_INTERFACE +#else // DOCTEST_MSVC +#define DOCTEST_INTERFACE_DECL DOCTEST_INTERFACE +#define DOCTEST_INTERFACE_DEF +#endif // DOCTEST_MSVC + +#define DOCTEST_EMPTY + +#if DOCTEST_MSVC +#define DOCTEST_NOINLINE __declspec(noinline) +#define DOCTEST_UNUSED +#define DOCTEST_ALIGNMENT(x) +#elif DOCTEST_CLANG && DOCTEST_CLANG < DOCTEST_COMPILER(3, 5, 0) +#define DOCTEST_NOINLINE +#define DOCTEST_UNUSED +#define DOCTEST_ALIGNMENT(x) +#else +#define DOCTEST_NOINLINE __attribute__((noinline)) +#define DOCTEST_UNUSED __attribute__((unused)) +#define DOCTEST_ALIGNMENT(x) __attribute__((aligned(x))) +#endif + +#ifdef DOCTEST_CONFIG_NO_CONTRADICTING_INLINE +#define DOCTEST_INLINE_NOINLINE inline +#else +#define DOCTEST_INLINE_NOINLINE inline DOCTEST_NOINLINE +#endif + +#ifndef DOCTEST_NORETURN +#if DOCTEST_MSVC && (DOCTEST_MSVC < DOCTEST_COMPILER(19, 0, 0)) +#define DOCTEST_NORETURN +#else // DOCTEST_MSVC +#define DOCTEST_NORETURN [[noreturn]] +#endif // DOCTEST_MSVC +#endif // DOCTEST_NORETURN + +#ifndef DOCTEST_NOEXCEPT +#if DOCTEST_MSVC && (DOCTEST_MSVC < DOCTEST_COMPILER(19, 0, 0)) +#define DOCTEST_NOEXCEPT +#else // DOCTEST_MSVC +#define DOCTEST_NOEXCEPT noexcept +#endif // DOCTEST_MSVC +#endif // DOCTEST_NOEXCEPT + +#ifndef DOCTEST_CONSTEXPR +#if DOCTEST_MSVC && (DOCTEST_MSVC < DOCTEST_COMPILER(19, 0, 0)) +#define DOCTEST_CONSTEXPR const +#define DOCTEST_CONSTEXPR_FUNC inline +#else // DOCTEST_MSVC +#define DOCTEST_CONSTEXPR constexpr +#define DOCTEST_CONSTEXPR_FUNC constexpr +#endif // DOCTEST_MSVC +#endif // DOCTEST_CONSTEXPR + +#ifndef DOCTEST_NO_SANITIZE_INTEGER +#if DOCTEST_CLANG >= DOCTEST_COMPILER(3, 7, 0) +#define DOCTEST_NO_SANITIZE_INTEGER __attribute__((no_sanitize("integer"))) +#else +#define DOCTEST_NO_SANITIZE_INTEGER +#endif +#endif // DOCTEST_NO_SANITIZE_INTEGER + +// ================================================================================================= +// == FEATURE DETECTION END ======================================================================== +// ================================================================================================= + +#define DOCTEST_DECLARE_INTERFACE(name) \ + virtual ~name(); \ + name() = default; \ + name(const name&) = delete; \ + name(name&&) = delete; \ + name& operator=(const name&) = delete; \ + name& operator=(name&&) = delete; + +#define DOCTEST_DEFINE_INTERFACE(name) \ + name::~name() = default; + +// internal macros for string concatenation and anonymous variable name generation +#define DOCTEST_CAT_IMPL(s1, s2) s1##s2 +#define DOCTEST_CAT(s1, s2) DOCTEST_CAT_IMPL(s1, s2) +#ifdef __COUNTER__ // not standard and may be missing for some compilers +#define DOCTEST_ANONYMOUS(x) DOCTEST_CAT(x, __COUNTER__) +#else // __COUNTER__ +#define DOCTEST_ANONYMOUS(x) DOCTEST_CAT(x, __LINE__) +#endif // __COUNTER__ + +#ifndef DOCTEST_CONFIG_ASSERTION_PARAMETERS_BY_VALUE +#define DOCTEST_REF_WRAP(x) x& +#else // DOCTEST_CONFIG_ASSERTION_PARAMETERS_BY_VALUE +#define DOCTEST_REF_WRAP(x) x +#endif // DOCTEST_CONFIG_ASSERTION_PARAMETERS_BY_VALUE + +// not using __APPLE__ because... this is how Catch does it +#ifdef __MAC_OS_X_VERSION_MIN_REQUIRED +#define DOCTEST_PLATFORM_MAC +#elif defined(__IPHONE_OS_VERSION_MIN_REQUIRED) +#define DOCTEST_PLATFORM_IPHONE +#elif defined(_WIN32) +#define DOCTEST_PLATFORM_WINDOWS +#elif defined(__wasi__) +#define DOCTEST_PLATFORM_WASI +#else // DOCTEST_PLATFORM +#define DOCTEST_PLATFORM_LINUX +#endif // DOCTEST_PLATFORM + +namespace doctest +{ +namespace detail +{ +static DOCTEST_CONSTEXPR int consume(const int*, int) noexcept +{ + return 0; +} +} +} + +#define DOCTEST_GLOBAL_NO_WARNINGS(var, ...) \ + DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH("-Wglobal-constructors") \ + static const int var = doctest::detail::consume(&var, __VA_ARGS__); \ + DOCTEST_CLANG_SUPPRESS_WARNING_POP + +#ifndef DOCTEST_BREAK_INTO_DEBUGGER +// should probably take a look at https://github.com/scottt/debugbreak +#ifdef DOCTEST_PLATFORM_LINUX +#if defined(__GNUC__) && (defined(__i386) || defined(__x86_64)) +// Break at the location of the failing check if possible +#define DOCTEST_BREAK_INTO_DEBUGGER() __asm__("int $3\n" : :) // NOLINT(hicpp-no-assembler) +#else +#include +#define DOCTEST_BREAK_INTO_DEBUGGER() raise(SIGTRAP) +#endif +#elif defined(DOCTEST_PLATFORM_MAC) +#if defined(__x86_64) || defined(__x86_64__) || defined(__amd64__) || defined(__i386) +#define DOCTEST_BREAK_INTO_DEBUGGER() __asm__("int $3\n" : :) // NOLINT(hicpp-no-assembler) +#elif defined(__ppc__) || defined(__ppc64__) +// https://www.cocoawithlove.com/2008/03/break-into-debugger.html +#define DOCTEST_BREAK_INTO_DEBUGGER() __asm__("li r0, 20\nsc\nnop\nli r0, 37\nli r4, 2\nsc\nnop\n": : : "memory","r0","r3","r4") // NOLINT(hicpp-no-assembler) +#else +#define DOCTEST_BREAK_INTO_DEBUGGER() __asm__("brk #0"); // NOLINT(hicpp-no-assembler) +#endif +#elif DOCTEST_MSVC +#define DOCTEST_BREAK_INTO_DEBUGGER() __debugbreak() +#elif defined(__MINGW32__) +DOCTEST_GCC_SUPPRESS_WARNING_WITH_PUSH("-Wredundant-decls") +extern "C" __declspec(dllimport) void __stdcall DebugBreak(); +DOCTEST_GCC_SUPPRESS_WARNING_POP +#define DOCTEST_BREAK_INTO_DEBUGGER() ::DebugBreak() +#else // linux +#define DOCTEST_BREAK_INTO_DEBUGGER() (static_cast(0)) +#endif // linux +#endif // DOCTEST_BREAK_INTO_DEBUGGER + +// this is kept here for backwards compatibility since the config option was changed +#ifdef DOCTEST_CONFIG_USE_IOSFWD +#ifndef DOCTEST_CONFIG_USE_STD_HEADERS +#define DOCTEST_CONFIG_USE_STD_HEADERS +#endif +#endif // DOCTEST_CONFIG_USE_IOSFWD + +// for clang - always include ciso646 (which drags some std stuff) because +// we want to check if we are using libc++ with the _LIBCPP_VERSION macro in +// which case we don't want to forward declare stuff from std - for reference: +// https://github.com/doctest/doctest/issues/126 +// https://github.com/doctest/doctest/issues/356 +#if DOCTEST_CLANG +#include +#endif // clang + +#ifdef _LIBCPP_VERSION +#ifndef DOCTEST_CONFIG_USE_STD_HEADERS +#define DOCTEST_CONFIG_USE_STD_HEADERS +#endif +#endif // _LIBCPP_VERSION + +#ifdef DOCTEST_CONFIG_USE_STD_HEADERS +#ifndef DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS +#define DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS +#endif // DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS +DOCTEST_MAKE_STD_HEADERS_CLEAN_FROM_WARNINGS_ON_WALL_BEGIN +#include +#include +#include +DOCTEST_MAKE_STD_HEADERS_CLEAN_FROM_WARNINGS_ON_WALL_END +#else // DOCTEST_CONFIG_USE_STD_HEADERS + +// Forward declaring 'X' in namespace std is not permitted by the C++ Standard. +DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4643) + +namespace std // NOLINT(cert-dcl58-cpp) +{ +typedef decltype(nullptr) nullptr_t; // NOLINT(modernize-use-using) +typedef decltype(sizeof(void*)) size_t; // NOLINT(modernize-use-using) +template +struct char_traits; +template <> +struct char_traits; +template +class basic_ostream; // NOLINT(fuchsia-virtual-inheritance) +typedef basic_ostream> ostream; // NOLINT(modernize-use-using) +template +// NOLINTNEXTLINE +basic_ostream& operator<<(basic_ostream&, const char*); +template +class basic_istream; +typedef basic_istream> istream; // NOLINT(modernize-use-using) +template +class tuple; +#if DOCTEST_MSVC >= DOCTEST_COMPILER(19, 20, 0) +// see this issue on why this is needed: https://github.com/doctest/doctest/issues/183 +template +class allocator; +template +class basic_string; +using string = basic_string, allocator>; +#endif // VS 2019 +} // namespace std + +DOCTEST_MSVC_SUPPRESS_WARNING_POP + +#endif // DOCTEST_CONFIG_USE_STD_HEADERS + +#ifdef DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS +#include +#endif // DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS + +namespace doctest +{ + +using std::size_t; + +DOCTEST_INTERFACE extern bool is_running_in_test; + +#ifndef DOCTEST_CONFIG_STRING_SIZE_TYPE +#define DOCTEST_CONFIG_STRING_SIZE_TYPE unsigned +#endif + +// A 24 byte string class (can be as small as 17 for x64 and 13 for x86) that can hold strings with length +// of up to 23 chars on the stack before going on the heap - the last byte of the buffer is used for: +// - "is small" bit - the highest bit - if "0" then it is small - otherwise its "1" (128) +// - if small - capacity left before going on the heap - using the lowest 5 bits +// - if small - 2 bits are left unused - the second and third highest ones +// - if small - acts as a null terminator if strlen() is 23 (24 including the null terminator) +// and the "is small" bit remains "0" ("as well as the capacity left") so its OK +// Idea taken from this lecture about the string implementation of facebook/folly - fbstring +// https://www.youtube.com/watch?v=kPR8h4-qZdk +// TODO: +// - optimizations - like not deleting memory unnecessarily in operator= and etc. +// - resize/reserve/clear +// - replace +// - back/front +// - iterator stuff +// - find & friends +// - push_back/pop_back +// - assign/insert/erase +// - relational operators as free functions - taking const char* as one of the params +class DOCTEST_INTERFACE String +{ +public: + using size_type = DOCTEST_CONFIG_STRING_SIZE_TYPE; + +private: + static DOCTEST_CONSTEXPR size_type len = 24; //!OCLINT avoid private static members + static DOCTEST_CONSTEXPR size_type last = len - 1; //!OCLINT avoid private static members + + struct view // len should be more than sizeof(view) - because of the final byte for flags + { + char* ptr; + size_type size; + size_type capacity; + }; + + union + { + char buf[len]; // NOLINT(*-avoid-c-arrays) + view data; + }; + + char* allocate(size_type sz); + + bool isOnStack() const noexcept + { + return (buf[last] & 128) == 0; + } + void setOnHeap() noexcept; + void setLast(size_type in = last) noexcept; + void setSize(size_type sz) noexcept; + + void copy(const String& other); + +public: + static DOCTEST_CONSTEXPR size_type npos = static_cast(-1); + + String() noexcept; + ~String(); + + // cppcheck-suppress noExplicitConstructor + String(const char* in); + String(const char* in, size_type in_size); + + String(std::istream& in, size_type in_size); + + String(const String& other); + String& operator=(const String& other); + + String& operator+=(const String& other); + + String(String&& other) noexcept; + String& operator=(String&& other) noexcept; + + char operator[](size_type i) const; + char& operator[](size_type i); + + // the only functions I'm willing to leave in the interface - available for inlining + const char* c_str() const + { + return const_cast(this)->c_str(); // NOLINT + } + char* c_str() + { + if (isOnStack()) + { + return reinterpret_cast(buf); + } + return data.ptr; + } + + size_type size() const; + size_type capacity() const; + + String substr(size_type pos, size_type cnt = npos) &&; + String substr(size_type pos, size_type cnt = npos) const &; + + size_type find(char ch, size_type pos = 0) const; + size_type rfind(char ch, size_type pos = npos) const; + + int compare(const char* other, bool no_case = false) const; + int compare(const String& other, bool no_case = false) const; + + friend DOCTEST_INTERFACE std::ostream& operator<<(std::ostream& s, const String& in); +}; + +DOCTEST_INTERFACE String operator+(const String& lhs, const String& rhs); + +DOCTEST_INTERFACE bool operator==(const String& lhs, const String& rhs); +DOCTEST_INTERFACE bool operator!=(const String& lhs, const String& rhs); +DOCTEST_INTERFACE bool operator<(const String& lhs, const String& rhs); +DOCTEST_INTERFACE bool operator>(const String& lhs, const String& rhs); +DOCTEST_INTERFACE bool operator<=(const String& lhs, const String& rhs); +DOCTEST_INTERFACE bool operator>=(const String& lhs, const String& rhs); + +class DOCTEST_INTERFACE Contains +{ +public: + explicit Contains(const String& string); + + bool checkWith(const String& other) const; + + String string; +}; + +DOCTEST_INTERFACE String toString(const Contains& in); + +DOCTEST_INTERFACE bool operator==(const String& lhs, const Contains& rhs); +DOCTEST_INTERFACE bool operator==(const Contains& lhs, const String& rhs); +DOCTEST_INTERFACE bool operator!=(const String& lhs, const Contains& rhs); +DOCTEST_INTERFACE bool operator!=(const Contains& lhs, const String& rhs); + +namespace Color +{ +enum Enum +{ + None = 0, + White, + Red, + Green, + Blue, + Cyan, + Yellow, + Grey, + + Bright = 0x10, + + BrightRed = Bright | Red, + BrightGreen = Bright | Green, + LightGrey = Bright | Grey, + BrightWhite = Bright | White +}; + +DOCTEST_INTERFACE std::ostream& operator<<(std::ostream& s, Color::Enum code); +} // namespace Color + +namespace assertType +{ +enum Enum +{ + // macro traits + + is_warn = 1, + is_check = 2 * is_warn, + is_require = 2 * is_check, + + is_normal = 2 * is_require, + is_throws = 2 * is_normal, + is_throws_as = 2 * is_throws, + is_throws_with = 2 * is_throws_as, + is_nothrow = 2 * is_throws_with, + + is_false = 2 * is_nothrow, + is_unary = 2 * is_false, // not checked anywhere - used just to distinguish the types + + is_eq = 2 * is_unary, + is_ne = 2 * is_eq, + + is_lt = 2 * is_ne, + is_gt = 2 * is_lt, + + is_ge = 2 * is_gt, + is_le = 2 * is_ge, + + // macro types + + DT_WARN = is_normal | is_warn, + DT_CHECK = is_normal | is_check, + DT_REQUIRE = is_normal | is_require, + + DT_WARN_FALSE = is_normal | is_false | is_warn, + DT_CHECK_FALSE = is_normal | is_false | is_check, + DT_REQUIRE_FALSE = is_normal | is_false | is_require, + + DT_WARN_THROWS = is_throws | is_warn, + DT_CHECK_THROWS = is_throws | is_check, + DT_REQUIRE_THROWS = is_throws | is_require, + + DT_WARN_THROWS_AS = is_throws_as | is_warn, + DT_CHECK_THROWS_AS = is_throws_as | is_check, + DT_REQUIRE_THROWS_AS = is_throws_as | is_require, + + DT_WARN_THROWS_WITH = is_throws_with | is_warn, + DT_CHECK_THROWS_WITH = is_throws_with | is_check, + DT_REQUIRE_THROWS_WITH = is_throws_with | is_require, + + DT_WARN_THROWS_WITH_AS = is_throws_with | is_throws_as | is_warn, + DT_CHECK_THROWS_WITH_AS = is_throws_with | is_throws_as | is_check, + DT_REQUIRE_THROWS_WITH_AS = is_throws_with | is_throws_as | is_require, + + DT_WARN_NOTHROW = is_nothrow | is_warn, + DT_CHECK_NOTHROW = is_nothrow | is_check, + DT_REQUIRE_NOTHROW = is_nothrow | is_require, + + DT_WARN_EQ = is_normal | is_eq | is_warn, + DT_CHECK_EQ = is_normal | is_eq | is_check, + DT_REQUIRE_EQ = is_normal | is_eq | is_require, + + DT_WARN_NE = is_normal | is_ne | is_warn, + DT_CHECK_NE = is_normal | is_ne | is_check, + DT_REQUIRE_NE = is_normal | is_ne | is_require, + + DT_WARN_GT = is_normal | is_gt | is_warn, + DT_CHECK_GT = is_normal | is_gt | is_check, + DT_REQUIRE_GT = is_normal | is_gt | is_require, + + DT_WARN_LT = is_normal | is_lt | is_warn, + DT_CHECK_LT = is_normal | is_lt | is_check, + DT_REQUIRE_LT = is_normal | is_lt | is_require, + + DT_WARN_GE = is_normal | is_ge | is_warn, + DT_CHECK_GE = is_normal | is_ge | is_check, + DT_REQUIRE_GE = is_normal | is_ge | is_require, + + DT_WARN_LE = is_normal | is_le | is_warn, + DT_CHECK_LE = is_normal | is_le | is_check, + DT_REQUIRE_LE = is_normal | is_le | is_require, + + DT_WARN_UNARY = is_normal | is_unary | is_warn, + DT_CHECK_UNARY = is_normal | is_unary | is_check, + DT_REQUIRE_UNARY = is_normal | is_unary | is_require, + + DT_WARN_UNARY_FALSE = is_normal | is_false | is_unary | is_warn, + DT_CHECK_UNARY_FALSE = is_normal | is_false | is_unary | is_check, + DT_REQUIRE_UNARY_FALSE = is_normal | is_false | is_unary | is_require, +}; +} // namespace assertType + +DOCTEST_INTERFACE const char* assertString(assertType::Enum at); +DOCTEST_INTERFACE const char* failureString(assertType::Enum at); +DOCTEST_INTERFACE const char* skipPathFromFilename(const char* file); + +struct DOCTEST_INTERFACE TestCaseData +{ + String m_file; // the file in which the test was registered (using String - see #350) + unsigned m_line; // the line where the test was registered + const char* m_name; // name of the test case + const char* m_test_suite; // the test suite in which the test was added + const char* m_description; + bool m_skip; + bool m_no_breaks; + bool m_no_output; + bool m_may_fail; + bool m_should_fail; + int m_expected_failures; + double m_timeout; +}; + +struct DOCTEST_INTERFACE AssertData +{ + // common - for all asserts + const TestCaseData* m_test_case; + assertType::Enum m_at; + const char* m_file; + int m_line; + const char* m_expr; + bool m_failed; + + // exception-related - for all asserts + bool m_threw; + String m_exception; + + // for normal asserts + String m_decomp; + + // for specific exception-related asserts + bool m_threw_as; + const char* m_exception_type; + + class DOCTEST_INTERFACE StringContains + { + private: + Contains content; + bool isContains; + + public: + StringContains(const String& str) : content(str), isContains(false) { } + StringContains(Contains cntn) : content(static_cast(cntn)), isContains(true) { } + + bool check(const String& str) + { + return isContains ? (content == str) : (content.string == str); + } + + operator const String&() const + { + return content.string; + } + + const char* c_str() const + { + return content.string.c_str(); + } + } m_exception_string; + + AssertData(assertType::Enum at, const char* file, int line, const char* expr, + const char* exception_type, const StringContains& exception_string); +}; + +struct DOCTEST_INTERFACE MessageData +{ + String m_string; + const char* m_file; + int m_line; + assertType::Enum m_severity; +}; + +struct DOCTEST_INTERFACE SubcaseSignature +{ + String m_name; + const char* m_file; + int m_line; + + bool operator==(const SubcaseSignature& other) const; + bool operator<(const SubcaseSignature& other) const; +}; + +struct DOCTEST_INTERFACE IContextScope +{ + DOCTEST_DECLARE_INTERFACE(IContextScope) + virtual void stringify(std::ostream*) const = 0; +}; + +namespace detail +{ +struct DOCTEST_INTERFACE TestCase; +} // namespace detail + +struct ContextOptions //!OCLINT too many fields +{ + std::ostream* cout = nullptr; // stdout stream + String binary_name; // the test binary name + + const detail::TestCase* currentTest = nullptr; + + // == parameters from the command line + String out; // output filename + String order_by; // how tests should be ordered + unsigned rand_seed; // the seed for rand ordering + + unsigned first; // the first (matching) test to be executed + unsigned last; // the last (matching) test to be executed + + int abort_after; // stop tests after this many failed assertions + int subcase_filter_levels; // apply the subcase filters for the first N levels + + bool success; // include successful assertions in output + bool case_sensitive; // if filtering should be case sensitive + bool exit; // if the program should be exited after the tests are ran/whatever + bool duration; // print the time duration of each test case + bool minimal; // minimal console output (only test failures) + bool quiet; // no console output + bool no_throw; // to skip exceptions-related assertion macros + bool no_exitcode; // if the framework should return 0 as the exitcode + bool no_run; // to not run the tests at all (can be done with an "*" exclude) + bool no_intro; // to not print the intro of the framework + bool no_version; // to not print the version of the framework + bool no_colors; // if output to the console should be colorized + bool force_colors; // forces the use of colors even when a tty cannot be detected + bool no_breaks; // to not break into the debugger + bool no_skip; // don't skip test cases which are marked to be skipped + bool gnu_file_line; // if line numbers should be surrounded with :x: and not (x): + bool no_path_in_filenames; // if the path to files should be removed from the output + bool no_line_numbers; // if source code line numbers should be omitted from the output + bool no_debug_output; // no output in the debug console when a debugger is attached + bool no_skipped_summary; // don't print "skipped" in the summary !!! UNDOCUMENTED !!! + bool no_time_in_output; // omit any time/timestamps from output !!! UNDOCUMENTED !!! + + bool help; // to print the help + bool version; // to print the version + bool count; // if only the count of matching tests is to be retrieved + bool list_test_cases; // to list all tests matching the filters + bool list_test_suites; // to list all suites matching the filters + bool list_reporters; // lists all registered reporters +}; + +namespace detail +{ +namespace types +{ +#ifdef DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS +using namespace std; +#else +template +struct enable_if { }; + +template +struct enable_if +{ + using type = T; +}; + +struct true_type +{ + static DOCTEST_CONSTEXPR bool value = true; +}; +struct false_type +{ + static DOCTEST_CONSTEXPR bool value = false; +}; + +template struct remove_reference +{ + using type = T; +}; +template struct remove_reference +{ + using type = T; +}; +template struct remove_reference +{ + using type = T; +}; + +template struct is_rvalue_reference : false_type { }; +template struct is_rvalue_reference : true_type { }; + +template struct remove_const +{ + using type = T; +}; +template struct remove_const +{ + using type = T; +}; + +// Compiler intrinsics +template struct is_enum +{ + static DOCTEST_CONSTEXPR bool value = __is_enum(T); +}; +template struct underlying_type +{ + using type = __underlying_type(T); +}; + +template struct is_pointer : false_type { }; +template struct is_pointer : true_type { }; + +template struct is_array : false_type { }; +// NOLINTNEXTLINE(*-avoid-c-arrays) +template struct is_array : true_type { }; +#endif +} + +// +template +T&& declval(); + +template +DOCTEST_CONSTEXPR_FUNC T&& forward(typename types::remove_reference::type& t) DOCTEST_NOEXCEPT +{ + return static_cast(t); +} + +template +DOCTEST_CONSTEXPR_FUNC T&& forward(typename types::remove_reference::type&& t) DOCTEST_NOEXCEPT +{ + return static_cast(t); +} + +template +struct deferred_false : types::false_type { }; + +// MSVS 2015 :( +#if !DOCTEST_CLANG && defined(_MSC_VER) && _MSC_VER <= 1900 +template +struct has_global_insertion_operator : types::false_type { }; + +template +struct has_global_insertion_operator(), declval()), void())> : types::true_type { }; + +template +struct has_insertion_operator +{ + static DOCTEST_CONSTEXPR bool value = has_global_insertion_operator::value; +}; + +template +struct insert_hack; + +template +struct insert_hack +{ + static void insert(std::ostream& os, const T& t) + { + ::operator<<(os, t); + } +}; + +template +struct insert_hack +{ + static void insert(std::ostream& os, const T& t) + { + operator<<(os, t); + } +}; + +template +using insert_hack_t = insert_hack::value>; +#else +template +struct has_insertion_operator : types::false_type { }; +#endif + +template +struct has_insertion_operator(), declval()), void())> : types::true_type { }; + +template +struct should_stringify_as_underlying_type +{ + static DOCTEST_CONSTEXPR bool value = detail::types::is_enum::value && !doctest::detail::has_insertion_operator::value; +}; + +DOCTEST_INTERFACE std::ostream* tlssPush(); +DOCTEST_INTERFACE String tlssPop(); + +template +struct StringMakerBase +{ + template + static String convert(const DOCTEST_REF_WRAP(T)) + { +#ifdef DOCTEST_CONFIG_REQUIRE_STRINGIFICATION_FOR_ALL_USED_TYPES + static_assert(deferred_false::value, "No stringification detected for type T. See string conversion manual"); +#endif + return "{?}"; + } +}; + +template +struct filldata; + +template +void filloss(std::ostream* stream, const T& in) +{ + filldata::fill(stream, in); +} + +template +void filloss(std::ostream* stream, const T (&in)[N]) // NOLINT(*-avoid-c-arrays) +{ + // T[N], T(&)[N], T(&&)[N] have same behaviour. + // Hence remove reference. + filloss::type>(stream, in); +} + +template +String toStream(const T& in) +{ + std::ostream* stream = tlssPush(); + filloss(stream, in); + return tlssPop(); +} + +template <> +struct StringMakerBase +{ + template + static String convert(const DOCTEST_REF_WRAP(T) in) + { + return toStream(in); + } +}; +} // namespace detail + +template +struct StringMaker : public detail::StringMakerBase< + detail::has_insertion_operator::value || detail::types::is_pointer::value || detail::types::is_array::value> +{}; + +#ifndef DOCTEST_STRINGIFY +#ifdef DOCTEST_CONFIG_DOUBLE_STRINGIFY +#define DOCTEST_STRINGIFY(...) toString(toString(__VA_ARGS__)) +#else +#define DOCTEST_STRINGIFY(...) toString(__VA_ARGS__) +#endif +#endif + +template +String toString() +{ +#if DOCTEST_CLANG == 0 && DOCTEST_GCC == 0 && DOCTEST_ICC == 0 + String ret = __FUNCSIG__; // class doctest::String __cdecl doctest::toString(void) + String::size_type beginPos = ret.find('<'); + return ret.substr(beginPos + 1, ret.size() - beginPos - static_cast(sizeof(">(void)"))); +#else + String ret = __PRETTY_FUNCTION__; // doctest::String toString() [with T = TYPE] + String::size_type begin = ret.find('=') + 2; + return ret.substr(begin, ret.size() - begin - 1); +#endif +} + +template ::value, bool>::type = true> +String toString(const DOCTEST_REF_WRAP(T) value) +{ + return StringMaker::convert(value); +} + +#ifdef DOCTEST_CONFIG_TREAT_CHAR_STAR_AS_STRING +DOCTEST_INTERFACE String toString(const char* in); +#endif // DOCTEST_CONFIG_TREAT_CHAR_STAR_AS_STRING + +#if DOCTEST_MSVC >= DOCTEST_COMPILER(19, 20, 0) +// see this issue on why this is needed: https://github.com/doctest/doctest/issues/183 +DOCTEST_INTERFACE String toString(const std::string& in); +#endif // VS 2019 + +DOCTEST_INTERFACE String toString(String in); + +DOCTEST_INTERFACE String toString(std::nullptr_t); + +DOCTEST_INTERFACE String toString(bool in); + +DOCTEST_INTERFACE String toString(float in); +DOCTEST_INTERFACE String toString(double in); +DOCTEST_INTERFACE String toString(double long in); + +DOCTEST_INTERFACE String toString(char in); +DOCTEST_INTERFACE String toString(char signed in); +DOCTEST_INTERFACE String toString(char unsigned in); +DOCTEST_INTERFACE String toString(short in); +DOCTEST_INTERFACE String toString(short unsigned in); +DOCTEST_INTERFACE String toString(signed in); +DOCTEST_INTERFACE String toString(unsigned in); +DOCTEST_INTERFACE String toString(long in); +DOCTEST_INTERFACE String toString(long unsigned in); +DOCTEST_INTERFACE String toString(long long in); +DOCTEST_INTERFACE String toString(long long unsigned in); + +template ::value, bool>::type = true> +String toString(const DOCTEST_REF_WRAP(T) value) +{ + using UT = typename detail::types::underlying_type::type; + return (DOCTEST_STRINGIFY(static_cast(value))); +} + +namespace detail +{ +template +struct filldata +{ + static void fill(std::ostream* stream, const T& in) + { +#if defined(_MSC_VER) && _MSC_VER <= 1900 + insert_hack_t::insert(*stream, in); +#else + operator<<(*stream, in); +#endif + } +}; + +DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4866) +// NOLINTBEGIN(*-avoid-c-arrays) +template +struct filldata +{ + static void fill(std::ostream* stream, const T(&in)[N]) + { + *stream << "["; + for (size_t i = 0; i < N; i++) + { + if (i != 0) + { + *stream << ", "; + } + *stream << (DOCTEST_STRINGIFY(in[i])); + } + *stream << "]"; + } +}; +// NOLINTEND(*-avoid-c-arrays) +DOCTEST_MSVC_SUPPRESS_WARNING_POP + +// Specialized since we don't want the terminating null byte! +// NOLINTBEGIN(*-avoid-c-arrays) +template +struct filldata +{ + static void fill(std::ostream* stream, const char (&in)[N]) + { + *stream << String(in, in[N - 1] ? N : N - 1); + } // NOLINT(clang-analyzer-cplusplus.NewDeleteLeaks) +}; +// NOLINTEND(*-avoid-c-arrays) + +template <> +struct filldata +{ + static void fill(std::ostream* stream, const void* in); +}; + +template +struct filldata +{ + DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4180) + static void fill(std::ostream* stream, const T* in) + { + DOCTEST_MSVC_SUPPRESS_WARNING_POP + DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH("-Wmicrosoft-cast") + filldata::fill(stream, +#if DOCTEST_GCC == 0 || DOCTEST_GCC >= DOCTEST_COMPILER(4, 9, 0) + reinterpret_cast(in) +#else + *reinterpret_cast(&in) +#endif + ); + DOCTEST_CLANG_SUPPRESS_WARNING_POP + } +}; +} + +struct DOCTEST_INTERFACE Approx +{ + Approx(double value); + + Approx operator()(double value) const; + +#ifdef DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS + template + explicit Approx(const T& value, + typename detail::types::enable_if::value>::type* = + static_cast(nullptr)) + { + *this = static_cast(value); + } +#endif // DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS + + Approx& epsilon(double newEpsilon); + +#ifdef DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS + template + typename std::enable_if::value, Approx&>::type epsilon( + const T& newEpsilon) + { + m_epsilon = static_cast(newEpsilon); + return *this; + } +#endif // DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS + + Approx& scale(double newScale); + +#ifdef DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS + template + typename std::enable_if::value, Approx&>::type scale( + const T& newScale) + { + m_scale = static_cast(newScale); + return *this; + } +#endif // DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS + + // clang-format off + DOCTEST_INTERFACE friend bool operator==(double lhs, const Approx & rhs); + DOCTEST_INTERFACE friend bool operator==(const Approx & lhs, double rhs); + DOCTEST_INTERFACE friend bool operator!=(double lhs, const Approx & rhs); + DOCTEST_INTERFACE friend bool operator!=(const Approx & lhs, double rhs); + DOCTEST_INTERFACE friend bool operator<=(double lhs, const Approx & rhs); + DOCTEST_INTERFACE friend bool operator<=(const Approx & lhs, double rhs); + DOCTEST_INTERFACE friend bool operator>=(double lhs, const Approx & rhs); + DOCTEST_INTERFACE friend bool operator>=(const Approx & lhs, double rhs); + DOCTEST_INTERFACE friend bool operator< (double lhs, const Approx & rhs); + DOCTEST_INTERFACE friend bool operator< (const Approx & lhs, double rhs); + DOCTEST_INTERFACE friend bool operator> (double lhs, const Approx & rhs); + DOCTEST_INTERFACE friend bool operator> (const Approx & lhs, double rhs); + +#ifdef DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS +#define DOCTEST_APPROX_PREFIX \ + template friend typename std::enable_if::value, bool>::type + + DOCTEST_APPROX_PREFIX operator==(const T& lhs, const Approx& rhs) + { + return operator==(static_cast(lhs), rhs); + } + DOCTEST_APPROX_PREFIX operator==(const Approx& lhs, const T& rhs) + { + return operator==(rhs, lhs); + } + DOCTEST_APPROX_PREFIX operator!=(const T& lhs, const Approx& rhs) + { + return !operator==(lhs, rhs); + } + DOCTEST_APPROX_PREFIX operator!=(const Approx& lhs, const T& rhs) + { + return !operator==(rhs, lhs); + } + DOCTEST_APPROX_PREFIX operator<=(const T& lhs, const Approx& rhs) + { + return static_cast(lhs) < rhs.m_value || lhs == rhs; + } + DOCTEST_APPROX_PREFIX operator<=(const Approx& lhs, const T& rhs) + { + return lhs.m_value < static_cast(rhs) || lhs == rhs; + } + DOCTEST_APPROX_PREFIX operator>=(const T& lhs, const Approx& rhs) + { + return static_cast(lhs) > rhs.m_value || lhs == rhs; + } + DOCTEST_APPROX_PREFIX operator>=(const Approx& lhs, const T& rhs) + { + return lhs.m_value > static_cast(rhs) || lhs == rhs; + } + DOCTEST_APPROX_PREFIX operator< (const T& lhs, const Approx& rhs) + { + return static_cast(lhs) < rhs.m_value && lhs != rhs; + } + DOCTEST_APPROX_PREFIX operator< (const Approx& lhs, const T& rhs) + { + return lhs.m_value < static_cast(rhs) && lhs != rhs; + } + DOCTEST_APPROX_PREFIX operator> (const T& lhs, const Approx& rhs) + { + return static_cast(lhs) > rhs.m_value && lhs != rhs; + } + DOCTEST_APPROX_PREFIX operator> (const Approx& lhs, const T& rhs) + { + return lhs.m_value > static_cast(rhs) && lhs != rhs; + } +#undef DOCTEST_APPROX_PREFIX +#endif // DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS + + // clang-format on + + double m_epsilon; + double m_scale; + double m_value; +}; + +DOCTEST_INTERFACE String toString(const Approx& in); + +DOCTEST_INTERFACE const ContextOptions* getContextOptions(); + +template +struct DOCTEST_INTERFACE_DECL IsNaN +{ + F value; + bool flipped; + IsNaN(F f, bool flip = false) : value(f), flipped(flip) { } + IsNaN operator!() const + { + return { value, !flipped }; + } + operator bool() const; +}; +#ifndef __MINGW32__ +extern template struct DOCTEST_INTERFACE_DECL IsNaN; +extern template struct DOCTEST_INTERFACE_DECL IsNaN; +extern template struct DOCTEST_INTERFACE_DECL IsNaN; +#endif +DOCTEST_INTERFACE String toString(IsNaN in); +DOCTEST_INTERFACE String toString(IsNaN in); +DOCTEST_INTERFACE String toString(IsNaN in); + +#ifndef DOCTEST_CONFIG_DISABLE + +namespace detail +{ +// clang-format off +#ifdef DOCTEST_CONFIG_TREAT_CHAR_STAR_AS_STRING +template struct decay_array +{ + using type = T; +}; +template struct decay_array +{ + using type = T*; +}; +template struct decay_array +{ + using type = T*; +}; + +template struct not_char_pointer +{ + static DOCTEST_CONSTEXPR int value = 1; +}; +template<> struct not_char_pointer +{ + static DOCTEST_CONSTEXPR int value = 0; +}; +template<> struct not_char_pointer +{ + static DOCTEST_CONSTEXPR int value = 0; +}; + +template struct can_use_op : public not_char_pointer::type> {}; +#endif // DOCTEST_CONFIG_TREAT_CHAR_STAR_AS_STRING +// clang-format on + +struct DOCTEST_INTERFACE TestFailureException +{ +}; + +DOCTEST_INTERFACE bool checkIfShouldThrow(assertType::Enum at); + +#ifndef DOCTEST_CONFIG_NO_EXCEPTIONS +DOCTEST_NORETURN +#endif // DOCTEST_CONFIG_NO_EXCEPTIONS +DOCTEST_INTERFACE void throwException(); + +struct DOCTEST_INTERFACE Subcase +{ + SubcaseSignature m_signature; + bool m_entered = false; + + Subcase(const String& name, const char* file, int line); + Subcase(const Subcase&) = delete; + Subcase(Subcase&&) = delete; + Subcase& operator=(const Subcase&) = delete; + Subcase& operator=(Subcase&&) = delete; + ~Subcase(); + + operator bool() const; + +private: + bool checkFilters(); +}; + +template +String stringifyBinaryExpr(const DOCTEST_REF_WRAP(L) lhs, const char* op, + const DOCTEST_REF_WRAP(R) rhs) +{ + return (DOCTEST_STRINGIFY(lhs)) + op + (DOCTEST_STRINGIFY(rhs)); +} + +#if DOCTEST_CLANG && DOCTEST_CLANG < DOCTEST_COMPILER(3, 6, 0) +DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH("-Wunused-comparison") +#endif + +// This will check if there is any way it could find a operator like member or friend and uses it. +// If not it doesn't find the operator or if the operator at global scope is defined after +// this template, the template won't be instantiated due to SFINAE. Once the template is not +// instantiated it can look for global operator using normal conversions. +#ifdef __NVCC__ +#define SFINAE_OP(ret,op) ret +#else +#define SFINAE_OP(ret,op) decltype((void)(doctest::detail::declval() op doctest::detail::declval()),ret{}) +#endif + +#define DOCTEST_DO_BINARY_EXPRESSION_COMPARISON(op, op_str, op_macro) \ + template \ + DOCTEST_NOINLINE SFINAE_OP(Result,op) operator op(R&& rhs) { \ + bool res = op_macro(doctest::detail::forward(lhs), doctest::detail::forward(rhs)); \ + if(m_at & assertType::is_false) \ + res = !res; \ + if(!res || doctest::getContextOptions()->success) \ + return Result(res, stringifyBinaryExpr(lhs, op_str, rhs)); \ + return Result(res); \ + } + +// more checks could be added - like in Catch: +// https://github.com/catchorg/Catch2/pull/1480/files +// https://github.com/catchorg/Catch2/pull/1481/files +#define DOCTEST_FORBIT_EXPRESSION(rt, op) \ + template \ + rt& operator op(const R&) { \ + static_assert(deferred_false::value, \ + "Expression Too Complex Please Rewrite As Binary Comparison!"); \ + return *this; \ + } + +struct DOCTEST_INTERFACE Result // NOLINT(*-member-init) +{ + bool m_passed; + String m_decomp; + + Result() = default; // TODO: Why do we need this? (To remove NOLINT) + Result(bool passed, const String& decomposition = String()); + + // forbidding some expressions based on this table: https://en.cppreference.com/w/cpp/language/operator_precedence + DOCTEST_FORBIT_EXPRESSION(Result, &) + DOCTEST_FORBIT_EXPRESSION(Result, ^) + DOCTEST_FORBIT_EXPRESSION(Result, |) + DOCTEST_FORBIT_EXPRESSION(Result, &&) + DOCTEST_FORBIT_EXPRESSION(Result, ||) + DOCTEST_FORBIT_EXPRESSION(Result, ==) + DOCTEST_FORBIT_EXPRESSION(Result, !=) + DOCTEST_FORBIT_EXPRESSION(Result, <) + DOCTEST_FORBIT_EXPRESSION(Result, >) + DOCTEST_FORBIT_EXPRESSION(Result, <=) + DOCTEST_FORBIT_EXPRESSION(Result, >=) + DOCTEST_FORBIT_EXPRESSION(Result, =) + DOCTEST_FORBIT_EXPRESSION(Result, +=) + DOCTEST_FORBIT_EXPRESSION(Result, -=) + DOCTEST_FORBIT_EXPRESSION(Result, *=) + DOCTEST_FORBIT_EXPRESSION(Result, /=) + DOCTEST_FORBIT_EXPRESSION(Result, %=) + DOCTEST_FORBIT_EXPRESSION(Result, <<=) + DOCTEST_FORBIT_EXPRESSION(Result, >>=) + DOCTEST_FORBIT_EXPRESSION(Result, &=) + DOCTEST_FORBIT_EXPRESSION(Result, ^=) + DOCTEST_FORBIT_EXPRESSION(Result, |=) +}; + +#ifndef DOCTEST_CONFIG_NO_COMPARISON_WARNING_SUPPRESSION + +DOCTEST_CLANG_SUPPRESS_WARNING_PUSH +DOCTEST_CLANG_SUPPRESS_WARNING("-Wsign-conversion") +DOCTEST_CLANG_SUPPRESS_WARNING("-Wsign-compare") +//DOCTEST_CLANG_SUPPRESS_WARNING("-Wdouble-promotion") +//DOCTEST_CLANG_SUPPRESS_WARNING("-Wconversion") +//DOCTEST_CLANG_SUPPRESS_WARNING("-Wfloat-equal") + +DOCTEST_GCC_SUPPRESS_WARNING_PUSH +DOCTEST_GCC_SUPPRESS_WARNING("-Wsign-conversion") +DOCTEST_GCC_SUPPRESS_WARNING("-Wsign-compare") +//DOCTEST_GCC_SUPPRESS_WARNING("-Wdouble-promotion") +//DOCTEST_GCC_SUPPRESS_WARNING("-Wconversion") +//DOCTEST_GCC_SUPPRESS_WARNING("-Wfloat-equal") + +DOCTEST_MSVC_SUPPRESS_WARNING_PUSH +// https://stackoverflow.com/questions/39479163 what's the difference between 4018 and 4389 +DOCTEST_MSVC_SUPPRESS_WARNING(4388) // signed/unsigned mismatch +DOCTEST_MSVC_SUPPRESS_WARNING(4389) // 'operator' : signed/unsigned mismatch +DOCTEST_MSVC_SUPPRESS_WARNING(4018) // 'expression' : signed/unsigned mismatch +//DOCTEST_MSVC_SUPPRESS_WARNING(4805) // 'operation' : unsafe mix of type 'type' and type 'type' in operation + +#endif // DOCTEST_CONFIG_NO_COMPARISON_WARNING_SUPPRESSION + +// clang-format off +#ifndef DOCTEST_CONFIG_TREAT_CHAR_STAR_AS_STRING +#define DOCTEST_COMPARISON_RETURN_TYPE bool +#else // DOCTEST_CONFIG_TREAT_CHAR_STAR_AS_STRING +#define DOCTEST_COMPARISON_RETURN_TYPE typename types::enable_if::value || can_use_op::value, bool>::type +inline bool eq(const char* lhs, const char* rhs) +{ + return String(lhs) == String(rhs); +} +inline bool ne(const char* lhs, const char* rhs) +{ + return String(lhs) != String(rhs); +} +inline bool lt(const char* lhs, const char* rhs) +{ + return String(lhs) < String(rhs); +} +inline bool gt(const char* lhs, const char* rhs) +{ + return String(lhs) > String(rhs); +} +inline bool le(const char* lhs, const char* rhs) +{ + return String(lhs) <= String(rhs); +} +inline bool ge(const char* lhs, const char* rhs) +{ + return String(lhs) >= String(rhs); +} +#endif // DOCTEST_CONFIG_TREAT_CHAR_STAR_AS_STRING +// clang-format on + +#define DOCTEST_RELATIONAL_OP(name, op) \ + template \ + DOCTEST_COMPARISON_RETURN_TYPE name(const DOCTEST_REF_WRAP(L) lhs, \ + const DOCTEST_REF_WRAP(R) rhs) { \ + return lhs op rhs; \ + } + +DOCTEST_RELATIONAL_OP(eq, ==) +DOCTEST_RELATIONAL_OP(ne, !=) +DOCTEST_RELATIONAL_OP(lt, <) +DOCTEST_RELATIONAL_OP(gt, >) +DOCTEST_RELATIONAL_OP(le, <=) +DOCTEST_RELATIONAL_OP(ge, >=) + +#ifndef DOCTEST_CONFIG_TREAT_CHAR_STAR_AS_STRING +#define DOCTEST_CMP_EQ(l, r) l == r +#define DOCTEST_CMP_NE(l, r) l != r +#define DOCTEST_CMP_GT(l, r) l > r +#define DOCTEST_CMP_LT(l, r) l < r +#define DOCTEST_CMP_GE(l, r) l >= r +#define DOCTEST_CMP_LE(l, r) l <= r +#else // DOCTEST_CONFIG_TREAT_CHAR_STAR_AS_STRING +#define DOCTEST_CMP_EQ(l, r) eq(l, r) +#define DOCTEST_CMP_NE(l, r) ne(l, r) +#define DOCTEST_CMP_GT(l, r) gt(l, r) +#define DOCTEST_CMP_LT(l, r) lt(l, r) +#define DOCTEST_CMP_GE(l, r) ge(l, r) +#define DOCTEST_CMP_LE(l, r) le(l, r) +#endif // DOCTEST_CONFIG_TREAT_CHAR_STAR_AS_STRING + +template +// cppcheck-suppress copyCtorAndEqOperator +struct Expression_lhs +{ + L lhs; + assertType::Enum m_at; + + explicit Expression_lhs(L&& in, assertType::Enum at) + : lhs(static_cast(in)) + , m_at(at) {} + + DOCTEST_NOINLINE operator Result() + { +// this is needed only for MSVC 2015 + DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4800) // 'int': forcing value to bool + bool res = static_cast(lhs); + DOCTEST_MSVC_SUPPRESS_WARNING_POP + if(m_at & assertType::is_false) //!OCLINT bitwise operator in conditional + { + res = !res; + } + + if(!res || getContextOptions()->success) + { + return { res, (DOCTEST_STRINGIFY(lhs)) }; + } + return { res }; + } + + /* This is required for user-defined conversions from Expression_lhs to L */ + operator L() const + { + return lhs; + } + + // clang-format off + DOCTEST_DO_BINARY_EXPRESSION_COMPARISON(==, " == ", DOCTEST_CMP_EQ) //!OCLINT bitwise operator in conditional + DOCTEST_DO_BINARY_EXPRESSION_COMPARISON(!=, " != ", DOCTEST_CMP_NE) //!OCLINT bitwise operator in conditional + DOCTEST_DO_BINARY_EXPRESSION_COMPARISON(>, " > ", DOCTEST_CMP_GT) //!OCLINT bitwise operator in conditional + DOCTEST_DO_BINARY_EXPRESSION_COMPARISON(<, " < ", DOCTEST_CMP_LT) //!OCLINT bitwise operator in conditional + DOCTEST_DO_BINARY_EXPRESSION_COMPARISON(>=, " >= ", DOCTEST_CMP_GE) //!OCLINT bitwise operator in conditional + DOCTEST_DO_BINARY_EXPRESSION_COMPARISON(<=, " <= ", DOCTEST_CMP_LE) //!OCLINT bitwise operator in conditional + // clang-format on + + // forbidding some expressions based on this table: https://en.cppreference.com/w/cpp/language/operator_precedence + DOCTEST_FORBIT_EXPRESSION(Expression_lhs, &) + DOCTEST_FORBIT_EXPRESSION(Expression_lhs, ^) + DOCTEST_FORBIT_EXPRESSION(Expression_lhs, |) + DOCTEST_FORBIT_EXPRESSION(Expression_lhs, &&) + DOCTEST_FORBIT_EXPRESSION(Expression_lhs, ||) + DOCTEST_FORBIT_EXPRESSION(Expression_lhs, =) + DOCTEST_FORBIT_EXPRESSION(Expression_lhs, +=) + DOCTEST_FORBIT_EXPRESSION(Expression_lhs, -=) + DOCTEST_FORBIT_EXPRESSION(Expression_lhs, *=) + DOCTEST_FORBIT_EXPRESSION(Expression_lhs, /=) + DOCTEST_FORBIT_EXPRESSION(Expression_lhs, %=) + DOCTEST_FORBIT_EXPRESSION(Expression_lhs, <<=) + DOCTEST_FORBIT_EXPRESSION(Expression_lhs, >>=) + DOCTEST_FORBIT_EXPRESSION(Expression_lhs, &=) + DOCTEST_FORBIT_EXPRESSION(Expression_lhs, ^=) + DOCTEST_FORBIT_EXPRESSION(Expression_lhs, |=) + // these 2 are unfortunate because they should be allowed - they have higher precedence over the comparisons, but the + // ExpressionDecomposer class uses the left shift operator to capture the left operand of the binary expression... + DOCTEST_FORBIT_EXPRESSION(Expression_lhs, <<) + DOCTEST_FORBIT_EXPRESSION(Expression_lhs, >>) +}; + +#ifndef DOCTEST_CONFIG_NO_COMPARISON_WARNING_SUPPRESSION + +DOCTEST_CLANG_SUPPRESS_WARNING_POP +DOCTEST_MSVC_SUPPRESS_WARNING_POP +DOCTEST_GCC_SUPPRESS_WARNING_POP + +#endif // DOCTEST_CONFIG_NO_COMPARISON_WARNING_SUPPRESSION + +#if DOCTEST_CLANG && DOCTEST_CLANG < DOCTEST_COMPILER(3, 6, 0) +DOCTEST_CLANG_SUPPRESS_WARNING_POP +#endif + +struct DOCTEST_INTERFACE ExpressionDecomposer +{ + assertType::Enum m_at; + + ExpressionDecomposer(assertType::Enum at); + + // The right operator for capturing expressions is "<=" instead of "<<" (based on the operator precedence table) + // but then there will be warnings from GCC about "-Wparentheses" and since "_Pragma()" is problematic this will stay for now... + // https://github.com/catchorg/Catch2/issues/870 + // https://github.com/catchorg/Catch2/issues/565 + template + Expression_lhs operator<<(L&& operand) + { + return Expression_lhs(static_cast(operand), m_at); + } + + template ::value,void >::type* = nullptr> + Expression_lhs operator<<(const L &operand) + { + return Expression_lhs(operand, m_at); + } +}; + +struct DOCTEST_INTERFACE TestSuite +{ + const char* m_test_suite = nullptr; + const char* m_description = nullptr; + bool m_skip = false; + bool m_no_breaks = false; + bool m_no_output = false; + bool m_may_fail = false; + bool m_should_fail = false; + int m_expected_failures = 0; + double m_timeout = 0; + + TestSuite& operator*(const char* in); + + template + TestSuite& operator*(const T& in) + { + in.fill(*this); + return *this; + } +}; + +using funcType = void (*)(); + +struct DOCTEST_INTERFACE TestCase : public TestCaseData +{ + funcType m_test; // a function pointer to the test case + + String m_type; // for templated test cases - gets appended to the real name + int m_template_id; // an ID used to distinguish between the different versions of a templated test case + String m_full_name; // contains the name (only for templated test cases!) + the template type + + TestCase(funcType test, const char* file, unsigned line, const TestSuite& test_suite, + const String& type = String(), int template_id = -1); + + TestCase(const TestCase& other); + TestCase(TestCase&&) = delete; + + DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(26434) // hides a non-virtual function + TestCase& operator=(const TestCase& other); + DOCTEST_MSVC_SUPPRESS_WARNING_POP + + TestCase& operator=(TestCase&&) = delete; + + TestCase& operator*(const char* in); + + template + TestCase& operator*(const T& in) + { + in.fill(*this); + return *this; + } + + bool operator<(const TestCase& other) const; + + ~TestCase() = default; +}; + +// forward declarations of functions used by the macros +DOCTEST_INTERFACE int regTest(const TestCase& tc); +DOCTEST_INTERFACE int setTestSuite(const TestSuite& ts); +DOCTEST_INTERFACE bool isDebuggerActive(); + +template +int instantiationHelper(const T&) +{ + return 0; +} + +namespace binaryAssertComparison +{ +enum Enum +{ + eq = 0, + ne, + gt, + lt, + ge, + le +}; +} // namespace binaryAssertComparison + +// clang-format off +template struct RelationalComparator +{ + bool operator()(const DOCTEST_REF_WRAP(L), const DOCTEST_REF_WRAP(R) ) const + { + return false; + } +}; + +#define DOCTEST_BINARY_RELATIONAL_OP(n, op) \ + template struct RelationalComparator { bool operator()(const DOCTEST_REF_WRAP(L) lhs, const DOCTEST_REF_WRAP(R) rhs) const { return op(lhs, rhs); } }; +// clang-format on + +DOCTEST_BINARY_RELATIONAL_OP(0, doctest::detail::eq) +DOCTEST_BINARY_RELATIONAL_OP(1, doctest::detail::ne) +DOCTEST_BINARY_RELATIONAL_OP(2, doctest::detail::gt) +DOCTEST_BINARY_RELATIONAL_OP(3, doctest::detail::lt) +DOCTEST_BINARY_RELATIONAL_OP(4, doctest::detail::ge) +DOCTEST_BINARY_RELATIONAL_OP(5, doctest::detail::le) + +struct DOCTEST_INTERFACE ResultBuilder : public AssertData +{ + ResultBuilder(assertType::Enum at, const char* file, int line, const char* expr, + const char* exception_type = "", const String& exception_string = ""); + + ResultBuilder(assertType::Enum at, const char* file, int line, const char* expr, + const char* exception_type, const Contains& exception_string); + + void setResult(const Result& res); + + template + DOCTEST_NOINLINE bool binary_assert(const DOCTEST_REF_WRAP(L) lhs, + const DOCTEST_REF_WRAP(R) rhs) + { + m_failed = !RelationalComparator()(lhs, rhs); + if (m_failed || getContextOptions()->success) + { + m_decomp = stringifyBinaryExpr(lhs, ", ", rhs); + } + return !m_failed; + } + + template + DOCTEST_NOINLINE bool unary_assert(const DOCTEST_REF_WRAP(L) val) + { + m_failed = !val; + + if (m_at & assertType::is_false) //!OCLINT bitwise operator in conditional + { + m_failed = !m_failed; + } + + if (m_failed || getContextOptions()->success) + { + m_decomp = (DOCTEST_STRINGIFY(val)); + } + + return !m_failed; + } + + void translateException(); + + bool log(); + void react() const; +}; + +namespace assertAction +{ +enum Enum +{ + nothing = 0, + dbgbreak = 1, + shouldthrow = 2 +}; +} // namespace assertAction + +DOCTEST_INTERFACE void failed_out_of_a_testing_context(const AssertData& ad); + +DOCTEST_INTERFACE bool decomp_assert(assertType::Enum at, const char* file, int line, + const char* expr, const Result& result); + +#define DOCTEST_ASSERT_OUT_OF_TESTS(decomp) \ + do { \ + if(!is_running_in_test) { \ + if(failed) { \ + ResultBuilder rb(at, file, line, expr); \ + rb.m_failed = failed; \ + rb.m_decomp = decomp; \ + failed_out_of_a_testing_context(rb); \ + if(isDebuggerActive() && !getContextOptions()->no_breaks) \ + DOCTEST_BREAK_INTO_DEBUGGER(); \ + if(checkIfShouldThrow(at)) \ + throwException(); \ + } \ + return !failed; \ + } \ + } while(false) + +#define DOCTEST_ASSERT_IN_TESTS(decomp) \ + ResultBuilder rb(at, file, line, expr); \ + rb.m_failed = failed; \ + if(rb.m_failed || getContextOptions()->success) \ + rb.m_decomp = decomp; \ + if(rb.log()) \ + DOCTEST_BREAK_INTO_DEBUGGER(); \ + if(rb.m_failed && checkIfShouldThrow(at)) \ + throwException() + +template +DOCTEST_NOINLINE bool binary_assert(assertType::Enum at, const char* file, int line, + const char* expr, const DOCTEST_REF_WRAP(L) lhs, + const DOCTEST_REF_WRAP(R) rhs) +{ + bool failed = !RelationalComparator()(lhs, rhs); + + // ################################################################################### + // IF THE DEBUGGER BREAKS HERE - GO 1 LEVEL UP IN THE CALLSTACK FOR THE FAILING ASSERT + // THIS IS THE EFFECT OF HAVING 'DOCTEST_CONFIG_SUPER_FAST_ASSERTS' DEFINED + // ################################################################################### + DOCTEST_ASSERT_OUT_OF_TESTS(stringifyBinaryExpr(lhs, ", ", rhs)); + DOCTEST_ASSERT_IN_TESTS(stringifyBinaryExpr(lhs, ", ", rhs)); + return !failed; +} + +template +DOCTEST_NOINLINE bool unary_assert(assertType::Enum at, const char* file, int line, + const char* expr, const DOCTEST_REF_WRAP(L) val) +{ + bool failed = !val; + + if(at & assertType::is_false) //!OCLINT bitwise operator in conditional + failed = !failed; + + // ################################################################################### + // IF THE DEBUGGER BREAKS HERE - GO 1 LEVEL UP IN THE CALLSTACK FOR THE FAILING ASSERT + // THIS IS THE EFFECT OF HAVING 'DOCTEST_CONFIG_SUPER_FAST_ASSERTS' DEFINED + // ################################################################################### + DOCTEST_ASSERT_OUT_OF_TESTS((DOCTEST_STRINGIFY(val))); + DOCTEST_ASSERT_IN_TESTS((DOCTEST_STRINGIFY(val))); + return !failed; +} + +struct DOCTEST_INTERFACE IExceptionTranslator +{ + DOCTEST_DECLARE_INTERFACE(IExceptionTranslator) + virtual bool translate(String&) const = 0; +}; + +template +class ExceptionTranslator : public IExceptionTranslator //!OCLINT destructor of virtual class +{ +public: + explicit ExceptionTranslator(String (*translateFunction)(T)) + : m_translateFunction(translateFunction) {} + + bool translate(String& res) const override + { +#ifndef DOCTEST_CONFIG_NO_EXCEPTIONS + try + { + throw; // lgtm [cpp/rethrow-no-exception] + // cppcheck-suppress catchExceptionByValue + } + catch(const T& ex) + { + res = m_translateFunction(ex); //!OCLINT parameter reassignment + return true; + } + catch(...) {} //!OCLINT - empty catch statement +#endif // DOCTEST_CONFIG_NO_EXCEPTIONS + static_cast(res); // to silence -Wunused-parameter + return false; + } + +private: + String (*m_translateFunction)(T); +}; + +DOCTEST_INTERFACE void registerExceptionTranslatorImpl(const IExceptionTranslator* et); + +// ContextScope base class used to allow implementing methods of ContextScope +// that don't depend on the template parameter in doctest.cpp. +struct DOCTEST_INTERFACE ContextScopeBase : public IContextScope +{ + ContextScopeBase(const ContextScopeBase&) = delete; + + ContextScopeBase& operator=(const ContextScopeBase&) = delete; + ContextScopeBase& operator=(ContextScopeBase&&) = delete; + + ~ContextScopeBase() override = default; + +protected: + ContextScopeBase(); + ContextScopeBase(ContextScopeBase&& other) noexcept; + + void destroy(); + bool need_to_destroy{true}; +}; + +template class ContextScope : public ContextScopeBase +{ + L lambda_; + +public: + explicit ContextScope(const L &lambda) : lambda_(lambda) {} + explicit ContextScope(L&& lambda) : lambda_(static_cast(lambda)) { } + + ContextScope(const ContextScope&) = delete; + ContextScope(ContextScope&&) noexcept = default; + + ContextScope& operator=(const ContextScope&) = delete; + ContextScope& operator=(ContextScope&&) = delete; + + void stringify(std::ostream* s) const override + { + lambda_(s); + } + + ~ContextScope() override + { + if (need_to_destroy) + { + destroy(); + } + } +}; + +struct DOCTEST_INTERFACE MessageBuilder : public MessageData +{ + std::ostream* m_stream; + bool logged = false; + + MessageBuilder(const char* file, int line, assertType::Enum severity); + + MessageBuilder(const MessageBuilder&) = delete; + MessageBuilder(MessageBuilder&&) = delete; + + MessageBuilder& operator=(const MessageBuilder&) = delete; + MessageBuilder& operator=(MessageBuilder&&) = delete; + + ~MessageBuilder(); + + // the preferred way of chaining parameters for stringification + DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4866) + template + MessageBuilder& operator,(const T& in) + { + *m_stream << (DOCTEST_STRINGIFY(in)); + return *this; + } + DOCTEST_MSVC_SUPPRESS_WARNING_POP + + // kept here just for backwards-compatibility - the comma operator should be preferred now + template + MessageBuilder& operator<<(const T& in) + { + return this->operator,(in); + } + + // the `,` operator has the lowest operator precedence - if `<<` is used by the user then + // the `,` operator will be called last which is not what we want and thus the `*` operator + // is used first (has higher operator precedence compared to `<<`) so that we guarantee that + // an operator of the MessageBuilder class is called first before the rest of the parameters + template + MessageBuilder& operator*(const T& in) + { + return this->operator,(in); + } + + bool log(); + void react(); +}; + +template +ContextScope MakeContextScope(const L &lambda) +{ + return ContextScope(lambda); +} +} // namespace detail + +#define DOCTEST_DEFINE_DECORATOR(name, type, def) \ + struct name \ + { \ + type data; \ + name(type in = def) \ + : data(in) {} \ + void fill(detail::TestCase& state) const { state.DOCTEST_CAT(m_, name) = data; } \ + void fill(detail::TestSuite& state) const { state.DOCTEST_CAT(m_, name) = data; } \ + } + +DOCTEST_DEFINE_DECORATOR(test_suite, const char*, ""); +DOCTEST_DEFINE_DECORATOR(description, const char*, ""); +DOCTEST_DEFINE_DECORATOR(skip, bool, true); +DOCTEST_DEFINE_DECORATOR(no_breaks, bool, true); +DOCTEST_DEFINE_DECORATOR(no_output, bool, true); +DOCTEST_DEFINE_DECORATOR(timeout, double, 0); +DOCTEST_DEFINE_DECORATOR(may_fail, bool, true); +DOCTEST_DEFINE_DECORATOR(should_fail, bool, true); +DOCTEST_DEFINE_DECORATOR(expected_failures, int, 0); + +template +int registerExceptionTranslator(String (*translateFunction)(T)) +{ + DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH("-Wexit-time-destructors") + static detail::ExceptionTranslator exceptionTranslator(translateFunction); + DOCTEST_CLANG_SUPPRESS_WARNING_POP + detail::registerExceptionTranslatorImpl(&exceptionTranslator); + return 0; +} + +} // namespace doctest + +// in a separate namespace outside of doctest because the DOCTEST_TEST_SUITE macro +// introduces an anonymous namespace in which getCurrentTestSuite gets overridden +namespace doctest_detail_test_suite_ns +{ +DOCTEST_INTERFACE doctest::detail::TestSuite& getCurrentTestSuite(); +} // namespace doctest_detail_test_suite_ns + +namespace doctest +{ +#else // DOCTEST_CONFIG_DISABLE +template +int registerExceptionTranslator(String (*)(T)) +{ + return 0; +} +#endif // DOCTEST_CONFIG_DISABLE + +namespace detail +{ +using assert_handler = void (*)(const AssertData&); +struct ContextState; +} // namespace detail + +class DOCTEST_INTERFACE Context +{ + detail::ContextState* p; + + void parseArgs(int argc, const char* const* argv, bool withDefaults = false); + +public: + explicit Context(int argc = 0, const char* const* argv = nullptr); + + Context(const Context&) = delete; + Context(Context&&) = delete; + + Context& operator=(const Context&) = delete; + Context& operator=(Context&&) = delete; + + ~Context(); // NOLINT(performance-trivially-destructible) + + void applyCommandLine(int argc, const char* const* argv); + + void addFilter(const char* filter, const char* value); + void clearFilters(); + void setOption(const char* option, bool value); + void setOption(const char* option, int value); + void setOption(const char* option, const char* value); + + bool shouldExit(); + + void setAsDefaultForAssertsOutOfTestCases(); + + void setAssertHandler(detail::assert_handler ah); + + void setCout(std::ostream* out); + + int run(); +}; + +namespace TestCaseFailureReason +{ +enum Enum +{ + None = 0, + AssertFailure = 1, // an assertion has failed in the test case + Exception = 2, // test case threw an exception + Crash = 4, // a crash... + TooManyFailedAsserts = 8, // the abort-after option + Timeout = 16, // see the timeout decorator + ShouldHaveFailedButDidnt = 32, // see the should_fail decorator + ShouldHaveFailedAndDid = 64, // see the should_fail decorator + DidntFailExactlyNumTimes = 128, // see the expected_failures decorator + FailedExactlyNumTimes = 256, // see the expected_failures decorator + CouldHaveFailedAndDid = 512 // see the may_fail decorator +}; +} // namespace TestCaseFailureReason + +struct DOCTEST_INTERFACE CurrentTestCaseStats +{ + int numAssertsCurrentTest; + int numAssertsFailedCurrentTest; + double seconds; + int failure_flags; // use TestCaseFailureReason::Enum + bool testCaseSuccess; +}; + +struct DOCTEST_INTERFACE TestCaseException +{ + String error_string; + bool is_crash; +}; + +struct DOCTEST_INTERFACE TestRunStats +{ + unsigned numTestCases; + unsigned numTestCasesPassingFilters; + unsigned numTestSuitesPassingFilters; + unsigned numTestCasesFailed; + int numAsserts; + int numAssertsFailed; +}; + +struct QueryData +{ + const TestRunStats* run_stats = nullptr; + const TestCaseData** data = nullptr; + unsigned num_data = 0; +}; + +struct DOCTEST_INTERFACE IReporter +{ + // The constructor has to accept "const ContextOptions&" as a single argument + // which has most of the options for the run + a pointer to the stdout stream + // Reporter(const ContextOptions& in) + + // called when a query should be reported (listing test cases, printing the version, etc.) + virtual void report_query(const QueryData&) = 0; + + // called when the whole test run starts + virtual void test_run_start() = 0; + // called when the whole test run ends (caching a pointer to the input doesn't make sense here) + virtual void test_run_end(const TestRunStats&) = 0; + + // called when a test case is started (safe to cache a pointer to the input) + virtual void test_case_start(const TestCaseData&) = 0; + // called when a test case is reentered because of unfinished subcases (safe to cache a pointer to the input) + virtual void test_case_reenter(const TestCaseData&) = 0; + // called when a test case has ended + virtual void test_case_end(const CurrentTestCaseStats&) = 0; + + // called when an exception is thrown from the test case (or it crashes) + virtual void test_case_exception(const TestCaseException&) = 0; + + // called whenever a subcase is entered (don't cache pointers to the input) + virtual void subcase_start(const SubcaseSignature&) = 0; + // called whenever a subcase is exited (don't cache pointers to the input) + virtual void subcase_end() = 0; + + // called for each assert (don't cache pointers to the input) + virtual void log_assert(const AssertData&) = 0; + // called for each message (don't cache pointers to the input) + virtual void log_message(const MessageData&) = 0; + + // called when a test case is skipped either because it doesn't pass the filters, has a skip decorator + // or isn't in the execution range (between first and last) (safe to cache a pointer to the input) + virtual void test_case_skipped(const TestCaseData&) = 0; + + DOCTEST_DECLARE_INTERFACE(IReporter) + + // can obtain all currently active contexts and stringify them if one wishes to do so + static int get_num_active_contexts(); + static const IContextScope* const* get_active_contexts(); + + // can iterate through contexts which have been stringified automatically in their destructors when an exception has been thrown + static int get_num_stringified_contexts(); + static const String* get_stringified_contexts(); +}; + +namespace detail +{ +using reporterCreatorFunc = IReporter* (*)(const ContextOptions&); + +DOCTEST_INTERFACE void registerReporterImpl(const char* name, int prio, reporterCreatorFunc c, bool isReporter); + +template +IReporter* reporterCreator(const ContextOptions& o) +{ + return new Reporter(o); +} +} // namespace detail + +template +int registerReporter(const char* name, int priority, bool isReporter) +{ + detail::registerReporterImpl(name, priority, detail::reporterCreator, isReporter); + return 0; +} +} // namespace doctest + +#ifdef DOCTEST_CONFIG_ASSERTS_RETURN_VALUES +#define DOCTEST_FUNC_EMPTY [] { return false; }() +#else +#define DOCTEST_FUNC_EMPTY (void)0 +#endif + +// if registering is not disabled +#ifndef DOCTEST_CONFIG_DISABLE + +#ifdef DOCTEST_CONFIG_ASSERTS_RETURN_VALUES +#define DOCTEST_FUNC_SCOPE_BEGIN [&] +#define DOCTEST_FUNC_SCOPE_END () +#define DOCTEST_FUNC_SCOPE_RET(v) return v +#else +#define DOCTEST_FUNC_SCOPE_BEGIN do +#define DOCTEST_FUNC_SCOPE_END while(false) +#define DOCTEST_FUNC_SCOPE_RET(v) (void)0 +#endif + +// common code in asserts - for convenience +#define DOCTEST_ASSERT_LOG_REACT_RETURN(b) \ + if(b.log()) DOCTEST_BREAK_INTO_DEBUGGER(); \ + b.react(); \ + DOCTEST_FUNC_SCOPE_RET(!b.m_failed) + +#ifdef DOCTEST_CONFIG_NO_TRY_CATCH_IN_ASSERTS +#define DOCTEST_WRAP_IN_TRY(x) x; +#else // DOCTEST_CONFIG_NO_TRY_CATCH_IN_ASSERTS +#define DOCTEST_WRAP_IN_TRY(x) \ + try { \ + x; \ + } catch(...) { DOCTEST_RB.translateException(); } +#endif // DOCTEST_CONFIG_NO_TRY_CATCH_IN_ASSERTS + +#ifdef DOCTEST_CONFIG_VOID_CAST_EXPRESSIONS +#define DOCTEST_CAST_TO_VOID(...) \ + DOCTEST_GCC_SUPPRESS_WARNING_WITH_PUSH("-Wuseless-cast") \ + static_cast(__VA_ARGS__); \ + DOCTEST_GCC_SUPPRESS_WARNING_POP +#else // DOCTEST_CONFIG_VOID_CAST_EXPRESSIONS +#define DOCTEST_CAST_TO_VOID(...) __VA_ARGS__; +#endif // DOCTEST_CONFIG_VOID_CAST_EXPRESSIONS + +// registers the test by initializing a dummy var with a function +#define DOCTEST_REGISTER_FUNCTION(global_prefix, f, decorators) \ + global_prefix DOCTEST_GLOBAL_NO_WARNINGS(DOCTEST_ANONYMOUS(DOCTEST_ANON_VAR_), /* NOLINT */ \ + doctest::detail::regTest( \ + doctest::detail::TestCase( \ + f, __FILE__, __LINE__, \ + doctest_detail_test_suite_ns::getCurrentTestSuite()) * \ + decorators)) + +#define DOCTEST_IMPLEMENT_FIXTURE(der, base, func, decorators) \ + namespace { /* NOLINT */ \ + struct der : public base \ + { \ + void f(); \ + }; \ + static DOCTEST_INLINE_NOINLINE void func() { \ + der v; \ + v.f(); \ + } \ + DOCTEST_REGISTER_FUNCTION(DOCTEST_EMPTY, func, decorators) \ + } \ + DOCTEST_INLINE_NOINLINE void der::f() // NOLINT(misc-definitions-in-headers) + +#define DOCTEST_CREATE_AND_REGISTER_FUNCTION(f, decorators) \ + static void f(); \ + DOCTEST_REGISTER_FUNCTION(DOCTEST_EMPTY, f, decorators) \ + static void f() + +#define DOCTEST_CREATE_AND_REGISTER_FUNCTION_IN_CLASS(f, proxy, decorators) \ + static doctest::detail::funcType proxy() { return f; } \ + DOCTEST_REGISTER_FUNCTION(inline, proxy(), decorators) \ + static void f() + +// for registering tests +#define DOCTEST_TEST_CASE(decorators) \ + DOCTEST_CREATE_AND_REGISTER_FUNCTION(DOCTEST_ANONYMOUS(DOCTEST_ANON_FUNC_), decorators) + +// for registering tests in classes - requires C++17 for inline variables! +#if DOCTEST_CPLUSPLUS >= 201703L +#define DOCTEST_TEST_CASE_CLASS(decorators) \ + DOCTEST_CREATE_AND_REGISTER_FUNCTION_IN_CLASS(DOCTEST_ANONYMOUS(DOCTEST_ANON_FUNC_), \ + DOCTEST_ANONYMOUS(DOCTEST_ANON_PROXY_), \ + decorators) +#else // DOCTEST_TEST_CASE_CLASS +#define DOCTEST_TEST_CASE_CLASS(...) \ + TEST_CASES_CAN_BE_REGISTERED_IN_CLASSES_ONLY_IN_CPP17_MODE_OR_WITH_VS_2017_OR_NEWER +#endif // DOCTEST_TEST_CASE_CLASS + +// for registering tests with a fixture +#define DOCTEST_TEST_CASE_FIXTURE(c, decorators) \ + DOCTEST_IMPLEMENT_FIXTURE(DOCTEST_ANONYMOUS(DOCTEST_ANON_CLASS_), c, \ + DOCTEST_ANONYMOUS(DOCTEST_ANON_FUNC_), decorators) + +// for converting types to strings without the header and demangling +#define DOCTEST_TYPE_TO_STRING_AS(str, ...) \ + namespace doctest { \ + template <> \ + inline String toString<__VA_ARGS__>() { \ + return str; \ + } \ + } \ + static_assert(true, "") + +#define DOCTEST_TYPE_TO_STRING(...) DOCTEST_TYPE_TO_STRING_AS(#__VA_ARGS__, __VA_ARGS__) + +#define DOCTEST_TEST_CASE_TEMPLATE_DEFINE_IMPL(dec, T, iter, func) \ + template \ + static void func(); \ + namespace { /* NOLINT */ \ + template \ + struct iter; \ + template \ + struct iter> \ + { \ + iter(const char* file, unsigned line, int index) { \ + doctest::detail::regTest(doctest::detail::TestCase(func, file, line, \ + doctest_detail_test_suite_ns::getCurrentTestSuite(), \ + doctest::toString(), \ + int(line) * 1000 + index) \ + * dec); \ + iter>(file, line, index + 1); \ + } \ + }; \ + template <> \ + struct iter> \ + { \ + iter(const char*, unsigned, int) {} \ + }; \ + } \ + template \ + static void func() + +#define DOCTEST_TEST_CASE_TEMPLATE_DEFINE(dec, T, id) \ + DOCTEST_TEST_CASE_TEMPLATE_DEFINE_IMPL(dec, T, DOCTEST_CAT(id, ITERATOR), \ + DOCTEST_ANONYMOUS(DOCTEST_ANON_TMP_)) + +#define DOCTEST_TEST_CASE_TEMPLATE_INSTANTIATE_IMPL(id, anon, ...) \ + DOCTEST_GLOBAL_NO_WARNINGS(DOCTEST_CAT(anon, DUMMY), /* NOLINT(cert-err58-cpp, fuchsia-statically-constructed-objects) */ \ + doctest::detail::instantiationHelper( \ + DOCTEST_CAT(id, ITERATOR)<__VA_ARGS__>(__FILE__, __LINE__, 0))) + +#define DOCTEST_TEST_CASE_TEMPLATE_INVOKE(id, ...) \ + DOCTEST_TEST_CASE_TEMPLATE_INSTANTIATE_IMPL(id, DOCTEST_ANONYMOUS(DOCTEST_ANON_TMP_), std::tuple<__VA_ARGS__>) \ + static_assert(true, "") + +#define DOCTEST_TEST_CASE_TEMPLATE_APPLY(id, ...) \ + DOCTEST_TEST_CASE_TEMPLATE_INSTANTIATE_IMPL(id, DOCTEST_ANONYMOUS(DOCTEST_ANON_TMP_), __VA_ARGS__) \ + static_assert(true, "") + +#define DOCTEST_TEST_CASE_TEMPLATE_IMPL(dec, T, anon, ...) \ + DOCTEST_TEST_CASE_TEMPLATE_DEFINE_IMPL(dec, T, DOCTEST_CAT(anon, ITERATOR), anon); \ + DOCTEST_TEST_CASE_TEMPLATE_INSTANTIATE_IMPL(anon, anon, std::tuple<__VA_ARGS__>) \ + template \ + static void anon() + +#define DOCTEST_TEST_CASE_TEMPLATE(dec, T, ...) \ + DOCTEST_TEST_CASE_TEMPLATE_IMPL(dec, T, DOCTEST_ANONYMOUS(DOCTEST_ANON_TMP_), __VA_ARGS__) + +// for subcases +#define DOCTEST_SUBCASE(name) \ + if(const doctest::detail::Subcase & DOCTEST_ANONYMOUS(DOCTEST_ANON_SUBCASE_) DOCTEST_UNUSED = \ + doctest::detail::Subcase(name, __FILE__, __LINE__)) + +// for grouping tests in test suites by using code blocks +#define DOCTEST_TEST_SUITE_IMPL(decorators, ns_name) \ + namespace ns_name { namespace doctest_detail_test_suite_ns { \ + static DOCTEST_NOINLINE doctest::detail::TestSuite& getCurrentTestSuite() noexcept { \ + DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4640) \ + DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH("-Wexit-time-destructors") \ + DOCTEST_GCC_SUPPRESS_WARNING_WITH_PUSH("-Wmissing-field-initializers") \ + static doctest::detail::TestSuite data{}; \ + static bool inited = false; \ + DOCTEST_MSVC_SUPPRESS_WARNING_POP \ + DOCTEST_CLANG_SUPPRESS_WARNING_POP \ + DOCTEST_GCC_SUPPRESS_WARNING_POP \ + if(!inited) { \ + data* decorators; \ + inited = true; \ + } \ + return data; \ + } \ + } \ + } \ + namespace ns_name + +#define DOCTEST_TEST_SUITE(decorators) \ + DOCTEST_TEST_SUITE_IMPL(decorators, DOCTEST_ANONYMOUS(DOCTEST_ANON_SUITE_)) + +// for starting a testsuite block +#define DOCTEST_TEST_SUITE_BEGIN(decorators) \ + DOCTEST_GLOBAL_NO_WARNINGS(DOCTEST_ANONYMOUS(DOCTEST_ANON_VAR_), /* NOLINT(cert-err58-cpp) */ \ + doctest::detail::setTestSuite(doctest::detail::TestSuite() * decorators)) \ + static_assert(true, "") + +// for ending a testsuite block +#define DOCTEST_TEST_SUITE_END \ + DOCTEST_GLOBAL_NO_WARNINGS(DOCTEST_ANONYMOUS(DOCTEST_ANON_VAR_), /* NOLINT(cert-err58-cpp) */ \ + doctest::detail::setTestSuite(doctest::detail::TestSuite() * "")) \ + using DOCTEST_ANONYMOUS(DOCTEST_ANON_FOR_SEMICOLON_) = int + +// for registering exception translators +#define DOCTEST_REGISTER_EXCEPTION_TRANSLATOR_IMPL(translatorName, signature) \ + inline doctest::String translatorName(signature); \ + DOCTEST_GLOBAL_NO_WARNINGS(DOCTEST_ANONYMOUS(DOCTEST_ANON_TRANSLATOR_), /* NOLINT(cert-err58-cpp) */ \ + doctest::registerExceptionTranslator(translatorName)) \ + doctest::String translatorName(signature) + +#define DOCTEST_REGISTER_EXCEPTION_TRANSLATOR(signature) \ + DOCTEST_REGISTER_EXCEPTION_TRANSLATOR_IMPL(DOCTEST_ANONYMOUS(DOCTEST_ANON_TRANSLATOR_), \ + signature) + +// for registering reporters +#define DOCTEST_REGISTER_REPORTER(name, priority, reporter) \ + DOCTEST_GLOBAL_NO_WARNINGS(DOCTEST_ANONYMOUS(DOCTEST_ANON_REPORTER_), /* NOLINT(cert-err58-cpp) */ \ + doctest::registerReporter(name, priority, true)) \ + static_assert(true, "") + +// for registering listeners +#define DOCTEST_REGISTER_LISTENER(name, priority, reporter) \ + DOCTEST_GLOBAL_NO_WARNINGS(DOCTEST_ANONYMOUS(DOCTEST_ANON_REPORTER_), /* NOLINT(cert-err58-cpp) */ \ + doctest::registerReporter(name, priority, false)) \ + static_assert(true, "") + +// clang-format off +// for logging - disabling formatting because it's important to have these on 2 separate lines - see PR #557 +#define DOCTEST_INFO(...) \ + DOCTEST_INFO_IMPL(DOCTEST_ANONYMOUS(DOCTEST_CAPTURE_), \ + DOCTEST_ANONYMOUS(DOCTEST_CAPTURE_OTHER_), \ + __VA_ARGS__) +// clang-format on + +#define DOCTEST_INFO_IMPL(mb_name, s_name, ...) \ + auto DOCTEST_ANONYMOUS(DOCTEST_CAPTURE_) = doctest::detail::MakeContextScope( \ + [&](std::ostream* s_name) { \ + doctest::detail::MessageBuilder mb_name(__FILE__, __LINE__, doctest::assertType::is_warn); \ + mb_name.m_stream = s_name; \ + mb_name * __VA_ARGS__; \ + }) + +#define DOCTEST_CAPTURE(x) DOCTEST_INFO(#x " := ", x) + +#define DOCTEST_ADD_AT_IMPL(type, file, line, mb, ...) \ + DOCTEST_FUNC_SCOPE_BEGIN { \ + doctest::detail::MessageBuilder mb(file, line, doctest::assertType::type); \ + mb * __VA_ARGS__; \ + if(mb.log()) \ + DOCTEST_BREAK_INTO_DEBUGGER(); \ + mb.react(); \ + } DOCTEST_FUNC_SCOPE_END + +// clang-format off +#define DOCTEST_ADD_MESSAGE_AT(file, line, ...) DOCTEST_ADD_AT_IMPL(is_warn, file, line, DOCTEST_ANONYMOUS(DOCTEST_MESSAGE_), __VA_ARGS__) +#define DOCTEST_ADD_FAIL_CHECK_AT(file, line, ...) DOCTEST_ADD_AT_IMPL(is_check, file, line, DOCTEST_ANONYMOUS(DOCTEST_MESSAGE_), __VA_ARGS__) +#define DOCTEST_ADD_FAIL_AT(file, line, ...) DOCTEST_ADD_AT_IMPL(is_require, file, line, DOCTEST_ANONYMOUS(DOCTEST_MESSAGE_), __VA_ARGS__) +// clang-format on + +#define DOCTEST_MESSAGE(...) DOCTEST_ADD_MESSAGE_AT(__FILE__, __LINE__, __VA_ARGS__) +#define DOCTEST_FAIL_CHECK(...) DOCTEST_ADD_FAIL_CHECK_AT(__FILE__, __LINE__, __VA_ARGS__) +#define DOCTEST_FAIL(...) DOCTEST_ADD_FAIL_AT(__FILE__, __LINE__, __VA_ARGS__) + +#define DOCTEST_TO_LVALUE(...) __VA_ARGS__ // Not removed to keep backwards compatibility. + +#ifndef DOCTEST_CONFIG_SUPER_FAST_ASSERTS + +#define DOCTEST_ASSERT_IMPLEMENT_2(assert_type, ...) \ + DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH("-Woverloaded-shift-op-parentheses") \ + /* NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks) */ \ + doctest::detail::ResultBuilder DOCTEST_RB(doctest::assertType::assert_type, __FILE__, \ + __LINE__, #__VA_ARGS__); \ + DOCTEST_WRAP_IN_TRY(DOCTEST_RB.setResult( \ + doctest::detail::ExpressionDecomposer(doctest::assertType::assert_type) \ + << __VA_ARGS__)) /* NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks) */ \ + DOCTEST_ASSERT_LOG_REACT_RETURN(DOCTEST_RB) \ + DOCTEST_CLANG_SUPPRESS_WARNING_POP + +#define DOCTEST_ASSERT_IMPLEMENT_1(assert_type, ...) \ + DOCTEST_FUNC_SCOPE_BEGIN { \ + DOCTEST_ASSERT_IMPLEMENT_2(assert_type, __VA_ARGS__); \ + } DOCTEST_FUNC_SCOPE_END // NOLINT(clang-analyzer-cplusplus.NewDeleteLeaks) + +#define DOCTEST_BINARY_ASSERT(assert_type, comp, ...) \ + DOCTEST_FUNC_SCOPE_BEGIN { \ + doctest::detail::ResultBuilder DOCTEST_RB(doctest::assertType::assert_type, __FILE__, \ + __LINE__, #__VA_ARGS__); \ + DOCTEST_WRAP_IN_TRY( \ + DOCTEST_RB.binary_assert( \ + __VA_ARGS__)) \ + DOCTEST_ASSERT_LOG_REACT_RETURN(DOCTEST_RB); \ + } DOCTEST_FUNC_SCOPE_END + +#define DOCTEST_UNARY_ASSERT(assert_type, ...) \ + DOCTEST_FUNC_SCOPE_BEGIN { \ + doctest::detail::ResultBuilder DOCTEST_RB(doctest::assertType::assert_type, __FILE__, \ + __LINE__, #__VA_ARGS__); \ + DOCTEST_WRAP_IN_TRY(DOCTEST_RB.unary_assert(__VA_ARGS__)) \ + DOCTEST_ASSERT_LOG_REACT_RETURN(DOCTEST_RB); \ + } DOCTEST_FUNC_SCOPE_END + +#else // DOCTEST_CONFIG_SUPER_FAST_ASSERTS + +// necessary for _MESSAGE +#define DOCTEST_ASSERT_IMPLEMENT_2 DOCTEST_ASSERT_IMPLEMENT_1 + +#define DOCTEST_ASSERT_IMPLEMENT_1(assert_type, ...) \ + DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH("-Woverloaded-shift-op-parentheses") \ + doctest::detail::decomp_assert( \ + doctest::assertType::assert_type, __FILE__, __LINE__, #__VA_ARGS__, \ + doctest::detail::ExpressionDecomposer(doctest::assertType::assert_type) \ + << __VA_ARGS__) DOCTEST_CLANG_SUPPRESS_WARNING_POP + +#define DOCTEST_BINARY_ASSERT(assert_type, comparison, ...) \ + doctest::detail::binary_assert( \ + doctest::assertType::assert_type, __FILE__, __LINE__, #__VA_ARGS__, __VA_ARGS__) + +#define DOCTEST_UNARY_ASSERT(assert_type, ...) \ + doctest::detail::unary_assert(doctest::assertType::assert_type, __FILE__, __LINE__, \ + #__VA_ARGS__, __VA_ARGS__) + +#endif // DOCTEST_CONFIG_SUPER_FAST_ASSERTS + +#define DOCTEST_WARN(...) DOCTEST_ASSERT_IMPLEMENT_1(DT_WARN, __VA_ARGS__) +#define DOCTEST_CHECK(...) DOCTEST_ASSERT_IMPLEMENT_1(DT_CHECK, __VA_ARGS__) +#define DOCTEST_REQUIRE(...) DOCTEST_ASSERT_IMPLEMENT_1(DT_REQUIRE, __VA_ARGS__) +#define DOCTEST_WARN_FALSE(...) DOCTEST_ASSERT_IMPLEMENT_1(DT_WARN_FALSE, __VA_ARGS__) +#define DOCTEST_CHECK_FALSE(...) DOCTEST_ASSERT_IMPLEMENT_1(DT_CHECK_FALSE, __VA_ARGS__) +#define DOCTEST_REQUIRE_FALSE(...) DOCTEST_ASSERT_IMPLEMENT_1(DT_REQUIRE_FALSE, __VA_ARGS__) + +// clang-format off +#define DOCTEST_WARN_MESSAGE(cond, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_ASSERT_IMPLEMENT_2(DT_WARN, cond); } DOCTEST_FUNC_SCOPE_END +#define DOCTEST_CHECK_MESSAGE(cond, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_ASSERT_IMPLEMENT_2(DT_CHECK, cond); } DOCTEST_FUNC_SCOPE_END +#define DOCTEST_REQUIRE_MESSAGE(cond, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_ASSERT_IMPLEMENT_2(DT_REQUIRE, cond); } DOCTEST_FUNC_SCOPE_END +#define DOCTEST_WARN_FALSE_MESSAGE(cond, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_ASSERT_IMPLEMENT_2(DT_WARN_FALSE, cond); } DOCTEST_FUNC_SCOPE_END +#define DOCTEST_CHECK_FALSE_MESSAGE(cond, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_ASSERT_IMPLEMENT_2(DT_CHECK_FALSE, cond); } DOCTEST_FUNC_SCOPE_END +#define DOCTEST_REQUIRE_FALSE_MESSAGE(cond, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_ASSERT_IMPLEMENT_2(DT_REQUIRE_FALSE, cond); } DOCTEST_FUNC_SCOPE_END +// clang-format on + +#define DOCTEST_WARN_EQ(...) DOCTEST_BINARY_ASSERT(DT_WARN_EQ, eq, __VA_ARGS__) +#define DOCTEST_CHECK_EQ(...) DOCTEST_BINARY_ASSERT(DT_CHECK_EQ, eq, __VA_ARGS__) +#define DOCTEST_REQUIRE_EQ(...) DOCTEST_BINARY_ASSERT(DT_REQUIRE_EQ, eq, __VA_ARGS__) +#define DOCTEST_WARN_NE(...) DOCTEST_BINARY_ASSERT(DT_WARN_NE, ne, __VA_ARGS__) +#define DOCTEST_CHECK_NE(...) DOCTEST_BINARY_ASSERT(DT_CHECK_NE, ne, __VA_ARGS__) +#define DOCTEST_REQUIRE_NE(...) DOCTEST_BINARY_ASSERT(DT_REQUIRE_NE, ne, __VA_ARGS__) +#define DOCTEST_WARN_GT(...) DOCTEST_BINARY_ASSERT(DT_WARN_GT, gt, __VA_ARGS__) +#define DOCTEST_CHECK_GT(...) DOCTEST_BINARY_ASSERT(DT_CHECK_GT, gt, __VA_ARGS__) +#define DOCTEST_REQUIRE_GT(...) DOCTEST_BINARY_ASSERT(DT_REQUIRE_GT, gt, __VA_ARGS__) +#define DOCTEST_WARN_LT(...) DOCTEST_BINARY_ASSERT(DT_WARN_LT, lt, __VA_ARGS__) +#define DOCTEST_CHECK_LT(...) DOCTEST_BINARY_ASSERT(DT_CHECK_LT, lt, __VA_ARGS__) +#define DOCTEST_REQUIRE_LT(...) DOCTEST_BINARY_ASSERT(DT_REQUIRE_LT, lt, __VA_ARGS__) +#define DOCTEST_WARN_GE(...) DOCTEST_BINARY_ASSERT(DT_WARN_GE, ge, __VA_ARGS__) +#define DOCTEST_CHECK_GE(...) DOCTEST_BINARY_ASSERT(DT_CHECK_GE, ge, __VA_ARGS__) +#define DOCTEST_REQUIRE_GE(...) DOCTEST_BINARY_ASSERT(DT_REQUIRE_GE, ge, __VA_ARGS__) +#define DOCTEST_WARN_LE(...) DOCTEST_BINARY_ASSERT(DT_WARN_LE, le, __VA_ARGS__) +#define DOCTEST_CHECK_LE(...) DOCTEST_BINARY_ASSERT(DT_CHECK_LE, le, __VA_ARGS__) +#define DOCTEST_REQUIRE_LE(...) DOCTEST_BINARY_ASSERT(DT_REQUIRE_LE, le, __VA_ARGS__) + +#define DOCTEST_WARN_UNARY(...) DOCTEST_UNARY_ASSERT(DT_WARN_UNARY, __VA_ARGS__) +#define DOCTEST_CHECK_UNARY(...) DOCTEST_UNARY_ASSERT(DT_CHECK_UNARY, __VA_ARGS__) +#define DOCTEST_REQUIRE_UNARY(...) DOCTEST_UNARY_ASSERT(DT_REQUIRE_UNARY, __VA_ARGS__) +#define DOCTEST_WARN_UNARY_FALSE(...) DOCTEST_UNARY_ASSERT(DT_WARN_UNARY_FALSE, __VA_ARGS__) +#define DOCTEST_CHECK_UNARY_FALSE(...) DOCTEST_UNARY_ASSERT(DT_CHECK_UNARY_FALSE, __VA_ARGS__) +#define DOCTEST_REQUIRE_UNARY_FALSE(...) DOCTEST_UNARY_ASSERT(DT_REQUIRE_UNARY_FALSE, __VA_ARGS__) + +#ifndef DOCTEST_CONFIG_NO_EXCEPTIONS + +#define DOCTEST_ASSERT_THROWS_AS(expr, assert_type, message, ...) \ + DOCTEST_FUNC_SCOPE_BEGIN { \ + if(!doctest::getContextOptions()->no_throw) { \ + doctest::detail::ResultBuilder DOCTEST_RB(doctest::assertType::assert_type, __FILE__, \ + __LINE__, #expr, #__VA_ARGS__, message); \ + try { \ + DOCTEST_CAST_TO_VOID(expr) \ + } catch(const typename doctest::detail::types::remove_const< \ + typename doctest::detail::types::remove_reference<__VA_ARGS__>::type>::type&) {\ + DOCTEST_RB.translateException(); \ + DOCTEST_RB.m_threw_as = true; \ + } catch(...) { DOCTEST_RB.translateException(); } \ + DOCTEST_ASSERT_LOG_REACT_RETURN(DOCTEST_RB); \ + } else { /* NOLINT(*-else-after-return) */ \ + DOCTEST_FUNC_SCOPE_RET(false); \ + } \ + } DOCTEST_FUNC_SCOPE_END + +#define DOCTEST_ASSERT_THROWS_WITH(expr, expr_str, assert_type, ...) \ + DOCTEST_FUNC_SCOPE_BEGIN { \ + if(!doctest::getContextOptions()->no_throw) { \ + doctest::detail::ResultBuilder DOCTEST_RB(doctest::assertType::assert_type, __FILE__, \ + __LINE__, expr_str, "", __VA_ARGS__); \ + try { \ + DOCTEST_CAST_TO_VOID(expr) \ + } catch(...) { DOCTEST_RB.translateException(); } \ + DOCTEST_ASSERT_LOG_REACT_RETURN(DOCTEST_RB); \ + } else { /* NOLINT(*-else-after-return) */ \ + DOCTEST_FUNC_SCOPE_RET(false); \ + } \ + } DOCTEST_FUNC_SCOPE_END + +#define DOCTEST_ASSERT_NOTHROW(assert_type, ...) \ + DOCTEST_FUNC_SCOPE_BEGIN { \ + doctest::detail::ResultBuilder DOCTEST_RB(doctest::assertType::assert_type, __FILE__, \ + __LINE__, #__VA_ARGS__); \ + try { \ + DOCTEST_CAST_TO_VOID(__VA_ARGS__) \ + } catch(...) { DOCTEST_RB.translateException(); } \ + DOCTEST_ASSERT_LOG_REACT_RETURN(DOCTEST_RB); \ + } DOCTEST_FUNC_SCOPE_END + +// clang-format off +#define DOCTEST_WARN_THROWS(...) DOCTEST_ASSERT_THROWS_WITH((__VA_ARGS__), #__VA_ARGS__, DT_WARN_THROWS, "") +#define DOCTEST_CHECK_THROWS(...) DOCTEST_ASSERT_THROWS_WITH((__VA_ARGS__), #__VA_ARGS__, DT_CHECK_THROWS, "") +#define DOCTEST_REQUIRE_THROWS(...) DOCTEST_ASSERT_THROWS_WITH((__VA_ARGS__), #__VA_ARGS__, DT_REQUIRE_THROWS, "") + +#define DOCTEST_WARN_THROWS_AS(expr, ...) DOCTEST_ASSERT_THROWS_AS(expr, DT_WARN_THROWS_AS, "", __VA_ARGS__) +#define DOCTEST_CHECK_THROWS_AS(expr, ...) DOCTEST_ASSERT_THROWS_AS(expr, DT_CHECK_THROWS_AS, "", __VA_ARGS__) +#define DOCTEST_REQUIRE_THROWS_AS(expr, ...) DOCTEST_ASSERT_THROWS_AS(expr, DT_REQUIRE_THROWS_AS, "", __VA_ARGS__) + +#define DOCTEST_WARN_THROWS_WITH(expr, ...) DOCTEST_ASSERT_THROWS_WITH(expr, #expr, DT_WARN_THROWS_WITH, __VA_ARGS__) +#define DOCTEST_CHECK_THROWS_WITH(expr, ...) DOCTEST_ASSERT_THROWS_WITH(expr, #expr, DT_CHECK_THROWS_WITH, __VA_ARGS__) +#define DOCTEST_REQUIRE_THROWS_WITH(expr, ...) DOCTEST_ASSERT_THROWS_WITH(expr, #expr, DT_REQUIRE_THROWS_WITH, __VA_ARGS__) + +#define DOCTEST_WARN_THROWS_WITH_AS(expr, message, ...) DOCTEST_ASSERT_THROWS_AS(expr, DT_WARN_THROWS_WITH_AS, message, __VA_ARGS__) +#define DOCTEST_CHECK_THROWS_WITH_AS(expr, message, ...) DOCTEST_ASSERT_THROWS_AS(expr, DT_CHECK_THROWS_WITH_AS, message, __VA_ARGS__) +#define DOCTEST_REQUIRE_THROWS_WITH_AS(expr, message, ...) DOCTEST_ASSERT_THROWS_AS(expr, DT_REQUIRE_THROWS_WITH_AS, message, __VA_ARGS__) + +#define DOCTEST_WARN_NOTHROW(...) DOCTEST_ASSERT_NOTHROW(DT_WARN_NOTHROW, __VA_ARGS__) +#define DOCTEST_CHECK_NOTHROW(...) DOCTEST_ASSERT_NOTHROW(DT_CHECK_NOTHROW, __VA_ARGS__) +#define DOCTEST_REQUIRE_NOTHROW(...) DOCTEST_ASSERT_NOTHROW(DT_REQUIRE_NOTHROW, __VA_ARGS__) + +#define DOCTEST_WARN_THROWS_MESSAGE(expr, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_WARN_THROWS(expr); } DOCTEST_FUNC_SCOPE_END +#define DOCTEST_CHECK_THROWS_MESSAGE(expr, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_CHECK_THROWS(expr); } DOCTEST_FUNC_SCOPE_END +#define DOCTEST_REQUIRE_THROWS_MESSAGE(expr, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_REQUIRE_THROWS(expr); } DOCTEST_FUNC_SCOPE_END +#define DOCTEST_WARN_THROWS_AS_MESSAGE(expr, ex, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_WARN_THROWS_AS(expr, ex); } DOCTEST_FUNC_SCOPE_END +#define DOCTEST_CHECK_THROWS_AS_MESSAGE(expr, ex, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_CHECK_THROWS_AS(expr, ex); } DOCTEST_FUNC_SCOPE_END +#define DOCTEST_REQUIRE_THROWS_AS_MESSAGE(expr, ex, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_REQUIRE_THROWS_AS(expr, ex); } DOCTEST_FUNC_SCOPE_END +#define DOCTEST_WARN_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_WARN_THROWS_WITH(expr, with); } DOCTEST_FUNC_SCOPE_END +#define DOCTEST_CHECK_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_CHECK_THROWS_WITH(expr, with); } DOCTEST_FUNC_SCOPE_END +#define DOCTEST_REQUIRE_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_REQUIRE_THROWS_WITH(expr, with); } DOCTEST_FUNC_SCOPE_END +#define DOCTEST_WARN_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_WARN_THROWS_WITH_AS(expr, with, ex); } DOCTEST_FUNC_SCOPE_END +#define DOCTEST_CHECK_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_CHECK_THROWS_WITH_AS(expr, with, ex); } DOCTEST_FUNC_SCOPE_END +#define DOCTEST_REQUIRE_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_REQUIRE_THROWS_WITH_AS(expr, with, ex); } DOCTEST_FUNC_SCOPE_END +#define DOCTEST_WARN_NOTHROW_MESSAGE(expr, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_WARN_NOTHROW(expr); } DOCTEST_FUNC_SCOPE_END +#define DOCTEST_CHECK_NOTHROW_MESSAGE(expr, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_CHECK_NOTHROW(expr); } DOCTEST_FUNC_SCOPE_END +#define DOCTEST_REQUIRE_NOTHROW_MESSAGE(expr, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_REQUIRE_NOTHROW(expr); } DOCTEST_FUNC_SCOPE_END +// clang-format on + +#endif // DOCTEST_CONFIG_NO_EXCEPTIONS + +// ================================================================================================= +// == WHAT FOLLOWS IS VERSIONS OF THE MACROS THAT DO NOT DO ANY REGISTERING! == +// == THIS CAN BE ENABLED BY DEFINING DOCTEST_CONFIG_DISABLE GLOBALLY! == +// ================================================================================================= +#else // DOCTEST_CONFIG_DISABLE + +#define DOCTEST_IMPLEMENT_FIXTURE(der, base, func, name) \ + namespace /* NOLINT */ { \ + template \ + struct der : public base \ + { void f(); }; \ + } \ + template \ + inline void der::f() + +#define DOCTEST_CREATE_AND_REGISTER_FUNCTION(f, name) \ + template \ + static inline void f() + +// for registering tests +#define DOCTEST_TEST_CASE(name) \ + DOCTEST_CREATE_AND_REGISTER_FUNCTION(DOCTEST_ANONYMOUS(DOCTEST_ANON_FUNC_), name) + +// for registering tests in classes +#define DOCTEST_TEST_CASE_CLASS(name) \ + DOCTEST_CREATE_AND_REGISTER_FUNCTION(DOCTEST_ANONYMOUS(DOCTEST_ANON_FUNC_), name) + +// for registering tests with a fixture +#define DOCTEST_TEST_CASE_FIXTURE(x, name) \ + DOCTEST_IMPLEMENT_FIXTURE(DOCTEST_ANONYMOUS(DOCTEST_ANON_CLASS_), x, \ + DOCTEST_ANONYMOUS(DOCTEST_ANON_FUNC_), name) + +// for converting types to strings without the header and demangling +#define DOCTEST_TYPE_TO_STRING_AS(str, ...) static_assert(true, "") +#define DOCTEST_TYPE_TO_STRING(...) static_assert(true, "") + +// for typed tests +#define DOCTEST_TEST_CASE_TEMPLATE(name, type, ...) \ + template \ + inline void DOCTEST_ANONYMOUS(DOCTEST_ANON_TMP_)() + +#define DOCTEST_TEST_CASE_TEMPLATE_DEFINE(name, type, id) \ + template \ + inline void DOCTEST_ANONYMOUS(DOCTEST_ANON_TMP_)() + +#define DOCTEST_TEST_CASE_TEMPLATE_INVOKE(id, ...) static_assert(true, "") +#define DOCTEST_TEST_CASE_TEMPLATE_APPLY(id, ...) static_assert(true, "") + +// for subcases +#define DOCTEST_SUBCASE(name) + +// for a testsuite block +#define DOCTEST_TEST_SUITE(name) namespace // NOLINT + +// for starting a testsuite block +#define DOCTEST_TEST_SUITE_BEGIN(name) static_assert(true, "") + +// for ending a testsuite block +#define DOCTEST_TEST_SUITE_END using DOCTEST_ANONYMOUS(DOCTEST_ANON_FOR_SEMICOLON_) = int + +#define DOCTEST_REGISTER_EXCEPTION_TRANSLATOR(signature) \ + template \ + static inline doctest::String DOCTEST_ANONYMOUS(DOCTEST_ANON_TRANSLATOR_)(signature) + +#define DOCTEST_REGISTER_REPORTER(name, priority, reporter) +#define DOCTEST_REGISTER_LISTENER(name, priority, reporter) + +#define DOCTEST_INFO(...) (static_cast(0)) +#define DOCTEST_CAPTURE(x) (static_cast(0)) +#define DOCTEST_ADD_MESSAGE_AT(file, line, ...) (static_cast(0)) +#define DOCTEST_ADD_FAIL_CHECK_AT(file, line, ...) (static_cast(0)) +#define DOCTEST_ADD_FAIL_AT(file, line, ...) (static_cast(0)) +#define DOCTEST_MESSAGE(...) (static_cast(0)) +#define DOCTEST_FAIL_CHECK(...) (static_cast(0)) +#define DOCTEST_FAIL(...) (static_cast(0)) + +#if defined(DOCTEST_CONFIG_EVALUATE_ASSERTS_EVEN_WHEN_DISABLED) \ + && defined(DOCTEST_CONFIG_ASSERTS_RETURN_VALUES) + +#define DOCTEST_WARN(...) [&] { return __VA_ARGS__; }() +#define DOCTEST_CHECK(...) [&] { return __VA_ARGS__; }() +#define DOCTEST_REQUIRE(...) [&] { return __VA_ARGS__; }() +#define DOCTEST_WARN_FALSE(...) [&] { return !(__VA_ARGS__); }() +#define DOCTEST_CHECK_FALSE(...) [&] { return !(__VA_ARGS__); }() +#define DOCTEST_REQUIRE_FALSE(...) [&] { return !(__VA_ARGS__); }() + +#define DOCTEST_WARN_MESSAGE(cond, ...) [&] { return cond; }() +#define DOCTEST_CHECK_MESSAGE(cond, ...) [&] { return cond; }() +#define DOCTEST_REQUIRE_MESSAGE(cond, ...) [&] { return cond; }() +#define DOCTEST_WARN_FALSE_MESSAGE(cond, ...) [&] { return !(cond); }() +#define DOCTEST_CHECK_FALSE_MESSAGE(cond, ...) [&] { return !(cond); }() +#define DOCTEST_REQUIRE_FALSE_MESSAGE(cond, ...) [&] { return !(cond); }() + +namespace doctest +{ +namespace detail +{ +#define DOCTEST_RELATIONAL_OP(name, op) \ + template \ + bool name(const DOCTEST_REF_WRAP(L) lhs, const DOCTEST_REF_WRAP(R) rhs) { return lhs op rhs; } + +DOCTEST_RELATIONAL_OP(eq, ==) +DOCTEST_RELATIONAL_OP(ne, !=) +DOCTEST_RELATIONAL_OP(lt, <) +DOCTEST_RELATIONAL_OP(gt, >) +DOCTEST_RELATIONAL_OP(le, <=) +DOCTEST_RELATIONAL_OP(ge, >=) +} // namespace detail +} // namespace doctest + +#define DOCTEST_WARN_EQ(...) [&] { return doctest::detail::eq(__VA_ARGS__); }() +#define DOCTEST_CHECK_EQ(...) [&] { return doctest::detail::eq(__VA_ARGS__); }() +#define DOCTEST_REQUIRE_EQ(...) [&] { return doctest::detail::eq(__VA_ARGS__); }() +#define DOCTEST_WARN_NE(...) [&] { return doctest::detail::ne(__VA_ARGS__); }() +#define DOCTEST_CHECK_NE(...) [&] { return doctest::detail::ne(__VA_ARGS__); }() +#define DOCTEST_REQUIRE_NE(...) [&] { return doctest::detail::ne(__VA_ARGS__); }() +#define DOCTEST_WARN_LT(...) [&] { return doctest::detail::lt(__VA_ARGS__); }() +#define DOCTEST_CHECK_LT(...) [&] { return doctest::detail::lt(__VA_ARGS__); }() +#define DOCTEST_REQUIRE_LT(...) [&] { return doctest::detail::lt(__VA_ARGS__); }() +#define DOCTEST_WARN_GT(...) [&] { return doctest::detail::gt(__VA_ARGS__); }() +#define DOCTEST_CHECK_GT(...) [&] { return doctest::detail::gt(__VA_ARGS__); }() +#define DOCTEST_REQUIRE_GT(...) [&] { return doctest::detail::gt(__VA_ARGS__); }() +#define DOCTEST_WARN_LE(...) [&] { return doctest::detail::le(__VA_ARGS__); }() +#define DOCTEST_CHECK_LE(...) [&] { return doctest::detail::le(__VA_ARGS__); }() +#define DOCTEST_REQUIRE_LE(...) [&] { return doctest::detail::le(__VA_ARGS__); }() +#define DOCTEST_WARN_GE(...) [&] { return doctest::detail::ge(__VA_ARGS__); }() +#define DOCTEST_CHECK_GE(...) [&] { return doctest::detail::ge(__VA_ARGS__); }() +#define DOCTEST_REQUIRE_GE(...) [&] { return doctest::detail::ge(__VA_ARGS__); }() +#define DOCTEST_WARN_UNARY(...) [&] { return __VA_ARGS__; }() +#define DOCTEST_CHECK_UNARY(...) [&] { return __VA_ARGS__; }() +#define DOCTEST_REQUIRE_UNARY(...) [&] { return __VA_ARGS__; }() +#define DOCTEST_WARN_UNARY_FALSE(...) [&] { return !(__VA_ARGS__); }() +#define DOCTEST_CHECK_UNARY_FALSE(...) [&] { return !(__VA_ARGS__); }() +#define DOCTEST_REQUIRE_UNARY_FALSE(...) [&] { return !(__VA_ARGS__); }() + +#ifndef DOCTEST_CONFIG_NO_EXCEPTIONS + +#define DOCTEST_WARN_THROWS_WITH(expr, with, ...) [] { static_assert(false, "Exception translation is not available when doctest is disabled."); return false; }() +#define DOCTEST_CHECK_THROWS_WITH(expr, with, ...) DOCTEST_WARN_THROWS_WITH(,,) +#define DOCTEST_REQUIRE_THROWS_WITH(expr, with, ...) DOCTEST_WARN_THROWS_WITH(,,) +#define DOCTEST_WARN_THROWS_WITH_AS(expr, with, ex, ...) DOCTEST_WARN_THROWS_WITH(,,) +#define DOCTEST_CHECK_THROWS_WITH_AS(expr, with, ex, ...) DOCTEST_WARN_THROWS_WITH(,,) +#define DOCTEST_REQUIRE_THROWS_WITH_AS(expr, with, ex, ...) DOCTEST_WARN_THROWS_WITH(,,) + +#define DOCTEST_WARN_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_WARN_THROWS_WITH(,,) +#define DOCTEST_CHECK_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_WARN_THROWS_WITH(,,) +#define DOCTEST_REQUIRE_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_WARN_THROWS_WITH(,,) +#define DOCTEST_WARN_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_WARN_THROWS_WITH(,,) +#define DOCTEST_CHECK_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_WARN_THROWS_WITH(,,) +#define DOCTEST_REQUIRE_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_WARN_THROWS_WITH(,,) + +#define DOCTEST_WARN_THROWS(...) [&] { try { __VA_ARGS__; return false; } catch (...) { return true; } }() +#define DOCTEST_CHECK_THROWS(...) [&] { try { __VA_ARGS__; return false; } catch (...) { return true; } }() +#define DOCTEST_REQUIRE_THROWS(...) [&] { try { __VA_ARGS__; return false; } catch (...) { return true; } }() +#define DOCTEST_WARN_THROWS_AS(expr, ...) [&] { try { expr; } catch (__VA_ARGS__) { return true; } catch (...) { } return false; }() +#define DOCTEST_CHECK_THROWS_AS(expr, ...) [&] { try { expr; } catch (__VA_ARGS__) { return true; } catch (...) { } return false; }() +#define DOCTEST_REQUIRE_THROWS_AS(expr, ...) [&] { try { expr; } catch (__VA_ARGS__) { return true; } catch (...) { } return false; }() +#define DOCTEST_WARN_NOTHROW(...) [&] { try { __VA_ARGS__; return true; } catch (...) { return false; } }() +#define DOCTEST_CHECK_NOTHROW(...) [&] { try { __VA_ARGS__; return true; } catch (...) { return false; } }() +#define DOCTEST_REQUIRE_NOTHROW(...) [&] { try { __VA_ARGS__; return true; } catch (...) { return false; } }() + +#define DOCTEST_WARN_THROWS_MESSAGE(expr, ...) [&] { try { __VA_ARGS__; return false; } catch (...) { return true; } }() +#define DOCTEST_CHECK_THROWS_MESSAGE(expr, ...) [&] { try { __VA_ARGS__; return false; } catch (...) { return true; } }() +#define DOCTEST_REQUIRE_THROWS_MESSAGE(expr, ...) [&] { try { __VA_ARGS__; return false; } catch (...) { return true; } }() +#define DOCTEST_WARN_THROWS_AS_MESSAGE(expr, ex, ...) [&] { try { expr; } catch (__VA_ARGS__) { return true; } catch (...) { } return false; }() +#define DOCTEST_CHECK_THROWS_AS_MESSAGE(expr, ex, ...) [&] { try { expr; } catch (__VA_ARGS__) { return true; } catch (...) { } return false; }() +#define DOCTEST_REQUIRE_THROWS_AS_MESSAGE(expr, ex, ...) [&] { try { expr; } catch (__VA_ARGS__) { return true; } catch (...) { } return false; }() +#define DOCTEST_WARN_NOTHROW_MESSAGE(expr, ...) [&] { try { __VA_ARGS__; return true; } catch (...) { return false; } }() +#define DOCTEST_CHECK_NOTHROW_MESSAGE(expr, ...) [&] { try { __VA_ARGS__; return true; } catch (...) { return false; } }() +#define DOCTEST_REQUIRE_NOTHROW_MESSAGE(expr, ...) [&] { try { __VA_ARGS__; return true; } catch (...) { return false; } }() + +#endif // DOCTEST_CONFIG_NO_EXCEPTIONS + +#else // DOCTEST_CONFIG_EVALUATE_ASSERTS_EVEN_WHEN_DISABLED + +#define DOCTEST_WARN(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_WARN_FALSE(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_FALSE(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_FALSE(...) DOCTEST_FUNC_EMPTY + +#define DOCTEST_WARN_MESSAGE(cond, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_MESSAGE(cond, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_MESSAGE(cond, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_WARN_FALSE_MESSAGE(cond, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_FALSE_MESSAGE(cond, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_FALSE_MESSAGE(cond, ...) DOCTEST_FUNC_EMPTY + +#define DOCTEST_WARN_EQ(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_EQ(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_EQ(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_WARN_NE(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_NE(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_NE(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_WARN_GT(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_GT(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_GT(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_WARN_LT(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_LT(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_LT(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_WARN_GE(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_GE(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_GE(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_WARN_LE(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_LE(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_LE(...) DOCTEST_FUNC_EMPTY + +#define DOCTEST_WARN_UNARY(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_UNARY(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_UNARY(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_WARN_UNARY_FALSE(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_UNARY_FALSE(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_UNARY_FALSE(...) DOCTEST_FUNC_EMPTY + +#ifndef DOCTEST_CONFIG_NO_EXCEPTIONS + +#define DOCTEST_WARN_THROWS(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_THROWS(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_THROWS(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_WARN_THROWS_AS(expr, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_THROWS_AS(expr, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_THROWS_AS(expr, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_WARN_THROWS_WITH(expr, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_THROWS_WITH(expr, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_THROWS_WITH(expr, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_WARN_THROWS_WITH_AS(expr, with, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_THROWS_WITH_AS(expr, with, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_THROWS_WITH_AS(expr, with, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_WARN_NOTHROW(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_NOTHROW(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_NOTHROW(...) DOCTEST_FUNC_EMPTY + +#define DOCTEST_WARN_THROWS_MESSAGE(expr, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_THROWS_MESSAGE(expr, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_THROWS_MESSAGE(expr, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_WARN_THROWS_AS_MESSAGE(expr, ex, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_THROWS_AS_MESSAGE(expr, ex, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_THROWS_AS_MESSAGE(expr, ex, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_WARN_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_WARN_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_WARN_NOTHROW_MESSAGE(expr, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_NOTHROW_MESSAGE(expr, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_NOTHROW_MESSAGE(expr, ...) DOCTEST_FUNC_EMPTY + +#endif // DOCTEST_CONFIG_NO_EXCEPTIONS + +#endif // DOCTEST_CONFIG_EVALUATE_ASSERTS_EVEN_WHEN_DISABLED + +#endif // DOCTEST_CONFIG_DISABLE + +#ifdef DOCTEST_CONFIG_NO_EXCEPTIONS + +#ifdef DOCTEST_CONFIG_NO_EXCEPTIONS_BUT_WITH_ALL_ASSERTS +#define DOCTEST_EXCEPTION_EMPTY_FUNC DOCTEST_FUNC_EMPTY +#else // DOCTEST_CONFIG_NO_EXCEPTIONS_BUT_WITH_ALL_ASSERTS +#define DOCTEST_EXCEPTION_EMPTY_FUNC [] { static_assert(false, "Exceptions are disabled! " \ + "Use DOCTEST_CONFIG_NO_EXCEPTIONS_BUT_WITH_ALL_ASSERTS if you want to compile with exceptions disabled."); return false; }() + +#undef DOCTEST_REQUIRE +#undef DOCTEST_REQUIRE_FALSE +#undef DOCTEST_REQUIRE_MESSAGE +#undef DOCTEST_REQUIRE_FALSE_MESSAGE +#undef DOCTEST_REQUIRE_EQ +#undef DOCTEST_REQUIRE_NE +#undef DOCTEST_REQUIRE_GT +#undef DOCTEST_REQUIRE_LT +#undef DOCTEST_REQUIRE_GE +#undef DOCTEST_REQUIRE_LE +#undef DOCTEST_REQUIRE_UNARY +#undef DOCTEST_REQUIRE_UNARY_FALSE + +#define DOCTEST_REQUIRE DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_FALSE DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_MESSAGE DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_FALSE_MESSAGE DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_EQ DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_NE DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_GT DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_LT DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_GE DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_LE DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_UNARY DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_UNARY_FALSE DOCTEST_EXCEPTION_EMPTY_FUNC + +#endif // DOCTEST_CONFIG_NO_EXCEPTIONS_BUT_WITH_ALL_ASSERTS + +#define DOCTEST_WARN_THROWS(...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_CHECK_THROWS(...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_THROWS(...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_WARN_THROWS_AS(expr, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_CHECK_THROWS_AS(expr, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_THROWS_AS(expr, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_WARN_THROWS_WITH(expr, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_CHECK_THROWS_WITH(expr, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_THROWS_WITH(expr, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_WARN_THROWS_WITH_AS(expr, with, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_CHECK_THROWS_WITH_AS(expr, with, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_THROWS_WITH_AS(expr, with, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_WARN_NOTHROW(...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_CHECK_NOTHROW(...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_NOTHROW(...) DOCTEST_EXCEPTION_EMPTY_FUNC + +#define DOCTEST_WARN_THROWS_MESSAGE(expr, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_CHECK_THROWS_MESSAGE(expr, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_THROWS_MESSAGE(expr, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_WARN_THROWS_AS_MESSAGE(expr, ex, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_CHECK_THROWS_AS_MESSAGE(expr, ex, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_THROWS_AS_MESSAGE(expr, ex, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_WARN_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_CHECK_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_WARN_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_CHECK_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_WARN_NOTHROW_MESSAGE(expr, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_CHECK_NOTHROW_MESSAGE(expr, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_NOTHROW_MESSAGE(expr, ...) DOCTEST_EXCEPTION_EMPTY_FUNC + +#endif // DOCTEST_CONFIG_NO_EXCEPTIONS + +// clang-format off +// KEPT FOR BACKWARDS COMPATIBILITY - FORWARDING TO THE RIGHT MACROS +#define DOCTEST_FAST_WARN_EQ DOCTEST_WARN_EQ +#define DOCTEST_FAST_CHECK_EQ DOCTEST_CHECK_EQ +#define DOCTEST_FAST_REQUIRE_EQ DOCTEST_REQUIRE_EQ +#define DOCTEST_FAST_WARN_NE DOCTEST_WARN_NE +#define DOCTEST_FAST_CHECK_NE DOCTEST_CHECK_NE +#define DOCTEST_FAST_REQUIRE_NE DOCTEST_REQUIRE_NE +#define DOCTEST_FAST_WARN_GT DOCTEST_WARN_GT +#define DOCTEST_FAST_CHECK_GT DOCTEST_CHECK_GT +#define DOCTEST_FAST_REQUIRE_GT DOCTEST_REQUIRE_GT +#define DOCTEST_FAST_WARN_LT DOCTEST_WARN_LT +#define DOCTEST_FAST_CHECK_LT DOCTEST_CHECK_LT +#define DOCTEST_FAST_REQUIRE_LT DOCTEST_REQUIRE_LT +#define DOCTEST_FAST_WARN_GE DOCTEST_WARN_GE +#define DOCTEST_FAST_CHECK_GE DOCTEST_CHECK_GE +#define DOCTEST_FAST_REQUIRE_GE DOCTEST_REQUIRE_GE +#define DOCTEST_FAST_WARN_LE DOCTEST_WARN_LE +#define DOCTEST_FAST_CHECK_LE DOCTEST_CHECK_LE +#define DOCTEST_FAST_REQUIRE_LE DOCTEST_REQUIRE_LE + +#define DOCTEST_FAST_WARN_UNARY DOCTEST_WARN_UNARY +#define DOCTEST_FAST_CHECK_UNARY DOCTEST_CHECK_UNARY +#define DOCTEST_FAST_REQUIRE_UNARY DOCTEST_REQUIRE_UNARY +#define DOCTEST_FAST_WARN_UNARY_FALSE DOCTEST_WARN_UNARY_FALSE +#define DOCTEST_FAST_CHECK_UNARY_FALSE DOCTEST_CHECK_UNARY_FALSE +#define DOCTEST_FAST_REQUIRE_UNARY_FALSE DOCTEST_REQUIRE_UNARY_FALSE + +#define DOCTEST_TEST_CASE_TEMPLATE_INSTANTIATE(id, ...) DOCTEST_TEST_CASE_TEMPLATE_INVOKE(id,__VA_ARGS__) +// clang-format on + +// BDD style macros +// clang-format off +#define DOCTEST_SCENARIO(name) DOCTEST_TEST_CASE(" Scenario: " name) +#define DOCTEST_SCENARIO_CLASS(name) DOCTEST_TEST_CASE_CLASS(" Scenario: " name) +#define DOCTEST_SCENARIO_TEMPLATE(name, T, ...) DOCTEST_TEST_CASE_TEMPLATE(" Scenario: " name, T, __VA_ARGS__) +#define DOCTEST_SCENARIO_TEMPLATE_DEFINE(name, T, id) DOCTEST_TEST_CASE_TEMPLATE_DEFINE(" Scenario: " name, T, id) + +#define DOCTEST_GIVEN(name) DOCTEST_SUBCASE(" Given: " name) +#define DOCTEST_WHEN(name) DOCTEST_SUBCASE(" When: " name) +#define DOCTEST_AND_WHEN(name) DOCTEST_SUBCASE("And when: " name) +#define DOCTEST_THEN(name) DOCTEST_SUBCASE(" Then: " name) +#define DOCTEST_AND_THEN(name) DOCTEST_SUBCASE(" And: " name) +// clang-format on + +// == SHORT VERSIONS OF THE MACROS +#ifndef DOCTEST_CONFIG_NO_SHORT_MACRO_NAMES + +#define TEST_CASE(name) DOCTEST_TEST_CASE(name) +#define TEST_CASE_CLASS(name) DOCTEST_TEST_CASE_CLASS(name) +#define TEST_CASE_FIXTURE(x, name) DOCTEST_TEST_CASE_FIXTURE(x, name) +#define TYPE_TO_STRING_AS(str, ...) DOCTEST_TYPE_TO_STRING_AS(str, __VA_ARGS__) +#define TYPE_TO_STRING(...) DOCTEST_TYPE_TO_STRING(__VA_ARGS__) +#define TEST_CASE_TEMPLATE(name, T, ...) DOCTEST_TEST_CASE_TEMPLATE(name, T, __VA_ARGS__) +#define TEST_CASE_TEMPLATE_DEFINE(name, T, id) DOCTEST_TEST_CASE_TEMPLATE_DEFINE(name, T, id) +#define TEST_CASE_TEMPLATE_INVOKE(id, ...) DOCTEST_TEST_CASE_TEMPLATE_INVOKE(id, __VA_ARGS__) +#define TEST_CASE_TEMPLATE_APPLY(id, ...) DOCTEST_TEST_CASE_TEMPLATE_APPLY(id, __VA_ARGS__) +#define SUBCASE(name) DOCTEST_SUBCASE(name) +#define TEST_SUITE(decorators) DOCTEST_TEST_SUITE(decorators) +#define TEST_SUITE_BEGIN(name) DOCTEST_TEST_SUITE_BEGIN(name) +#define TEST_SUITE_END DOCTEST_TEST_SUITE_END +#define REGISTER_EXCEPTION_TRANSLATOR(signature) DOCTEST_REGISTER_EXCEPTION_TRANSLATOR(signature) +#define REGISTER_REPORTER(name, priority, reporter) DOCTEST_REGISTER_REPORTER(name, priority, reporter) +#define REGISTER_LISTENER(name, priority, reporter) DOCTEST_REGISTER_LISTENER(name, priority, reporter) +#define INFO(...) DOCTEST_INFO(__VA_ARGS__) +#define CAPTURE(x) DOCTEST_CAPTURE(x) +#define ADD_MESSAGE_AT(file, line, ...) DOCTEST_ADD_MESSAGE_AT(file, line, __VA_ARGS__) +#define ADD_FAIL_CHECK_AT(file, line, ...) DOCTEST_ADD_FAIL_CHECK_AT(file, line, __VA_ARGS__) +#define ADD_FAIL_AT(file, line, ...) DOCTEST_ADD_FAIL_AT(file, line, __VA_ARGS__) +#define MESSAGE(...) DOCTEST_MESSAGE(__VA_ARGS__) +#define FAIL_CHECK(...) DOCTEST_FAIL_CHECK(__VA_ARGS__) +#define FAIL(...) DOCTEST_FAIL(__VA_ARGS__) +#define TO_LVALUE(...) DOCTEST_TO_LVALUE(__VA_ARGS__) + +#define WARN(...) DOCTEST_WARN(__VA_ARGS__) +#define WARN_FALSE(...) DOCTEST_WARN_FALSE(__VA_ARGS__) +#define WARN_THROWS(...) DOCTEST_WARN_THROWS(__VA_ARGS__) +#define WARN_THROWS_AS(expr, ...) DOCTEST_WARN_THROWS_AS(expr, __VA_ARGS__) +#define WARN_THROWS_WITH(expr, ...) DOCTEST_WARN_THROWS_WITH(expr, __VA_ARGS__) +#define WARN_THROWS_WITH_AS(expr, with, ...) DOCTEST_WARN_THROWS_WITH_AS(expr, with, __VA_ARGS__) +#define WARN_NOTHROW(...) DOCTEST_WARN_NOTHROW(__VA_ARGS__) +#define CHECK(...) DOCTEST_CHECK(__VA_ARGS__) +#define CHECK_FALSE(...) DOCTEST_CHECK_FALSE(__VA_ARGS__) +#define CHECK_THROWS(...) DOCTEST_CHECK_THROWS(__VA_ARGS__) +#define CHECK_THROWS_AS(expr, ...) DOCTEST_CHECK_THROWS_AS(expr, __VA_ARGS__) +#define CHECK_THROWS_WITH(expr, ...) DOCTEST_CHECK_THROWS_WITH(expr, __VA_ARGS__) +#define CHECK_THROWS_WITH_AS(expr, with, ...) DOCTEST_CHECK_THROWS_WITH_AS(expr, with, __VA_ARGS__) +#define CHECK_NOTHROW(...) DOCTEST_CHECK_NOTHROW(__VA_ARGS__) +#define REQUIRE(...) DOCTEST_REQUIRE(__VA_ARGS__) +#define REQUIRE_FALSE(...) DOCTEST_REQUIRE_FALSE(__VA_ARGS__) +#define REQUIRE_THROWS(...) DOCTEST_REQUIRE_THROWS(__VA_ARGS__) +#define REQUIRE_THROWS_AS(expr, ...) DOCTEST_REQUIRE_THROWS_AS(expr, __VA_ARGS__) +#define REQUIRE_THROWS_WITH(expr, ...) DOCTEST_REQUIRE_THROWS_WITH(expr, __VA_ARGS__) +#define REQUIRE_THROWS_WITH_AS(expr, with, ...) DOCTEST_REQUIRE_THROWS_WITH_AS(expr, with, __VA_ARGS__) +#define REQUIRE_NOTHROW(...) DOCTEST_REQUIRE_NOTHROW(__VA_ARGS__) + +#define WARN_MESSAGE(cond, ...) DOCTEST_WARN_MESSAGE(cond, __VA_ARGS__) +#define WARN_FALSE_MESSAGE(cond, ...) DOCTEST_WARN_FALSE_MESSAGE(cond, __VA_ARGS__) +#define WARN_THROWS_MESSAGE(expr, ...) DOCTEST_WARN_THROWS_MESSAGE(expr, __VA_ARGS__) +#define WARN_THROWS_AS_MESSAGE(expr, ex, ...) DOCTEST_WARN_THROWS_AS_MESSAGE(expr, ex, __VA_ARGS__) +#define WARN_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_WARN_THROWS_WITH_MESSAGE(expr, with, __VA_ARGS__) +#define WARN_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_WARN_THROWS_WITH_AS_MESSAGE(expr, with, ex, __VA_ARGS__) +#define WARN_NOTHROW_MESSAGE(expr, ...) DOCTEST_WARN_NOTHROW_MESSAGE(expr, __VA_ARGS__) +#define CHECK_MESSAGE(cond, ...) DOCTEST_CHECK_MESSAGE(cond, __VA_ARGS__) +#define CHECK_FALSE_MESSAGE(cond, ...) DOCTEST_CHECK_FALSE_MESSAGE(cond, __VA_ARGS__) +#define CHECK_THROWS_MESSAGE(expr, ...) DOCTEST_CHECK_THROWS_MESSAGE(expr, __VA_ARGS__) +#define CHECK_THROWS_AS_MESSAGE(expr, ex, ...) DOCTEST_CHECK_THROWS_AS_MESSAGE(expr, ex, __VA_ARGS__) +#define CHECK_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_CHECK_THROWS_WITH_MESSAGE(expr, with, __VA_ARGS__) +#define CHECK_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_CHECK_THROWS_WITH_AS_MESSAGE(expr, with, ex, __VA_ARGS__) +#define CHECK_NOTHROW_MESSAGE(expr, ...) DOCTEST_CHECK_NOTHROW_MESSAGE(expr, __VA_ARGS__) +#define REQUIRE_MESSAGE(cond, ...) DOCTEST_REQUIRE_MESSAGE(cond, __VA_ARGS__) +#define REQUIRE_FALSE_MESSAGE(cond, ...) DOCTEST_REQUIRE_FALSE_MESSAGE(cond, __VA_ARGS__) +#define REQUIRE_THROWS_MESSAGE(expr, ...) DOCTEST_REQUIRE_THROWS_MESSAGE(expr, __VA_ARGS__) +#define REQUIRE_THROWS_AS_MESSAGE(expr, ex, ...) DOCTEST_REQUIRE_THROWS_AS_MESSAGE(expr, ex, __VA_ARGS__) +#define REQUIRE_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_REQUIRE_THROWS_WITH_MESSAGE(expr, with, __VA_ARGS__) +#define REQUIRE_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_REQUIRE_THROWS_WITH_AS_MESSAGE(expr, with, ex, __VA_ARGS__) +#define REQUIRE_NOTHROW_MESSAGE(expr, ...) DOCTEST_REQUIRE_NOTHROW_MESSAGE(expr, __VA_ARGS__) + +#define SCENARIO(name) DOCTEST_SCENARIO(name) +#define SCENARIO_CLASS(name) DOCTEST_SCENARIO_CLASS(name) +#define SCENARIO_TEMPLATE(name, T, ...) DOCTEST_SCENARIO_TEMPLATE(name, T, __VA_ARGS__) +#define SCENARIO_TEMPLATE_DEFINE(name, T, id) DOCTEST_SCENARIO_TEMPLATE_DEFINE(name, T, id) +#define GIVEN(name) DOCTEST_GIVEN(name) +#define WHEN(name) DOCTEST_WHEN(name) +#define AND_WHEN(name) DOCTEST_AND_WHEN(name) +#define THEN(name) DOCTEST_THEN(name) +#define AND_THEN(name) DOCTEST_AND_THEN(name) + +#define WARN_EQ(...) DOCTEST_WARN_EQ(__VA_ARGS__) +#define CHECK_EQ(...) DOCTEST_CHECK_EQ(__VA_ARGS__) +#define REQUIRE_EQ(...) DOCTEST_REQUIRE_EQ(__VA_ARGS__) +#define WARN_NE(...) DOCTEST_WARN_NE(__VA_ARGS__) +#define CHECK_NE(...) DOCTEST_CHECK_NE(__VA_ARGS__) +#define REQUIRE_NE(...) DOCTEST_REQUIRE_NE(__VA_ARGS__) +#define WARN_GT(...) DOCTEST_WARN_GT(__VA_ARGS__) +#define CHECK_GT(...) DOCTEST_CHECK_GT(__VA_ARGS__) +#define REQUIRE_GT(...) DOCTEST_REQUIRE_GT(__VA_ARGS__) +#define WARN_LT(...) DOCTEST_WARN_LT(__VA_ARGS__) +#define CHECK_LT(...) DOCTEST_CHECK_LT(__VA_ARGS__) +#define REQUIRE_LT(...) DOCTEST_REQUIRE_LT(__VA_ARGS__) +#define WARN_GE(...) DOCTEST_WARN_GE(__VA_ARGS__) +#define CHECK_GE(...) DOCTEST_CHECK_GE(__VA_ARGS__) +#define REQUIRE_GE(...) DOCTEST_REQUIRE_GE(__VA_ARGS__) +#define WARN_LE(...) DOCTEST_WARN_LE(__VA_ARGS__) +#define CHECK_LE(...) DOCTEST_CHECK_LE(__VA_ARGS__) +#define REQUIRE_LE(...) DOCTEST_REQUIRE_LE(__VA_ARGS__) +#define WARN_UNARY(...) DOCTEST_WARN_UNARY(__VA_ARGS__) +#define CHECK_UNARY(...) DOCTEST_CHECK_UNARY(__VA_ARGS__) +#define REQUIRE_UNARY(...) DOCTEST_REQUIRE_UNARY(__VA_ARGS__) +#define WARN_UNARY_FALSE(...) DOCTEST_WARN_UNARY_FALSE(__VA_ARGS__) +#define CHECK_UNARY_FALSE(...) DOCTEST_CHECK_UNARY_FALSE(__VA_ARGS__) +#define REQUIRE_UNARY_FALSE(...) DOCTEST_REQUIRE_UNARY_FALSE(__VA_ARGS__) + +// KEPT FOR BACKWARDS COMPATIBILITY +#define FAST_WARN_EQ(...) DOCTEST_FAST_WARN_EQ(__VA_ARGS__) +#define FAST_CHECK_EQ(...) DOCTEST_FAST_CHECK_EQ(__VA_ARGS__) +#define FAST_REQUIRE_EQ(...) DOCTEST_FAST_REQUIRE_EQ(__VA_ARGS__) +#define FAST_WARN_NE(...) DOCTEST_FAST_WARN_NE(__VA_ARGS__) +#define FAST_CHECK_NE(...) DOCTEST_FAST_CHECK_NE(__VA_ARGS__) +#define FAST_REQUIRE_NE(...) DOCTEST_FAST_REQUIRE_NE(__VA_ARGS__) +#define FAST_WARN_GT(...) DOCTEST_FAST_WARN_GT(__VA_ARGS__) +#define FAST_CHECK_GT(...) DOCTEST_FAST_CHECK_GT(__VA_ARGS__) +#define FAST_REQUIRE_GT(...) DOCTEST_FAST_REQUIRE_GT(__VA_ARGS__) +#define FAST_WARN_LT(...) DOCTEST_FAST_WARN_LT(__VA_ARGS__) +#define FAST_CHECK_LT(...) DOCTEST_FAST_CHECK_LT(__VA_ARGS__) +#define FAST_REQUIRE_LT(...) DOCTEST_FAST_REQUIRE_LT(__VA_ARGS__) +#define FAST_WARN_GE(...) DOCTEST_FAST_WARN_GE(__VA_ARGS__) +#define FAST_CHECK_GE(...) DOCTEST_FAST_CHECK_GE(__VA_ARGS__) +#define FAST_REQUIRE_GE(...) DOCTEST_FAST_REQUIRE_GE(__VA_ARGS__) +#define FAST_WARN_LE(...) DOCTEST_FAST_WARN_LE(__VA_ARGS__) +#define FAST_CHECK_LE(...) DOCTEST_FAST_CHECK_LE(__VA_ARGS__) +#define FAST_REQUIRE_LE(...) DOCTEST_FAST_REQUIRE_LE(__VA_ARGS__) + +#define FAST_WARN_UNARY(...) DOCTEST_FAST_WARN_UNARY(__VA_ARGS__) +#define FAST_CHECK_UNARY(...) DOCTEST_FAST_CHECK_UNARY(__VA_ARGS__) +#define FAST_REQUIRE_UNARY(...) DOCTEST_FAST_REQUIRE_UNARY(__VA_ARGS__) +#define FAST_WARN_UNARY_FALSE(...) DOCTEST_FAST_WARN_UNARY_FALSE(__VA_ARGS__) +#define FAST_CHECK_UNARY_FALSE(...) DOCTEST_FAST_CHECK_UNARY_FALSE(__VA_ARGS__) +#define FAST_REQUIRE_UNARY_FALSE(...) DOCTEST_FAST_REQUIRE_UNARY_FALSE(__VA_ARGS__) + +#define TEST_CASE_TEMPLATE_INSTANTIATE(id, ...) DOCTEST_TEST_CASE_TEMPLATE_INSTANTIATE(id, __VA_ARGS__) + +#endif // DOCTEST_CONFIG_NO_SHORT_MACRO_NAMES + +#ifndef DOCTEST_CONFIG_DISABLE + +// this is here to clear the 'current test suite' for the current translation unit - at the top +DOCTEST_TEST_SUITE_END(); + +#endif // DOCTEST_CONFIG_DISABLE + +DOCTEST_CLANG_SUPPRESS_WARNING_POP +DOCTEST_MSVC_SUPPRESS_WARNING_POP +DOCTEST_GCC_SUPPRESS_WARNING_POP + +DOCTEST_SUPPRESS_COMMON_WARNINGS_POP + +#endif // DOCTEST_LIBRARY_INCLUDED + +#ifndef DOCTEST_SINGLE_HEADER +#define DOCTEST_SINGLE_HEADER +#endif // DOCTEST_SINGLE_HEADER + +#if defined(DOCTEST_CONFIG_IMPLEMENT) || !defined(DOCTEST_SINGLE_HEADER) + +#ifndef DOCTEST_SINGLE_HEADER +#include "doctest_fwd.h" +#endif // DOCTEST_SINGLE_HEADER + +DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH("-Wunused-macros") + +#ifndef DOCTEST_LIBRARY_IMPLEMENTATION +#define DOCTEST_LIBRARY_IMPLEMENTATION + +DOCTEST_CLANG_SUPPRESS_WARNING_POP + +DOCTEST_SUPPRESS_COMMON_WARNINGS_PUSH + +DOCTEST_CLANG_SUPPRESS_WARNING_PUSH +DOCTEST_CLANG_SUPPRESS_WARNING("-Wglobal-constructors") +DOCTEST_CLANG_SUPPRESS_WARNING("-Wexit-time-destructors") +DOCTEST_CLANG_SUPPRESS_WARNING("-Wsign-conversion") +DOCTEST_CLANG_SUPPRESS_WARNING("-Wshorten-64-to-32") +DOCTEST_CLANG_SUPPRESS_WARNING("-Wmissing-variable-declarations") +DOCTEST_CLANG_SUPPRESS_WARNING("-Wswitch") +DOCTEST_CLANG_SUPPRESS_WARNING("-Wswitch-enum") +DOCTEST_CLANG_SUPPRESS_WARNING("-Wcovered-switch-default") +DOCTEST_CLANG_SUPPRESS_WARNING("-Wmissing-noreturn") +DOCTEST_CLANG_SUPPRESS_WARNING("-Wdisabled-macro-expansion") +DOCTEST_CLANG_SUPPRESS_WARNING("-Wmissing-braces") +DOCTEST_CLANG_SUPPRESS_WARNING("-Wmissing-field-initializers") +DOCTEST_CLANG_SUPPRESS_WARNING("-Wunused-member-function") +DOCTEST_CLANG_SUPPRESS_WARNING("-Wnonportable-system-include-path") + +DOCTEST_GCC_SUPPRESS_WARNING_PUSH +DOCTEST_GCC_SUPPRESS_WARNING("-Wconversion") +DOCTEST_GCC_SUPPRESS_WARNING("-Wsign-conversion") +DOCTEST_GCC_SUPPRESS_WARNING("-Wmissing-field-initializers") +DOCTEST_GCC_SUPPRESS_WARNING("-Wmissing-braces") +DOCTEST_GCC_SUPPRESS_WARNING("-Wswitch") +DOCTEST_GCC_SUPPRESS_WARNING("-Wswitch-enum") +DOCTEST_GCC_SUPPRESS_WARNING("-Wswitch-default") +DOCTEST_GCC_SUPPRESS_WARNING("-Wunsafe-loop-optimizations") +DOCTEST_GCC_SUPPRESS_WARNING("-Wold-style-cast") +DOCTEST_GCC_SUPPRESS_WARNING("-Wunused-function") +DOCTEST_GCC_SUPPRESS_WARNING("-Wmultiple-inheritance") +DOCTEST_GCC_SUPPRESS_WARNING("-Wsuggest-attribute") + +DOCTEST_MSVC_SUPPRESS_WARNING_PUSH +DOCTEST_MSVC_SUPPRESS_WARNING(4267) // 'var' : conversion from 'x' to 'y', possible loss of data +DOCTEST_MSVC_SUPPRESS_WARNING(4530) // C++ exception handler used, but unwind semantics not enabled +DOCTEST_MSVC_SUPPRESS_WARNING(4577) // 'noexcept' used with no exception handling mode specified +DOCTEST_MSVC_SUPPRESS_WARNING(4774) // format string expected in argument is not a string literal +DOCTEST_MSVC_SUPPRESS_WARNING(4365) // conversion from 'int' to 'unsigned', signed/unsigned mismatch +DOCTEST_MSVC_SUPPRESS_WARNING(5039) // pointer to potentially throwing function passed to extern C +DOCTEST_MSVC_SUPPRESS_WARNING(4800) // forcing value to bool 'true' or 'false' (performance warning) +DOCTEST_MSVC_SUPPRESS_WARNING(5245) // unreferenced function with internal linkage has been removed + +DOCTEST_MAKE_STD_HEADERS_CLEAN_FROM_WARNINGS_ON_WALL_BEGIN + +// required includes - will go only in one translation unit! +#include +#include +#include +// borland (Embarcadero) compiler requires math.h and not cmath - https://github.com/doctest/doctest/pull/37 +#ifdef __BORLANDC__ +#include +#endif // __BORLANDC__ +#include +#include +#include +#include +#include +#include +#include +#include +#ifndef DOCTEST_CONFIG_NO_INCLUDE_IOSTREAM +#include +#endif // DOCTEST_CONFIG_NO_INCLUDE_IOSTREAM +#include +#include +#include +#ifndef DOCTEST_CONFIG_NO_MULTITHREADING +#include +#include +#define DOCTEST_DECLARE_MUTEX(name) std::mutex name; +#define DOCTEST_DECLARE_STATIC_MUTEX(name) static DOCTEST_DECLARE_MUTEX(name) +#define DOCTEST_LOCK_MUTEX(name) std::lock_guard DOCTEST_ANONYMOUS(DOCTEST_ANON_LOCK_)(name); +#else // DOCTEST_CONFIG_NO_MULTITHREADING +#define DOCTEST_DECLARE_MUTEX(name) +#define DOCTEST_DECLARE_STATIC_MUTEX(name) +#define DOCTEST_LOCK_MUTEX(name) +#endif // DOCTEST_CONFIG_NO_MULTITHREADING +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef DOCTEST_PLATFORM_MAC +#include +#include +#include +#endif // DOCTEST_PLATFORM_MAC + +#ifdef DOCTEST_PLATFORM_WINDOWS + +// defines for a leaner windows.h +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#define DOCTEST_UNDEF_WIN32_LEAN_AND_MEAN +#endif // WIN32_LEAN_AND_MEAN +#ifndef NOMINMAX +#define NOMINMAX +#define DOCTEST_UNDEF_NOMINMAX +#endif // NOMINMAX + +// not sure what AfxWin.h is for - here I do what Catch does +#ifdef __AFXDLL +#include +#else +#include +#endif +#include + +#else // DOCTEST_PLATFORM_WINDOWS + +#include +#include + +#endif // DOCTEST_PLATFORM_WINDOWS + +// this is a fix for https://github.com/doctest/doctest/issues/348 +// https://mail.gnome.org/archives/xml/2012-January/msg00000.html +#if !defined(HAVE_UNISTD_H) && !defined(STDOUT_FILENO) +#define STDOUT_FILENO fileno(stdout) +#endif // HAVE_UNISTD_H + +DOCTEST_MAKE_STD_HEADERS_CLEAN_FROM_WARNINGS_ON_WALL_END + +// counts the number of elements in a C array +#define DOCTEST_COUNTOF(x) (sizeof(x) / sizeof(x[0])) + +#ifdef DOCTEST_CONFIG_DISABLE +#define DOCTEST_BRANCH_ON_DISABLED(if_disabled, if_not_disabled) if_disabled +#else // DOCTEST_CONFIG_DISABLE +#define DOCTEST_BRANCH_ON_DISABLED(if_disabled, if_not_disabled) if_not_disabled +#endif // DOCTEST_CONFIG_DISABLE + +#ifndef DOCTEST_CONFIG_OPTIONS_PREFIX +#define DOCTEST_CONFIG_OPTIONS_PREFIX "dt-" +#endif + +#ifndef DOCTEST_THREAD_LOCAL +#if defined(DOCTEST_CONFIG_NO_MULTITHREADING) || DOCTEST_MSVC && (DOCTEST_MSVC < DOCTEST_COMPILER(19, 0, 0)) +#define DOCTEST_THREAD_LOCAL +#else // DOCTEST_MSVC +#define DOCTEST_THREAD_LOCAL thread_local +#endif // DOCTEST_MSVC +#endif // DOCTEST_THREAD_LOCAL + +#ifndef DOCTEST_MULTI_LANE_ATOMICS_THREAD_LANES +#define DOCTEST_MULTI_LANE_ATOMICS_THREAD_LANES 32 +#endif + +#ifndef DOCTEST_MULTI_LANE_ATOMICS_CACHE_LINE_SIZE +#define DOCTEST_MULTI_LANE_ATOMICS_CACHE_LINE_SIZE 64 +#endif + +#ifdef DOCTEST_CONFIG_NO_UNPREFIXED_OPTIONS +#define DOCTEST_OPTIONS_PREFIX_DISPLAY DOCTEST_CONFIG_OPTIONS_PREFIX +#else +#define DOCTEST_OPTIONS_PREFIX_DISPLAY "" +#endif + +#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY == WINAPI_FAMILY_APP) +#define DOCTEST_CONFIG_NO_MULTI_LANE_ATOMICS +#endif + +#ifndef DOCTEST_CDECL +#define DOCTEST_CDECL __cdecl +#endif + +namespace doctest +{ + +bool is_running_in_test = false; + +namespace +{ +using namespace detail; + +template +DOCTEST_NORETURN void throw_exception(Ex const& e) +{ +#ifndef DOCTEST_CONFIG_NO_EXCEPTIONS + throw e; +#else // DOCTEST_CONFIG_NO_EXCEPTIONS +#ifdef DOCTEST_CONFIG_HANDLE_EXCEPTION + DOCTEST_CONFIG_HANDLE_EXCEPTION(e); +#else // DOCTEST_CONFIG_HANDLE_EXCEPTION +#ifndef DOCTEST_CONFIG_NO_INCLUDE_IOSTREAM + std::cerr << "doctest will terminate because it needed to throw an exception.\n" + << "The message was: " << e.what() << '\n'; +#endif // DOCTEST_CONFIG_NO_INCLUDE_IOSTREAM +#endif // DOCTEST_CONFIG_HANDLE_EXCEPTION + std::terminate(); +#endif // DOCTEST_CONFIG_NO_EXCEPTIONS +} + +#ifndef DOCTEST_INTERNAL_ERROR +#define DOCTEST_INTERNAL_ERROR(msg) \ + throw_exception(std::logic_error( \ + __FILE__ ":" DOCTEST_TOSTR(__LINE__) ": Internal doctest error: " msg)) +#endif // DOCTEST_INTERNAL_ERROR + +// case insensitive strcmp +int stricmp(const char* a, const char* b) +{ + for(;; a++, b++) + { + const int d = tolower(*a) - tolower(*b); + if(d != 0 || !*a) + return d; + } +} + +struct Endianness +{ + enum Arch + { + Big, + Little + }; + + static Arch which() + { + int x = 1; + // casting any data pointer to char* is allowed + auto ptr = reinterpret_cast(&x); + if(*ptr) + return Little; + return Big; + } +}; +} // namespace + +namespace detail +{ +DOCTEST_THREAD_LOCAL class +{ + std::vector stack; + std::stringstream ss; + +public: + std::ostream* push() + { + stack.push_back(ss.tellp()); + return &ss; + } + + String pop() + { + if (stack.empty()) + DOCTEST_INTERNAL_ERROR("TLSS was empty when trying to pop!"); + + std::streampos pos = stack.back(); + stack.pop_back(); + unsigned sz = static_cast(ss.tellp() - pos); + ss.rdbuf()->pubseekpos(pos, std::ios::in | std::ios::out); + return String(ss, sz); + } +} g_oss; + +std::ostream* tlssPush() +{ + return g_oss.push(); +} + +String tlssPop() +{ + return g_oss.pop(); +} + +#ifndef DOCTEST_CONFIG_DISABLE + +namespace timer_large_integer +{ + +#if defined(DOCTEST_PLATFORM_WINDOWS) +using type = ULONGLONG; +#else // DOCTEST_PLATFORM_WINDOWS +using type = std::uint64_t; +#endif // DOCTEST_PLATFORM_WINDOWS +} + +using ticks_t = timer_large_integer::type; + +#ifdef DOCTEST_CONFIG_GETCURRENTTICKS +ticks_t getCurrentTicks() +{ + return DOCTEST_CONFIG_GETCURRENTTICKS(); +} +#elif defined(DOCTEST_PLATFORM_WINDOWS) +ticks_t getCurrentTicks() +{ + static LARGE_INTEGER hz = { {0} }, hzo = { {0} }; + if(!hz.QuadPart) + { + QueryPerformanceFrequency(&hz); + QueryPerformanceCounter(&hzo); + } + LARGE_INTEGER t; + QueryPerformanceCounter(&t); + return ((t.QuadPart - hzo.QuadPart) * LONGLONG(1000000)) / hz.QuadPart; +} +#else // DOCTEST_PLATFORM_WINDOWS +ticks_t getCurrentTicks() +{ + timeval t; + gettimeofday(&t, nullptr); + return static_cast(t.tv_sec) * 1000000 + static_cast(t.tv_usec); +} +#endif // DOCTEST_PLATFORM_WINDOWS + +struct Timer +{ + void start() + { + m_ticks = getCurrentTicks(); + } + unsigned int getElapsedMicroseconds() const + { + return static_cast(getCurrentTicks() - m_ticks); + } + //unsigned int getElapsedMilliseconds() const { + // return static_cast(getElapsedMicroseconds() / 1000); + //} + double getElapsedSeconds() const + { + return static_cast(getCurrentTicks() - m_ticks) / 1000000.0; + } + +private: + ticks_t m_ticks = 0; +}; + +#ifdef DOCTEST_CONFIG_NO_MULTITHREADING +template +using Atomic = T; +#else // DOCTEST_CONFIG_NO_MULTITHREADING +template +using Atomic = std::atomic; +#endif // DOCTEST_CONFIG_NO_MULTITHREADING + +#if defined(DOCTEST_CONFIG_NO_MULTI_LANE_ATOMICS) || defined(DOCTEST_CONFIG_NO_MULTITHREADING) +template +using MultiLaneAtomic = Atomic; +#else // DOCTEST_CONFIG_NO_MULTI_LANE_ATOMICS +// Provides a multilane implementation of an atomic variable that supports add, sub, load, +// store. Instead of using a single atomic variable, this splits up into multiple ones, +// each sitting on a separate cache line. The goal is to provide a speedup when most +// operations are modifying. It achieves this with two properties: +// +// * Multiple atomics are used, so chance of congestion from the same atomic is reduced. +// * Each atomic sits on a separate cache line, so false sharing is reduced. +// +// The disadvantage is that there is a small overhead due to the use of TLS, and load/store +// is slower because all atomics have to be accessed. +template +class MultiLaneAtomic +{ + struct CacheLineAlignedAtomic + { + Atomic atomic{}; + char padding[DOCTEST_MULTI_LANE_ATOMICS_CACHE_LINE_SIZE - sizeof(Atomic)]; + }; + CacheLineAlignedAtomic m_atomics[DOCTEST_MULTI_LANE_ATOMICS_THREAD_LANES]; + + static_assert(sizeof(CacheLineAlignedAtomic) == DOCTEST_MULTI_LANE_ATOMICS_CACHE_LINE_SIZE, + "guarantee one atomic takes exactly one cache line"); + +public: + T operator++() DOCTEST_NOEXCEPT { return fetch_add(1) + 1; } + + T operator++(int) DOCTEST_NOEXCEPT { return fetch_add(1); } + + T fetch_add(T arg, std::memory_order order = std::memory_order_seq_cst) DOCTEST_NOEXCEPT + { + return myAtomic().fetch_add(arg, order); + } + + T fetch_sub(T arg, std::memory_order order = std::memory_order_seq_cst) DOCTEST_NOEXCEPT + { + return myAtomic().fetch_sub(arg, order); + } + + operator T() const DOCTEST_NOEXCEPT + { + return load(); + } + + T load(std::memory_order order = std::memory_order_seq_cst) const DOCTEST_NOEXCEPT + { + auto result = T(); + for(auto const& c : m_atomics) + { + result += c.atomic.load(order); + } + return result; + } + + T operator=(T desired) DOCTEST_NOEXCEPT // lgtm [cpp/assignment-does-not-return-this] + { + store(desired); + return desired; + } + + void store(T desired, std::memory_order order = std::memory_order_seq_cst) DOCTEST_NOEXCEPT + { + // first value becomes desired", all others become 0. + for(auto& c : m_atomics) + { + c.atomic.store(desired, order); + desired = {}; + } + } + +private: + // Each thread has a different atomic that it operates on. If more than NumLanes threads + // use this, some will use the same atomic. So performance will degrade a bit, but still + // everything will work. + // + // The logic here is a bit tricky. The call should be as fast as possible, so that there + // is minimal to no overhead in determining the correct atomic for the current thread. + // + // 1. A global static counter laneCounter counts continuously up. + // 2. Each successive thread will use modulo operation of that counter so it gets an atomic + // assigned in a round-robin fashion. + // 3. This tlsLaneIdx is stored in the thread local data, so it is directly available with + // little overhead. + Atomic& myAtomic() DOCTEST_NOEXCEPT + { + static Atomic laneCounter; + DOCTEST_THREAD_LOCAL size_t tlsLaneIdx = + laneCounter++ % DOCTEST_MULTI_LANE_ATOMICS_THREAD_LANES; + + return m_atomics[tlsLaneIdx].atomic; + } +}; +#endif // DOCTEST_CONFIG_NO_MULTI_LANE_ATOMICS + +// this holds both parameters from the command line and runtime data for tests +struct ContextState : ContextOptions, TestRunStats, CurrentTestCaseStats +{ + MultiLaneAtomic numAssertsCurrentTest_atomic; + MultiLaneAtomic numAssertsFailedCurrentTest_atomic; + + std::vector> filters = decltype(filters)(9); // 9 different filters + + std::vector reporters_currently_used; + + assert_handler ah = nullptr; + + Timer timer; + + std::vector stringifiedContexts; // logging from INFO() due to an exception + + // stuff for subcases + bool reachedLeaf; + std::vector subcaseStack; + std::vector nextSubcaseStack; + std::unordered_set fullyTraversedSubcases; + size_t currentSubcaseDepth; + Atomic shouldLogCurrentException; + + void resetRunData() + { + numTestCases = 0; + numTestCasesPassingFilters = 0; + numTestSuitesPassingFilters = 0; + numTestCasesFailed = 0; + numAsserts = 0; + numAssertsFailed = 0; + numAssertsCurrentTest = 0; + numAssertsFailedCurrentTest = 0; + } + + void finalizeTestCaseData() + { + seconds = timer.getElapsedSeconds(); + + // update the non-atomic counters + numAsserts += numAssertsCurrentTest_atomic; + numAssertsFailed += numAssertsFailedCurrentTest_atomic; + numAssertsCurrentTest = numAssertsCurrentTest_atomic; + numAssertsFailedCurrentTest = numAssertsFailedCurrentTest_atomic; + + if(numAssertsFailedCurrentTest) + failure_flags |= TestCaseFailureReason::AssertFailure; + + if(Approx(currentTest->m_timeout).epsilon(DBL_EPSILON) != 0 && + Approx(seconds).epsilon(DBL_EPSILON) > currentTest->m_timeout) + failure_flags |= TestCaseFailureReason::Timeout; + + if(currentTest->m_should_fail) + { + if(failure_flags) + { + failure_flags |= TestCaseFailureReason::ShouldHaveFailedAndDid; + } + else + { + failure_flags |= TestCaseFailureReason::ShouldHaveFailedButDidnt; + } + } + else if(failure_flags && currentTest->m_may_fail) + { + failure_flags |= TestCaseFailureReason::CouldHaveFailedAndDid; + } + else if(currentTest->m_expected_failures > 0) + { + if(numAssertsFailedCurrentTest == currentTest->m_expected_failures) + { + failure_flags |= TestCaseFailureReason::FailedExactlyNumTimes; + } + else + { + failure_flags |= TestCaseFailureReason::DidntFailExactlyNumTimes; + } + } + + bool ok_to_fail = (TestCaseFailureReason::ShouldHaveFailedAndDid & failure_flags) || + (TestCaseFailureReason::CouldHaveFailedAndDid & failure_flags) || + (TestCaseFailureReason::FailedExactlyNumTimes & failure_flags); + + // if any subcase has failed - the whole test case has failed + testCaseSuccess = !(failure_flags && !ok_to_fail); + if(!testCaseSuccess) + numTestCasesFailed++; + } +}; + +ContextState* g_cs = nullptr; + +// used to avoid locks for the debug output +// TODO: figure out if this is indeed necessary/correct - seems like either there still +// could be a race or that there wouldn't be a race even if using the context directly +DOCTEST_THREAD_LOCAL bool g_no_colors; + +#endif // DOCTEST_CONFIG_DISABLE +} // namespace detail + +char* String::allocate(size_type sz) +{ + if (sz <= last) + { + buf[sz] = '\0'; + setLast(last - sz); + return buf; + } + else + { + setOnHeap(); + data.size = sz; + data.capacity = data.size + 1; + data.ptr = new char[data.capacity]; + data.ptr[sz] = '\0'; + return data.ptr; + } +} + +void String::setOnHeap() noexcept +{ + *reinterpret_cast(&buf[last]) = 128; +} +void String::setLast(size_type in) noexcept +{ + buf[last] = char(in); +} +void String::setSize(size_type sz) noexcept +{ + if (isOnStack()) + { + buf[sz] = '\0'; + setLast(last - sz); + } + else + { + data.ptr[sz] = '\0'; + data.size = sz; + } +} + +void String::copy(const String& other) +{ + if(other.isOnStack()) + { + memcpy(buf, other.buf, len); + } + else + { + memcpy(allocate(other.data.size), other.data.ptr, other.data.size); + } +} + +String::String() noexcept +{ + buf[0] = '\0'; + setLast(); +} + +String::~String() +{ + if(!isOnStack()) + delete[] data.ptr; +} // NOLINT(clang-analyzer-cplusplus.NewDeleteLeaks) + +String::String(const char* in) + : String(in, strlen(in)) {} + +String::String(const char* in, size_type in_size) +{ + memcpy(allocate(in_size), in, in_size); +} + +String::String(std::istream& in, size_type in_size) +{ + in.read(allocate(in_size), in_size); +} + +String::String(const String& other) +{ + copy(other); +} + +String& String::operator=(const String& other) +{ + if(this != &other) + { + if(!isOnStack()) + delete[] data.ptr; + + copy(other); + } + + return *this; +} + +String& String::operator+=(const String& other) +{ + const size_type my_old_size = size(); + const size_type other_size = other.size(); + const size_type total_size = my_old_size + other_size; + if(isOnStack()) + { + if(total_size < len) + { + // append to the current stack space + memcpy(buf + my_old_size, other.c_str(), other_size + 1); + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks) + setLast(last - total_size); + } + else + { + // alloc new chunk + char* temp = new char[total_size + 1]; + // copy current data to new location before writing in the union + memcpy(temp, buf, my_old_size); // skip the +1 ('\0') for speed + // update data in union + setOnHeap(); + data.size = total_size; + data.capacity = data.size + 1; + data.ptr = temp; + // transfer the rest of the data + memcpy(data.ptr + my_old_size, other.c_str(), other_size + 1); + } + } + else + { + if(data.capacity > total_size) + { + // append to the current heap block + data.size = total_size; + memcpy(data.ptr + my_old_size, other.c_str(), other_size + 1); + } + else + { + // resize + data.capacity *= 2; + if(data.capacity <= total_size) + data.capacity = total_size + 1; + // alloc new chunk + char* temp = new char[data.capacity]; + // copy current data to new location before releasing it + memcpy(temp, data.ptr, my_old_size); // skip the +1 ('\0') for speed + // release old chunk + delete[] data.ptr; + // update the rest of the union members + data.size = total_size; + data.ptr = temp; + // transfer the rest of the data + memcpy(data.ptr + my_old_size, other.c_str(), other_size + 1); + } + } + + return *this; +} + +String::String(String&& other) noexcept +{ + memcpy(buf, other.buf, len); + other.buf[0] = '\0'; + other.setLast(); +} + +String& String::operator=(String&& other) noexcept +{ + if(this != &other) + { + if(!isOnStack()) + delete[] data.ptr; + memcpy(buf, other.buf, len); + other.buf[0] = '\0'; + other.setLast(); + } + return *this; +} + +char String::operator[](size_type i) const +{ + return const_cast(this)->operator[](i); +} + +char& String::operator[](size_type i) +{ + if(isOnStack()) + return reinterpret_cast(buf)[i]; + return data.ptr[i]; +} + +DOCTEST_GCC_SUPPRESS_WARNING_WITH_PUSH("-Wmaybe-uninitialized") +String::size_type String::size() const +{ + if(isOnStack()) + return last - (size_type(buf[last]) & 31); // using "last" would work only if "len" is 32 + return data.size; +} +DOCTEST_GCC_SUPPRESS_WARNING_POP + +String::size_type String::capacity() const +{ + if(isOnStack()) + return len; + return data.capacity; +} + +String String::substr(size_type pos, size_type cnt) && +{ + cnt = std::min(cnt, size() - 1 - pos); + char* cptr = c_str(); + memmove(cptr, cptr + pos, cnt); + setSize(cnt); + return std::move(*this); +} + +String String::substr(size_type pos, size_type cnt) const & +{ + cnt = std::min(cnt, size() - 1 - pos); + return String{ c_str() + pos, cnt }; +} + +String::size_type String::find(char ch, size_type pos) const +{ + const char* begin = c_str(); + const char* end = begin + size(); + const char* it = begin + pos; + for (; it < end && *it != ch; it++); + if (it < end) + { + return static_cast(it - begin); + } + else + { + return npos; + } +} + +String::size_type String::rfind(char ch, size_type pos) const +{ + const char* begin = c_str(); + const char* it = begin + std::min(pos, size() - 1); + for (; it >= begin && *it != ch; it--); + if (it >= begin) + { + return static_cast(it - begin); + } + else + { + return npos; + } +} + +int String::compare(const char* other, bool no_case) const +{ + if(no_case) + return doctest::stricmp(c_str(), other); + return std::strcmp(c_str(), other); +} + +int String::compare(const String& other, bool no_case) const +{ + return compare(other.c_str(), no_case); +} + +String operator+(const String& lhs, const String& rhs) +{ + return String(lhs) += rhs; +} + +bool operator==(const String& lhs, const String& rhs) +{ + return lhs.compare(rhs) == 0; +} +bool operator!=(const String& lhs, const String& rhs) +{ + return lhs.compare(rhs) != 0; +} +bool operator< (const String& lhs, const String& rhs) +{ + return lhs.compare(rhs) < 0; +} +bool operator> (const String& lhs, const String& rhs) +{ + return lhs.compare(rhs) > 0; +} +bool operator<=(const String& lhs, const String& rhs) +{ + return (lhs != rhs) ? lhs.compare(rhs) < 0 : true; +} +bool operator>=(const String& lhs, const String& rhs) +{ + return (lhs != rhs) ? lhs.compare(rhs) > 0 : true; +} + +std::ostream& operator<<(std::ostream& s, const String& in) +{ + return s << in.c_str(); +} + +Contains::Contains(const String& str) : string(str) { } + +bool Contains::checkWith(const String& other) const +{ + return strstr(other.c_str(), string.c_str()) != nullptr; +} + +String toString(const Contains& in) +{ + return "Contains( " + in.string + " )"; +} + +bool operator==(const String& lhs, const Contains& rhs) +{ + return rhs.checkWith(lhs); +} +bool operator==(const Contains& lhs, const String& rhs) +{ + return lhs.checkWith(rhs); +} +bool operator!=(const String& lhs, const Contains& rhs) +{ + return !rhs.checkWith(lhs); +} +bool operator!=(const Contains& lhs, const String& rhs) +{ + return !lhs.checkWith(rhs); +} + +namespace +{ +void color_to_stream(std::ostream&, Color::Enum) DOCTEST_BRANCH_ON_DISABLED({}, ;) +} // namespace + +namespace Color +{ +std::ostream& operator<<(std::ostream& s, Color::Enum code) +{ + color_to_stream(s, code); + return s; +} +} // namespace Color + +// clang-format off +const char* assertString(assertType::Enum at) +{ + DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4061) // enum 'x' in switch of enum 'y' is not explicitly handled +#define DOCTEST_GENERATE_ASSERT_TYPE_CASE(assert_type) case assertType::DT_ ## assert_type: return #assert_type +#define DOCTEST_GENERATE_ASSERT_TYPE_CASES(assert_type) \ + DOCTEST_GENERATE_ASSERT_TYPE_CASE(WARN_ ## assert_type); \ + DOCTEST_GENERATE_ASSERT_TYPE_CASE(CHECK_ ## assert_type); \ + DOCTEST_GENERATE_ASSERT_TYPE_CASE(REQUIRE_ ## assert_type) + switch(at) + { + DOCTEST_GENERATE_ASSERT_TYPE_CASE(WARN); + DOCTEST_GENERATE_ASSERT_TYPE_CASE(CHECK); + DOCTEST_GENERATE_ASSERT_TYPE_CASE(REQUIRE); + + DOCTEST_GENERATE_ASSERT_TYPE_CASES(FALSE); + + DOCTEST_GENERATE_ASSERT_TYPE_CASES(THROWS); + + DOCTEST_GENERATE_ASSERT_TYPE_CASES(THROWS_AS); + + DOCTEST_GENERATE_ASSERT_TYPE_CASES(THROWS_WITH); + + DOCTEST_GENERATE_ASSERT_TYPE_CASES(THROWS_WITH_AS); + + DOCTEST_GENERATE_ASSERT_TYPE_CASES(NOTHROW); + + DOCTEST_GENERATE_ASSERT_TYPE_CASES(EQ); + DOCTEST_GENERATE_ASSERT_TYPE_CASES(NE); + DOCTEST_GENERATE_ASSERT_TYPE_CASES(GT); + DOCTEST_GENERATE_ASSERT_TYPE_CASES(LT); + DOCTEST_GENERATE_ASSERT_TYPE_CASES(GE); + DOCTEST_GENERATE_ASSERT_TYPE_CASES(LE); + + DOCTEST_GENERATE_ASSERT_TYPE_CASES(UNARY); + DOCTEST_GENERATE_ASSERT_TYPE_CASES(UNARY_FALSE); + + default: + DOCTEST_INTERNAL_ERROR("Tried stringifying invalid assert type!"); + } + DOCTEST_MSVC_SUPPRESS_WARNING_POP +} +// clang-format on + +const char* failureString(assertType::Enum at) +{ + if(at & assertType::is_warn) //!OCLINT bitwise operator in conditional + return "WARNING"; + if(at & assertType::is_check) //!OCLINT bitwise operator in conditional + return "ERROR"; + if(at & assertType::is_require) //!OCLINT bitwise operator in conditional + return "FATAL ERROR"; + return ""; +} + +DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH("-Wnull-dereference") +DOCTEST_GCC_SUPPRESS_WARNING_WITH_PUSH("-Wnull-dereference") +// depending on the current options this will remove the path of filenames +const char* skipPathFromFilename(const char* file) +{ +#ifndef DOCTEST_CONFIG_DISABLE + if(getContextOptions()->no_path_in_filenames) + { + auto back = std::strrchr(file, '\\'); + auto forward = std::strrchr(file, '/'); + if(back || forward) + { + if(back > forward) + forward = back; + return forward + 1; + } + } +#endif // DOCTEST_CONFIG_DISABLE + return file; +} +DOCTEST_CLANG_SUPPRESS_WARNING_POP +DOCTEST_GCC_SUPPRESS_WARNING_POP + +bool SubcaseSignature::operator==(const SubcaseSignature& other) const +{ + return m_line == other.m_line + && std::strcmp(m_file, other.m_file) == 0 + && m_name == other.m_name; +} + +bool SubcaseSignature::operator<(const SubcaseSignature& other) const +{ + if(m_line != other.m_line) + return m_line < other.m_line; + if(std::strcmp(m_file, other.m_file) != 0) + return std::strcmp(m_file, other.m_file) < 0; + return m_name.compare(other.m_name) < 0; +} + +DOCTEST_DEFINE_INTERFACE(IContextScope) + +namespace detail +{ +void filldata::fill(std::ostream* stream, const void* in) +{ + if (in) + { + *stream << in; + } + else + { + *stream << "nullptr"; + } +} + +template +String toStreamLit(T t) +{ + std::ostream* os = tlssPush(); + os->operator<<(t); + return tlssPop(); +} +} + +#ifdef DOCTEST_CONFIG_TREAT_CHAR_STAR_AS_STRING +String toString(const char* in) +{ + return String("\"") + (in ? in : "{null string}") + "\""; +} +#endif // DOCTEST_CONFIG_TREAT_CHAR_STAR_AS_STRING + +#if DOCTEST_MSVC >= DOCTEST_COMPILER(19, 20, 0) +// see this issue on why this is needed: https://github.com/doctest/doctest/issues/183 +String toString(const std::string& in) +{ + return in.c_str(); +} +#endif // VS 2019 + +String toString(String in) +{ + return in; +} + +String toString(std::nullptr_t) +{ + return "nullptr"; +} + +String toString(bool in) +{ + return in ? "true" : "false"; +} + +String toString(float in) +{ + return toStreamLit(in); +} +String toString(double in) +{ + return toStreamLit(in); +} +String toString(double long in) +{ + return toStreamLit(in); +} + +String toString(char in) +{ + return toStreamLit(static_cast(in)); +} +String toString(char signed in) +{ + return toStreamLit(static_cast(in)); +} +String toString(char unsigned in) +{ + return toStreamLit(static_cast(in)); +} +String toString(short in) +{ + return toStreamLit(in); +} +String toString(short unsigned in) +{ + return toStreamLit(in); +} +String toString(signed in) +{ + return toStreamLit(in); +} +String toString(unsigned in) +{ + return toStreamLit(in); +} +String toString(long in) +{ + return toStreamLit(in); +} +String toString(long unsigned in) +{ + return toStreamLit(in); +} +String toString(long long in) +{ + return toStreamLit(in); +} +String toString(long long unsigned in) +{ + return toStreamLit(in); +} + +Approx::Approx(double value) + : m_epsilon(static_cast(std::numeric_limits::epsilon()) * 100) + , m_scale(1.0) + , m_value(value) {} + +Approx Approx::operator()(double value) const +{ + Approx approx(value); + approx.epsilon(m_epsilon); + approx.scale(m_scale); + return approx; +} + +Approx& Approx::epsilon(double newEpsilon) +{ + m_epsilon = newEpsilon; + return *this; +} +Approx& Approx::scale(double newScale) +{ + m_scale = newScale; + return *this; +} + +bool operator==(double lhs, const Approx& rhs) +{ + // Thanks to Richard Harris for his help refining this formula + return std::fabs(lhs - rhs.m_value) < + rhs.m_epsilon * (rhs.m_scale + std::max(std::fabs(lhs), std::fabs(rhs.m_value))); +} +bool operator==(const Approx& lhs, double rhs) +{ + return operator==(rhs, lhs); +} +bool operator!=(double lhs, const Approx& rhs) +{ + return !operator==(lhs, rhs); +} +bool operator!=(const Approx& lhs, double rhs) +{ + return !operator==(rhs, lhs); +} +bool operator<=(double lhs, const Approx& rhs) +{ + return lhs < rhs.m_value || lhs == rhs; +} +bool operator<=(const Approx& lhs, double rhs) +{ + return lhs.m_value < rhs || lhs == rhs; +} +bool operator>=(double lhs, const Approx& rhs) +{ + return lhs > rhs.m_value || lhs == rhs; +} +bool operator>=(const Approx& lhs, double rhs) +{ + return lhs.m_value > rhs || lhs == rhs; +} +bool operator<(double lhs, const Approx& rhs) +{ + return lhs < rhs.m_value && lhs != rhs; +} +bool operator<(const Approx& lhs, double rhs) +{ + return lhs.m_value < rhs && lhs != rhs; +} +bool operator>(double lhs, const Approx& rhs) +{ + return lhs > rhs.m_value && lhs != rhs; +} +bool operator>(const Approx& lhs, double rhs) +{ + return lhs.m_value > rhs && lhs != rhs; +} + +String toString(const Approx& in) +{ + return "Approx( " + doctest::toString(in.m_value) + " )"; +} +const ContextOptions* getContextOptions() +{ + return DOCTEST_BRANCH_ON_DISABLED(nullptr, g_cs); +} + +DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4738) +template +IsNaN::operator bool() const +{ + return std::isnan(value) ^ flipped; +} +DOCTEST_MSVC_SUPPRESS_WARNING_POP +template struct DOCTEST_INTERFACE_DEF IsNaN; +template struct DOCTEST_INTERFACE_DEF IsNaN; +template struct DOCTEST_INTERFACE_DEF IsNaN; +template +String toString(IsNaN in) +{ + return String(in.flipped ? "! " : "") + "IsNaN( " + doctest::toString(in.value) + " )"; +} +String toString(IsNaN in) +{ + return toString(in); +} +String toString(IsNaN in) +{ + return toString(in); +} +String toString(IsNaN in) +{ + return toString(in); +} + +} // namespace doctest + +#ifdef DOCTEST_CONFIG_DISABLE +namespace doctest +{ +Context::Context(int, const char* const*) {} +Context::~Context() = default; +void Context::applyCommandLine(int, const char* const*) {} +void Context::addFilter(const char*, const char*) {} +void Context::clearFilters() {} +void Context::setOption(const char*, bool) {} +void Context::setOption(const char*, int) {} +void Context::setOption(const char*, const char*) {} +bool Context::shouldExit() +{ + return false; +} +void Context::setAsDefaultForAssertsOutOfTestCases() {} +void Context::setAssertHandler(detail::assert_handler) {} +void Context::setCout(std::ostream*) {} +int Context::run() +{ + return 0; +} + +int IReporter::get_num_active_contexts() +{ + return 0; +} +const IContextScope* const* IReporter::get_active_contexts() +{ + return nullptr; +} +int IReporter::get_num_stringified_contexts() +{ + return 0; +} +const String* IReporter::get_stringified_contexts() +{ + return nullptr; +} + +int registerReporter(const char*, int, IReporter*) +{ + return 0; +} + +} // namespace doctest +#else // DOCTEST_CONFIG_DISABLE + +#if !defined(DOCTEST_CONFIG_COLORS_NONE) +#if !defined(DOCTEST_CONFIG_COLORS_WINDOWS) && !defined(DOCTEST_CONFIG_COLORS_ANSI) +#ifdef DOCTEST_PLATFORM_WINDOWS +#define DOCTEST_CONFIG_COLORS_WINDOWS +#else // linux +#define DOCTEST_CONFIG_COLORS_ANSI +#endif // platform +#endif // DOCTEST_CONFIG_COLORS_WINDOWS && DOCTEST_CONFIG_COLORS_ANSI +#endif // DOCTEST_CONFIG_COLORS_NONE + +namespace doctest_detail_test_suite_ns +{ +// holds the current test suite +doctest::detail::TestSuite& getCurrentTestSuite() +{ + static doctest::detail::TestSuite data{}; + return data; +} +} // namespace doctest_detail_test_suite_ns + +namespace doctest +{ +namespace +{ +// the int (priority) is part of the key for automatic sorting - sadly one can register a +// reporter with a duplicate name and a different priority but hopefully that won't happen often :| +using reporterMap = std::map, reporterCreatorFunc>; + +reporterMap& getReporters() +{ + static reporterMap data; + return data; +} +reporterMap& getListeners() +{ + static reporterMap data; + return data; +} +} // namespace +namespace detail +{ +#define DOCTEST_ITERATE_THROUGH_REPORTERS(function, ...) \ + for(auto& curr_rep : g_cs->reporters_currently_used) \ + curr_rep->function(__VA_ARGS__) + +bool checkIfShouldThrow(assertType::Enum at) +{ + if(at & assertType::is_require) //!OCLINT bitwise operator in conditional + return true; + + if((at & assertType::is_check) //!OCLINT bitwise operator in conditional + && getContextOptions()->abort_after > 0 && + (g_cs->numAssertsFailed + g_cs->numAssertsFailedCurrentTest_atomic) >= + getContextOptions()->abort_after) + return true; + + return false; +} + +#ifndef DOCTEST_CONFIG_NO_EXCEPTIONS +DOCTEST_NORETURN void throwException() +{ + g_cs->shouldLogCurrentException = false; + throw TestFailureException(); // NOLINT(hicpp-exception-baseclass) +} +#else // DOCTEST_CONFIG_NO_EXCEPTIONS +void throwException() {} +#endif // DOCTEST_CONFIG_NO_EXCEPTIONS +} // namespace detail + +namespace +{ +using namespace detail; +// matching of a string against a wildcard mask (case sensitivity configurable) taken from +// https://www.codeproject.com/Articles/1088/Wildcard-string-compare-globbing +int wildcmp(const char* str, const char* wild, bool caseSensitive) +{ + const char* cp = str; + const char* mp = wild; + + while((*str) && (*wild != '*')) + { + if((caseSensitive ? (*wild != *str) : (tolower(*wild) != tolower(*str))) && + (*wild != '?')) + { + return 0; + } + wild++; + str++; + } + + while(*str) + { + if(*wild == '*') + { + if(!*++wild) + { + return 1; + } + mp = wild; + cp = str + 1; + } + else if((caseSensitive ? (*wild == *str) : (tolower(*wild) == tolower(*str))) || + (*wild == '?')) + { + wild++; + str++; + } + else + { + wild = mp; //!OCLINT parameter reassignment + str = cp++; //!OCLINT parameter reassignment + } + } + + while(*wild == '*') + { + wild++; + } + return !*wild; +} + +// checks if the name matches any of the filters (and can be configured what to do when empty) +bool matchesAny(const char* name, const std::vector& filters, bool matchEmpty, + bool caseSensitive) +{ + if (filters.empty() && matchEmpty) + return true; + for (auto& curr : filters) + if (wildcmp(name, curr.c_str(), caseSensitive)) + return true; + return false; +} + +DOCTEST_NO_SANITIZE_INTEGER +unsigned long long hash(unsigned long long a, unsigned long long b) +{ + return (a << 5) + b; +} + +// C string hash function (djb2) - taken from http://www.cse.yorku.ca/~oz/hash.html +DOCTEST_NO_SANITIZE_INTEGER +unsigned long long hash(const char* str) +{ + unsigned long long hash = 5381; + char c; + while ((c = *str++)) + hash = ((hash << 5) + hash) + c; // hash * 33 + c + return hash; +} + +unsigned long long hash(const SubcaseSignature& sig) +{ + return hash(hash(hash(sig.m_file), hash(sig.m_name.c_str())), sig.m_line); +} + +unsigned long long hash(const std::vector& sigs, size_t count) +{ + unsigned long long running = 0; + auto end = sigs.begin() + count; + for (auto it = sigs.begin(); it != end; it++) + { + running = hash(running, hash(*it)); + } + return running; +} + +unsigned long long hash(const std::vector& sigs) +{ + unsigned long long running = 0; + for (const SubcaseSignature& sig : sigs) + { + running = hash(running, hash(sig)); + } + return running; +} +} // namespace +namespace detail +{ +bool Subcase::checkFilters() +{ + if (g_cs->subcaseStack.size() < size_t(g_cs->subcase_filter_levels)) + { + if (!matchesAny(m_signature.m_name.c_str(), g_cs->filters[6], true, g_cs->case_sensitive)) + return true; + if (matchesAny(m_signature.m_name.c_str(), g_cs->filters[7], false, g_cs->case_sensitive)) + return true; + } + return false; +} + +Subcase::Subcase(const String& name, const char* file, int line) + : m_signature({name, file, line}) +{ + if (!g_cs->reachedLeaf) + { + if (g_cs->nextSubcaseStack.size() <= g_cs->subcaseStack.size() + || g_cs->nextSubcaseStack[g_cs->subcaseStack.size()] == m_signature) + { + // Going down. + if (checkFilters()) + { + return; + } + + g_cs->subcaseStack.push_back(m_signature); + g_cs->currentSubcaseDepth++; + m_entered = true; + DOCTEST_ITERATE_THROUGH_REPORTERS(subcase_start, m_signature); + } + } + else + { + if (g_cs->subcaseStack[g_cs->currentSubcaseDepth] == m_signature) + { + // This subcase is reentered via control flow. + g_cs->currentSubcaseDepth++; + m_entered = true; + DOCTEST_ITERATE_THROUGH_REPORTERS(subcase_start, m_signature); + } + else if (g_cs->nextSubcaseStack.size() <= g_cs->currentSubcaseDepth + && g_cs->fullyTraversedSubcases.find(hash(hash(g_cs->subcaseStack, g_cs->currentSubcaseDepth), hash(m_signature))) + == g_cs->fullyTraversedSubcases.end()) + { + if (checkFilters()) + { + return; + } + // This subcase is part of the one to be executed next. + g_cs->nextSubcaseStack.clear(); + g_cs->nextSubcaseStack.insert(g_cs->nextSubcaseStack.end(), + g_cs->subcaseStack.begin(), g_cs->subcaseStack.begin() + g_cs->currentSubcaseDepth); + g_cs->nextSubcaseStack.push_back(m_signature); + } + } +} + +DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4996) // std::uncaught_exception is deprecated in C++17 +DOCTEST_GCC_SUPPRESS_WARNING_WITH_PUSH("-Wdeprecated-declarations") +DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH("-Wdeprecated-declarations") + +Subcase::~Subcase() +{ + if (m_entered) + { + g_cs->currentSubcaseDepth--; + + if (!g_cs->reachedLeaf) + { + // Leaf. + g_cs->fullyTraversedSubcases.insert(hash(g_cs->subcaseStack)); + g_cs->nextSubcaseStack.clear(); + g_cs->reachedLeaf = true; + } + else if (g_cs->nextSubcaseStack.empty()) + { + // All children are finished. + g_cs->fullyTraversedSubcases.insert(hash(g_cs->subcaseStack)); + } + +#if defined(__cpp_lib_uncaught_exceptions) && __cpp_lib_uncaught_exceptions >= 201411L && (!defined(__MAC_OS_X_VERSION_MIN_REQUIRED) || __MAC_OS_X_VERSION_MIN_REQUIRED >= 101200) + if(std::uncaught_exceptions() > 0 +#else + if(std::uncaught_exception() +#endif + && g_cs->shouldLogCurrentException) + { + DOCTEST_ITERATE_THROUGH_REPORTERS( + test_case_exception, {"exception thrown in subcase - will translate later " + "when the whole test case has been exited (cannot " + "translate while there is an active exception)", + false + }); + g_cs->shouldLogCurrentException = false; + } + + DOCTEST_ITERATE_THROUGH_REPORTERS(subcase_end, DOCTEST_EMPTY); + } +} + +DOCTEST_CLANG_SUPPRESS_WARNING_POP +DOCTEST_GCC_SUPPRESS_WARNING_POP +DOCTEST_MSVC_SUPPRESS_WARNING_POP + +Subcase::operator bool() const +{ + return m_entered; +} + +Result::Result(bool passed, const String& decomposition) + : m_passed(passed) + , m_decomp(decomposition) {} + +ExpressionDecomposer::ExpressionDecomposer(assertType::Enum at) + : m_at(at) {} + +TestSuite& TestSuite::operator*(const char* in) +{ + m_test_suite = in; + return *this; +} + +TestCase::TestCase(funcType test, const char* file, unsigned line, const TestSuite& test_suite, + const String& type, int template_id) +{ + m_file = file; + m_line = line; + m_name = nullptr; // will be later overridden in operator* + m_test_suite = test_suite.m_test_suite; + m_description = test_suite.m_description; + m_skip = test_suite.m_skip; + m_no_breaks = test_suite.m_no_breaks; + m_no_output = test_suite.m_no_output; + m_may_fail = test_suite.m_may_fail; + m_should_fail = test_suite.m_should_fail; + m_expected_failures = test_suite.m_expected_failures; + m_timeout = test_suite.m_timeout; + + m_test = test; + m_type = type; + m_template_id = template_id; +} + +TestCase::TestCase(const TestCase& other) + : TestCaseData() +{ + *this = other; +} + +DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(26434) // hides a non-virtual function +TestCase& TestCase::operator=(const TestCase& other) +{ + TestCaseData::operator=(other); + m_test = other.m_test; + m_type = other.m_type; + m_template_id = other.m_template_id; + m_full_name = other.m_full_name; + + if(m_template_id != -1) + m_name = m_full_name.c_str(); + return *this; +} +DOCTEST_MSVC_SUPPRESS_WARNING_POP + +TestCase& TestCase::operator*(const char* in) +{ + m_name = in; + // make a new name with an appended type for templated test case + if(m_template_id != -1) + { + m_full_name = String(m_name) + "<" + m_type + ">"; + // redirect the name to point to the newly constructed full name + m_name = m_full_name.c_str(); + } + return *this; +} + +bool TestCase::operator<(const TestCase& other) const +{ + // this will be used only to differentiate between test cases - not relevant for sorting + if(m_line != other.m_line) + return m_line < other.m_line; + const int name_cmp = strcmp(m_name, other.m_name); + if(name_cmp != 0) + return name_cmp < 0; + const int file_cmp = m_file.compare(other.m_file); + if(file_cmp != 0) + return file_cmp < 0; + return m_template_id < other.m_template_id; +} + +// all the registered tests +std::set& getRegisteredTests() +{ + static std::set data; + return data; +} +} // namespace detail +namespace +{ +using namespace detail; +// for sorting tests by file/line +bool fileOrderComparator(const TestCase* lhs, const TestCase* rhs) +{ + // this is needed because MSVC gives different case for drive letters + // for __FILE__ when evaluated in a header and a source file + const int res = lhs->m_file.compare(rhs->m_file, bool(DOCTEST_MSVC)); + if(res != 0) + return res < 0; + if(lhs->m_line != rhs->m_line) + return lhs->m_line < rhs->m_line; + return lhs->m_template_id < rhs->m_template_id; +} + +// for sorting tests by suite/file/line +bool suiteOrderComparator(const TestCase* lhs, const TestCase* rhs) +{ + const int res = std::strcmp(lhs->m_test_suite, rhs->m_test_suite); + if(res != 0) + return res < 0; + return fileOrderComparator(lhs, rhs); +} + +// for sorting tests by name/suite/file/line +bool nameOrderComparator(const TestCase* lhs, const TestCase* rhs) +{ + const int res = std::strcmp(lhs->m_name, rhs->m_name); + if(res != 0) + return res < 0; + return suiteOrderComparator(lhs, rhs); +} + +DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH("-Wdeprecated-declarations") +void color_to_stream(std::ostream& s, Color::Enum code) +{ + static_cast(s); // for DOCTEST_CONFIG_COLORS_NONE or DOCTEST_CONFIG_COLORS_WINDOWS + static_cast(code); // for DOCTEST_CONFIG_COLORS_NONE +#ifdef DOCTEST_CONFIG_COLORS_ANSI + if(g_no_colors || + (isatty(STDOUT_FILENO) == false && getContextOptions()->force_colors == false)) + return; + + auto col = ""; + // clang-format off + switch(code) //!OCLINT missing break in switch statement / unnecessary default statement in covered switch statement + { + case Color::Red: + col = "[0;31m"; + break; + case Color::Green: + col = "[0;32m"; + break; + case Color::Blue: + col = "[0;34m"; + break; + case Color::Cyan: + col = "[0;36m"; + break; + case Color::Yellow: + col = "[0;33m"; + break; + case Color::Grey: + col = "[1;30m"; + break; + case Color::LightGrey: + col = "[0;37m"; + break; + case Color::BrightRed: + col = "[1;31m"; + break; + case Color::BrightGreen: + col = "[1;32m"; + break; + case Color::BrightWhite: + col = "[1;37m"; + break; + case Color::Bright: // invalid + case Color::None: + case Color::White: + default: + col = "[0m"; + } + // clang-format on + s << "\033" << col; +#endif // DOCTEST_CONFIG_COLORS_ANSI + +#ifdef DOCTEST_CONFIG_COLORS_WINDOWS + if(g_no_colors || + (_isatty(_fileno(stdout)) == false && getContextOptions()->force_colors == false)) + return; + + static struct ConsoleHelper + { + HANDLE stdoutHandle; + WORD origFgAttrs; + WORD origBgAttrs; + + ConsoleHelper() + { + stdoutHandle = GetStdHandle(STD_OUTPUT_HANDLE); + CONSOLE_SCREEN_BUFFER_INFO csbiInfo; + GetConsoleScreenBufferInfo(stdoutHandle, &csbiInfo); + origFgAttrs = csbiInfo.wAttributes & ~(BACKGROUND_GREEN | BACKGROUND_RED | + BACKGROUND_BLUE | BACKGROUND_INTENSITY); + origBgAttrs = csbiInfo.wAttributes & ~(FOREGROUND_GREEN | FOREGROUND_RED | + FOREGROUND_BLUE | FOREGROUND_INTENSITY); + } + } ch; + +#define DOCTEST_SET_ATTR(x) SetConsoleTextAttribute(ch.stdoutHandle, x | ch.origBgAttrs) + + // clang-format off + switch (code) + { + case Color::White: + DOCTEST_SET_ATTR(FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE); + break; + case Color::Red: + DOCTEST_SET_ATTR(FOREGROUND_RED); + break; + case Color::Green: + DOCTEST_SET_ATTR(FOREGROUND_GREEN); + break; + case Color::Blue: + DOCTEST_SET_ATTR(FOREGROUND_BLUE); + break; + case Color::Cyan: + DOCTEST_SET_ATTR(FOREGROUND_BLUE | FOREGROUND_GREEN); + break; + case Color::Yellow: + DOCTEST_SET_ATTR(FOREGROUND_RED | FOREGROUND_GREEN); + break; + case Color::Grey: + DOCTEST_SET_ATTR(0); + break; + case Color::LightGrey: + DOCTEST_SET_ATTR(FOREGROUND_INTENSITY); + break; + case Color::BrightRed: + DOCTEST_SET_ATTR(FOREGROUND_INTENSITY | FOREGROUND_RED); + break; + case Color::BrightGreen: + DOCTEST_SET_ATTR(FOREGROUND_INTENSITY | FOREGROUND_GREEN); + break; + case Color::BrightWhite: + DOCTEST_SET_ATTR(FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE); + break; + case Color::None: + case Color::Bright: // invalid + default: + DOCTEST_SET_ATTR(ch.origFgAttrs); + } + // clang-format on +#endif // DOCTEST_CONFIG_COLORS_WINDOWS +} +DOCTEST_CLANG_SUPPRESS_WARNING_POP + +std::vector& getExceptionTranslators() +{ + static std::vector data; + return data; +} + +String translateActiveException() +{ +#ifndef DOCTEST_CONFIG_NO_EXCEPTIONS + String res; + auto& translators = getExceptionTranslators(); + for(auto& curr : translators) + if(curr->translate(res)) + return res; + // clang-format off + DOCTEST_GCC_SUPPRESS_WARNING_WITH_PUSH("-Wcatch-value") + try + { + throw; + } + catch(std::exception& ex) + { + return ex.what(); + } + catch(std::string& msg) + { + return msg.c_str(); + } + catch(const char* msg) + { + return msg; + } + catch(...) + { + return "unknown exception"; + } + DOCTEST_GCC_SUPPRESS_WARNING_POP +// clang-format on +#else // DOCTEST_CONFIG_NO_EXCEPTIONS + return ""; +#endif // DOCTEST_CONFIG_NO_EXCEPTIONS +} +} // namespace + +namespace detail +{ +// used by the macros for registering tests +int regTest(const TestCase& tc) +{ + getRegisteredTests().insert(tc); + return 0; +} + +// sets the current test suite +int setTestSuite(const TestSuite& ts) +{ + doctest_detail_test_suite_ns::getCurrentTestSuite() = ts; + return 0; +} + +#ifdef DOCTEST_IS_DEBUGGER_ACTIVE +bool isDebuggerActive() +{ + return DOCTEST_IS_DEBUGGER_ACTIVE(); +} +#else // DOCTEST_IS_DEBUGGER_ACTIVE +#ifdef DOCTEST_PLATFORM_LINUX +class ErrnoGuard +{ +public: + ErrnoGuard() : m_oldErrno(errno) {} + ~ErrnoGuard() + { + errno = m_oldErrno; + } +private: + int m_oldErrno; +}; +// See the comments in Catch2 for the reasoning behind this implementation: +// https://github.com/catchorg/Catch2/blob/v2.13.1/include/internal/catch_debugger.cpp#L79-L102 +bool isDebuggerActive() +{ + ErrnoGuard guard; + std::ifstream in("/proc/self/status"); + for(std::string line; std::getline(in, line);) + { + static const int PREFIX_LEN = 11; + if(line.compare(0, PREFIX_LEN, "TracerPid:\t") == 0) + { + return line.length() > PREFIX_LEN && line[PREFIX_LEN] != '0'; + } + } + return false; +} +#elif defined(DOCTEST_PLATFORM_MAC) +// The following function is taken directly from the following technical note: +// https://developer.apple.com/library/archive/qa/qa1361/_index.html +// Returns true if the current process is being debugged (either +// running under the debugger or has a debugger attached post facto). +bool isDebuggerActive() +{ + int mib[4]; + kinfo_proc info; + size_t size; + // Initialize the flags so that, if sysctl fails for some bizarre + // reason, we get a predictable result. + info.kp_proc.p_flag = 0; + // Initialize mib, which tells sysctl the info we want, in this case + // we're looking for information about a specific process ID. + mib[0] = CTL_KERN; + mib[1] = KERN_PROC; + mib[2] = KERN_PROC_PID; + mib[3] = getpid(); + // Call sysctl. + size = sizeof(info); + if(sysctl(mib, DOCTEST_COUNTOF(mib), &info, &size, 0, 0) != 0) + { + std::cerr << "\nCall to sysctl failed - unable to determine if debugger is active **\n"; + return false; + } + // We're being debugged if the P_TRACED flag is set. + return ((info.kp_proc.p_flag & P_TRACED) != 0); +} +#elif DOCTEST_MSVC || defined(__MINGW32__) || defined(__MINGW64__) +bool isDebuggerActive() +{ + return ::IsDebuggerPresent() != 0; +} +#else +bool isDebuggerActive() +{ + return false; +} +#endif // Platform +#endif // DOCTEST_IS_DEBUGGER_ACTIVE + +void registerExceptionTranslatorImpl(const IExceptionTranslator* et) +{ + if(std::find(getExceptionTranslators().begin(), getExceptionTranslators().end(), et) == + getExceptionTranslators().end()) + getExceptionTranslators().push_back(et); +} + +DOCTEST_THREAD_LOCAL std::vector g_infoContexts; // for logging with INFO() + +ContextScopeBase::ContextScopeBase() +{ + g_infoContexts.push_back(this); +} + +ContextScopeBase::ContextScopeBase(ContextScopeBase&& other) noexcept +{ + if (other.need_to_destroy) + { + other.destroy(); + } + other.need_to_destroy = false; + g_infoContexts.push_back(this); +} + +DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4996) // std::uncaught_exception is deprecated in C++17 +DOCTEST_GCC_SUPPRESS_WARNING_WITH_PUSH("-Wdeprecated-declarations") +DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH("-Wdeprecated-declarations") + +// destroy cannot be inlined into the destructor because that would mean calling stringify after +// ContextScope has been destroyed (base class destructors run after derived class destructors). +// Instead, ContextScope calls this method directly from its destructor. +void ContextScopeBase::destroy() +{ +#if defined(__cpp_lib_uncaught_exceptions) && __cpp_lib_uncaught_exceptions >= 201411L && (!defined(__MAC_OS_X_VERSION_MIN_REQUIRED) || __MAC_OS_X_VERSION_MIN_REQUIRED >= 101200) + if(std::uncaught_exceptions() > 0) + { +#else + if(std::uncaught_exception()) + { +#endif + std::ostringstream s; + this->stringify(&s); + g_cs->stringifiedContexts.push_back(s.str().c_str()); + } + g_infoContexts.pop_back(); +} + +DOCTEST_CLANG_SUPPRESS_WARNING_POP +DOCTEST_GCC_SUPPRESS_WARNING_POP +DOCTEST_MSVC_SUPPRESS_WARNING_POP +} // namespace detail +namespace +{ +using namespace detail; + +#if !defined(DOCTEST_CONFIG_POSIX_SIGNALS) && !defined(DOCTEST_CONFIG_WINDOWS_SEH) +struct FatalConditionHandler +{ + static void reset() {} + static void allocateAltStackMem() {} + static void freeAltStackMem() {} +}; +#else // DOCTEST_CONFIG_POSIX_SIGNALS || DOCTEST_CONFIG_WINDOWS_SEH + +void reportFatal(const std::string&); + +#ifdef DOCTEST_PLATFORM_WINDOWS + +struct SignalDefs +{ + DWORD id; + const char* name; +}; +// There is no 1-1 mapping between signals and windows exceptions. +// Windows can easily distinguish between SO and SigSegV, +// but SigInt, SigTerm, etc are handled differently. +SignalDefs signalDefs[] = +{ + { + static_cast(EXCEPTION_ILLEGAL_INSTRUCTION), + "SIGILL - Illegal instruction signal" + }, + {static_cast(EXCEPTION_STACK_OVERFLOW), "SIGSEGV - Stack overflow"}, + { + static_cast(EXCEPTION_ACCESS_VIOLATION), + "SIGSEGV - Segmentation violation signal" + }, + {static_cast(EXCEPTION_INT_DIVIDE_BY_ZERO), "Divide by zero error"}, +}; + +struct FatalConditionHandler +{ + static LONG CALLBACK handleException(PEXCEPTION_POINTERS ExceptionInfo) + { + // Multiple threads may enter this filter/handler at once. We want the error message to be printed on the + // console just once no matter how many threads have crashed. + DOCTEST_DECLARE_STATIC_MUTEX(mutex) + static bool execute = true; + { + DOCTEST_LOCK_MUTEX(mutex) + if(execute) + { + bool reported = false; + for(size_t i = 0; i < DOCTEST_COUNTOF(signalDefs); ++i) + { + if(ExceptionInfo->ExceptionRecord->ExceptionCode == signalDefs[i].id) + { + reportFatal(signalDefs[i].name); + reported = true; + break; + } + } + if(reported == false) + reportFatal("Unhandled SEH exception caught"); + if(isDebuggerActive() && !g_cs->no_breaks) + DOCTEST_BREAK_INTO_DEBUGGER(); + } + execute = false; + } + std::exit(EXIT_FAILURE); + } + + static void allocateAltStackMem() {} + static void freeAltStackMem() {} + + FatalConditionHandler() + { + isSet = true; + // 32k seems enough for doctest to handle stack overflow, + // but the value was found experimentally, so there is no strong guarantee + guaranteeSize = 32 * 1024; + // Register an unhandled exception filter + previousTop = SetUnhandledExceptionFilter(handleException); + // Pass in guarantee size to be filled + SetThreadStackGuarantee(&guaranteeSize); + + // On Windows uncaught exceptions from another thread, exceptions from + // destructors, or calls to std::terminate are not a SEH exception + + // The terminal handler gets called when: + // - std::terminate is called FROM THE TEST RUNNER THREAD + // - an exception is thrown from a destructor FROM THE TEST RUNNER THREAD + original_terminate_handler = std::get_terminate(); + std::set_terminate([]() DOCTEST_NOEXCEPT + { + reportFatal("Terminate handler called"); + if(isDebuggerActive() && !g_cs->no_breaks) + DOCTEST_BREAK_INTO_DEBUGGER(); + std::exit(EXIT_FAILURE); // explicitly exit - otherwise the SIGABRT handler may be called as well + }); + + // SIGABRT is raised when: + // - std::terminate is called FROM A DIFFERENT THREAD + // - an exception is thrown from a destructor FROM A DIFFERENT THREAD + // - an uncaught exception is thrown FROM A DIFFERENT THREAD + prev_sigabrt_handler = std::signal(SIGABRT, [](int signal) DOCTEST_NOEXCEPT + { + if(signal == SIGABRT) + { + reportFatal("SIGABRT - Abort (abnormal termination) signal"); + if(isDebuggerActive() && !g_cs->no_breaks) + DOCTEST_BREAK_INTO_DEBUGGER(); + std::exit(EXIT_FAILURE); + } + }); + + // The following settings are taken from google test, and more + // specifically from UnitTest::Run() inside of gtest.cc + + // the user does not want to see pop-up dialogs about crashes + prev_error_mode_1 = SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOALIGNMENTFAULTEXCEPT | + SEM_NOGPFAULTERRORBOX | SEM_NOOPENFILEERRORBOX); + // This forces the abort message to go to stderr in all circumstances. + prev_error_mode_2 = _set_error_mode(_OUT_TO_STDERR); + // In the debug version, Visual Studio pops up a separate dialog + // offering a choice to debug the aborted program - we want to disable that. + prev_abort_behavior = _set_abort_behavior(0x0, _WRITE_ABORT_MSG | _CALL_REPORTFAULT); + // In debug mode, the Windows CRT can crash with an assertion over invalid + // input (e.g. passing an invalid file descriptor). The default handling + // for these assertions is to pop up a dialog and wait for user input. + // Instead ask the CRT to dump such assertions to stderr non-interactively. + prev_report_mode = _CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG); + prev_report_file = _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR); + } + + static void reset() + { + if(isSet) + { + // Unregister handler and restore the old guarantee + SetUnhandledExceptionFilter(previousTop); + SetThreadStackGuarantee(&guaranteeSize); + std::set_terminate(original_terminate_handler); + std::signal(SIGABRT, prev_sigabrt_handler); + SetErrorMode(prev_error_mode_1); + _set_error_mode(prev_error_mode_2); + _set_abort_behavior(prev_abort_behavior, _WRITE_ABORT_MSG | _CALL_REPORTFAULT); + static_cast(_CrtSetReportMode(_CRT_ASSERT, prev_report_mode)); + static_cast(_CrtSetReportFile(_CRT_ASSERT, prev_report_file)); + isSet = false; + } + } + + ~FatalConditionHandler() + { + reset(); + } + +private: + static UINT prev_error_mode_1; + static int prev_error_mode_2; + static unsigned int prev_abort_behavior; + static int prev_report_mode; + static _HFILE prev_report_file; + static void (DOCTEST_CDECL *prev_sigabrt_handler)(int); + static std::terminate_handler original_terminate_handler; + static bool isSet; + static ULONG guaranteeSize; + static LPTOP_LEVEL_EXCEPTION_FILTER previousTop; +}; + +UINT FatalConditionHandler::prev_error_mode_1; +int FatalConditionHandler::prev_error_mode_2; +unsigned int FatalConditionHandler::prev_abort_behavior; +int FatalConditionHandler::prev_report_mode; +_HFILE FatalConditionHandler::prev_report_file; +void (DOCTEST_CDECL *FatalConditionHandler::prev_sigabrt_handler)(int); +std::terminate_handler FatalConditionHandler::original_terminate_handler; +bool FatalConditionHandler::isSet = false; +ULONG FatalConditionHandler::guaranteeSize = 0; +LPTOP_LEVEL_EXCEPTION_FILTER FatalConditionHandler::previousTop = nullptr; + +#else // DOCTEST_PLATFORM_WINDOWS + +struct SignalDefs +{ + int id; + const char* name; +}; +SignalDefs signalDefs[] = {{SIGINT, "SIGINT - Terminal interrupt signal"}, + {SIGILL, "SIGILL - Illegal instruction signal"}, + {SIGFPE, "SIGFPE - Floating point error signal"}, + {SIGSEGV, "SIGSEGV - Segmentation violation signal"}, + {SIGTERM, "SIGTERM - Termination request signal"}, + {SIGABRT, "SIGABRT - Abort (abnormal termination) signal"} +}; + +struct FatalConditionHandler +{ + static bool isSet; + static struct sigaction oldSigActions[DOCTEST_COUNTOF(signalDefs)]; + static stack_t oldSigStack; + static size_t altStackSize; + static char* altStackMem; + + static void handleSignal(int sig) + { + const char* name = ""; + for(std::size_t i = 0; i < DOCTEST_COUNTOF(signalDefs); ++i) + { + SignalDefs& def = signalDefs[i]; + if(sig == def.id) + { + name = def.name; + break; + } + } + reset(); + reportFatal(name); + raise(sig); + } + + static void allocateAltStackMem() + { + altStackMem = new char[altStackSize]; + } + + static void freeAltStackMem() + { + delete[] altStackMem; + } + + FatalConditionHandler() + { + isSet = true; + stack_t sigStack; + sigStack.ss_sp = altStackMem; + sigStack.ss_size = altStackSize; + sigStack.ss_flags = 0; + sigaltstack(&sigStack, &oldSigStack); + struct sigaction sa = {}; + sa.sa_handler = handleSignal; + sa.sa_flags = SA_ONSTACK; + for(std::size_t i = 0; i < DOCTEST_COUNTOF(signalDefs); ++i) + { + sigaction(signalDefs[i].id, &sa, &oldSigActions[i]); + } + } + + ~FatalConditionHandler() + { + reset(); + } + static void reset() + { + if(isSet) + { + // Set signals back to previous values -- hopefully nobody overwrote them in the meantime + for(std::size_t i = 0; i < DOCTEST_COUNTOF(signalDefs); ++i) + { + sigaction(signalDefs[i].id, &oldSigActions[i], nullptr); + } + // Return the old stack + sigaltstack(&oldSigStack, nullptr); + isSet = false; + } + } +}; + +bool FatalConditionHandler::isSet = false; +struct sigaction FatalConditionHandler::oldSigActions[DOCTEST_COUNTOF(signalDefs)] = {}; +stack_t FatalConditionHandler::oldSigStack = {}; +size_t FatalConditionHandler::altStackSize = 4 * SIGSTKSZ; +char* FatalConditionHandler::altStackMem = nullptr; + +#endif // DOCTEST_PLATFORM_WINDOWS +#endif // DOCTEST_CONFIG_POSIX_SIGNALS || DOCTEST_CONFIG_WINDOWS_SEH + +} // namespace + +namespace +{ +using namespace detail; + +#ifdef DOCTEST_PLATFORM_WINDOWS +#define DOCTEST_OUTPUT_DEBUG_STRING(text) ::OutputDebugStringA(text) +#else +// TODO: integration with XCode and other IDEs +#define DOCTEST_OUTPUT_DEBUG_STRING(text) +#endif // Platform + +void addAssert(assertType::Enum at) +{ + if((at & assertType::is_warn) == 0) //!OCLINT bitwise operator in conditional + g_cs->numAssertsCurrentTest_atomic++; +} + +void addFailedAssert(assertType::Enum at) +{ + if((at & assertType::is_warn) == 0) //!OCLINT bitwise operator in conditional + g_cs->numAssertsFailedCurrentTest_atomic++; +} + +#if defined(DOCTEST_CONFIG_POSIX_SIGNALS) || defined(DOCTEST_CONFIG_WINDOWS_SEH) +void reportFatal(const std::string& message) +{ + g_cs->failure_flags |= TestCaseFailureReason::Crash; + + DOCTEST_ITERATE_THROUGH_REPORTERS(test_case_exception, {message.c_str(), true}); + + while (g_cs->subcaseStack.size()) + { + g_cs->subcaseStack.pop_back(); + DOCTEST_ITERATE_THROUGH_REPORTERS(subcase_end, DOCTEST_EMPTY); + } + + g_cs->finalizeTestCaseData(); + + DOCTEST_ITERATE_THROUGH_REPORTERS(test_case_end, *g_cs); + + DOCTEST_ITERATE_THROUGH_REPORTERS(test_run_end, *g_cs); +} +#endif // DOCTEST_CONFIG_POSIX_SIGNALS || DOCTEST_CONFIG_WINDOWS_SEH +} // namespace + +AssertData::AssertData(assertType::Enum at, const char* file, int line, const char* expr, + const char* exception_type, const StringContains& exception_string) + : m_test_case(g_cs->currentTest), m_at(at), m_file(file), m_line(line), m_expr(expr), + m_failed(true), m_threw(false), m_threw_as(false), m_exception_type(exception_type), + m_exception_string(exception_string) +{ +#if DOCTEST_MSVC + if (m_expr[0] == ' ') // this happens when variadic macros are disabled under MSVC + ++m_expr; +#endif // MSVC +} + +namespace detail +{ +ResultBuilder::ResultBuilder(assertType::Enum at, const char* file, int line, const char* expr, + const char* exception_type, const String& exception_string) + : AssertData(at, file, line, expr, exception_type, exception_string) { } + +ResultBuilder::ResultBuilder(assertType::Enum at, const char* file, int line, const char* expr, + const char* exception_type, const Contains& exception_string) + : AssertData(at, file, line, expr, exception_type, exception_string) { } + +void ResultBuilder::setResult(const Result& res) +{ + m_decomp = res.m_decomp; + m_failed = !res.m_passed; +} + +void ResultBuilder::translateException() +{ + m_threw = true; + m_exception = translateActiveException(); +} + +bool ResultBuilder::log() +{ + if(m_at & assertType::is_throws) //!OCLINT bitwise operator in conditional + { + m_failed = !m_threw; + } + else if((m_at & assertType::is_throws_as) && (m_at & assertType::is_throws_with)) //!OCLINT + { + m_failed = !m_threw_as || !m_exception_string.check(m_exception); + } + else if(m_at & assertType::is_throws_as) //!OCLINT bitwise operator in conditional + { + m_failed = !m_threw_as; + } + else if(m_at & assertType::is_throws_with) //!OCLINT bitwise operator in conditional + { + m_failed = !m_exception_string.check(m_exception); + } + else if(m_at & assertType::is_nothrow) //!OCLINT bitwise operator in conditional + { + m_failed = m_threw; + } + + if(m_exception.size()) + m_exception = "\"" + m_exception + "\""; + + if(is_running_in_test) + { + addAssert(m_at); + DOCTEST_ITERATE_THROUGH_REPORTERS(log_assert, *this); + + if(m_failed) + addFailedAssert(m_at); + } + else if(m_failed) + { + failed_out_of_a_testing_context(*this); + } + + return m_failed && isDebuggerActive() && !getContextOptions()->no_breaks && + (g_cs->currentTest == nullptr || !g_cs->currentTest->m_no_breaks); // break into debugger +} + +void ResultBuilder::react() const +{ + if(m_failed && checkIfShouldThrow(m_at)) + throwException(); +} + +void failed_out_of_a_testing_context(const AssertData& ad) +{ + if(g_cs->ah) + g_cs->ah(ad); + else + std::abort(); +} + +bool decomp_assert(assertType::Enum at, const char* file, int line, const char* expr, + const Result& result) +{ + bool failed = !result.m_passed; + + // ################################################################################### + // IF THE DEBUGGER BREAKS HERE - GO 1 LEVEL UP IN THE CALLSTACK FOR THE FAILING ASSERT + // THIS IS THE EFFECT OF HAVING 'DOCTEST_CONFIG_SUPER_FAST_ASSERTS' DEFINED + // ################################################################################### + DOCTEST_ASSERT_OUT_OF_TESTS(result.m_decomp); + DOCTEST_ASSERT_IN_TESTS(result.m_decomp); + return !failed; +} + +MessageBuilder::MessageBuilder(const char* file, int line, assertType::Enum severity) +{ + m_stream = tlssPush(); + m_file = file; + m_line = line; + m_severity = severity; +} + +MessageBuilder::~MessageBuilder() +{ + if (!logged) + tlssPop(); +} + +DOCTEST_DEFINE_INTERFACE(IExceptionTranslator) + +bool MessageBuilder::log() +{ + if (!logged) + { + m_string = tlssPop(); + logged = true; + } + + DOCTEST_ITERATE_THROUGH_REPORTERS(log_message, *this); + + const bool isWarn = m_severity & assertType::is_warn; + + // warn is just a message in this context so we don't treat it as an assert + if(!isWarn) + { + addAssert(m_severity); + addFailedAssert(m_severity); + } + + return isDebuggerActive() && !getContextOptions()->no_breaks && !isWarn && + (g_cs->currentTest == nullptr || !g_cs->currentTest->m_no_breaks); // break into debugger +} + +void MessageBuilder::react() +{ + if(m_severity & assertType::is_require) //!OCLINT bitwise operator in conditional + throwException(); +} +} // namespace detail +namespace +{ +using namespace detail; + +// clang-format off + +// ================================================================================================= +// The following code has been taken verbatim from Catch2/include/internal/catch_xmlwriter.h/cpp +// This is done so cherry-picking bug fixes is trivial - even the style/formatting is untouched. +// ================================================================================================= + +class XmlEncode +{ +public: + enum ForWhat { ForTextNodes, ForAttributes }; + + XmlEncode( std::string const& str, ForWhat forWhat = ForTextNodes ); + + void encodeTo( std::ostream& os ) const; + + friend std::ostream& operator << ( std::ostream& os, XmlEncode const& xmlEncode ); + +private: + std::string m_str; + ForWhat m_forWhat; +}; + +class XmlWriter +{ +public: + + class ScopedElement + { + public: + ScopedElement( XmlWriter* writer ); + + ScopedElement( ScopedElement&& other ) DOCTEST_NOEXCEPT; + ScopedElement& operator=( ScopedElement&& other ) DOCTEST_NOEXCEPT; + + ~ScopedElement(); + + ScopedElement& writeText( std::string const& text, bool indent = true ); + + template + ScopedElement& writeAttribute( std::string const& name, T const& attribute ) + { + m_writer->writeAttribute( name, attribute ); + return *this; + } + + private: + mutable XmlWriter* m_writer = nullptr; + }; + +#ifndef DOCTEST_CONFIG_NO_INCLUDE_IOSTREAM + XmlWriter( std::ostream& os = std::cout ); +#else // DOCTEST_CONFIG_NO_INCLUDE_IOSTREAM + XmlWriter( std::ostream& os ); +#endif // DOCTEST_CONFIG_NO_INCLUDE_IOSTREAM + ~XmlWriter(); + + XmlWriter( XmlWriter const& ) = delete; + XmlWriter& operator=( XmlWriter const& ) = delete; + + XmlWriter& startElement( std::string const& name ); + + ScopedElement scopedElement( std::string const& name ); + + XmlWriter& endElement(); + + XmlWriter& writeAttribute( std::string const& name, std::string const& attribute ); + + XmlWriter& writeAttribute( std::string const& name, const char* attribute ); + + XmlWriter& writeAttribute( std::string const& name, bool attribute ); + + template + XmlWriter& writeAttribute( std::string const& name, T const& attribute ) + { + std::stringstream rss; + rss << attribute; + return writeAttribute( name, rss.str() ); + } + + XmlWriter& writeText( std::string const& text, bool indent = true ); + + //XmlWriter& writeComment( std::string const& text ); + + //void writeStylesheetRef( std::string const& url ); + + //XmlWriter& writeBlankLine(); + + void ensureTagClosed(); + + void writeDeclaration(); + +private: + + void newlineIfNecessary(); + + bool m_tagIsOpen = false; + bool m_needsNewline = false; + std::vector m_tags; + std::string m_indent; + std::ostream& m_os; +}; + +// ================================================================================================= +// The following code has been taken verbatim from Catch2/include/internal/catch_xmlwriter.h/cpp +// This is done so cherry-picking bug fixes is trivial - even the style/formatting is untouched. +// ================================================================================================= + +using uchar = unsigned char; + +namespace +{ + +size_t trailingBytes(unsigned char c) +{ + if ((c & 0xE0) == 0xC0) + { + return 2; + } + if ((c & 0xF0) == 0xE0) + { + return 3; + } + if ((c & 0xF8) == 0xF0) + { + return 4; + } + DOCTEST_INTERNAL_ERROR("Invalid multibyte utf-8 start byte encountered"); +} + +uint32_t headerValue(unsigned char c) +{ + if ((c & 0xE0) == 0xC0) + { + return c & 0x1F; + } + if ((c & 0xF0) == 0xE0) + { + return c & 0x0F; + } + if ((c & 0xF8) == 0xF0) + { + return c & 0x07; + } + DOCTEST_INTERNAL_ERROR("Invalid multibyte utf-8 start byte encountered"); +} + +void hexEscapeChar(std::ostream& os, unsigned char c) +{ + std::ios_base::fmtflags f(os.flags()); + os << "\\x" + << std::uppercase << std::hex << std::setfill('0') << std::setw(2) + << static_cast(c); + os.flags(f); +} + +} // anonymous namespace + +XmlEncode::XmlEncode( std::string const& str, ForWhat forWhat ) + : m_str( str ), + m_forWhat( forWhat ) +{} + +void XmlEncode::encodeTo( std::ostream& os ) const +{ + // Apostrophe escaping not necessary if we always use " to write attributes + // (see: https://www.w3.org/TR/xml/#syntax) + + for( std::size_t idx = 0; idx < m_str.size(); ++ idx ) + { + uchar c = m_str[idx]; + switch (c) + { + case '<': + os << "<"; + break; + case '&': + os << "&"; + break; + + case '>': + // See: https://www.w3.org/TR/xml/#syntax + if (idx > 2 && m_str[idx - 1] == ']' && m_str[idx - 2] == ']') + os << ">"; + else + os << c; + break; + + case '\"': + if (m_forWhat == ForAttributes) + os << """; + else + os << c; + break; + + default: + // Check for control characters and invalid utf-8 + + // Escape control characters in standard ascii + // see https://stackoverflow.com/questions/404107/why-are-control-characters-illegal-in-xml-1-0 + if (c < 0x09 || (c > 0x0D && c < 0x20) || c == 0x7F) + { + hexEscapeChar(os, c); + break; + } + + // Plain ASCII: Write it to stream + if (c < 0x7F) + { + os << c; + break; + } + + // UTF-8 territory + // Check if the encoding is valid and if it is not, hex escape bytes. + // Important: We do not check the exact decoded values for validity, only the encoding format + // First check that this bytes is a valid lead byte: + // This means that it is not encoded as 1111 1XXX + // Or as 10XX XXXX + if (c < 0xC0 || + c >= 0xF8) + { + hexEscapeChar(os, c); + break; + } + + auto encBytes = trailingBytes(c); + // Are there enough bytes left to avoid accessing out-of-bounds memory? + if (idx + encBytes - 1 >= m_str.size()) + { + hexEscapeChar(os, c); + break; + } + // The header is valid, check data + // The next encBytes bytes must together be a valid utf-8 + // This means: bitpattern 10XX XXXX and the extracted value is sane (ish) + bool valid = true; + uint32_t value = headerValue(c); + for (std::size_t n = 1; n < encBytes; ++n) + { + uchar nc = m_str[idx + n]; + valid &= ((nc & 0xC0) == 0x80); + value = (value << 6) | (nc & 0x3F); + } + + if ( + // Wrong bit pattern of following bytes + (!valid) || + // Overlong encodings + (value < 0x80) || + ( value < 0x800 && encBytes > 2) || // removed "0x80 <= value &&" because redundant + (0x800 < value && value < 0x10000 && encBytes > 3) || + // Encoded value out of range + (value >= 0x110000) + ) + { + hexEscapeChar(os, c); + break; + } + + // If we got here, this is in fact a valid(ish) utf-8 sequence + for (std::size_t n = 0; n < encBytes; ++n) + { + os << m_str[idx + n]; + } + idx += encBytes - 1; + break; + } + } +} + +std::ostream& operator << ( std::ostream& os, XmlEncode const& xmlEncode ) +{ + xmlEncode.encodeTo( os ); + return os; +} + +XmlWriter::ScopedElement::ScopedElement( XmlWriter* writer ) + : m_writer( writer ) +{} + +XmlWriter::ScopedElement::ScopedElement( ScopedElement&& other ) DOCTEST_NOEXCEPT +: +m_writer( other.m_writer ) +{ + other.m_writer = nullptr; +} +XmlWriter::ScopedElement& XmlWriter::ScopedElement::operator=( ScopedElement&& other ) DOCTEST_NOEXCEPT +{ + if ( m_writer ) + { + m_writer->endElement(); + } + m_writer = other.m_writer; + other.m_writer = nullptr; + return *this; +} + + +XmlWriter::ScopedElement::~ScopedElement() +{ + if( m_writer ) + m_writer->endElement(); +} + +XmlWriter::ScopedElement& XmlWriter::ScopedElement::writeText( std::string const& text, bool indent ) +{ + m_writer->writeText( text, indent ); + return *this; +} + +XmlWriter::XmlWriter( std::ostream& os ) : m_os( os ) +{ + // writeDeclaration(); // called explicitly by the reporters that use the writer class - see issue #627 +} + +XmlWriter::~XmlWriter() +{ + while( !m_tags.empty() ) + endElement(); +} + +XmlWriter& XmlWriter::startElement( std::string const& name ) +{ + ensureTagClosed(); + newlineIfNecessary(); + m_os << m_indent << '<' << name; + m_tags.push_back( name ); + m_indent += " "; + m_tagIsOpen = true; + return *this; +} + +XmlWriter::ScopedElement XmlWriter::scopedElement( std::string const& name ) +{ + ScopedElement scoped( this ); + startElement( name ); + return scoped; +} + +XmlWriter& XmlWriter::endElement() +{ + newlineIfNecessary(); + m_indent = m_indent.substr( 0, m_indent.size()-2 ); + if( m_tagIsOpen ) + { + m_os << "/>"; + m_tagIsOpen = false; + } + else + { + m_os << m_indent << ""; + } + m_os << std::endl; + m_tags.pop_back(); + return *this; +} + +XmlWriter& XmlWriter::writeAttribute( std::string const& name, std::string const& attribute ) +{ + if( !name.empty() && !attribute.empty() ) + m_os << ' ' << name << "=\"" << XmlEncode( attribute, XmlEncode::ForAttributes ) << '"'; + return *this; +} + +XmlWriter& XmlWriter::writeAttribute( std::string const& name, const char* attribute ) +{ + if( !name.empty() && attribute && attribute[0] != '\0' ) + m_os << ' ' << name << "=\"" << XmlEncode( attribute, XmlEncode::ForAttributes ) << '"'; + return *this; +} + +XmlWriter& XmlWriter::writeAttribute( std::string const& name, bool attribute ) +{ + m_os << ' ' << name << "=\"" << ( attribute ? "true" : "false" ) << '"'; + return *this; +} + +XmlWriter& XmlWriter::writeText( std::string const& text, bool indent ) +{ + if( !text.empty() ) + { + bool tagWasOpen = m_tagIsOpen; + ensureTagClosed(); + if( tagWasOpen && indent ) + m_os << m_indent; + m_os << XmlEncode( text ); + m_needsNewline = true; + } + return *this; +} + +//XmlWriter& XmlWriter::writeComment( std::string const& text ) { +// ensureTagClosed(); +// m_os << m_indent << ""; +// m_needsNewline = true; +// return *this; +//} + +//void XmlWriter::writeStylesheetRef( std::string const& url ) { +// m_os << "\n"; +//} + +//XmlWriter& XmlWriter::writeBlankLine() { +// ensureTagClosed(); +// m_os << '\n'; +// return *this; +//} + +void XmlWriter::ensureTagClosed() +{ + if( m_tagIsOpen ) + { + m_os << ">" << std::endl; + m_tagIsOpen = false; + } +} + +void XmlWriter::writeDeclaration() +{ + m_os << "\n"; +} + +void XmlWriter::newlineIfNecessary() +{ + if( m_needsNewline ) + { + m_os << std::endl; + m_needsNewline = false; + } +} + +// ================================================================================================= +// End of copy-pasted code from Catch +// ================================================================================================= + +// clang-format on + +struct XmlReporter : public IReporter +{ + XmlWriter xml; + DOCTEST_DECLARE_MUTEX(mutex) + + // caching pointers/references to objects of these types - safe to do + const ContextOptions& opt; + const TestCaseData* tc = nullptr; + + XmlReporter(const ContextOptions& co) + : xml(*co.cout) + , opt(co) {} + + void log_contexts() + { + int num_contexts = get_num_active_contexts(); + if(num_contexts) + { + auto contexts = get_active_contexts(); + std::stringstream ss; + for(int i = 0; i < num_contexts; ++i) + { + contexts[i]->stringify(&ss); + xml.scopedElement("Info").writeText(ss.str()); + ss.str(""); + } + } + } + + unsigned line(unsigned l) const + { + return opt.no_line_numbers ? 0 : l; + } + + void test_case_start_impl(const TestCaseData& in) + { + bool open_ts_tag = false; + if(tc != nullptr) // we have already opened a test suite + { + if(std::strcmp(tc->m_test_suite, in.m_test_suite) != 0) + { + xml.endElement(); + open_ts_tag = true; + } + } + else + { + open_ts_tag = true; // first test case ==> first test suite + } + + if(open_ts_tag) + { + xml.startElement("TestSuite"); + xml.writeAttribute("name", in.m_test_suite); + } + + tc = ∈ + xml.startElement("TestCase") + .writeAttribute("name", in.m_name) + .writeAttribute("filename", skipPathFromFilename(in.m_file.c_str())) + .writeAttribute("line", line(in.m_line)) + .writeAttribute("description", in.m_description); + + if(Approx(in.m_timeout) != 0) + xml.writeAttribute("timeout", in.m_timeout); + if(in.m_may_fail) + xml.writeAttribute("may_fail", true); + if(in.m_should_fail) + xml.writeAttribute("should_fail", true); + } + + // ========================================================================================= + // WHAT FOLLOWS ARE OVERRIDES OF THE VIRTUAL METHODS OF THE REPORTER INTERFACE + // ========================================================================================= + + void report_query(const QueryData& in) override + { + test_run_start(); + if(opt.list_reporters) + { + for(auto& curr : getListeners()) + xml.scopedElement("Listener") + .writeAttribute("priority", curr.first.first) + .writeAttribute("name", curr.first.second); + for(auto& curr : getReporters()) + xml.scopedElement("Reporter") + .writeAttribute("priority", curr.first.first) + .writeAttribute("name", curr.first.second); + } + else if(opt.count || opt.list_test_cases) + { + for(unsigned i = 0; i < in.num_data; ++i) + { + xml.scopedElement("TestCase").writeAttribute("name", in.data[i]->m_name) + .writeAttribute("testsuite", in.data[i]->m_test_suite) + .writeAttribute("filename", skipPathFromFilename(in.data[i]->m_file.c_str())) + .writeAttribute("line", line(in.data[i]->m_line)) + .writeAttribute("skipped", in.data[i]->m_skip); + } + xml.scopedElement("OverallResultsTestCases") + .writeAttribute("unskipped", in.run_stats->numTestCasesPassingFilters); + } + else if(opt.list_test_suites) + { + for(unsigned i = 0; i < in.num_data; ++i) + xml.scopedElement("TestSuite").writeAttribute("name", in.data[i]->m_test_suite); + xml.scopedElement("OverallResultsTestCases") + .writeAttribute("unskipped", in.run_stats->numTestCasesPassingFilters); + xml.scopedElement("OverallResultsTestSuites") + .writeAttribute("unskipped", in.run_stats->numTestSuitesPassingFilters); + } + xml.endElement(); + } + + void test_run_start() override + { + xml.writeDeclaration(); + + // remove .exe extension - mainly to have the same output on UNIX and Windows + std::string binary_name = skipPathFromFilename(opt.binary_name.c_str()); +#ifdef DOCTEST_PLATFORM_WINDOWS + if(binary_name.rfind(".exe") != std::string::npos) + binary_name = binary_name.substr(0, binary_name.length() - 4); +#endif // DOCTEST_PLATFORM_WINDOWS + + xml.startElement("doctest").writeAttribute("binary", binary_name); + if(opt.no_version == false) + xml.writeAttribute("version", DOCTEST_VERSION_STR); + + // only the consequential ones (TODO: filters) + xml.scopedElement("Options") + .writeAttribute("order_by", opt.order_by.c_str()) + .writeAttribute("rand_seed", opt.rand_seed) + .writeAttribute("first", opt.first) + .writeAttribute("last", opt.last) + .writeAttribute("abort_after", opt.abort_after) + .writeAttribute("subcase_filter_levels", opt.subcase_filter_levels) + .writeAttribute("case_sensitive", opt.case_sensitive) + .writeAttribute("no_throw", opt.no_throw) + .writeAttribute("no_skip", opt.no_skip); + } + + void test_run_end(const TestRunStats& p) override + { + if(tc) // the TestSuite tag - only if there has been at least 1 test case + xml.endElement(); + + xml.scopedElement("OverallResultsAsserts") + .writeAttribute("successes", p.numAsserts - p.numAssertsFailed) + .writeAttribute("failures", p.numAssertsFailed); + + xml.startElement("OverallResultsTestCases") + .writeAttribute("successes", + p.numTestCasesPassingFilters - p.numTestCasesFailed) + .writeAttribute("failures", p.numTestCasesFailed); + if(opt.no_skipped_summary == false) + xml.writeAttribute("skipped", p.numTestCases - p.numTestCasesPassingFilters); + xml.endElement(); + + xml.endElement(); + } + + void test_case_start(const TestCaseData& in) override + { + test_case_start_impl(in); + xml.ensureTagClosed(); + } + + void test_case_reenter(const TestCaseData&) override {} + + void test_case_end(const CurrentTestCaseStats& st) override + { + xml.startElement("OverallResultsAsserts") + .writeAttribute("successes", + st.numAssertsCurrentTest - st.numAssertsFailedCurrentTest) + .writeAttribute("failures", st.numAssertsFailedCurrentTest) + .writeAttribute("test_case_success", st.testCaseSuccess); + if(opt.duration) + xml.writeAttribute("duration", st.seconds); + if(tc->m_expected_failures) + xml.writeAttribute("expected_failures", tc->m_expected_failures); + xml.endElement(); + + xml.endElement(); + } + + void test_case_exception(const TestCaseException& e) override + { + DOCTEST_LOCK_MUTEX(mutex) + + xml.scopedElement("Exception") + .writeAttribute("crash", e.is_crash) + .writeText(e.error_string.c_str()); + } + + void subcase_start(const SubcaseSignature& in) override + { + xml.startElement("SubCase") + .writeAttribute("name", in.m_name) + .writeAttribute("filename", skipPathFromFilename(in.m_file)) + .writeAttribute("line", line(in.m_line)); + xml.ensureTagClosed(); + } + + void subcase_end() override + { + xml.endElement(); + } + + void log_assert(const AssertData& rb) override + { + if(!rb.m_failed && !opt.success) + return; + + DOCTEST_LOCK_MUTEX(mutex) + + xml.startElement("Expression") + .writeAttribute("success", !rb.m_failed) + .writeAttribute("type", assertString(rb.m_at)) + .writeAttribute("filename", skipPathFromFilename(rb.m_file)) + .writeAttribute("line", line(rb.m_line)); + + xml.scopedElement("Original").writeText(rb.m_expr); + + if(rb.m_threw) + xml.scopedElement("Exception").writeText(rb.m_exception.c_str()); + + if(rb.m_at & assertType::is_throws_as) + xml.scopedElement("ExpectedException").writeText(rb.m_exception_type); + if(rb.m_at & assertType::is_throws_with) + xml.scopedElement("ExpectedExceptionString").writeText(rb.m_exception_string.c_str()); + if((rb.m_at & assertType::is_normal) && !rb.m_threw) + xml.scopedElement("Expanded").writeText(rb.m_decomp.c_str()); + + log_contexts(); + + xml.endElement(); + } + + void log_message(const MessageData& mb) override + { + DOCTEST_LOCK_MUTEX(mutex) + + xml.startElement("Message") + .writeAttribute("type", failureString(mb.m_severity)) + .writeAttribute("filename", skipPathFromFilename(mb.m_file)) + .writeAttribute("line", line(mb.m_line)); + + xml.scopedElement("Text").writeText(mb.m_string.c_str()); + + log_contexts(); + + xml.endElement(); + } + + void test_case_skipped(const TestCaseData& in) override + { + if(opt.no_skipped_summary == false) + { + test_case_start_impl(in); + xml.writeAttribute("skipped", "true"); + xml.endElement(); + } + } +}; + +DOCTEST_REGISTER_REPORTER("xml", 0, XmlReporter); + +void fulltext_log_assert_to_stream(std::ostream& s, const AssertData& rb) +{ + if((rb.m_at & (assertType::is_throws_as | assertType::is_throws_with)) == + 0) //!OCLINT bitwise operator in conditional + s << Color::Cyan << assertString(rb.m_at) << "( " << rb.m_expr << " ) " + << Color::None; + + if(rb.m_at & assertType::is_throws) //!OCLINT bitwise operator in conditional + { + s << (rb.m_threw ? "threw as expected!" : "did NOT throw at all!") << "\n"; + } + else if((rb.m_at & assertType::is_throws_as) && + (rb.m_at & assertType::is_throws_with)) //!OCLINT + { + s << Color::Cyan << assertString(rb.m_at) << "( " << rb.m_expr << ", \"" + << rb.m_exception_string.c_str() + << "\", " << rb.m_exception_type << " ) " << Color::None; + if(rb.m_threw) + { + if(!rb.m_failed) + { + s << "threw as expected!\n"; + } + else + { + s << "threw a DIFFERENT exception! (contents: " << rb.m_exception << ")\n"; + } + } + else + { + s << "did NOT throw at all!\n"; + } + } + else if(rb.m_at & + assertType::is_throws_as) //!OCLINT bitwise operator in conditional + { + s << Color::Cyan << assertString(rb.m_at) << "( " << rb.m_expr << ", " + << rb.m_exception_type << " ) " << Color::None + << (rb.m_threw ? (rb.m_threw_as ? "threw as expected!" : + "threw a DIFFERENT exception: ") : + "did NOT throw at all!") + << Color::Cyan << rb.m_exception << "\n"; + } + else if(rb.m_at & + assertType::is_throws_with) //!OCLINT bitwise operator in conditional + { + s << Color::Cyan << assertString(rb.m_at) << "( " << rb.m_expr << ", \"" + << rb.m_exception_string.c_str() + << "\" ) " << Color::None + << (rb.m_threw ? (!rb.m_failed ? "threw as expected!" : + "threw a DIFFERENT exception: ") : + "did NOT throw at all!") + << Color::Cyan << rb.m_exception << "\n"; + } + else if(rb.m_at & assertType::is_nothrow) //!OCLINT bitwise operator in conditional + { + s << (rb.m_threw ? "THREW exception: " : "didn't throw!") << Color::Cyan + << rb.m_exception << "\n"; + } + else + { + s << (rb.m_threw ? "THREW exception: " : + (!rb.m_failed ? "is correct!\n" : "is NOT correct!\n")); + if(rb.m_threw) + s << rb.m_exception << "\n"; + else + s << " values: " << assertString(rb.m_at) << "( " << rb.m_decomp << " )\n"; + } +} + +// TODO: +// - log_message() +// - respond to queries +// - honor remaining options +// - more attributes in tags +struct JUnitReporter : public IReporter +{ + XmlWriter xml; + DOCTEST_DECLARE_MUTEX(mutex) + Timer timer; + std::vector deepestSubcaseStackNames; + + struct JUnitTestCaseData + { + static std::string getCurrentTimestamp() + { + // Beware, this is not reentrant because of backward compatibility issues + // Also, UTC only, again because of backward compatibility (%z is C++11) + time_t rawtime; + std::time(&rawtime); + auto const timeStampSize = sizeof("2017-01-16T17:06:45Z"); + + std::tm timeInfo; +#ifdef DOCTEST_PLATFORM_WINDOWS + gmtime_s(&timeInfo, &rawtime); +#else // DOCTEST_PLATFORM_WINDOWS + gmtime_r(&rawtime, &timeInfo); +#endif // DOCTEST_PLATFORM_WINDOWS + + char timeStamp[timeStampSize]; + const char* const fmt = "%Y-%m-%dT%H:%M:%SZ"; + + std::strftime(timeStamp, timeStampSize, fmt, &timeInfo); + return std::string(timeStamp); + } + + struct JUnitTestMessage + { + JUnitTestMessage(const std::string& _message, const std::string& _type, const std::string& _details) + : message(_message), type(_type), details(_details) {} + + JUnitTestMessage(const std::string& _message, const std::string& _details) + : message(_message), type(), details(_details) {} + + std::string message, type, details; + }; + + struct JUnitTestCase + { + JUnitTestCase(const std::string& _classname, const std::string& _name) + : classname(_classname), name(_name), time(0), failures() {} + + std::string classname, name; + double time; + std::vector failures, errors; + }; + + void add(const std::string& classname, const std::string& name) + { + testcases.emplace_back(classname, name); + } + + void appendSubcaseNamesToLastTestcase(std::vector nameStack) + { + for(auto& curr: nameStack) + if(curr.size()) + testcases.back().name += std::string("/") + curr.c_str(); + } + + void addTime(double time) + { + if(time < 1e-4) + time = 0; + testcases.back().time = time; + totalSeconds += time; + } + + void addFailure(const std::string& message, const std::string& type, const std::string& details) + { + testcases.back().failures.emplace_back(message, type, details); + ++totalFailures; + } + + void addError(const std::string& message, const std::string& details) + { + testcases.back().errors.emplace_back(message, details); + ++totalErrors; + } + + std::vector testcases; + double totalSeconds = 0; + int totalErrors = 0, totalFailures = 0; + }; + + JUnitTestCaseData testCaseData; + + // caching pointers/references to objects of these types - safe to do + const ContextOptions& opt; + const TestCaseData* tc = nullptr; + + JUnitReporter(const ContextOptions& co) + : xml(*co.cout) + , opt(co) {} + + unsigned line(unsigned l) const + { + return opt.no_line_numbers ? 0 : l; + } + + // ========================================================================================= + // WHAT FOLLOWS ARE OVERRIDES OF THE VIRTUAL METHODS OF THE REPORTER INTERFACE + // ========================================================================================= + + void report_query(const QueryData&) override + { + xml.writeDeclaration(); + } + + void test_run_start() override + { + xml.writeDeclaration(); + } + + void test_run_end(const TestRunStats& p) override + { + // remove .exe extension - mainly to have the same output on UNIX and Windows + std::string binary_name = skipPathFromFilename(opt.binary_name.c_str()); +#ifdef DOCTEST_PLATFORM_WINDOWS + if(binary_name.rfind(".exe") != std::string::npos) + binary_name = binary_name.substr(0, binary_name.length() - 4); +#endif // DOCTEST_PLATFORM_WINDOWS + xml.startElement("testsuites"); + xml.startElement("testsuite").writeAttribute("name", binary_name) + .writeAttribute("errors", testCaseData.totalErrors) + .writeAttribute("failures", testCaseData.totalFailures) + .writeAttribute("tests", p.numAsserts); + if(opt.no_time_in_output == false) + { + xml.writeAttribute("time", testCaseData.totalSeconds); + xml.writeAttribute("timestamp", JUnitTestCaseData::getCurrentTimestamp()); + } + if(opt.no_version == false) + xml.writeAttribute("doctest_version", DOCTEST_VERSION_STR); + + for(const auto& testCase : testCaseData.testcases) + { + xml.startElement("testcase") + .writeAttribute("classname", testCase.classname) + .writeAttribute("name", testCase.name); + if(opt.no_time_in_output == false) + xml.writeAttribute("time", testCase.time); + // This is not ideal, but it should be enough to mimic gtest's junit output. + xml.writeAttribute("status", "run"); + + for(const auto& failure : testCase.failures) + { + xml.scopedElement("failure") + .writeAttribute("message", failure.message) + .writeAttribute("type", failure.type) + .writeText(failure.details, false); + } + + for(const auto& error : testCase.errors) + { + xml.scopedElement("error") + .writeAttribute("message", error.message) + .writeText(error.details); + } + + xml.endElement(); + } + xml.endElement(); + xml.endElement(); + } + + void test_case_start(const TestCaseData& in) override + { + testCaseData.add(skipPathFromFilename(in.m_file.c_str()), in.m_name); + timer.start(); + } + + void test_case_reenter(const TestCaseData& in) override + { + testCaseData.addTime(timer.getElapsedSeconds()); + testCaseData.appendSubcaseNamesToLastTestcase(deepestSubcaseStackNames); + deepestSubcaseStackNames.clear(); + + timer.start(); + testCaseData.add(skipPathFromFilename(in.m_file.c_str()), in.m_name); + } + + void test_case_end(const CurrentTestCaseStats&) override + { + testCaseData.addTime(timer.getElapsedSeconds()); + testCaseData.appendSubcaseNamesToLastTestcase(deepestSubcaseStackNames); + deepestSubcaseStackNames.clear(); + } + + void test_case_exception(const TestCaseException& e) override + { + DOCTEST_LOCK_MUTEX(mutex) + testCaseData.addError("exception", e.error_string.c_str()); + } + + void subcase_start(const SubcaseSignature& in) override + { + deepestSubcaseStackNames.push_back(in.m_name); + } + + void subcase_end() override {} + + void log_assert(const AssertData& rb) override + { + if(!rb.m_failed) // report only failures & ignore the `success` option + return; + + DOCTEST_LOCK_MUTEX(mutex) + + std::ostringstream os; + os << skipPathFromFilename(rb.m_file) << (opt.gnu_file_line ? ":" : "(") + << line(rb.m_line) << (opt.gnu_file_line ? ":" : "):") << std::endl; + + fulltext_log_assert_to_stream(os, rb); + log_contexts(os); + testCaseData.addFailure(rb.m_decomp.c_str(), assertString(rb.m_at), os.str()); + } + + void log_message(const MessageData& mb) override + { + if(mb.m_severity & assertType::is_warn) // report only failures + return; + + DOCTEST_LOCK_MUTEX(mutex) + + std::ostringstream os; + os << skipPathFromFilename(mb.m_file) << (opt.gnu_file_line ? ":" : "(") + << line(mb.m_line) << (opt.gnu_file_line ? ":" : "):") << std::endl; + + os << mb.m_string.c_str() << "\n"; + log_contexts(os); + + testCaseData.addFailure(mb.m_string.c_str(), + mb.m_severity & assertType::is_check ? "FAIL_CHECK" : "FAIL", os.str()); + } + + void test_case_skipped(const TestCaseData&) override {} + + void log_contexts(std::ostringstream& s) + { + int num_contexts = get_num_active_contexts(); + if(num_contexts) + { + auto contexts = get_active_contexts(); + + s << " logged: "; + for(int i = 0; i < num_contexts; ++i) + { + s << (i == 0 ? "" : " "); + contexts[i]->stringify(&s); + s << std::endl; + } + } + } +}; + +DOCTEST_REGISTER_REPORTER("junit", 0, JUnitReporter); + +struct Whitespace +{ + int nrSpaces; + explicit Whitespace(int nr) + : nrSpaces(nr) {} +}; + +std::ostream& operator<<(std::ostream& out, const Whitespace& ws) +{ + if(ws.nrSpaces != 0) + out << std::setw(ws.nrSpaces) << ' '; + return out; +} + +struct ConsoleReporter : public IReporter +{ + std::ostream& s; + bool hasLoggedCurrentTestStart; + std::vector subcasesStack; + size_t currentSubcaseLevel; + DOCTEST_DECLARE_MUTEX(mutex) + + // caching pointers/references to objects of these types - safe to do + const ContextOptions& opt; + const TestCaseData* tc; + + ConsoleReporter(const ContextOptions& co) + : s(*co.cout) + , opt(co) {} + + ConsoleReporter(const ContextOptions& co, std::ostream& ostr) + : s(ostr) + , opt(co) {} + + // ========================================================================================= + // WHAT FOLLOWS ARE HELPERS USED BY THE OVERRIDES OF THE VIRTUAL METHODS OF THE INTERFACE + // ========================================================================================= + + void separator_to_stream() + { + s << Color::Yellow + << "===============================================================================" + "\n"; + } + + const char* getSuccessOrFailString(bool success, assertType::Enum at, + const char* success_str) + { + if(success) + return success_str; + return failureString(at); + } + + Color::Enum getSuccessOrFailColor(bool success, assertType::Enum at) + { + return success ? Color::BrightGreen : + (at & assertType::is_warn) ? Color::Yellow : Color::Red; + } + + void successOrFailColoredStringToStream(bool success, assertType::Enum at, + const char* success_str = "SUCCESS") + { + s << getSuccessOrFailColor(success, at) + << getSuccessOrFailString(success, at, success_str) << ": "; + } + + void log_contexts() + { + int num_contexts = get_num_active_contexts(); + if(num_contexts) + { + auto contexts = get_active_contexts(); + + s << Color::None << " logged: "; + for(int i = 0; i < num_contexts; ++i) + { + s << (i == 0 ? "" : " "); + contexts[i]->stringify(&s); + s << "\n"; + } + } + + s << "\n"; + } + + // this was requested to be made virtual so users could override it + virtual void file_line_to_stream(const char* file, int line, + const char* tail = "") + { + s << Color::LightGrey << skipPathFromFilename(file) << (opt.gnu_file_line ? ":" : "(") + << (opt.no_line_numbers ? 0 : line) // 0 or the real num depending on the option + << (opt.gnu_file_line ? ":" : "):") << tail; + } + + void logTestStart() + { + if(hasLoggedCurrentTestStart) + return; + + separator_to_stream(); + file_line_to_stream(tc->m_file.c_str(), tc->m_line, "\n"); + if(tc->m_description) + s << Color::Yellow << "DESCRIPTION: " << Color::None << tc->m_description << "\n"; + if(tc->m_test_suite && tc->m_test_suite[0] != '\0') + s << Color::Yellow << "TEST SUITE: " << Color::None << tc->m_test_suite << "\n"; + if(strncmp(tc->m_name, " Scenario:", 11) != 0) + s << Color::Yellow << "TEST CASE: "; + s << Color::None << tc->m_name << "\n"; + + for(size_t i = 0; i < currentSubcaseLevel; ++i) + { + if(subcasesStack[i].m_name[0] != '\0') + s << " " << subcasesStack[i].m_name << "\n"; + } + + if(currentSubcaseLevel != subcasesStack.size()) + { + s << Color::Yellow << "\nDEEPEST SUBCASE STACK REACHED (DIFFERENT FROM THE CURRENT ONE):\n" << Color::None; + for(size_t i = 0; i < subcasesStack.size(); ++i) + { + if(subcasesStack[i].m_name[0] != '\0') + s << " " << subcasesStack[i].m_name << "\n"; + } + } + + s << "\n"; + + hasLoggedCurrentTestStart = true; + } + + void printVersion() + { + if(opt.no_version == false) + s << Color::Cyan << "[doctest] " << Color::None << "doctest version is \"" + << DOCTEST_VERSION_STR << "\"\n"; + } + + void printIntro() + { + if(opt.no_intro == false) + { + printVersion(); + s << Color::Cyan << "[doctest] " << Color::None + << "run with \"--" DOCTEST_OPTIONS_PREFIX_DISPLAY "help\" for options\n"; + } + } + + void printHelp() + { + int sizePrefixDisplay = static_cast(strlen(DOCTEST_OPTIONS_PREFIX_DISPLAY)); + printVersion(); + // clang-format off + s << Color::Cyan << "[doctest]\n" << Color::None; + s << Color::Cyan << "[doctest] " << Color::None; + s << "boolean values: \"1/on/yes/true\" or \"0/off/no/false\"\n"; + s << Color::Cyan << "[doctest] " << Color::None; + s << "filter values: \"str1,str2,str3\" (comma separated strings)\n"; + s << Color::Cyan << "[doctest]\n" << Color::None; + s << Color::Cyan << "[doctest] " << Color::None; + s << "filters use wildcards for matching strings\n"; + s << Color::Cyan << "[doctest] " << Color::None; + s << "something passes a filter if any of the strings in a filter matches\n"; +#ifndef DOCTEST_CONFIG_NO_UNPREFIXED_OPTIONS + s << Color::Cyan << "[doctest]\n" << Color::None; + s << Color::Cyan << "[doctest] " << Color::None; + s << "ALL FLAGS, OPTIONS AND FILTERS ALSO AVAILABLE WITH A \"" DOCTEST_CONFIG_OPTIONS_PREFIX "\" PREFIX!!!\n"; +#endif + s << Color::Cyan << "[doctest]\n" << Color::None; + s << Color::Cyan << "[doctest] " << Color::None; + s << "Query flags - the program quits after them. Available:\n\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "?, --" DOCTEST_OPTIONS_PREFIX_DISPLAY "help, -" DOCTEST_OPTIONS_PREFIX_DISPLAY "h " + << Whitespace(sizePrefixDisplay*0) << "prints this message\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "v, --" DOCTEST_OPTIONS_PREFIX_DISPLAY "version " + << Whitespace(sizePrefixDisplay*1) << "prints the version\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "c, --" DOCTEST_OPTIONS_PREFIX_DISPLAY "count " + << Whitespace(sizePrefixDisplay*1) << "prints the number of matching tests\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "ltc, --" DOCTEST_OPTIONS_PREFIX_DISPLAY "list-test-cases " + << Whitespace(sizePrefixDisplay*1) << "lists all matching tests by name\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "lts, --" DOCTEST_OPTIONS_PREFIX_DISPLAY "list-test-suites " + << Whitespace(sizePrefixDisplay*1) << "lists all matching test suites\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "lr, --" DOCTEST_OPTIONS_PREFIX_DISPLAY "list-reporters " + << Whitespace(sizePrefixDisplay*1) << "lists all registered reporters\n\n"; + // ================================================================================== << 79 + s << Color::Cyan << "[doctest] " << Color::None; + s << "The available / options/filters are:\n\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "tc, --" DOCTEST_OPTIONS_PREFIX_DISPLAY "test-case= " + << Whitespace(sizePrefixDisplay*1) << "filters tests by their name\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "tce, --" DOCTEST_OPTIONS_PREFIX_DISPLAY "test-case-exclude= " + << Whitespace(sizePrefixDisplay*1) << "filters OUT tests by their name\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "sf, --" DOCTEST_OPTIONS_PREFIX_DISPLAY "source-file= " + << Whitespace(sizePrefixDisplay*1) << "filters tests by their file\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "sfe, --" DOCTEST_OPTIONS_PREFIX_DISPLAY "source-file-exclude= " + << Whitespace(sizePrefixDisplay*1) << "filters OUT tests by their file\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "ts, --" DOCTEST_OPTIONS_PREFIX_DISPLAY "test-suite= " + << Whitespace(sizePrefixDisplay*1) << "filters tests by their test suite\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "tse, --" DOCTEST_OPTIONS_PREFIX_DISPLAY "test-suite-exclude= " + << Whitespace(sizePrefixDisplay*1) << "filters OUT tests by their test suite\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "sc, --" DOCTEST_OPTIONS_PREFIX_DISPLAY "subcase= " + << Whitespace(sizePrefixDisplay*1) << "filters subcases by their name\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "sce, --" DOCTEST_OPTIONS_PREFIX_DISPLAY "subcase-exclude= " + << Whitespace(sizePrefixDisplay*1) << "filters OUT subcases by their name\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "r, --" DOCTEST_OPTIONS_PREFIX_DISPLAY "reporters= " + << Whitespace(sizePrefixDisplay*1) << "reporters to use (console is default)\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "o, --" DOCTEST_OPTIONS_PREFIX_DISPLAY "out= " + << Whitespace(sizePrefixDisplay*1) << "output filename\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "ob, --" DOCTEST_OPTIONS_PREFIX_DISPLAY "order-by= " + << Whitespace(sizePrefixDisplay*1) << "how the tests should be ordered\n"; + s << Whitespace(sizePrefixDisplay*3) << " - [file/suite/name/rand/none]\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "rs, --" DOCTEST_OPTIONS_PREFIX_DISPLAY "rand-seed= " + << Whitespace(sizePrefixDisplay*1) << "seed for random ordering\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "f, --" DOCTEST_OPTIONS_PREFIX_DISPLAY "first= " + << Whitespace(sizePrefixDisplay*1) << "the first test passing the filters to\n"; + s << Whitespace(sizePrefixDisplay*3) << " execute - for range-based execution\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "l, --" DOCTEST_OPTIONS_PREFIX_DISPLAY "last= " + << Whitespace(sizePrefixDisplay*1) << "the last test passing the filters to\n"; + s << Whitespace(sizePrefixDisplay*3) << " execute - for range-based execution\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "aa, --" DOCTEST_OPTIONS_PREFIX_DISPLAY "abort-after= " + << Whitespace(sizePrefixDisplay*1) << "stop after failed assertions\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "scfl,--" DOCTEST_OPTIONS_PREFIX_DISPLAY "subcase-filter-levels= " + << Whitespace(sizePrefixDisplay*1) << "apply filters for the first levels\n"; + s << Color::Cyan << "\n[doctest] " << Color::None; + s << "Bool options - can be used like flags and true is assumed. Available:\n\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "s, --" DOCTEST_OPTIONS_PREFIX_DISPLAY "success= " + << Whitespace(sizePrefixDisplay*1) << "include successful assertions in output\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "cs, --" DOCTEST_OPTIONS_PREFIX_DISPLAY "case-sensitive= " + << Whitespace(sizePrefixDisplay*1) << "filters being treated as case sensitive\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "e, --" DOCTEST_OPTIONS_PREFIX_DISPLAY "exit= " + << Whitespace(sizePrefixDisplay*1) << "exits after the tests finish\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "d, --" DOCTEST_OPTIONS_PREFIX_DISPLAY "duration= " + << Whitespace(sizePrefixDisplay*1) << "prints the time duration of each test\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "m, --" DOCTEST_OPTIONS_PREFIX_DISPLAY "minimal= " + << Whitespace(sizePrefixDisplay*1) << "minimal console output (only failures)\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "q, --" DOCTEST_OPTIONS_PREFIX_DISPLAY "quiet= " + << Whitespace(sizePrefixDisplay*1) << "no console output\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "nt, --" DOCTEST_OPTIONS_PREFIX_DISPLAY "no-throw= " + << Whitespace(sizePrefixDisplay*1) << "skips exceptions-related assert checks\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "ne, --" DOCTEST_OPTIONS_PREFIX_DISPLAY "no-exitcode= " + << Whitespace(sizePrefixDisplay*1) << "returns (or exits) always with success\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "nr, --" DOCTEST_OPTIONS_PREFIX_DISPLAY "no-run= " + << Whitespace(sizePrefixDisplay*1) << "skips all runtime doctest operations\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "ni, --" DOCTEST_OPTIONS_PREFIX_DISPLAY "no-intro= " + << Whitespace(sizePrefixDisplay*1) << "omit the framework intro in the output\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "nv, --" DOCTEST_OPTIONS_PREFIX_DISPLAY "no-version= " + << Whitespace(sizePrefixDisplay*1) << "omit the framework version in the output\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "nc, --" DOCTEST_OPTIONS_PREFIX_DISPLAY "no-colors= " + << Whitespace(sizePrefixDisplay*1) << "disables colors in output\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "fc, --" DOCTEST_OPTIONS_PREFIX_DISPLAY "force-colors= " + << Whitespace(sizePrefixDisplay*1) << "use colors even when not in a tty\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "nb, --" DOCTEST_OPTIONS_PREFIX_DISPLAY "no-breaks= " + << Whitespace(sizePrefixDisplay*1) << "disables breakpoints in debuggers\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "ns, --" DOCTEST_OPTIONS_PREFIX_DISPLAY "no-skip= " + << Whitespace(sizePrefixDisplay*1) << "don't skip test cases marked as skip\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "gfl, --" DOCTEST_OPTIONS_PREFIX_DISPLAY "gnu-file-line= " + << Whitespace(sizePrefixDisplay*1) << ":n: vs (n): for line numbers in output\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "npf, --" DOCTEST_OPTIONS_PREFIX_DISPLAY "no-path-filenames= " + << Whitespace(sizePrefixDisplay*1) << "only filenames and no paths in output\n"; + s << " -" DOCTEST_OPTIONS_PREFIX_DISPLAY "nln, --" DOCTEST_OPTIONS_PREFIX_DISPLAY "no-line-numbers= " + << Whitespace(sizePrefixDisplay*1) << "0 instead of real line numbers in output\n"; + // ================================================================================== << 79 + // clang-format on + + s << Color::Cyan << "\n[doctest] " << Color::None; + s << "for more information visit the project documentation\n\n"; + } + + void printRegisteredReporters() + { + printVersion(); + auto printReporters = [this] (const reporterMap& reporters, const char* type) + { + if(reporters.size()) + { + s << Color::Cyan << "[doctest] " << Color::None << "listing all registered " << type << "\n"; + for(auto& curr : reporters) + s << "priority: " << std::setw(5) << curr.first.first + << " name: " << curr.first.second << "\n"; + } + }; + printReporters(getListeners(), "listeners"); + printReporters(getReporters(), "reporters"); + } + + // ========================================================================================= + // WHAT FOLLOWS ARE OVERRIDES OF THE VIRTUAL METHODS OF THE REPORTER INTERFACE + // ========================================================================================= + + void report_query(const QueryData& in) override + { + if(opt.version) + { + printVersion(); + } + else if(opt.help) + { + printHelp(); + } + else if(opt.list_reporters) + { + printRegisteredReporters(); + } + else if(opt.count || opt.list_test_cases) + { + if(opt.list_test_cases) + { + s << Color::Cyan << "[doctest] " << Color::None + << "listing all test case names\n"; + separator_to_stream(); + } + + for(unsigned i = 0; i < in.num_data; ++i) + s << Color::None << in.data[i]->m_name << "\n"; + + separator_to_stream(); + + s << Color::Cyan << "[doctest] " << Color::None + << "unskipped test cases passing the current filters: " + << g_cs->numTestCasesPassingFilters << "\n"; + + } + else if(opt.list_test_suites) + { + s << Color::Cyan << "[doctest] " << Color::None << "listing all test suites\n"; + separator_to_stream(); + + for(unsigned i = 0; i < in.num_data; ++i) + s << Color::None << in.data[i]->m_test_suite << "\n"; + + separator_to_stream(); + + s << Color::Cyan << "[doctest] " << Color::None + << "unskipped test cases passing the current filters: " + << g_cs->numTestCasesPassingFilters << "\n"; + s << Color::Cyan << "[doctest] " << Color::None + << "test suites with unskipped test cases passing the current filters: " + << g_cs->numTestSuitesPassingFilters << "\n"; + } + } + + void test_run_start() override + { + if(!opt.minimal) + printIntro(); + } + + void test_run_end(const TestRunStats& p) override + { + if(opt.minimal && p.numTestCasesFailed == 0) + return; + + separator_to_stream(); + s << std::dec; + + auto totwidth = int(std::ceil(log10(static_cast(std::max(p.numTestCasesPassingFilters, static_cast(p.numAsserts))) + 1))); + auto passwidth = int(std::ceil(log10(static_cast(std::max(p.numTestCasesPassingFilters - p.numTestCasesFailed, static_cast(p.numAsserts - p.numAssertsFailed))) + 1))); + auto failwidth = int(std::ceil(log10(static_cast(std::max(p.numTestCasesFailed, static_cast(p.numAssertsFailed))) + 1))); + const bool anythingFailed = p.numTestCasesFailed > 0 || p.numAssertsFailed > 0; + s << Color::Cyan << "[doctest] " << Color::None << "test cases: " << std::setw(totwidth) + << p.numTestCasesPassingFilters << " | " + << ((p.numTestCasesPassingFilters == 0 || anythingFailed) ? Color::None : + Color::Green) + << std::setw(passwidth) << p.numTestCasesPassingFilters - p.numTestCasesFailed << " passed" + << Color::None << " | " << (p.numTestCasesFailed > 0 ? Color::Red : Color::None) + << std::setw(failwidth) << p.numTestCasesFailed << " failed" << Color::None << " |"; + if(opt.no_skipped_summary == false) + { + const int numSkipped = p.numTestCases - p.numTestCasesPassingFilters; + s << " " << (numSkipped == 0 ? Color::None : Color::Yellow) << numSkipped + << " skipped" << Color::None; + } + s << "\n"; + s << Color::Cyan << "[doctest] " << Color::None << "assertions: " << std::setw(totwidth) + << p.numAsserts << " | " + << ((p.numAsserts == 0 || anythingFailed) ? Color::None : Color::Green) + << std::setw(passwidth) << (p.numAsserts - p.numAssertsFailed) << " passed" << Color::None + << " | " << (p.numAssertsFailed > 0 ? Color::Red : Color::None) << std::setw(failwidth) + << p.numAssertsFailed << " failed" << Color::None << " |\n"; + s << Color::Cyan << "[doctest] " << Color::None + << "Status: " << (p.numTestCasesFailed > 0 ? Color::Red : Color::Green) + << ((p.numTestCasesFailed > 0) ? "FAILURE!" : "SUCCESS!") << Color::None << std::endl; + } + + void test_case_start(const TestCaseData& in) override + { + hasLoggedCurrentTestStart = false; + tc = ∈ + subcasesStack.clear(); + currentSubcaseLevel = 0; + } + + void test_case_reenter(const TestCaseData&) override + { + subcasesStack.clear(); + } + + void test_case_end(const CurrentTestCaseStats& st) override + { + if(tc->m_no_output) + return; + + // log the preamble of the test case only if there is something + // else to print - something other than that an assert has failed + if(opt.duration || + (st.failure_flags && st.failure_flags != static_cast(TestCaseFailureReason::AssertFailure))) + logTestStart(); + + if(opt.duration) + s << Color::None << std::setprecision(6) << std::fixed << st.seconds + << " s: " << tc->m_name << "\n"; + + if(st.failure_flags & TestCaseFailureReason::Timeout) + s << Color::Red << "Test case exceeded time limit of " << std::setprecision(6) + << std::fixed << tc->m_timeout << "!\n"; + + if(st.failure_flags & TestCaseFailureReason::ShouldHaveFailedButDidnt) + { + s << Color::Red << "Should have failed but didn't! Marking it as failed!\n"; + } + else if(st.failure_flags & TestCaseFailureReason::ShouldHaveFailedAndDid) + { + s << Color::Yellow << "Failed as expected so marking it as not failed\n"; + } + else if(st.failure_flags & TestCaseFailureReason::CouldHaveFailedAndDid) + { + s << Color::Yellow << "Allowed to fail so marking it as not failed\n"; + } + else if(st.failure_flags & TestCaseFailureReason::DidntFailExactlyNumTimes) + { + s << Color::Red << "Didn't fail exactly " << tc->m_expected_failures + << " times so marking it as failed!\n"; + } + else if(st.failure_flags & TestCaseFailureReason::FailedExactlyNumTimes) + { + s << Color::Yellow << "Failed exactly " << tc->m_expected_failures + << " times as expected so marking it as not failed!\n"; + } + if(st.failure_flags & TestCaseFailureReason::TooManyFailedAsserts) + { + s << Color::Red << "Aborting - too many failed asserts!\n"; + } + s << Color::None; // lgtm [cpp/useless-expression] + } + + void test_case_exception(const TestCaseException& e) override + { + DOCTEST_LOCK_MUTEX(mutex) + if(tc->m_no_output) + return; + + logTestStart(); + + file_line_to_stream(tc->m_file.c_str(), tc->m_line, " "); + successOrFailColoredStringToStream(false, e.is_crash ? assertType::is_require : + assertType::is_check); + s << Color::Red << (e.is_crash ? "test case CRASHED: " : "test case THREW exception: ") + << Color::Cyan << e.error_string << "\n"; + + int num_stringified_contexts = get_num_stringified_contexts(); + if(num_stringified_contexts) + { + auto stringified_contexts = get_stringified_contexts(); + s << Color::None << " logged: "; + for(int i = num_stringified_contexts; i > 0; --i) + { + s << (i == num_stringified_contexts ? "" : " ") + << stringified_contexts[i - 1] << "\n"; + } + } + s << "\n" << Color::None; + } + + void subcase_start(const SubcaseSignature& subc) override + { + subcasesStack.push_back(subc); + ++currentSubcaseLevel; + hasLoggedCurrentTestStart = false; + } + + void subcase_end() override + { + --currentSubcaseLevel; + hasLoggedCurrentTestStart = false; + } + + void log_assert(const AssertData& rb) override + { + if((!rb.m_failed && !opt.success) || tc->m_no_output) + return; + + DOCTEST_LOCK_MUTEX(mutex) + + logTestStart(); + + file_line_to_stream(rb.m_file, rb.m_line, " "); + successOrFailColoredStringToStream(!rb.m_failed, rb.m_at); + + fulltext_log_assert_to_stream(s, rb); + + log_contexts(); + } + + void log_message(const MessageData& mb) override + { + if(tc->m_no_output) + return; + + DOCTEST_LOCK_MUTEX(mutex) + + logTestStart(); + + file_line_to_stream(mb.m_file, mb.m_line, " "); + s << getSuccessOrFailColor(false, mb.m_severity) + << getSuccessOrFailString(mb.m_severity & assertType::is_warn, mb.m_severity, + "MESSAGE") << ": "; + s << Color::None << mb.m_string << "\n"; + log_contexts(); + } + + void test_case_skipped(const TestCaseData&) override {} +}; + +DOCTEST_REGISTER_REPORTER("console", 0, ConsoleReporter); + +#ifdef DOCTEST_PLATFORM_WINDOWS +struct DebugOutputWindowReporter : public ConsoleReporter +{ + DOCTEST_THREAD_LOCAL static std::ostringstream oss; + + DebugOutputWindowReporter(const ContextOptions& co) + : ConsoleReporter(co, oss) {} + +#define DOCTEST_DEBUG_OUTPUT_REPORTER_OVERRIDE(func, type, arg) \ + void func(type arg) override { \ + bool with_col = g_no_colors; \ + g_no_colors = false; \ + ConsoleReporter::func(arg); \ + if(oss.tellp() != std::streampos{}) { \ + DOCTEST_OUTPUT_DEBUG_STRING(oss.str().c_str()); \ + oss.str(""); \ + } \ + g_no_colors = with_col; \ + } + + DOCTEST_DEBUG_OUTPUT_REPORTER_OVERRIDE(test_run_start, DOCTEST_EMPTY, DOCTEST_EMPTY) + DOCTEST_DEBUG_OUTPUT_REPORTER_OVERRIDE(test_run_end, const TestRunStats&, in) + DOCTEST_DEBUG_OUTPUT_REPORTER_OVERRIDE(test_case_start, const TestCaseData&, in) + DOCTEST_DEBUG_OUTPUT_REPORTER_OVERRIDE(test_case_reenter, const TestCaseData&, in) + DOCTEST_DEBUG_OUTPUT_REPORTER_OVERRIDE(test_case_end, const CurrentTestCaseStats&, in) + DOCTEST_DEBUG_OUTPUT_REPORTER_OVERRIDE(test_case_exception, const TestCaseException&, in) + DOCTEST_DEBUG_OUTPUT_REPORTER_OVERRIDE(subcase_start, const SubcaseSignature&, in) + DOCTEST_DEBUG_OUTPUT_REPORTER_OVERRIDE(subcase_end, DOCTEST_EMPTY, DOCTEST_EMPTY) + DOCTEST_DEBUG_OUTPUT_REPORTER_OVERRIDE(log_assert, const AssertData&, in) + DOCTEST_DEBUG_OUTPUT_REPORTER_OVERRIDE(log_message, const MessageData&, in) + DOCTEST_DEBUG_OUTPUT_REPORTER_OVERRIDE(test_case_skipped, const TestCaseData&, in) +}; + +DOCTEST_THREAD_LOCAL std::ostringstream DebugOutputWindowReporter::oss; +#endif // DOCTEST_PLATFORM_WINDOWS + +// the implementation of parseOption() +bool parseOptionImpl(int argc, const char* const* argv, const char* pattern, String* value) +{ + // going from the end to the beginning and stopping on the first occurrence from the end + for(int i = argc; i > 0; --i) + { + auto index = i - 1; + auto temp = std::strstr(argv[index], pattern); + if(temp && (value || strlen(temp) == strlen(pattern))) //!OCLINT prefer early exits and continue + { + // eliminate matches in which the chars before the option are not '-' + bool noBadCharsFound = true; + auto curr = argv[index]; + while(curr != temp) + { + if(*curr++ != '-') + { + noBadCharsFound = false; + break; + } + } + if(noBadCharsFound && argv[index][0] == '-') + { + if(value) + { + // parsing the value of an option + temp += strlen(pattern); + const unsigned len = strlen(temp); + if(len) + { + *value = temp; + return true; + } + } + else + { + // just a flag - no value + return true; + } + } + } + } + return false; +} + +// parses an option and returns the string after the '=' character +bool parseOption(int argc, const char* const* argv, const char* pattern, String* value = nullptr, + const String& defaultVal = String()) +{ + if(value) + *value = defaultVal; +#ifndef DOCTEST_CONFIG_NO_UNPREFIXED_OPTIONS + // offset (normally 3 for "dt-") to skip prefix + if(parseOptionImpl(argc, argv, pattern + strlen(DOCTEST_CONFIG_OPTIONS_PREFIX), value)) + return true; +#endif // DOCTEST_CONFIG_NO_UNPREFIXED_OPTIONS + return parseOptionImpl(argc, argv, pattern, value); +} + +// locates a flag on the command line +bool parseFlag(int argc, const char* const* argv, const char* pattern) +{ + return parseOption(argc, argv, pattern); +} + +// parses a comma separated list of words after a pattern in one of the arguments in argv +bool parseCommaSepArgs(int argc, const char* const* argv, const char* pattern, + std::vector& res) +{ + String filtersString; + if(parseOption(argc, argv, pattern, &filtersString)) + { + // tokenize with "," as a separator, unless escaped with backslash + std::ostringstream s; + auto flush = [&s, &res]() + { + auto string = s.str(); + if(string.size() > 0) + { + res.push_back(string.c_str()); + } + s.str(""); + }; + + bool seenBackslash = false; + const char* current = filtersString.c_str(); + const char* end = current + strlen(current); + while(current != end) + { + char character = *current++; + if(seenBackslash) + { + seenBackslash = false; + if(character == ',' || character == '\\') + { + s.put(character); + continue; + } + s.put('\\'); + } + if(character == '\\') + { + seenBackslash = true; + } + else if(character == ',') + { + flush(); + } + else + { + s.put(character); + } + } + + if(seenBackslash) + { + s.put('\\'); + } + flush(); + return true; + } + return false; +} + +enum optionType +{ + option_bool, + option_int +}; + +// parses an int/bool option from the command line +bool parseIntOption(int argc, const char* const* argv, const char* pattern, optionType type, + int& res) +{ + String parsedValue; + if(!parseOption(argc, argv, pattern, &parsedValue)) + return false; + + if(type) + { + // integer + // TODO: change this to use std::stoi or something else! currently it uses undefined behavior - assumes '0' on failed parse... + int theInt = std::atoi(parsedValue.c_str()); + if (theInt != 0) + { + res = theInt; //!OCLINT parameter reassignment + return true; + } + } + else + { + // boolean + const char positive[][5] = { "1", "true", "on", "yes" }; // 5 - strlen("true") + 1 + const char negative[][6] = { "0", "false", "off", "no" }; // 6 - strlen("false") + 1 + + // if the value matches any of the positive/negative possibilities + for (unsigned i = 0; i < 4; i++) + { + if (parsedValue.compare(positive[i], true) == 0) + { + res = 1; //!OCLINT parameter reassignment + return true; + } + if (parsedValue.compare(negative[i], true) == 0) + { + res = 0; //!OCLINT parameter reassignment + return true; + } + } + } + return false; +} +} // namespace + +Context::Context(int argc, const char* const* argv) + : p(new detail::ContextState) +{ + parseArgs(argc, argv, true); + if(argc) + p->binary_name = argv[0]; +} + +Context::~Context() +{ + if(g_cs == p) + g_cs = nullptr; + delete p; +} + +void Context::applyCommandLine(int argc, const char* const* argv) +{ + parseArgs(argc, argv); + if(argc) + p->binary_name = argv[0]; +} + +// parses args +void Context::parseArgs(int argc, const char* const* argv, bool withDefaults) +{ + using namespace detail; + + // clang-format off + parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "source-file=", p->filters[0]); + parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "sf=", p->filters[0]); + parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "source-file-exclude=",p->filters[1]); + parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "sfe=", p->filters[1]); + parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "test-suite=", p->filters[2]); + parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "ts=", p->filters[2]); + parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "test-suite-exclude=", p->filters[3]); + parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "tse=", p->filters[3]); + parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "test-case=", p->filters[4]); + parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "tc=", p->filters[4]); + parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "test-case-exclude=", p->filters[5]); + parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "tce=", p->filters[5]); + parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "subcase=", p->filters[6]); + parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "sc=", p->filters[6]); + parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "subcase-exclude=", p->filters[7]); + parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "sce=", p->filters[7]); + parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "reporters=", p->filters[8]); + parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "r=", p->filters[8]); + // clang-format on + + int intRes = 0; + String strRes; + +#define DOCTEST_PARSE_AS_BOOL_OR_FLAG(name, sname, var, default) \ + if(parseIntOption(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX name "=", option_bool, intRes) || \ + parseIntOption(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX sname "=", option_bool, intRes)) \ + p->var = static_cast(intRes); \ + else if(parseFlag(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX name) || \ + parseFlag(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX sname)) \ + p->var = true; \ + else if(withDefaults) \ + p->var = default + +#define DOCTEST_PARSE_INT_OPTION(name, sname, var, default) \ + if(parseIntOption(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX name "=", option_int, intRes) || \ + parseIntOption(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX sname "=", option_int, intRes)) \ + p->var = intRes; \ + else if(withDefaults) \ + p->var = default + +#define DOCTEST_PARSE_STR_OPTION(name, sname, var, default) \ + if(parseOption(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX name "=", &strRes, default) || \ + parseOption(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX sname "=", &strRes, default) || \ + withDefaults) \ + p->var = strRes + + // clang-format off + DOCTEST_PARSE_STR_OPTION("out", "o", out, ""); + DOCTEST_PARSE_STR_OPTION("order-by", "ob", order_by, "file"); + DOCTEST_PARSE_INT_OPTION("rand-seed", "rs", rand_seed, 0); + + DOCTEST_PARSE_INT_OPTION("first", "f", first, 0); + DOCTEST_PARSE_INT_OPTION("last", "l", last, UINT_MAX); + + DOCTEST_PARSE_INT_OPTION("abort-after", "aa", abort_after, 0); + DOCTEST_PARSE_INT_OPTION("subcase-filter-levels", "scfl", subcase_filter_levels, INT_MAX); + + DOCTEST_PARSE_AS_BOOL_OR_FLAG("success", "s", success, false); + DOCTEST_PARSE_AS_BOOL_OR_FLAG("case-sensitive", "cs", case_sensitive, false); + DOCTEST_PARSE_AS_BOOL_OR_FLAG("exit", "e", exit, false); + DOCTEST_PARSE_AS_BOOL_OR_FLAG("duration", "d", duration, false); + DOCTEST_PARSE_AS_BOOL_OR_FLAG("minimal", "m", minimal, false); + DOCTEST_PARSE_AS_BOOL_OR_FLAG("quiet", "q", quiet, false); + DOCTEST_PARSE_AS_BOOL_OR_FLAG("no-throw", "nt", no_throw, false); + DOCTEST_PARSE_AS_BOOL_OR_FLAG("no-exitcode", "ne", no_exitcode, false); + DOCTEST_PARSE_AS_BOOL_OR_FLAG("no-run", "nr", no_run, false); + DOCTEST_PARSE_AS_BOOL_OR_FLAG("no-intro", "ni", no_intro, false); + DOCTEST_PARSE_AS_BOOL_OR_FLAG("no-version", "nv", no_version, false); + DOCTEST_PARSE_AS_BOOL_OR_FLAG("no-colors", "nc", no_colors, false); + DOCTEST_PARSE_AS_BOOL_OR_FLAG("force-colors", "fc", force_colors, false); + DOCTEST_PARSE_AS_BOOL_OR_FLAG("no-breaks", "nb", no_breaks, false); + DOCTEST_PARSE_AS_BOOL_OR_FLAG("no-skip", "ns", no_skip, false); + DOCTEST_PARSE_AS_BOOL_OR_FLAG("gnu-file-line", "gfl", gnu_file_line, !bool(DOCTEST_MSVC)); + DOCTEST_PARSE_AS_BOOL_OR_FLAG("no-path-filenames", "npf", no_path_in_filenames, false); + DOCTEST_PARSE_AS_BOOL_OR_FLAG("no-line-numbers", "nln", no_line_numbers, false); + DOCTEST_PARSE_AS_BOOL_OR_FLAG("no-debug-output", "ndo", no_debug_output, false); + DOCTEST_PARSE_AS_BOOL_OR_FLAG("no-skipped-summary", "nss", no_skipped_summary, false); + DOCTEST_PARSE_AS_BOOL_OR_FLAG("no-time-in-output", "ntio", no_time_in_output, false); + // clang-format on + + if(withDefaults) + { + p->help = false; + p->version = false; + p->count = false; + p->list_test_cases = false; + p->list_test_suites = false; + p->list_reporters = false; + } + if(parseFlag(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "help") || + parseFlag(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "h") || + parseFlag(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "?")) + { + p->help = true; + p->exit = true; + } + if(parseFlag(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "version") || + parseFlag(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "v")) + { + p->version = true; + p->exit = true; + } + if(parseFlag(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "count") || + parseFlag(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "c")) + { + p->count = true; + p->exit = true; + } + if(parseFlag(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "list-test-cases") || + parseFlag(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "ltc")) + { + p->list_test_cases = true; + p->exit = true; + } + if(parseFlag(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "list-test-suites") || + parseFlag(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "lts")) + { + p->list_test_suites = true; + p->exit = true; + } + if(parseFlag(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "list-reporters") || + parseFlag(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "lr")) + { + p->list_reporters = true; + p->exit = true; + } +} + +// allows the user to add procedurally to the filters from the command line +void Context::addFilter(const char* filter, const char* value) +{ + setOption(filter, value); +} + +// allows the user to clear all filters from the command line +void Context::clearFilters() +{ + for(auto& curr : p->filters) + curr.clear(); +} + +// allows the user to override procedurally the bool options from the command line +void Context::setOption(const char* option, bool value) +{ + setOption(option, value ? "true" : "false"); +} + +// allows the user to override procedurally the int options from the command line +void Context::setOption(const char* option, int value) +{ + setOption(option, toString(value).c_str()); +} + +// allows the user to override procedurally the string options from the command line +void Context::setOption(const char* option, const char* value) +{ + auto argv = String("-") + option + "=" + value; + auto lvalue = argv.c_str(); + parseArgs(1, &lvalue); +} + +// users should query this in their main() and exit the program if true +bool Context::shouldExit() +{ + return p->exit; +} + +void Context::setAsDefaultForAssertsOutOfTestCases() +{ + g_cs = p; +} + +void Context::setAssertHandler(detail::assert_handler ah) +{ + p->ah = ah; +} + +void Context::setCout(std::ostream* out) +{ + p->cout = out; +} + +static class DiscardOStream : public std::ostream +{ +private: + class : public std::streambuf + { + private: + // allowing some buffering decreases the amount of calls to overflow + char buf[1024]; + + protected: + std::streamsize xsputn(const char_type*, std::streamsize count) override + { + return count; + } + + int_type overflow(int_type ch) override + { + setp(std::begin(buf), std::end(buf)); + return traits_type::not_eof(ch); + } + } discardBuf; + +public: + DiscardOStream() + : std::ostream(&discardBuf) {} +} discardOut; + +// the main function that does all the filtering and test running +int Context::run() +{ + using namespace detail; + + // save the old context state in case such was setup - for using asserts out of a testing context + auto old_cs = g_cs; + // this is the current contest + g_cs = p; + is_running_in_test = true; + + g_no_colors = p->no_colors; + p->resetRunData(); + + std::fstream fstr; + if(p->cout == nullptr) + { + if(p->quiet) + { + p->cout = &discardOut; + } + else if(p->out.size()) + { + // to a file if specified + fstr.open(p->out.c_str(), std::fstream::out); + p->cout = &fstr; + } + else + { +#ifndef DOCTEST_CONFIG_NO_INCLUDE_IOSTREAM + // stdout by default + p->cout = &std::cout; +#else // DOCTEST_CONFIG_NO_INCLUDE_IOSTREAM + return EXIT_FAILURE; +#endif // DOCTEST_CONFIG_NO_INCLUDE_IOSTREAM + } + } + + FatalConditionHandler::allocateAltStackMem(); + + auto cleanup_and_return = [&]() + { + FatalConditionHandler::freeAltStackMem(); + + if(fstr.is_open()) + fstr.close(); + + // restore context + g_cs = old_cs; + is_running_in_test = false; + + // we have to free the reporters which were allocated when the run started + for(auto& curr : p->reporters_currently_used) + delete curr; + p->reporters_currently_used.clear(); + + if(p->numTestCasesFailed && !p->no_exitcode) + return EXIT_FAILURE; + return EXIT_SUCCESS; + }; + + // setup default reporter if none is given through the command line + if(p->filters[8].empty()) + p->filters[8].push_back("console"); + + // check to see if any of the registered reporters has been selected + for(auto& curr : getReporters()) + { + if(matchesAny(curr.first.second.c_str(), p->filters[8], false, p->case_sensitive)) + p->reporters_currently_used.push_back(curr.second(*g_cs)); + } + + // TODO: check if there is nothing in reporters_currently_used + + // prepend all listeners + for(auto& curr : getListeners()) + p->reporters_currently_used.insert(p->reporters_currently_used.begin(), curr.second(*g_cs)); + +#ifdef DOCTEST_PLATFORM_WINDOWS + if(isDebuggerActive() && p->no_debug_output == false) + p->reporters_currently_used.push_back(new DebugOutputWindowReporter(*g_cs)); +#endif // DOCTEST_PLATFORM_WINDOWS + + // handle version, help and no_run + if(p->no_run || p->version || p->help || p->list_reporters) + { + DOCTEST_ITERATE_THROUGH_REPORTERS(report_query, QueryData()); + + return cleanup_and_return(); + } + + std::vector testArray; + for(auto& curr : getRegisteredTests()) + testArray.push_back(&curr); + p->numTestCases = testArray.size(); + + // sort the collected records + if(!testArray.empty()) + { + if(p->order_by.compare("file", true) == 0) + { + std::sort(testArray.begin(), testArray.end(), fileOrderComparator); + } + else if(p->order_by.compare("suite", true) == 0) + { + std::sort(testArray.begin(), testArray.end(), suiteOrderComparator); + } + else if(p->order_by.compare("name", true) == 0) + { + std::sort(testArray.begin(), testArray.end(), nameOrderComparator); + } + else if(p->order_by.compare("rand", true) == 0) + { + std::srand(p->rand_seed); + + // random_shuffle implementation + const auto first = &testArray[0]; + for(size_t i = testArray.size() - 1; i > 0; --i) + { + int idxToSwap = std::rand() % (i + 1); + + const auto temp = first[i]; + + first[i] = first[idxToSwap]; + first[idxToSwap] = temp; + } + } + else if(p->order_by.compare("none", true) == 0) + { + // means no sorting - beneficial for death tests which call into the executable + // with a specific test case in mind - we don't want to slow down the startup times + } + } + + std::set testSuitesPassingFilt; + + bool query_mode = p->count || p->list_test_cases || p->list_test_suites; + std::vector queryResults; + + if(!query_mode) + DOCTEST_ITERATE_THROUGH_REPORTERS(test_run_start, DOCTEST_EMPTY); + + // invoke the registered functions if they match the filter criteria (or just count them) + for(auto& curr : testArray) + { + const auto& tc = *curr; + + bool skip_me = false; + if(tc.m_skip && !p->no_skip) + skip_me = true; + + if(!matchesAny(tc.m_file.c_str(), p->filters[0], true, p->case_sensitive)) + skip_me = true; + if(matchesAny(tc.m_file.c_str(), p->filters[1], false, p->case_sensitive)) + skip_me = true; + if(!matchesAny(tc.m_test_suite, p->filters[2], true, p->case_sensitive)) + skip_me = true; + if(matchesAny(tc.m_test_suite, p->filters[3], false, p->case_sensitive)) + skip_me = true; + if(!matchesAny(tc.m_name, p->filters[4], true, p->case_sensitive)) + skip_me = true; + if(matchesAny(tc.m_name, p->filters[5], false, p->case_sensitive)) + skip_me = true; + + if(!skip_me) + p->numTestCasesPassingFilters++; + + // skip the test if it is not in the execution range + if((p->last < p->numTestCasesPassingFilters && p->first <= p->last) || + (p->first > p->numTestCasesPassingFilters)) + skip_me = true; + + if(skip_me) + { + if(!query_mode) + DOCTEST_ITERATE_THROUGH_REPORTERS(test_case_skipped, tc); + continue; + } + + // do not execute the test if we are to only count the number of filter passing tests + if(p->count) + continue; + + // print the name of the test and don't execute it + if(p->list_test_cases) + { + queryResults.push_back(&tc); + continue; + } + + // print the name of the test suite if not done already and don't execute it + if(p->list_test_suites) + { + if((testSuitesPassingFilt.count(tc.m_test_suite) == 0) && tc.m_test_suite[0] != '\0') + { + queryResults.push_back(&tc); + testSuitesPassingFilt.insert(tc.m_test_suite); + p->numTestSuitesPassingFilters++; + } + continue; + } + + // execute the test if it passes all the filtering + { + p->currentTest = &tc; + + p->failure_flags = TestCaseFailureReason::None; + p->seconds = 0; + + // reset atomic counters + p->numAssertsFailedCurrentTest_atomic = 0; + p->numAssertsCurrentTest_atomic = 0; + + p->fullyTraversedSubcases.clear(); + + DOCTEST_ITERATE_THROUGH_REPORTERS(test_case_start, tc); + + p->timer.start(); + + bool run_test = true; + + do + { + // reset some of the fields for subcases (except for the set of fully passed ones) + p->reachedLeaf = false; + // May not be empty if previous subcase exited via exception. + p->subcaseStack.clear(); + p->currentSubcaseDepth = 0; + + p->shouldLogCurrentException = true; + + // reset stuff for logging with INFO() + p->stringifiedContexts.clear(); + +#ifndef DOCTEST_CONFIG_NO_EXCEPTIONS + try + { +#endif // DOCTEST_CONFIG_NO_EXCEPTIONS +// MSVC 2015 diagnoses fatalConditionHandler as unused (because reset() is a static method) + DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4101) // unreferenced local variable + FatalConditionHandler fatalConditionHandler; // Handle signals + // execute the test + tc.m_test(); + fatalConditionHandler.reset(); + DOCTEST_MSVC_SUPPRESS_WARNING_POP +#ifndef DOCTEST_CONFIG_NO_EXCEPTIONS + } + catch(const TestFailureException&) + { + p->failure_flags |= TestCaseFailureReason::AssertFailure; + } + catch(...) + { + DOCTEST_ITERATE_THROUGH_REPORTERS(test_case_exception, + {translateActiveException(), false}); + p->failure_flags |= TestCaseFailureReason::Exception; + } +#endif // DOCTEST_CONFIG_NO_EXCEPTIONS + + // exit this loop if enough assertions have failed - even if there are more subcases + if(p->abort_after > 0 && + p->numAssertsFailed + p->numAssertsFailedCurrentTest_atomic >= p->abort_after) + { + run_test = false; + p->failure_flags |= TestCaseFailureReason::TooManyFailedAsserts; + } + + if(!p->nextSubcaseStack.empty() && run_test) + DOCTEST_ITERATE_THROUGH_REPORTERS(test_case_reenter, tc); + if(p->nextSubcaseStack.empty()) + run_test = false; + } + while(run_test); + + p->finalizeTestCaseData(); + + DOCTEST_ITERATE_THROUGH_REPORTERS(test_case_end, *g_cs); + + p->currentTest = nullptr; + + // stop executing tests if enough assertions have failed + if(p->abort_after > 0 && p->numAssertsFailed >= p->abort_after) + break; + } + } + + if(!query_mode) + { + DOCTEST_ITERATE_THROUGH_REPORTERS(test_run_end, *g_cs); + } + else + { + QueryData qdata; + qdata.run_stats = g_cs; + qdata.data = queryResults.data(); + qdata.num_data = unsigned(queryResults.size()); + DOCTEST_ITERATE_THROUGH_REPORTERS(report_query, qdata); + } + + return cleanup_and_return(); +} + +DOCTEST_DEFINE_INTERFACE(IReporter) + +int IReporter::get_num_active_contexts() +{ + return detail::g_infoContexts.size(); +} +const IContextScope* const* IReporter::get_active_contexts() +{ + return get_num_active_contexts() ? &detail::g_infoContexts[0] : nullptr; +} + +int IReporter::get_num_stringified_contexts() +{ + return detail::g_cs->stringifiedContexts.size(); +} +const String* IReporter::get_stringified_contexts() +{ + return get_num_stringified_contexts() ? &detail::g_cs->stringifiedContexts[0] : nullptr; +} + +namespace detail +{ +void registerReporterImpl(const char* name, int priority, reporterCreatorFunc c, bool isReporter) +{ + if(isReporter) + getReporters().insert(reporterMap::value_type(reporterMap::key_type(priority, name), c)); + else + getListeners().insert(reporterMap::value_type(reporterMap::key_type(priority, name), c)); +} +} // namespace detail + +} // namespace doctest + +#endif // DOCTEST_CONFIG_DISABLE + +#ifdef DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN +DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4007) // 'function' : must be 'attribute' - see issue #182 +int main(int argc, char** argv) +{ + return doctest::Context(argc, argv).run(); +} +DOCTEST_MSVC_SUPPRESS_WARNING_POP +#endif // DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN + +DOCTEST_CLANG_SUPPRESS_WARNING_POP +DOCTEST_MSVC_SUPPRESS_WARNING_POP +DOCTEST_GCC_SUPPRESS_WARNING_POP + +DOCTEST_SUPPRESS_COMMON_WARNINGS_POP + +#endif // DOCTEST_LIBRARY_IMPLEMENTATION +#endif // DOCTEST_CONFIG_IMPLEMENT + +#ifdef DOCTEST_UNDEF_WIN32_LEAN_AND_MEAN +#undef WIN32_LEAN_AND_MEAN +#undef DOCTEST_UNDEF_WIN32_LEAN_AND_MEAN +#endif // DOCTEST_UNDEF_WIN32_LEAN_AND_MEAN + +#ifdef DOCTEST_UNDEF_NOMINMAX +#undef NOMINMAX +#undef DOCTEST_UNDEF_NOMINMAX +#endif // DOCTEST_UNDEF_NOMINMAX diff --git a/histogram.cpp b/histogram.cpp new file mode 100644 index 0000000..1bdf9b3 --- /dev/null +++ b/histogram.cpp @@ -0,0 +1,8 @@ +// histogram.cpp +#include "histogram.h" +#include "histogram_internal.h" + +// Определение функции make_histogram() +std::vector make_histogram(const std::vector& numbers, size_t bin_count) { + // Реализация функции make_histogram() +} diff --git a/histogram.h b/histogram.h new file mode 100644 index 0000000..ecb89f0 --- /dev/null +++ b/histogram.h @@ -0,0 +1,11 @@ +// histogram.h +#pragma once + +#include + +struct Input { + std::vector numbers; + size_t bin_count; +}; + +std::vector make_histogram(const std::vector& numbers, size_t bin_count); diff --git a/histogram_internal.h b/histogram_internal.h new file mode 100644 index 0000000..0dad90a --- /dev/null +++ b/histogram_internal.h @@ -0,0 +1,6 @@ +#pragma once + +#include + +// Объявление функции find_minmax() +void find_minmax(const std::vector& numbers, double& min, double& max); diff --git a/lab01.cbp b/lab01.cbp index d541ad7..3c8efad 100644 --- a/lab01.cbp +++ b/lab01.cbp @@ -32,7 +32,12 @@ + + + + + diff --git a/lab01.depend b/lab01.depend new file mode 100644 index 0000000..5ae9fa7 --- /dev/null +++ b/lab01.depend @@ -0,0 +1,7 @@ +# depslib dependency file v1.0 +1717401938 source:c:\users\Александр\desktop\lab3\histogram.cpp + "histogram.h" + +1717401531 c:\users\Александр\desktop\lab3\histogram.h + + diff --git a/lab01.layout b/lab01.layout new file mode 100644 index 0000000..88c6ae6 --- /dev/null +++ b/lab01.layout @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/main.cpp b/main.cpp index 3d70f0c..af5922f 100644 --- a/main.cpp +++ b/main.cpp @@ -1,92 +1,35 @@ +// main.cpp #include #include +#include "histogram.h" + using namespace std; + const size_t SCREEN_WIDTH = 80; const size_t MAX_ASTERISK = SCREEN_WIDTH - 3 - 1; -int main() -{ +Input input_data() { size_t number_count; cerr << "Enter number count: "; cin >> number_count; - vector numbers(number_count); + Input in; + in.numbers.resize(number_count); + cerr << "Enter numbers: "; - for(size_t i = 0; i < number_count; i++){ - cin >> numbers[i]; + for (size_t i = 0; i < number_count; i++) { + cin >> in.numbers[i]; } - size_t bin_count; cerr << "Enter bin count: "; - cin >> bin_count; + cin >> in.bin_count; - double min = numbers[0]; - double max = numbers[0]; - for (double x : numbers) { - if (x < min) { - min = x; - } - else if (x > max) { - max = x; - } - } - vector bins(bin_count); - double bin_size = (max-min)/bin_count; - for (size_t i = 0; i < number_count; i++) { - bool found = false; - for (size_t j = 0; (j < bin_count - 1) && !found; j++) { - auto lo = min + j * bin_size; - auto hi = min + (j + 1) * bin_size; - if ( (numbers[i] >= lo) && (numbers[i] < hi) ) { - bins[j]++; - found = true; - } - } - if (!found) { - bins[bin_count-1]++; - } + return in; +} - } - size_t max_count = bins[0]; - for(size_t x: bins){ - if(x > max_count){ - max_count = x; - } - } - if (max_count > MAX_ASTERISK){ - for(size_t count: bins){ - size_t height = MAX_ASTERISK * (static_cast(count) /max_count); - if (count < 10){ - cout << " " << count << "|"; - } - else if (count < 100){ - cout << " " << count << "|"; - } - else{ - cout << count << "|"; - } - for(size_t i = 0; i < height; i++){ - cout << "*"; - } - cout << "\n"; - } - } - else{ - for(double x : bins){ - if (x < 10){ - cout << " " << x << "|"; - } - else if (x < 100){ - cout << " " << x << "|"; - } - else{ - cout << x << "|"; - } - for(size_t i = 0; i < x; i++){ - cout << "*"; - } - cout << "\n"; - } - } +int main() { + auto in = input_data(); + auto bins = make_histogram(in.numbers, in.bin_count); + show_histogram_text(bins); return 0; } diff --git a/main.exe b/main.exe new file mode 100644 index 0000000000000000000000000000000000000000..e95533b45a55c7a7fe66415b58a2e1b8d22c9b2d GIT binary patch literal 88044 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 M?NwjbXkQ8ZANFq%vH$=8 literal 0 HcmV?d00001 diff --git a/main.o b/main.o new file mode 100644 index 0000000000000000000000000000000000000000..bc8fd4fdb74f0aaacda553b8fb66558fed6250be GIT binary patch literal 55252 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 mtGb#1 literal 0 HcmV?d00001 diff --git a/obj/Debug/Lab3/histogram.o b/obj/Debug/Lab3/histogram.o new file mode 100644 index 0000000000000000000000000000000000000000..1f76598f7396d4abac8d8f25168d35a936423574 GIT binary patch literal 30352 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 literal 0 HcmV?d00001 diff --git a/obj/Debug/histogram.o b/obj/Debug/histogram.o new file mode 100644 index 0000000000000000000000000000000000000000..6cdfacb46668b2217f193a8f32e837832dda17c0 GIT binary patch literal 81356 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 literal 0 HcmV?d00001 diff --git a/obj/Debug/main.o b/obj/Debug/main.o new file mode 100644 index 0000000000000000000000000000000000000000..1496b9420e0c8760ec1e0702962d6eac32ead7d7 GIT binary patch literal 134044 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�+ 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 F{|EGE^HTr- literal 0 HcmV?d00001 diff --git a/obj/Debug/text.o b/obj/Debug/text.o new file mode 100644 index 0000000000000000000000000000000000000000..50c6bb4dd27fdf3c51629d8b82d7c3bacecaeb0f GIT binary patch literal 50509 zcmeHw33wdEwQlu{MjE*#S(a=g$+9)F5=g=l?lq7ANk}dsxk+wTLKZ?2g0qlER^ETk>8|b>&B(Ih zzW2WGz4^ZGI(_PFb!zFV>Z+Qq_f{+Vc|NJs#SEpX%2;?b#<1L~)0Fy92Cm!Wc>{ug z+IC@OS4XVFMVAb0R@;tMc1EM_xLo&x1z$#VL-7Ke5%(oCo*43)D@Wt$COr^a4xuHMW>wu>RUgkAz++c}yg=@@3#;mu#S!}PbX5Xfb1vj9Yl@>IlK12G zh^5zyXQr#Eu5}YOtdn|#@%HKHuk>2M)w=+@i z@`kv4BfZ~FkjHu(YvW2F>HSjz9qVmuic1IS{X6J}67@EX*Xz##vFj)0s=C(gXwthV zfzB$YaT!8-t3h`pQEyGnGPgXc=c^LriQd|{nnZdxC(w!Bx@vcZklvl3`*ecd%1~@z z$koD-ybD41f<;I5s97~1tE#D6?v{7guu}U#_Z^GwWv0tr2f9Xg#=QiA{;Lq_`ZX(} ztBjbZat_tvp(!XICKr}g4GQC6*ni+ZEHq4mbn`a%D1OM=f6*A*?+lA*FQA@4NZu%f6V~$@UHy+IJ%~~#B}Tc z-R~0UcC}vni`L73dl$sCUb`jtafGV%`YpM?5&+1Sw_2}n$wl}w!k1gGeM+LPZMiq$ z`L5Q(yKn(-(Oh*bR_A_hy`IE<4{YCSUD@*1K|e#Jz{T{N$6Bwv^C!7uYJ1po4>yD zWurCoX+k~yhpBsxf#@ww^!#|DuY%|+f0%l~Q{7V+J^zQPxxPhk*B_>ygXbzA72Bu@ zSxb+>)?>e!2ZC%u{$c8QPib^3m1z21)>_j-3Yi#be?D^rUYk*XsMhPbWwspt6q|nS z)AD$D#w?<+68xL~Tvrmq5t|c~3S-kYt=UR?KC}qcSEa1!QZIofA`AlQFO7j}q48PasuO&#S zR50;9N}W0@{1#w(H&ZwjV+E=v6jtCW1I&Iw%3G0iE@s!~A}DBm>Sb@M@#6W<7-=4# zXryt4{48HqQv)bG)J~yQ+C?qXal7;(>Nq@Hef~4>gZsy}@35sRWxrR)%Wd|bjNnAM z_WNsBd+U|IUDSH`{<6!E09cKtV;35>Eyt|FMk#;ZFwOKR!^jg>W()q#q>*l>S%b!cEH zT#JW}q0qk7{R5$a{*FLJPoSbZJQ@lQ#v%j#QI)oS#d*7;;i2ex$A0sRU;qB)*MENe zyba;#{@B3ad7C>r>&~O0Yh`F~P@RB~O>y6X(O8#Ss=_OkS{)3AMn`LERA!p7wvKN1 zgVN(`Hp_QWc)j`gEfgL$*YfiX=D8exz`U5lBj%kP9yOoj@J90$4nJtB-Ng4Hb1sJ; zHrI1_lX)J8H=F$&-eTU#;jQNL9NuQW#^Jx1v(6^|+s!5p?=*K=;QMYqvpdL z-fe!1!;hJN1_zm-;9R7#-6o)UGFC(1h^BXgL=M#`=%&cc%iZSyX1`3QEvT>SkmXSlw zoaUQj(m|9N?YV4AO+$jbnz}gguyET! z^&%AifUJBU1Q;x(4Jtaix`x8tDq~mHq+~T|7NmL}+J$mlEK-rQp>S`wBN|p2yC)~E zrrKeGz!-#GtOeF1t|yE{@5zR3o7!V1O6W3SfFMfVQxNnV2|G+4o6R1(Fk@1wlsxtL zkQ=xpc_N^5(gJpDYOf9|V>IW~@9)v{tHsfgjzN`i)#Sv~6LrfDc3dv%u>dwK#pV6xq@6+hMk$R5=GbI(x&xu5hd)(i>I&;mqu~h>=KapA-8`X74Q0&@cwKap0 za40+yiH4=}3=M~3cF%;q!+0|;0J+K_E#V}z%G}yOQVq2w2zPZ3_o%Ge?D?U69jLHF z9g$dc6~QnyJKxCq+*GC3cB9^97aLYPTH_*Z3$-lkh(;ql{Vh8}J2r*Xb__9%Dp+7N zkQwv7gj@CuqjWVIy)ifI ze*zuSg+jnGld5 zMI1p}h|24Z^mnQ34JjDwDVo^EcC^<76{-BV&1;Y(%ME=42a%8+siaVJ%eD~7QEMUN zHIhMqI}xFQ!7-J6ZYmiR?UqrIGhW6lE*70BMA*e*TWBoAW(;Z(oD?bxYSs^_cwCf1 zL``jMASi_muMgyIgp1dMBxobjqvkzB1#_lRN_mw*_*uDx8B8Ux1_IF@aN|OyMG?>2 zB#%q$tUnTWEG2jNfSWsF7t_+6Emgh*xnJxMu-4B%UQWxh9sB&RZuaAjVKsTk(BEAzuC812eDB9)m`4%xg? znc1g#QkkDlB}FRp$hJ)*V=4$4pC=gvxDz3j`Kzg9NM&|p{56RTsmw2>5TPsc$k+&* zu^L~)#0;*?R2Hnt{QVRn##QDR7q9n_pfJ*7Rp$2@r8I4mL3pXmKTahup)!vs;(3AO zv1g?+zmk$WzB0$`Vw#6K!Ul;|Qkj35LW)(HNwHIzf1QHZRheUK>!__tDl^q8<;kfw z_ro2YoEq~w4r|R%aad=*z+r>=ks!q{GoR;hx%o#98_hWv5`KmGI@7H*3mCu3Y~gUV zImF@VW*gHrn;(RuJvr;liKS@+51E@gDZI>lABXQXcX!eA`^`ZP51ZF;c!PNthaWH>{;ip>a`=~-n|cWU*O`jLzs;P_ z;ooOoMB%hfGiN7-A@eHo)wHmA9pk&ryE*JJzsTV}^V=Lo%-?Z%k?G$@^!v?H4tvdw z9QK(PaoBHO!{Gt*J`RV>Z*mwl|IA^`oEahhVY7+DgJzJ!QFD~TG4lwAmzp2t@R0ch z4zDy{;_xc-w;Wz=nir9r_nM^~zRz6A;Wg%N4zD#Yf-^Cb>HVE&fF zBc{2Zu?Z=A9fqG4mM?zc}+14xgNv)2mc>ZzP7XJH`xo{-Ws_ zr{TRBjSWTmdxB2Hl%nZ%dAR**rc$bo=)MD}C%C&-%95Sb| zE!d8Ux9-ruaDPlq4|!&#p&}46I@TWwcLjM6gduTcKuz!ROsAnT95-W!*#xDY8SUoF zR0(J7l*#cK=b4)rA2xeA+-Dxt#C&l4-1wCc)aZz0?23~utx1H zP)@I;;$GAI^q_l%%d{j*ep@>ww58F)V_1V3$1$~RmQsgt8EueZ zd<2l1w+FLL1y>qN$<7RloCmBbxY;P9PM0Wp%I<7TQqi_e2U*uY<8&GHsLFUUE_iSt z(iI#;&Z5y&1xJmFLNqaJH;^%3KasYY>aK8H%C?P-sf&v3bWtiLakJhgH@$Hpd5wJ? zqd^+qU<5=nv*efuN!(V-?z|{IL16Y{pr58fFfG&{9s)Et=FE)Xd!#CO>qKhmmQPBO zWdvnKJ@Q?Qm`Agc1y>uhY4BAx6z;?zKFB^$1)nhHQ|9Fa;5-5_C$t*|4-D~3Bt_Y> znnqo4Qjo1d5iIa*&$gWk8&-omcyMRP`f*zi9s;PC`-8Lp=*uh5n279^gw#`v$D=u#j z<&Ve+osp}7iOCgQ?>kXiU;PPHi(u%0<@%(xw zH$8-|CnI!`RGv2{R#X>94ueTXH?Ce>qGG|h3M$^3DD_;VZU@KR#Kp-JuD_jtOA66< z!1Ys`(>O}$683+dfPG9&E5#cT7c1rAx?0HgdhDhose@tgnCRXC=FT_)Vt`1=IFS@C zxHp0Sqgnma{BQoIvR>ebP1nE%p*B@rF~m&0caknpOC!h<39-s^&?w?bEJ@3!CX!|gte&q_3ocHR z!2<82x*>*AhrrWooJQGaWDuQ*wkPPuy9udAg*Dy>(i^qd2PxIU`NNb(ZDqz|VEUS7 z{G7x1a!N*4X?go?uuffICx`S(N<_ImpEcfWQf`S@2lgFW1X>%;|1MZxvDu}`;S~#okNdb= zlVFZ4cR)rwLFP|ih%$#u@|ZJY=4(`5b|zN|Zq5v5-VVm|G&5(2Fh^1{r|^Ur^HIpU zU&|v$r~>-@;(1SUdG>@Y3hbCNege)nG`B9UmWcZ%7Lm#>qhS%gnBo!#u}#Z(q6J+P z{^BI>+W+$8h^3$>ny`^38bZF{2^0!Y%#P z6gE5JNvh#pjQ$@k%S%J-rsK&itEX7ou2o=KM~rNjUl{+ALaEKkDi4C|J&wwdRTq{>M|jKUiR}N;C$T0%?4+s;H?jd#mxCTaQ(@}Y3IX?6wJ#*Iw#of$|dLzedR40Y=srxr z?hoRNY&WKmJiW<<)zrn&!HvcPkoK@GQTan1gB_trY)pBEQ+dNC0XH{(Z-Dzvl3=w6 zeS^e)X$tm+FvWwH7jZ4Az%q4Q!n+ur3J>9PeBrvJuN17M;&}A(j4-$ciIXY{cN$d5 zZIp`xM(ts0Drc^vr@NCoA~FgY#BMx*+oK6``iOJTSbnP`=aCf2VL`-i{F!c*R#Le3E%^!H$G$-Z!Czw$hpLP`xS*mP0CIL{f7wLM;*zXMtOt>h`H?TFb)x(r;`6Q|=E z=KMtp?ZV25cmizCCMfM5!fcT898a#dfuoV1?9IP{*Ql~oE5F71w-kysFY8_ozSYDl z<*2iRJeHm&qsxTWtDa(QrGsEP=qMG&Y0NnOZDw<_%1?spAxEXmUzDU!NwH8_)Q2Sg z3{0;%Dur=gDwP)JQsSIljhRPWlFEXIPrTkO6*cB&u->iNUw|w$MgSE~LV8&F=WR1+>&V!7id20Z(&7=Q&6wr_8N zst4lLIlWguI#l=)=b7(ITHzWvdb0T`{`F%+Y(6e0dFU^SmgaXuOZzgb&>Vo0%i|Oo zRC4fEq$SIqvy&^cmnhR%@nLZPo0dR>4wWCmf_!wnBgwfNIGSq38{m7>=2g_@cSm|r z$n`i(d5$HQQPVh{n5MkY`ftEy-JQ6^cTP5u_^xnw$8c{fPQzD|YpA7Jo$>Vae)$BX ze;f-3y6aRRZEY&@jx z5alr_zE&&e+LhdCSolgE%)$+xSdLWVa@qw)KX;UZSo5hoA=WIeU zp1z!W6;OpANm`z$hEJ~Pl+w&Cr)OQGQd@9|hp03wQF8ygqNKe+8cxqAq2uv5Jq9aV zcq=q|u1Vn~>a5aAx}a74X`%-2x#SxFux4FN!vMV$mn4U$v)(@)8br+p-wid`XP`!* z;+l9hS51K$J^NdszZ_=VjS1o2F^ackha@Q+3Eq@TtGBA=ydXmcq~?X-jqdc-!o+~ z+s{l{%=U9r7P0-pltpZ>nzFdgf!D(G>n2t%uVy zh0}SFr1N8x{{4bqNNMhM()=oY^_xJ4-V*{P?>SW^_I8nkoYM)3-?{=#zdTh<_O6x$ zO?DX>SI$wuQDSzjaY{^RyHjEqo~Xo}1>z*$v(?cmGSTn_mxdOU0lQ2xJdp-o0Y5%} zYz@(U14A)u=@Ak#=X56_2X;DY7@kN?7l{@n%D@6=Xq>8G5+TI@? zu|I@Pw4ADVg&A6h66-+`F5XIgAE$EF)Wr$W%d1|8Wq-uw&FOLszk$y!pq>~CYm*$y^FF&Cx+%wK>TRViELjuYD zPKO5j(opnJVfib+{gR#Bn!BX|r=BG&E1Xk1g}yd<5Z;f~Sro3f!Xhjeqi0%$*8T^4 zJ65}CxvXpD7k)*tHgkuzDl>Phue4|;vmSdDvd|; zb2@0lsjKX!l3ndEVSWic)ViShD2d!fMTc&x5+s8|1A`qswCaG@yL*GIen9p zip|dLD4-6fOQ3bO0}m(EoWYY2=;pKp@{Z;?D;j7uVa6Z|Fn1s4tZbl#lH7fq)7-EZ z8DB(=$egte9e}6G8p9NQcDzsL#BzQCS?M^n0xLM@46j`a@p?$%T2Zp(|JXo4?V7CW z|E8|K@_YZ{F)!Gx)B%hQL&HP(h!<1dzk8-}C*4yp9}f5Wy*SXrU3F8;2q%7kZjq%g zXK%!TQ@Fe@QQcj~BIOIEt2Hp;|9ZTZ;oHA zyoK^5;}jHjg;7dLk5ST!kAS$mKVx0=iuR^^YuCl;s#v4Evrk#sU<}Gghw*;gZq&+V zE+=KBEcX=BFi35|?_jm@Gl+bR#ByGU*hTL^Y(()=gcWUA351Kq8hq@;Obo-6x8hV~ z_x0H(-vqh0+p?92t$zn%Et6k|$hT~zmbp%-pb_Na>~;2 zX);Q!1hqj%3mVf+xTKZP6CODqK=#w*mEy%a=)7Qd5es2TSEqP`okWXI6H49#UYcTb z8i)Qcf2AAOCbx9%*mPEV5M8)&U-fndcUI%0Ui&&ZcVN8j#+yS(A>EXU`h&sF;Ye>R z(jPq7!7J8yBX+KlP6Jw%L1R*TQ+CO`rL+t%<4oLg{TazSuquOSa{WFh8skWnK|{fG zKysE!$(nhL7Z&N!_1=Tfb0<)^CcrE4;cR*ykk_!myIcl@RXZ9qW8CzJS(^Y zB_vN88Qj8V_lB^;qbrPVFa-abkxOTIqzSgSmwLvbK~?hag7*`CUq^oz8F9=gUIW@J z!bQ4N$x}w|K0KE(FBp3UhQ?IMb4K1Mu&srpr#G@6jL(Z|zfsuNN!^7YHm0bOuLw5F z0OdgcL7Hppb++e~eAV!ClI&>Ay0~J$Cb0!}Y#+MwPSRhH*nkzQO1^GPThXr6BBPM= zu*OCE4WX^Jqg2U%82Qa0ZZrx9nOc>+XcV3SOfzA6`|y#mF!C}{T2!`{{AnYPN|Ild1w}$IX0ew%Xn1!bYJRMvXY=}C+Xj_h z^01Nn4-z=C8LL-@xm-MATNXpge@?3U6bw&kHV1m5Hp9FBslWLzK@? z_1Nd9Eq|y|);>X%LC-$FRG5soDpp0)U34{4b@rh`Nqvta${>O&vXzRMMOoE`w9~d| z>v<{{C$%R~F@^Fxvnw2m&@u$xm8AleQj;=c`v!)iDA`dAX9rcFiqZbeo}q!^K}>+E zKs94>GpT)`ti&$SzD}H86{z8ef=uc7hQ@S6Ek^`0sW2vJt>dUg9F?HCo};Qc%F*7y z*v8DkfhZRE;_D0T1XO`#jBd{C4`UGPpqDecm2K@F>Ien9B0V^aMgKM}nP57Z!(wRbVCK+cU9I%uT+E(K~^TCtuC@T_gr3 z!|hSny@rvyiP%A&&d9S-A}ITOekyT3{}1>cLe}LPex3dDcGv;zIl-V^!+0T%&%Y1Y zsn}21Ioz$POUtLwzVA#vFR*kmI|ff7G|Z(-GO6fc=N7-aOP6wFZf3B%x1&duR&ZJGUs25*f5@L*2N0go|nCXNWVWvHTDPS7LoFkZG!bGB7QTY8_K?QJl9!xIl>%`_dyl4<} zjc+PtNd_G|n${T`7=iKE`|>^y9Gy5SJ?yk@?1-Wmua{$D6hk+-kn&pMqpCE^JDpyN zbT+9$0J95aTKC{E%kYT|I=9rI=Exll5!qfg=!X=|H%revkfwEyM7og2w~5ho)G2d| zm1g(IAXa6@P*B=DK1vmxfhq(fX@&wtG}O@#g84!~hoia)(yVl5h>dh+s+iZr5!68{ z^-Ek@U*`~gH!pp^FOT|1^y%B+8$B7f;1S+w0qpa$b3rfeJuD1#@Txc|feVtO^r=*p z{)?pZXGBRih+2h&5CO}AyKWF+GtRb!G2}LZq^DWF&lKC~Y*)AMIhGSQMF@7;1Zu?# z=m5`M!|tRbV8vo_r^LERnNHxkyp^vK_9ii(aN^x}Gpemgu#fVPUbqtm00i2vr+9>gK;%;I*W|vEgMS6b{ z>Cr({fZ1Z<4ddCnsT-zB!$RVxY5Z-KwZ;ba ztI|c17CO<`NsASY?0r2g_aE>O9dzu7u^M)^Y#2muq!m)%j!r>NMl{+z)Tc_9N%H83 zWJi(qY-|9<^{6gu^usvn)=%tqlQVb{zeiK2s@tthTh`|u7Z z^3A23qO+bQDI}UbKG->g94V7{Is@8CD#zpCaq!QVcsd(8fghs;Rk~23>B#6fc5)K2 ze^}yad4jpFACdl(oUlf=5z^>6t>(n9;aI+j#3126oA`(3u%B(3p5<^_)-F@ zJABnNJfQQV6RCWDI!^ka-{+@uRDFIr8aj*bBj}6w($Ia8b+&4`s%D}rzULYqIhB^y z==uC1Ki%m7RiB>@4$aNYK<}*|yTTg-c5f6tQ_NBD$sF7-&CT`MG~lAcBS&Av4aZm0 zYG~`6$VQWncHEk^qTqLkgKcz*UzYy@+;hYMS&tr4V{Q03U<~rEbjq#N@9L{Ai}rW-E|5^vt@{ z{9Sg0wRlgf*u97*)4<_GV5UqaImC#wi)faFC}`*vbWJ_Y|5`3hE&2Rk=uql^fC6Kt z;UR2;!o=9X{zzCYxMVt=xAvYNAzn^^_xWD}d>RtOQ+vVv;W5-}jBOUqGfMu6D4(B* z(}Qc#ZNmDok%6HuwJ4BHwae!(>BNEEQ!yw%h`jNaugs&9*fI|c55!dYDjBI|4u$(v z`D%VhQ|UrlzQz{-<@hd?pemnj6!nWMZ8i$Tz$EkErq^LQiM; zIrv^xej_IPpq$S3v+$i!jO|1FRQXNDw5#ztd6lAQd5qk+x5+n(Kvuqv;1CrOIv3C( zRB0%rs{D3i8kKH3D^S`PqEs}pMeeHdI}C1u=m>%3d{6g}8&OdabtPs0MX7hW28?E-n*vZX%Odoo={Al^++6 z&{>KybZ~cfaf}iMcjdp6w9ryiXK<&|xKyh0Cq4722-5;p*V1p zmee8YOA$Qsak)P{YeM zNerD3X~%T;V!s|Hz9ojvjI?7=)9!rjjjSq8ZRY zU#C>r`5vw_bb4iCfw$BQg+KGUzK%8lIciH ziRMZ!Z9_MDDD0P@5S^om2!dZe$bN~1QEbXOJ=}iLS(;)2H7#)W2ZWc-))YL=nQ`yD z?1)4y!pBq2%$q#9bmS%{MVYp@&XEMrA)L0O&|1@Yuk2$YfX?LbvY~lHX}S zAepM{1u2Vko+t}cGI0j4f89#|e#AHh6cb{$Ed!#9jvf`OxnZ^@p=_dqLPY11ia}Pq zPSGVoKx^8a6j^g!(SBRZRYFB8-i3)sAxU>c#A9#H3-vCD z&?@=_UG@~5?d@8jq=QQxZwrynPe(t}hh@A>sNcTi)A=-%Pm4tDdH;FRM5E+e6O%8~ z>lDW~TTE)ngFGirM~}+PB^_3(YIO8NGYCN^lCpM=p+8Gm@|o!*>X?qW%%~_rXA*;F z`32h7?`UZ`D|mL>hMleWbElkhK%VLK+tFLr?g_4K-`TRGt$h=Y>an6RUgaN#!C0%B z<);5R%kmTG^V1s8EI*xZndPTL0<-+L@m=t=zAwxF9^8F? zI_xUTA1T4MGCv&!mt|oH_W9{-C7+)T_RI3m2oQ~6Xca}4|C42OZ=X+hI>4#gFL=89 z7?bf7jH>q2$wNLrEn&%^WhGhuTHKM4%|Osft}KqL#o~#Sd!evNse%7Hr9~YfuT4md zjZ-%9oten1^>NEGYU?oyOS(0sEz*L2wZb=^7WLXn{H-T`qn8^e$J{a6qTU2E{&MjU z8R;wssfFwWz4pe6w(b@TKj~9G{)T68pdU*BYpPq6u^I=(ZJ4x>uB1Y`A*9}zyp(WK zDKA3GhWvyCrFLXrOC$c%gTI@$sME2hA~0#z5a$88@mla5nsnYpb>96Pe3xBzX+n}y z8!Mco@i;i&p1jIYt#T{sClwd|9lB!DWkw{B>b;PFGDE*Z=LR=!-nwor{i)1wXRs|8 zJh!F^pDIU!`!LQNz~2@11?i6qu?jPBZ4v*GCbb!J=!Tzh`;`X7U}^vZX}xI=Px!2k zE;x_7X(F#4_7ANd|BT!30Cq21 za8&J`g9p!1zgqbm%=)5>ewwEL3b1i$SV=2Lf90YLXj)pt#k78dB z3MBuG+s}%+Ht*@RY-eDaXJ3@oo;8y^hyiAZFhkxZ!T8mAbbM4F`0Zb<1sJzq3@jV* zoMps$_bkGnzPV^?H0>u6X;(g5q12aMv;j@~N&+pc!oK83yv4lT7*4#_NK&HlcSz|c zQP?eQx|kWax8Ts*D5NydF==o{fSObsG>rudSoK9+7|+pt=i|M_zX2=!L<|koDEc1L zgrc>y(SzfCS;V%|OAPBQu%oveDt#O*bU=dl=#fL}{5vfH^hek9YaE6kOI`j966QVn z=pmQ1W|y>U+|n*PwCcwq1EpJlz`k IyGK3ya|bZFIl*hRmk5~x5#8O4QS^@YH# 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 +#include +#include "text.h" + +const size_t SCREEN_WIDTH = 80; +const size_t MAX_ASTERISK = SCREEN_WIDTH - 3 - 1; + +// Определение функции show_histogram_text() +void show_histogram_text(const std::vector& bins) { + size_t max_count = bins[0]; + for (size_t x : bins) { + if (x > max_count) { + max_count = x; + } + } + + if (max_count > MAX_ASTERISK) { + for (size_t count : bins) { + size_t height = MAX_ASTERISK * (static_cast(count) / max_count); + if (count < 10) { + std::cout << " " << count << "|"; + } else if (count < 100) { + std::cout << " " << count << "|"; + } else { + std::cout << count << "|"; + } + for (size_t i = 0; i < height; i++) { + std::cout << "*"; + } + std::cout << "\n"; + } + } else { + for (size_t x : bins) { + if (x < 10) { + std::cout << " " << x << "|"; + } else if (x < 100) { + std::cout << " " << x << "|"; + } else { + std::cout << x << "|"; + } + for (size_t i = 0; i < x; i++) { + std::cout << "*"; + } + std::cout << "\n"; + } + } +} diff --git a/text.h b/text.h new file mode 100644 index 0000000..5f645ca --- /dev/null +++ b/text.h @@ -0,0 +1,7 @@ +// text.h +#pragma once + +#include + +// Объявление функции show_histogram_text() +void show_histogram_text(const std::vector& bins); diff --git a/unittest.cbp b/unittest.cbp new file mode 100644 index 0000000..711e768 --- /dev/null +++ b/unittest.cbp @@ -0,0 +1,43 @@ + + + + + + diff --git a/unittest.cpp b/unittest.cpp new file mode 100644 index 0000000..8337712 --- /dev/null +++ b/unittest.cpp @@ -0,0 +1 @@ +// diff --git a/unittest.depend b/unittest.depend new file mode 100644 index 0000000..8183e38 --- /dev/null +++ b/unittest.depend @@ -0,0 +1,13 @@ +# depslib dependency file v1.0 +1717403849 source:c:\users\Александр\desktop\lab3\histogram.cpp + "histogram.h" + "histogram_internal.h" + +1717402377 c:\users\Александр\desktop\lab3\histogram.h + + +1717403849 c:\users\Александр\desktop\lab3\histogram_internal.h + + +1717405577 source:c:\users\Александр\desktop\lab3\unittest.cpp + diff --git a/unittest.layout b/unittest.layout new file mode 100644 index 0000000..d4d3d2a --- /dev/null +++ b/unittest.layout @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + +