From d1e7113dda0b8d6727b56dd4d667acf57ce4564f Mon Sep 17 00:00:00 2001 From: Nick Berardi Date: Sat, 19 Feb 2011 21:19:05 -0500 Subject: [PATCH] updated to cassandra 0.7.2 interface --- lib/NuGet.exe | Bin 0 -> 292864 bytes lib/nunit.framework.dll | Bin 135168 -> 135168 bytes lib/nunit.framework.xml | 10228 ------------------------------------- lib/nunit.mocks.dll | Bin 20480 -> 0 bytes lib/pnunit.framework.dll | Bin 6656 -> 0 bytes 5 files changed, 10228 deletions(-) create mode 100644 lib/NuGet.exe delete mode 100644 lib/nunit.framework.xml delete mode 100644 lib/nunit.mocks.dll delete mode 100644 lib/pnunit.framework.dll diff --git a/lib/NuGet.exe b/lib/NuGet.exe new file mode 100644 index 0000000000000000000000000000000000000000..037267229f0f6e04b739571b661e986f651ad9b7 GIT binary patch literal 292864 zcmb@v37j2Onf_m0_x8QFtGff8Zn_g9Bp``Jn#3pqorn++*>_L^0)hgv7u*{VXu54h z+z@f!5sf%5xR0Z#l=fg0M}vK>D7qS{5~pr?A=fLoev>5K=-08!4Z-BsZ}cGP(Dknt zZM;2-_O$=Hzxl00qO;+9vaaEqG;(73=Tr4)sC>V`>-WKz8g&1yh@#`WchTC-m)^9Q z`}?oV>!rHpat9b$E?V2}w4VmSWJ5+{dM&@De;ZNA+V-VaX8=uBWHw$m?tnYGl+7+B zQyle2$NaW0+VjZ|{rVaN>OQ&hJOp^+k(FCjUr0&EI-5C3IsoG{o3H zuFZ(bZ4|In7c74(u%ec+*eF>3R$xUfV<`?Se=D$}ma+YYY5u%ec+ zO~dlH0xN16i=DuizZF)!|>9VwEU4uBFth5ykZs6XAC}h05=W zhaP(9nJJ2ZjB>sH!_lFhy_|nM&+mNtQ%quae7rBB5bTN~D%w<3Z&Sz8f?&~D1y>dFHFu9RGuoLfZ8%*wN>VeU zF_Y2O)H#B;GD=ED2cpFTDUFe22$YQUFH33RWW&RNkU$G28P^o*3Dn3W9Y<1f8A!QD z>(;NumX=J02iClC8$N>jG1CE6RvH>iq8~*g^)Y#nT>NF?lm3}fChkPSzR_eP8E z8)@VPrw!cJShkcxqiCCSy(&t-N7g01(oT#t3YqbM!&ATb%R>*<8rfk$quQt&<;Wm5 z(uYRl=(Ew)kL;6<`1kX^<@I=ftNgk~q}YIj5e8#3sa5%J(p!(g<_4)X8XKBAh95V{ zMz)6Xh6hkPZ3V=u`loJH>m&7XB(1x4h}uV@@nn23j!)0_ zrv7J49jgN4)0-J=ljSQm%C;MByF;zq($|$C`!QxY{NHVsBic%p}7dwr<2 z=3VjWD3Ky3Hd!AyBbvgXAz7QA5e?*KuWBvd|85!$7l7GYeMb6G zxB1s675%z{8%Soba_ifQM`XxY68>jevzVXxM0RB+roy zF7A`-N;2F@QnSCoN~wZ%X%GjHIK1r^9}bufesdKplgO2mp@d{`d}!)klAEo!;0F7!{(-HC8(Sxz$S54Q zGEPfg4QQl3(*L^6N~S{(WCtn{Pq*Pn(jxVeBz=%7$e+IjYqG7 z3C27UwJ!yq#OZnv7Es_D-H{k6!S0SCsnL0MEox+^#2U%lpH>;$xgH+qj5MOgC|)K` zvAIUJ2e(*dwiq~h9|vtbdo+TM_Q&aCxifD#W@C{PI!K(1HU==SMmDBwD8XYtZ)56; zezBkmorzl3FTMmUR#AZ!wTz|vg2gH-u%Ze}oP@Vau*zC`Jkm>vqwB__?~+E(#W%+3 z6N);{;C|{kWx{GbLnjZEB~HO*qO23hWcrrtZ)~8KM^Wc*Ar3}U<`^B)`M8nd^f=*v z!5<%9hg#$Dv`X93nuw=W$d*=y*Jv<+Oj`+->PgwBl#uiI*9Guc-J^e;5_-ZKEA%94 zS*Lg>uvk_FR@5@~K*Q3y6XOq0sD5{UIbs=G~5^PnJ^Dp6ctL>Grc3`ehy8b*?F`e}*nyj~CTv zFhhR(XXthoqRrgFD5CQ?SWygK;GWJ|-lTb}2?$>W2p<&n(u5RdQM4I+E9B+L1I z7R-erDl_}zzgKlggjhGQ5~r( zDQxLRe89t1C_8Cx@6fZ6s}YO1d7%j^cW>9>uMZdU_!lMZ?5!`y>5p z9<)i1f^Xeg%sUWbx_DX*8j=|BWtE%Y(4&tBdbOu4LBCiKZMi4eqC@*uU*vO#QR35+ zp~J6e*X40^UF}8q%D(m*E;T47-8QSIPoYqlzDd&8_TDt;Vl?X+19KyLyU2O$(TM2W zvb_;P8nn@)K& z(#q!|mZg!Q`^Io?ABRzar8d#Bk-+S&H8EhqY-ueS$Y9tAE~%`~0hbhU5{fOUyL|yH zi^3gN#UO8;0oTe~D5j^q1~em7z2J_q61+q zjU*2JqJxk-_KT7JSsYYhxR+8|=LxWw6Lm^bSh|MtNv#yj;xY>KWd&MPN9)SbO@iOB zK=3{obr%TomXKAAG?r{~!@8Zjl3~#}<#hz~`6fyWm9ebNy?2_m{Q|g^mmAu5iamCa z^m1CBj5IfmG&Th+=8zj~Sb0E=M-!lT7at(BygKw>Ek5)#NIt*%+rBS8Cnnrg4Ba1X zlt!D=u%7RlSRM-7eacL7PCI4Esn^JqxI7V>v&aLrSmjj zV$cLuvMpPeMl10@8zozuwk5*&p!^%F0{z+61&o(N2^x+A!l_B^*2t?1SROU_QFCQgZh;)mdXJ0yM42F&NRK zqp35w?aH%)>mB7ue}n?O*fQJi?3``Xq$CxZS1SF1%CM2Z$Kr>PLPT}V8zM(VpNt;! zTfYvrf0WrBJ-5Q{L`D5YKRMd4^wdTa$&RAI~Wk7rO# z8SS!ldqwAC6O1sjiOrCMu@#}GQS-PunmSm@N@oEMwO)M1gsuGn#rt59<8Rp)TVvX1 zt~C7_sLreTa|=_s^cF5wTC=WdrYF&^oyTDE!?tqcBkOz& z8tdEhfDqHwv}U1s&PZfsx8H#in7xmBTGW-EMfqJP?!KizQpcyOkIXWV)Z^?xBumc* znLV)wp8KMjVn(f5jV!rS4MRL{n!HyxjR`BwuhS=yzjF?M=ES*YU5Z|h9pYUpY)jO# z9iC{|BPy|?ma&)seDRbOd_^r|X=<<=E3u*qdu4atl|F~2h~kO#x%xFbUlkpPontE4 zd7M5AdOpu)h|xS-lzg7e07ablJP4)WV3-o-uWASqX4TW;(>VnPG!&<|DetfN<8!a! zf$>&$8cACQCR*7UcHxH6%C6@QpUP5)ip5|)LAGFRno9(0s~58jXaAqzLil()*B--M zDluJv4hn841ogVeC$pT@Z%?;~9C-jGk^Cu??j)BxZU(7@M=CB-0A$#z@~hjKPJN#8 zifH_udX&-iadbG^3XfFLuA-LP^)$oceJZe`ma+6u_##CGR#eCO_)a(ezmD%ORyA2F zV<5EZ=6!0&#s$2?NVF9%;7i%rCUw8Kkugpt4PPk0?I!8Vl^Maj|1OO#zy|5r^0jx8 zl>UW3?lS0`wtg9=f^m8mX-4XzCA?@Cdde&8%Ij9^$|*bWc&B0W zX8hv_D-Ej=Dyf-YA7p(#J0F(xvr*8^Zp6_Hz04Bw;0P(v!k9Arh}@5`Sr4OvE~&K?s!D?yTFx7AEr-@sr$ZY#ePwX z>VT4Vz5v3B37SgPpcD{uYppK8T0#W-hj79 z#`I}ovQ6Tx;z^(jq-{NgEJMRQq~dl}R7)=rZ*Ih6Z!p-sc;I#5fjZ%_{O}T!P#<_C zfyZSzj}Sl6XBY#YE*54PVNa3DyFAD0`ilH|we)qR-|QbLKsJ#mx|UvD!e3LyU+XtV zU^(XF(htjcRDoj7;TS~Nu>rZR5N z`Yp)WGp^f2tzSWVGFZ|A|B-2T1#+s7p@1E=Ig9}%6U@TW00_Ic80PC?48^q-OsOh3w$ zB$Mk)ESgN(1ZDXOXLz7B4lTPyq_~-W4)7{# zE9$K0zHgvBx+LZOvbVf+nk>D=9as;=IrE{Yvz#YH!vnQ!Z#^j*XrBZkdzfAGjM{!j z>swzJG}O5jo*Ix@Sj=W5k_VM?qq?Cd-RikM_a0B+*P@f_RE#@@LWkNgOXnVe^e4OdfRS@j+yQ1N#h4Tob}lBnN)xC zI$%koKbw=qH0l|VD!=ix`cC$2y9vut`M5U};Wr~3JHEM=-3BDthPRIfeRXT7nLP*E z=0jmTJdoYaH4!KisThiq1KNi)HJQh%q?2#Ow5YvLL^SHK>u-*Bew!G&a0#lAmVw0zl@chqvtw z!NfD6%PGo{@1J1qsWEtOmA5*~1MteD_;ljPhyiLOnkCv~Tha^R?ZL8UU{U)KSj1MU zS8`*WJHQM!=aj*-h0QZ$a9`zXWQ=9-Jsnu@*tLHY&xtBuBN_JLmjQ%v?hBZ1`zaJ@ zxw02gP&aGN+wrtvz`uGSc*e(o|N27kS9bBW#scJFpbh+wS_q!8IN)a%f@i!A`1daa z&yXJQ4=e=Fa31h`H5X7{#`b`J!b0#w1_6KbLhy{`0soPO;2FyU{`U*PZ|>sPv=&fb z#^u1D{foP|Pn>AL-?I=rV|T!Rbs>1h@qqusLhuau0e|qo0^}zs2>7cOf@fq6_}4E4 z&uAa;4=e;vL=fDr7`Z87q{8JW!XP^xDdlrIc%nbMk7J_FS z4ETM97a%`lV!)rZ5IjR$z`tN2_&dA!4=)7&;x7J|3&G#j#V=p9fcn0qi$7~2_?LF^ zcP#|}vM&Bh3&Fp0OTeGA5Ipm;fag7c-H&&K`vL#)h2WW62K>Ot0{Am$3HZk@1pme^{`!UB@9E#7o{9%iCS>KvX61E6$%Z$m&4KV@os`Z#pfEr`dH6vvSaPTgn7evo_i#lEY% zRD|V=2d5Ym;D_sAC%2thTW2@&h~YaI9d^%eqC4}+c$a)=J8I+ z+ZjQ7Jd#<&56zcJnHd_Q4^B`g-jzTFNZQDTNNMRM0dSD1Erzn@$NoY@-}do+&_q}T zadhVqfPLkJvJ$cCSG{XBRsdT$6I_Nlm$0LsZElNjus&D@;iJtZI=xA!rvxyOVAA$np z$EClTZS3Rq7|Clpbxr2Rk;};2Lxo$TyNQ>#CdAx*Tv&@9UDt|U1Qpp?V|gOhSYEri zLK%D`?z^en>^Y=|J*4{}O6NUL=R`HumY!1Tq+ZHodnjw@*if=OIoDoF8fq(G1ZG}eWBo_e)d(5Ze-McAeKE4N@6-6G^j)q0ytj-0*AM>E`b00yZCb#g8x7l|MG?4|GJBRU?KPqcJZTQ3y}YBy7+T?T@fSGLATU)b7#g{_I|wx+9H+uD*!TT{7SdX=r+Z?c^WW=C5S zwQOr2G2QH2*qYLJWosYp;?34}hyPd?Z??8O{NHx*W^22{6Ry!$On$Sq-Qhpc#hb0| z4*$t6-fV4m_)m55W^22`%ho;(e&@F4WAA5#nSSz)?a4STs<)?OKWo_YE3u*q+x45C z=W~|lg33Iimid3)uoqThMXlohcb4a($~>Z$`G3K%7gu6MEn~lE*r!%vMJ;2$WZ0)w zVnuaqJ;K#TUj|Fy^c2YXHnccBkscCyll;IcBGnlo$QWXzuUHwERF)xXS)RW)?4^}h zQOnq`8uqeEtf*z|KN$Aul~_^B*smG(@=C0zW$aeNGM3KwDX2lzGWP3+y|NN3Y8m?t z!(LU16}620reUwH#ER#OAI!$`ytyKbB*jHT-w~WnK8us+?IE;RaQ&=N<7!5SEGSBRfPQ> z{Y3s8vt%-_CthYreW55EyWv!X6|IyNCvr;>ANJc|%h$eHQ zdOPb%FD6X(@`!D{NdvJlEY!s33TT9=7Y&tIFjrQB0zDd8@;Nx}jvGwQTIei@>_wv*nTU6;bj357G z*y}5?qL#7$Y}j@sR#ai18+Sg7urnR*3%NTdvL!HmYmilCCt&{tejL?f8V>uaLfXG7 zZG6Wx>FgIK$L2~oM3o%N)*Thy6-Uet;S;C#Qg$sn3NhTEQ5xI!uLHoU*V|2*Ipzp3 znAKaLvB0vqPrzDs7`NHytQqN->;WJqVPfu#Tj}q}w9@unuZmk4`=pB#FyJAPBgpSm zG28x3_IMzD7dKivsAZoQIhSxCJKl<~4P~2C^^6x_rTJHSQ$eCC-$7y!{hA0k3h9xp0H; zfo125WSJAyyN9mQF&L)AJZyV!lorSAeNbxrSLBoCC|4_QAKA`ZQe4~qM(&%s3`-b6 zAK8(v4p$e)A!MI}3*L$h_gRHH>pNq23 z@>fvZE$vw~Ob1 zi2--vCU?^oVee&D8riY<7V2*dUdd+98TsLhrXLs^dx z`Zc^_d*x-vK8yg-f2gc^{rf_BI8#zQ{R~wo`v*yj-;Zta>^EN58K#cFxfjs9=|p19V2>uYo0N$ z`T0&Q*=rJJ%=l>rr8qh%T6vu}Ib;8uX`t2R_XBuO+MN8y^h=$Bul}ucIz5eK-HNOI zIM=5u`8mZ0uAlFUx>#E5W+u-8#eiH4~ zDmKHlhmE>4r|RV@w#99g4VrxwvD{t}@p|+-Ym*x$(LmBze*{W}gNv^EGc$YP0{bc6fGWJBV6tvp*R2wo0t1W$Ygf`0TiFd06uV40a%E7zC3vSQT-@KlC_SO6y z02gquX$=XqN5Dr{3fSCbR(dhb6M$`ZSkY@?1(D z9zfGAgKfJ&mGZ0yTuZ<6e-I~^r!RWKu|XcLPYrr(Sq#MaiACFaq_&T$mJ8VVu2k?n z{rNtB2B)Nlkj7NLCr$aJhTN|-Y+Yht2mVWh3kvvQm-R%6{G%>e=wd9ZMarF&+Em@< z0!X3xgU=Ffa30QDeM$`3mrUOrUFZCU=HY1FdHe=#jcHi8T5Qg&`{IPJeCQ2I=JUzj zjqGH8dd8{~Lv#w)B4q$w#m%T`Ga44<4*E%?u_N>&w=un2P4}aCR_SX;xn%K zH)A#P#w2Ben6RAi3x1k9B4aZ9cP{6}wSKMv-HrOCgvy0Vi*ZNJnWwP4FZWm+r9Hh5 z%~)VGHZ3+DR-YZx6VgX5y-3RQ)@>bV%+j_V9}1}H?aO2{eRx@s!EK>m`{E-uJM0*{ z-loy>QRKU2D;>c18Pqbu>?FMgN2aX{*jv8qz(!p=ETV1sUa5R>(+l1~N4HYuIAwPJ z1DF;se#0+I8UM)-`2iUNe3CAQ(NH`sn;)*X-x}0oO9A!tD%X_9tG0na7Nlhz z^_1bL<*~RX=NyalAhazU3>Z(VgK@QFfIqy1!jpGK^knmS2r$|(pE6R6J$g6q5inhr z>yq&^(N-e$mzwpLq_KS84#Q@zpHM#9C3=|UGdMwwa%U?_&5`TIu{_bHfAwG)^5*xo z{^(rz?rYd(;f-(8P5#Dr`~B$2ua~qxU0g41|Gc=~yZzhZx^p7oP%UFH>((H&S$}j0 zWi7X|inq(#dyNPF6Yb^2^{)8TEO=W1pV-_>hoNeIz3OZq;S51A9R?b+NCt-_#q+D% z;MkK6UOUP5D_fUrYu~7YdrNL9e%&`R-}QC8{Uv|C+`8`9ZxG|_9grYi`+wS>)47pMfH+37B(zadxYr} z09|svPOm6*YR7n$eXY-MZWh3OZEXfGp74&PHt$W&;L^g_nBu-*jt(TpvrD?M9CgR` zcVWo3hu%-(C2DIk$~*UDS*bMo za4~oWJJGmzpp~hI-SgYL&-%t{rEfhSC0CD~i{Qbunsp0$W0!^1UF#O2q6+HB1-}Pb zdA;_dcw6ne#?rQ47z(SU^vqq1qicnq--!Qj#!(f#!#GNq9zD`zv=*sljPS((Mq1FT za8y_QPc2u=9;arszE<+z1A5OcdX#Wm@n#DjcUpd4iT1Kt>vOJy7qn$yNqx&eY0&Wg zt?hofY)#Yiqr0-jZf9m9C(s{;D8h~ z;xo)21l_EFAN%8^8v{-oZd$MozM>Ey;ANwS7(S)z7RiOK1uiRw)t86l||Q&YaRMTGV{8wPvyPsY2DVeE=Fy-_gH?}8Ohn@iG^97x{cH8El(()5r49S$rM?0JtTH!-= z50rFNGSRb!QlJ&uQvKraF0Yy%fp%*WY}Cib$AODeM!`}Cb3P55HylCw)+@$6u5f~q3I9*z zcivpVpDn;7)P;i@2+#vF&vc?1gE%u1*fpkw%ua#%cy=m(E$SVz$yA=0 zo(8!Xk%G*v=qU12X~vNAg3de{vDXLqWc_O!YJ(or=Cj*LL>L*14`1n|Na8Ny=EWx=eKIvUxMo4K}lLNZouB zU60w*Cayc@@<%T#oX4*nAlUvA{mA!7W>1C~4YacJm3V>OWEbiu9=CE-2kB*peeFp^ z_vYJA)|QgU6>*BmSj(OQ#Z|%c6mD`(5emhU)Pr8=IO7SR@obZq` zL7Yq<#h>Az!$;eV7!Sw}+?HB47ot67OWpD{X@wx&))x0=m+_0{6tM9K`qy;*^y!cW zb3`+{oIBcPD3o;t_w#IE*}74!p+s1X%92hCzqGd%*SQkfj1pL{Q9D}ASw}Z;%HYVN zOTJ9W@oV`5(ec3?kX=QVp{Y4|EsnKWg9+?Fb`8I^>{|YgavG`b>VC)3_I3vMNWY80 zaNwWoX-JqUX+THqXBk;omNok%g4X*F*Fkaum8RO4jyASEMi=~Q8B66~4+d%5I)W1~ z32FQI9Oe`rEQ2-Q#{p9K+da`Xr=7g!x4xHrbls57vWYMm`peCs>9;;B3|^BtC$)AJ~aTKgP` z;5wq)Gq$1$PPZWU%wHkE&gPjvFGjU_uiUgBDpFY3;LKZlJoXeTi;mzjyC27)V4Lar zq-9?!Eu%Ze$NRG-)AZYrq+1!KYYri*`c{}XW5i(JUWpaevGr&_^3eGxTRr+xitpS+ zebc9LrOo@rpa;%nX+=aq5l)Icwe&J@I6=wXsKMb5blSOD97gFU;SA%&(R0W{|Jor> zIwBaKH!&7*dLfKz*%#r`O!rihCzyq#iy+wPha1#w%PGSl#rqNqaN{5fzLq^_7-aJO zY4}!+jhE;9)A)*z_NR^LXWn@0V<|pZ`0I20(lXHXqqkl-KL}jshJ1|MPpEii1wYyk zb)yD3>8NvR`EhEl-$V~KbmpV%p{tH?{Uua0?*X35)wxpVqC2v#ezXomFDzPCO=70R z)qc&MA6+YUmGfZK80kDCmvw*1TAz8iWaVg3kVt%!B)&zhdMG9l6yx=6*g6wKj^r)u zH@%D&VI4KSoL?TIokUL>YFTHCJD;K2-7vc72eL(m9r3xAa%GTL^V^wL!H4Z=i_7@7 z$xq3{utc8mln;7Pr2ACj2Aj3mrpuwJPXHSq?%WC|-Un)=*8|ld>yz1xNc~e60a)Ch z&gu@M8)>xnnux9&OWz~Ix&gF4MBeRaJi_;~DQ_Dr&y1&)XEc_(NN zBHto1{?Foiu({@y?wI?xkKb8x%ma9K@|kC6!y?B|)0`vqVl;DKePndQ2ZOI3wD~dP zG4-#Rn8cJExNoZ9M4npOhKU_S$2(0j4nH5XnLQgp+S&_}-li*6)~;%u=WyS-oj=)g z`J+RbOpwA~4M#V@hGD;4<_^mDvd#b*V+4g1R8NanydGs*X_y?@^C*avB}#G4wwEJN z_BE7?#Jvg${kLiFHa*Scm{*x9elB8M z0^iQf)+d;td;dMa`Y*wz?oHd4QZsAfVdXPa$O|bXWkxtjx4A{#<_-}a3t{%Yl0Y{J z`yvS>stcs6^l*^+l1b6a-0#ko6;s>ZcrjT!cZv00SZK6bXHIQJ?n|YQGS)2ALxyAK z>-U@JcaY#AeF=<)w!M_}RpFs(_uxHZi6$xCjcGM!2b8cSyffI=YO9%0=cRDlGSGRM zF{M6y9cvpyi4F<@P9xc-aTA{v*6=cFNeV`Y=hPNZmcRr!-q#LA_)#v zUK{OmlJ6kHC(`HCw%M-OM8-X~oeXtTMY8gxD4EAp-v7$P5zv$b29CE9A zw6BoMehHEnpATu@8A$%{jJZSmy&}oQ$0=WWZJ2lGjKB6ry7Xsu=}X$*?b2tu^rh{8 z?$VzHJ#Tx9t8$*5S5t~ki5p$gBbcN(SR|L?_Ab|n_6c3O+Mt({G32b?J4mt4%n*iW zVDM-^B^1$qW|xC-^G7fG%JWLuFH!b5eL*1M27D^hYTpr9cGY=zm$#U>bX4$dUAj2s zbQ9Od%&0Z{A=)eqKCcw$HE3r}RQL6|Nu-73w@gCFrZ0rMg3HD#UBdvfSx-gozp z7(OCqM_`KStgqC{H2lF==Vmew#$C(EUW*(S5a8C&kvf{Ku90M~BQ<-y{+LrCO$Om% zP-eaZl58g@nYV!?^T313K+(za=(aGr3e7t8dma{Y_uSpY^yzsOp)uOn;sFI-{yz z)-wHd>T`^$URlfZ*QwVURlTj2>912a8C89aV+RZB(MFXm*D~uHCWF=!y!+HL>qJH! zH>&ztEwi2}s>i&&^=n2Ni*K^}t=EvLWnu&Bi%<%gHD=w7UIwSM+8bNIp06brI2*co z@P( z7xh1jsxhnC>9eQq3dByH*Zu+PES}eX1h2%x?ML~^V+75yYWNwZNjpAA+-GU%GAoeX)}F2oQC-ZFH3-L zB!T%Fjjf~3@6jD6q%zHV6PE~}fs#p6;Sm$vx6;?b!A^nzX%5vUH^yUB1Ak-9`~CX? zd9RnFBrmus6bh0Nki|&Zd{aHB6Vvp$SV3|1nFZ8p896>);xuKT6XxLTY zvjF6k9iBRY>jAGSAGIH;FYeFYOl4hvlR_ft7SjY5HnF0XnpB|=tACh<8l$|v@3#H= z`j!VMb+7JMvWnW$&#b=ZL>GK8?BVT?jsna~7r!<8VJyXFTQ+40z0W!={cdl72C-Jv z@$07b?wc3hkDpCYW|lWC!>gFwz(&swNR6l+sAA@@s zlivuTb1#TFQGHC-Rl1R87#^7Y+YHwpAt0*UG%U8QJiGI*V? z-_k=376W>8ID5bFIOAeQ8t}E~0Pyq);=a>DPbw=dy@OC9IEV5WM9_tA;4QF5+<6Dm z^Cy^wW?B^IY>XnEZc3@=Yg!8jKrN= zU>YnY*rlfv|1xL#6tefGYu+lVhJrBvywk9suEdI3# zs|PVJ0gJ2qWEt%BZP?k{tea@v;zP7e{*4Mc4Ygl|v3(e#KGv*AiH|i;po!tA^AS?{ zM#rCz#>^)@D4U1t(_CCK!&k?T= z=qAoS0!x3?TfEgykR^MIYHiK`vkwZGFV*pWg5TD5^m|8;g>@a(Q~tmPA1VW%^jP)0 zW}JOUtazZe7gVd^@IX!+=;e26-1!)S>2+hC&HSyZUF;)akw;1h@&a~>jO2?E}LvykA#tXPW zOEX3vpU0z>j}2w}et#z8e7~S>tAC8|2g4+)^{1akx9N>q-6FA>eZv-5clzR95%261 z?YSoO`zIgdk>H@1&}*fHmWv!A0`n{a!+xP2aO+28S}YXZ4F^Zf&SJQG*7_ZL94--~O{ zzNide;*VaJd9i9ddniS0IE;eFm!GxuWJO?D9$)3Wldi#5pYgHu%i!m+9a0 zXHMDNP3mg;tI&+q>|x@EyMy0wm*0{~eiKW2xU&s?n%*kzx@wMPU*}p) zq>%zcSV>9w0_qvmCx1nm88BaM=sAgSc1nWDQ;h5E0pI@96)^oKEYolCXHGybTvyX9 zE+v+^nSF;#1~(Ns(x3Z|a7M$??JsHY{H{2tkw}ip`&&N`ji$DkP5qtOi~9Q)u|53S z_sG^?w}2&|9B@>=vZNoNR;w_}9ap!5?@FQ!e$1uk@mo~S84|rWR8Hsnl%nrmPkMnC zfU-pYC8hm9X(y7F&odgW^nDaBZ7oc>FbD~QBVVq+Y1ojJ+ zSW(MZCJ|u2Scw(2jAeQO_DhvmQ62m6h_&p9z#ILf-$d7A7U`^i1QN#Sw;`-2rr`3s zmbMMe`4JZB_aPL~&|)w-0~>V)r^aC0!*OGY%?HHhkwq5go*MI|Mzw+!$;MVrIq;G= zQTtEWv$JnM#HC_zob){;b$$$U79qvLCtTKqEz6?U@bKII4fU3NK{Y3}Y~w+@ws-ip zigu!!Mzj;vs?RRe2bH~$2{)bdmJIWFGiME?R<09CUOblweN%RzSc9nzeZ(Fx7e*tS zDdVIOrZu$dmn+*<)UpjQy8-)^O01}5?Ar|c_mx;t%hGjr_w7 zd9(v7VApp3omQI@X!W5y6R)Sg<{oA+9A%8&pG*CV)1S}~{MOR{7J$7Pzp>x`^tYA) ze7Qd|Q$i14+o5drM^Pnj=#R{rz;3O?idx1p{{YKsLPb9p)v^A~z;_$=yTY=@QcM4l z8f<mM4?0NX}|qxV!w;(=^~TSY|{3p{EsSH2r2>))5I z|5&>IQ|bE8rR%@=b?A#stkC%n)n*ph=tYAtj*43Di_Evc{-_cwY8lIf3+%Q^tf*xy zGbyk?uEdJ!Sbx^~QLxMxzXN&K@A?ZtM(yVz)QFfAk#CG|2iN$F-d<94-uL?>`Fv(d zr1Ks*FY|k9@NdoNTGE*>DZYvs1bxWU)F?l|;2bqB>mkW4b@prx!n@W?e@oOKzIKR( zm|yiL{ZA|cRR+LX{%AixP9|>kXX9=Kq5R>(C*zFcbeL2xgtNA|u6J(N=A8*;qP}W7 z&9w;gBIa;N$?FFgdP8sbGvkxk4ZRI-GrDw%m9?N59lTLw%t*TOF(GDKY~p=G+)Q1Ov6iMJ>g2Nn1Zrgej3Qh-IfrO!BY!~ct<+GX zSUn~PyRk=DJIE%;$x`l0<;(4A(Atfut#q>o3BHAoht30b^Fsb|$~62!yJ@e4qMgrJ z9@*;n5Z2nt_BFP7eH_E=7{2vgVm_B+`YZXkT{DMVpj}(@{{OUV%z9Bh+s~_!*TefI z(^u*-p7%>fc)NKzlh?eS>bK?eMNx{b>|eKENXX6`F&=NP{(9$a-QH2Q2d2XC?b^d5 zB->8y;o(XR_E0O^!xMIC538)kUas2%vv11XxjhW^*hAfHh#5F}EHGh|!kNgSqC~WA-Bf`$|Ftb-44YfUaMA%s#X8y{f@SrD;2s`HS_kx+|V{<_X zUr>|%3Y``Mkk`ZKd8`L8Haq~gBH8Rmaiyp}HaM1b0O z;?6I0eWqXEs_P?4*BeXMr|Y`wqg>Z4i=gYDR_a<**R^9=Hv#*zO01}5EDI=Le_n|d zwTxxe1nfUmVnr=uS^EI{&y`qF%UISz!2U}mR@5@~hlc&vO01}5EQ=!W{Y52K)H0Tt zI@o`!#EM$RG93r|@0D0l%UEXTV1HSO6}60IDh~Enl~_^BSZ0f0e_e?cwTxw62KGNH zv7(l-KQ-)cDzTzE*83y#1@*_rVXr&%Y4ukkAf+F6n3LkkN| zAs+Lx2pq)gjQPBlt=phjBf=>woe#-2(vw+M^J7{KpPs^fv94oNhx9<)zK4L$bM`-} zTX-&e5llM&Mi-qE)xva3PfvwWdK!P&OfIG#nZ8PWzM1_y879KHg$Ie|;pd^{5v!RJ zmQ7}Ss*!NZ_L$~@sAC^f#Awj|lblI)j~OjMUlSK5r9pZQqkT3eF-3h=NF zx_mNO^?Sa42eMy7Z(mOV-hQU~>^~spX>oc2!0b0=%3-4XXPL5IloN4w*>B6_Q$+r+ z5+yrS5%GVE;(L0l9ucngcz0>v%kJw_ScdODF1mxZ#fvIt;;R>0ySBGscPhQ?&S0-KwPNYu$y+gX?m9A)aXvG zyOgVuT@7@-q7c7K&jw-^Jq||8xP+$d8)(h3^a2$eO+8V>9G?9i#Sc&I2Vrq7{U2_4 zgdDSIpB;&){2V2TJtKfW02pem`If&QP}@HKF`6RmLeaqF?R0eCp*Qh~G5#&%eXXbS z%Lu1FC^MP8j}t0V9&jb;Td`@Le~hn{BjlJOM##TwyMMG-{(bkD8SW`h_E_aaOb*{9yr zsULbYcO*s9uuP?Rf`xBupT6Uf#j!OOZ76foliD6=zlC5TDq3<YK7fqy_)hksyq0QFPQ`e&2n?<5)@Gn^Nbe z4@LKrj+><(&bXPuVLUyK^% z0qI4EGuq$z7mQG!8s~xDWw6M8!abWxM*7pI>-OhP_Ngx9IOo+HtNl+3sw zpCH-1IgEQkJ6I;|3!Ye}7m523WvI26b-^noa@<<7$-YMKqHCLNeykdn$qqZ+GbV+&)y(D~d!ex)_h^<+fhA)UIpTy|2ozkZ4;E#l-cUZBwfX_HP%)o!5o0WQLP zY}vXC)wd%?F6DWNMi}};0wf#c&*0Qkk)oLmajh?KeGfo3%*|N3h`$^5A+Io{h9A>+p3Yj-1Mo~4z<8Z^rjwPq@GZbdSa1! zQbp>?Md~RPsZT0We=RHU9;k$PT{`s9k#^NZ9AJhgkIn~!sQMK|6N#+(fibIgeF zg}vKXpq8Z3k>zR!(dvSaX$FeLsMkWyjuU4n7O0x`Og~U8P`w^bndtAY*^7G5iE4h^(o@3ZNxfn3(e#*3oKV^`q<>qvx@^!t3n zK!3=nlm5+#=UBIha|UyqQiw%a-tG zRrmEr#`LDRgeW|2%>JQNy<1ehrK+B&UOioual?qj#fIE4@)- zbRF_NJ9Wq!bG$8dHHa5_H>dLQ`h+iWh$ak?U?NYy9P{Y`v zms&nm%J&TrHf_xLY~_B#!+SZDim>e}WnPaEFJGBB1UY=S7w^(}V7sMRTENKJNTxE! z{b&O?BG>dF>2|05dCY+AVI=Gw=^TN5aVnD8qx;~;LJ68o zZOnL_Q3`M3KFRwrks|Y~>=BfLu3gJ9>F}_*N_Q* zh@bvM_v;F-bUgrE#f1vf3C!eTE-G6f&EJ*R#ag*JEE4}X1z+?n{pb_sr(XO z?R5V@_k24|Q(Xr%FZ-(W_Gx|sXFYwUxbhh4S;igaq0X8}5VO&4ooAC)RNB*rt$e~b z^jxqvhtK<9hmbW+XUSE|^mih=7&BW>3<-J8$olJHzm3SHm&lxdgI(>M|7`qkxR88_ ziXrq@Q}LW4y&VQaQ|kOR3j?Ua-9(noEkyLr%g;t3u9OW*p7s}T=`M-yEMwDqVUC_B ziB`axxG?0&Cc$_fySz9k#PR-}G@?iL#vjN7znSecT@k&H>(unmP;!TT^@K!g_&f6u z2wKzgyNwZJVha%~MS;7whipvLvfU7hg6*rsidx1J;DC)Qv7(l-1O;Ggl~_^BSVn8G z^-8R$Wh|pO*#1hasAVjJJ=jJiR@5?Za7MJ;0)V8HHGi51nc{;mU~jcn}Y*qF^$N?y9>yMzMxq7NHXcJp0A zOjSHzxjUW$?4IX9^eOxxzE3!rp)XGWZJU)5($7c=P zhNqSo&eA+3JILrF_nZ^>VhGe<>PrSL0PV=x}67r@Wg$*L=ui4v^EcC2Kc*}o^YdcA^g{9Q=Smae~5y8d?Q`a6Cd_AeiA za)tfN|89w4T-2)R36`$?pxP%{PH#q6lYXMo7qox*NAUjtyMI~Rmw#E3ZBeB0-u`Ki z<_}0>+_b;Cww;>xt+smS^^9}ruZp~35A#Wqd)IrIf2~ZcN@+2Lr^EiDXw_?HYG+^X zD(_()kKPRZWYeEXxQji^Oob_l(UYn0<8&RT4^sMgdNhMz@o}~|{V~MsE@*tAZTCBx z|HCS<^Bv9U?;T+Bv*w{a%~w$PDJF9*#SUyw^IrtpaSyA;cD7>vMyWyG$Cu^h<8*L9 z)E>e8vuDipw<}{Pd)d1EBjz;Gsd?G4%7(3KTuZ;t-RyFDMtU9vs8JY8S#nl<+RPXy zZCl0ngw3??vt_#;Y+xPE3;z;VEQnqRNV?5c}1|J<|k}sB8$`f^Jz+NP4HP0wLE8WpH^)~p+ zerwv$KsA4a&m+Q%qt`_f@3%*bTpt+y&5wQmLCooRzxkuRhCti-w+Bxv*_&^dFWh4u zEBOBB(+!vJk52!aLW6(x^fN3y@Ap0FO?#*POr`I(-{;jye}kfJ8PlgirClD~mlm{1 zzh|#l+^qL!zca}~{5NFZ7?Pr}ywLA^dwkfM?OopLEZh19Pkhfp=FUqoWqossAVcTG z605LBs4=ZuGkErDq>%Jf^scxlHKRNdkYCa(YoKJxejQ`QX)@;PaQ| zhblJOElH8P`|zdsLS~)GtOXA(d-=&uw{t(TQe_1l9#NS&ni@3FK!5t@LSHu4`FB3g zF&#{>anIAkc*OUbYWn0w9(I_2-5*Yy3~!SoUt@5$ZG;`)OYnUc=XxGZJ$mwpu(Lep zc^-x9J$XdfS)M0*9!)WN@`$iw9)D-zeC5HFcE`@DcP557wVt!9jlZ|!ooJf_>`-Z1 zvxcWc)J6Pak(nF7nMIS}+;am^#vV7{J)PR)&PMb`%DRxUIxjO{9nattIgTv7guYAx zLu%0UQf`K(Zs4-fm=+)-q)R%)TS#iY}G78uTJlMc2$FHgUn zBlJ}A#2J>HgsF&>**lNYGp_;oKTZ6*Nj+=imxzzWW?g`{VQlZQT&nb12lFq)$n&@C zyD^uMZf-ZuF!#h`HtiqFuw+|$G9{J1QRVA4PZwXyGQZq@d)R!rrDNHAq+@>BtLO;W zmhE%W^S1TW@e1(%D4kYR`#q%gtE;&_kC)D91KOv(*Ta~`ezr@P(})rLh1QIiGB?r@ z{=if88=ltQ}Y`zF*%;Q}vC;NyEH^%Es7)Y{uhQ%b=S5=VoGs=SJzWiR}Wk~GyXY14o z!%5OBcd*H0OCNw?zfG>gVf*IzwZ@~CE~9cjI6NB8te#MfP{AD7MXubejCx&1qPw`wTuv43MGz5$BJ6W187;{^(=mbsA#HWmBT@ol zIfC+;L^hVWuedJP!I@+Tjpg!>+BYGtSGsFteP)tNA!GUgK(d~=F;B~=XR>@?aLczg91WU$S8pL=0P;(ubkT^$J0}5dVbCJ`nx+ZLdtNXd}q>e4UCP`K3wQ zsIwK{Ueu5ewsURQmL?E9lsVmjJuBUV}nS>RgzwX5v5o2r;J_3w|=$1VzcSP z2QDI)J;aSq8!Sg)qJ52c9D|B1`@_kP$O;=Sc)w(YP|b-=gWc^GKUu(b3uYJ2pAO)0 z+kw%6XZpU1E7^-Njo+;=d#e9#s$F^Uj0pbyhF6|72_|oy_m#=LRCJR7^{s zV>9&UIzR06>ux2ewK`N_wn zdL$jpIbS97T~%7I=siJBKU?Zqj#K`c&hjq7ayjeKJK(2(vl~E#srg}4tb+!VIZ;ho zOP_sg2{a`Tsz~NUb&#$)2a_;&C|9$Gm*DFQo}xNjSF?{Rfi@I8MRky_oF^Lzi?~Mn zArD3FXH!St?CZ~!e3#F9smXWz`qQQC>nOF?+Xr1G_N~v`3O>H|#vW<)ZoSEM*0Naj zIR(C4ZWu`dZ;$(KFR<mW`3_)1C{)zk#(Qk0Yqe^OSC%3asle@MLylNo^-d zZCFJzC#tJWS1EzO4)ODVtx-SU_%Xk<$9RqO1Xv6<*J}>bv?IiKvbSj&fEQHet&L|i zh5}fxSIgqC7gl2@da+I0-*ty!YvU$N(pY~8W#JlC+oMXgJz2Fy|H+)FURzzI*HT+= zsosF+_^wL1Y?za7*F-h$9hJi zvz9!4q^@aT=}v1TD-r3%Rz`X_b!8dtC{>vzOH$&a$*OO172nQ|{9D>ucU=pgyNr(& zQCl48WOq$q7^buYB4+YgQ-1M8H*h9wJX)E9qJ@lxR0%NGTRuk^&>jZ_1^C1)=gx8xsZL&ij( z5Us~966GZNmS`Bp5CgsX9PMSu5NG@?IYX~+9Le}!u5?Awc_;O>{)lKVdIf1?N$1sy zAeyzA<1}#O-nu!hyEMkjkeLyhhdAh!r+AI_wTyN7>FSLQiy?Ei;A_G-lb18|1QWMS zJNq0hl&jgoDb8hVjgB&^O!gf_b;y!kLhD6CDhE@MlqA9t|Q03+OWq} zVnr=uUt`$gE3u-Mv9C4k36)q;%h=Z$_QXo8sAcTy4SP~0R@5@~4Te3r5-VyMd$(av zslJb+m&{Y()QXhO}6kRrD-*nfB*5x9Wl!PW?{y6Ow-J33u*E6 zsg*K{8e|mqErva<5-VyMd#_`>G)_HBkes}d`! zu!^T&!tdL`;!4#6GWxJy3QOs)db^qKlgyq?LI`helsBbABy*zr0HUk(dfedb6HCZv z2uXKH=0tU*uF|&LFx!qMhj#i}GT*GSn0z?8<`$31gRJk^jjT^9NpMpktEeu4u3Xl0 zO30gqq&p^aqB>Gn3b-c~UjMITmA}+e$9K+`)foGJrDf}mjo!zS!hQ2Gh3@^GbNW5s z-;@A)#T);~>mKI4(o>i(_yG*;2%{S(8U2%Ggz)W#3Lr0^{#gqT{k-gEM-u2wS$h*^ zv>EgHJr+e9>FMZ#5BTNh5}Xc(qILni%i24`JtpbBv>+>!Z(tbmS7t5r_SbFO_Zs!$BJ}Qt zWx0QBMyJ8=-SF$YR&zCNelFO~9M6zCdkiMb#O!q%FyEtUufdRPlHHgVAiUl_FYpUv zpC<6{F?p-@FZy`*Uee>VgLbQZ?E947dDc$T-*5Rh?=<}bmVc%qy=LDe`)ksd+(}cj z>@ePb4@$dNH|&u6XmLF!J>c+EFRc@4-u^)=*QSe|*PHtC=%D>&^7#^9&3emV)M0>P zGXmZ0e3Yo22#iX}%n4}FUvsNGeW6%$z_fa{1+cQ#ZKrb)EvAj$pf+Mav#%&KW$j}U ztnc(KJHbsT<|+B%PxEW7u*dwAtMIRH!4kqR`k!Mr0v6N6C zkL|T_SUZnI&lvR+^BVbS!q9IM{Q3|!5kFbwr^$4u0(n36{da#WJ$9r1 zne(YYoW2>?MF8)fo#jf8OS|WZ&W~8TM}y8kPxR6Ic4OJ}1<0gLch9rmdio;!<$(Do ztJDrLN0Po+w61QY_m4})=?luLwK^!y6}22+e8R97R$@gBSlQSorSEuJg@@+Ib>lwd zQ^xBl<>aDVQ3Ef@_-VslREZVUv8_n!+Mls<(|b{J&9EZWccIjNT0!v&wCUzM9!|MPgb$F=~ZO9B`<;Jifq>t-S-Ud2NTcu zNM-cLvnSGT$|u`*h3kFwb0<6rF>{_Q`l!Q8MR}o*Ll!# zxSz~EJ?681z#+Yz@(r7B*7%Z-=~@m(8XMD#SC3`y7FS-`chr4-He^4EI*LRlJt><)_up5@8^i7&g_E5)59x4e4lX# z-g}p`9YwZr`$}xiReS#hDDCn0cPT$FS=|iIF3Q5w*4P)$$e+JV>Eod4w-F|P=k=2c z^kp4w&r_3UkB5-!JtK~V&Ub=H$kml@BRzCx_pJjqUVNd;Z}wsuEzBEU1HMDBo6L#o z5w@<`rb$(oyNspj3_LtHk@sir*p>3JTcHO|jdzb{Ij zdOA&Valjc*=0bOwL{CdixvZtxacWpO;ro8)2s zjSCAI^6QE@N|__$s8+R;}GqyF0kc)E`Pf3Ni3Fw^quyzWKyMg6HxE~dlv&s>74 z^qm@yf4@pT*`_>i=?iA&5#!Xmt#&Hf^odn6>+~&8iKoTOTt6x2nvYtXX_r ze5Wr(?p{4=j20Ewh3|5me#5YrRboYTtnV@Xrpk=dHz7^#=gcrm`!syN(6=171)SSX zeo$2^idH$95NKs`hgD7oH1v5S>KIlzbqeX*&}m`i(!;WKdq!KR$G7K~MTB%AbiSL% z46xqOT4nkc)1OOjTR5}h>003nK|C(hHsY51E-YK41aHxIzYqk^p6DDUs4BI^HLD6k z6^H?qI=~}(1!%V7TY6ldKl7c6R$dU|^Wo^-0KX&syQoZal9{I?bou^r-R~p@d|?sK z?c92H5d-$8?~q8vFBvL4i#&CSMpC^Nz#tC zCTiK%zGv90DzTzEHjcDz_kC;EX_YDU7KTPmj1mdpO3VXvvgidx40$gtN| zVnuaqGdc-5x0#%^^kZm={l0mihH8doOH9UHee!ZQCqrc|*Cn|5=_`Csn9><(oNKhW1cRDOTt;l#Z0qaBzo0o>~-+C>mOAIj|R@7SP#E<5_c_Iw>G+w3BgZY&uX%adHlS% zE048kd6|^H=*C2reJ_BSuB`D z`;xds&7z37i(Ayh#Hi1hmuM3GeZQw}-KCeI&CBoed4D`~Zr80k=hUfFr%qL!T5iwD zp3*+-l$Noov|V@0S6kTo0s4=FK0kl*1b^8&`kQbU;<>?=(C z0_TBcd$N3~?V8HuC71y8-^DD3^xriOKe#tn*{ErbjRIo8d=ka5Z(6!ORUHM4VaW9pz~GyuH^@vSkXeqIgtIkB z!BrVy!2LyNVUM5r6v*Mgj@n#dACLYm;1!rs{ zJDpxSx`9P7&XKzWKI*5UN|R>-g!a<;uzf!}D*0`ssLw4!4R zh71b&uTq8@DS>A$0>#B>fX{4x)QfZy8z|G0Hmr`i(M$s~EytA+ACUTzq zoiW7#S!4fOKA9{dsx1>G68W+<1}#)+pZYxm*8I7ky1>02$tW>MGql@bx$!Y*{2low zZ?xy4YgxmknRRMP>aPO%(sd8IKd1M74kAdxHyY|?tg`nEnY}1`&t?zgPC~*%8R})M zf@H{qMvm**;(>ggknm52dKs%A88V?a<1jzIiSuKoOGHn%2lWM_!d)5aWvoJF$iyDQ zaq@|7y$nO$?eR)4&u6!}kA$wA&mf;bK-6xCc{5sH5*|;-Gp*~t%oq*W&jr?kn=>Rz zsSwN?hy{P9gQeO|1y#`a2XQQTC_@(9RiSAxIM~1iZxHqY-v%{S-H2KB{|3fcz-Ol9KF)Z(%Aqn`o4lko-clRvTb<2a=lyj}x! z@l)2tQq0NBGa+FITgyb<4e=%O5AYNfHjeGVh)_Au@!!RA(h@7d~6 zy5CXh;D-zKGFB-aL*`k?yC>s;e20+mXoY$is~{ON&n9G#2l8D)!Y>o*Wvqf^sOMA< z(0c@eV;sxGVKo=p0E=^#><{2~s{7%VOi z>Q`gIZ4%-l^Esd-AR*`h9NN4N5VzUU$HbX9lg3}`9-$>M-)y|Br`N;q@5%6XQ0Qf> zVwfTG8!Z269>_ls626j9FJl!XL*}`JgjI4Z(EEghrzF(NSOv+Dc^+9WlZZiBvlqYd z%|_c^%5O~nBK59R)&G5{|A2B&Qx)vsI5vxIpp&h4{bm1UKNoizJBb>lq+fwfP|oX@ zk&ZjSlCfr>s(vL%27Au%l=Y7+>&=jRFJo0%88WNDBZi{=$f|uCC;&R zx_PR0S87~_^m62#yqRs=e{*@+b}X`}UCbutFrm!xX!n60^tX=W|3q%!PYU%iR&m1+ z%)-xT7U2E~ndgHge3KTglu#1>2&`KnqN-e-pT(S_EKS04gtkIX(B}BYtBohXX9ZAq z=b^^Y{h4lFNac`PqEk@g4}ff|kv_mMF{O10=ydv#_7M7*QMt(uKGO$CI(f{dugW-( z>Gm3_WTFncL_rE>f=Z`n#E-x|X8qnq?EAazW? z<#}OMT@Q8hC2&r@^fC=2O!kz^+n1M`H)5<|{?$W3$-2~d6!?1sANx3OK?AKSFU_1F zy}9BEs|adn;QF_1qvWK>*AL-6%(iezLK0q7ASY;I$GA{yT zb$OaOs$mU!9}pe|ri@BwbLg$K9Gs)ux}a8BjY{)kpnIGEs!Zj^R$vdOOkDe^3Q-T$ zP)_=w`8kCV5btuiSi*eQ1oW@Scluu$DonI0#70$`mw*rRQXezAt)PV&Bgl(ZcD*4W zN1(7=ipv55J=-JDFCBq0Rtc0L5onctsyIX`mY13@vZR=SQd&O$;$Ylo3tMOG^VRrU z>PQi7hgTN6wT`oUydW65gVNB9aPvH4941^hDD(lzJzw_}%K&5&UXV~PV^y&jGQSDd zd$8v2XjBOy;SUM*GFCw{WTO8X*YgbzWWa%Btb%07{1(MgVSbwk=Xwx=L=a_VtU_Q& zWGh0fR(lGZUP;w;K+a9<3t3`rd@p-XY$u37v$46LnLk-=SHbV6;2*K!+ZDW(2Ra9j)}O@*QXPtZ+Qxa36K1f@3t@)&tPr zQ7p$VMS{W1W-x(aZV6_&`C4>UdA=6CUHa(h$U?63sFChl`f2-05K=W8D25q$6b7%^ zj-jsiVi5SV?2AD#uqpRQr=ZQr&!ICo(li{KO2MG?mXCVu2ru;Cb3j;S( zHjLu^U?*=U8>j5#eXOK&%$`4eoTS4$<&t;ssbPmOy$8EJ9dlFe*aXI^CdQDm3Ex4> z&^dW!IDR*L;`>IZgIqpw1}@lx$wSEgIxP1$avf&^;CYntDB+x*CH)yGtRq1v_V-i* z73BwhQ4S%flY1sVxI|D?0Y4n|>w>O-X;(5Qsx)RDsr=|JFY3#rBkF35&(Y?v9UA>> z&qW>~4X2Rc!wdB?RtbqA^9stRtmk46>iZA~&a+T2V-*lX z=67kc;nj2?_a!7;WuaciDoBRR?-BBw9?1O&3FlU*m$3?xA@fQ=@_Sq`9I!JVL%0?4 zxvFZ;aN+F<$<_e#Du9XkM=bn0m<5zp%KcS?`vtJk_*p0&hyC_8u^)pBKU~Ec!(bny zB<_Iv0`m*(fa2ySr`85n1_o6Qs_<3Zp5WEl21TmlA5qs>$<fOyuUsNb@exsF-NS%d8&j1`tnDbNT4*>I zu|T*K3{;^Wo0@^{HV2<>7b4A=1yBfPN#Mi7wQPC2ZxpwYNT$v9I}_O58LGkw9ENGn?ZW=X#!RlyvHG9*963m z0l9SpOSk~0bSQ{OjYW1Zi9K|7YdNp6*%98PqI(37ogHb)i*bi1g+CIk@Gm!_r zA;FIDXfW!ud?g1ppPnT!Mi4bsgFYFL&WDDhB=-7ygc7;8(ct9~1+>(uE%~s)+Kga^a6E27a{*e|j_(m7L;=m&KImv}Tsu=i)3x94g@J%lKj$+`OUHJXR6v2Os3*S);eAI=%qZs&B z7yjd7;M-jINe30dKRytv`->}zfseWHPZtBf!G#Z*MewuHg9@JSbbXEE?87asn~-H$iATzFg) zvU~VVF8p!Dz;AZp&nyOhiwnP_FL>_je*)vHZo)ghsS6OJeN(n;>I4kE`rF}E7qr#qiq{>GP^IS)F-ZUS;(DI4-XtgDaA+W6n9avL0JC47j+I`zwRR zcN{dTO!HSw*@R-q7ezf8T-9$-)t>zwO`+Q>2vWH2SyY8itdOHDOnn21km^+)2{cmz z^D&d`Wvr3_Lp|U30JRXP3<}xHSOvt8`F(hv235$ufXi#;)!p=2%Bn|-MgZI!5jX`@9nr6cd z!8P#gg71eoM%twF_!8+Xq#IaVde#@X>7H$7(0|IGIDr1d0eSq1*Zs@BRKKu4aWR=U zj0I31o-@M2nXEI=hd_;*fGWQZf7n}+<7bQ_4)c1)&o~(V@)^KMv%RW4X6h~m`&^Uk zI+Llp|782f6Rs?iua;{E3TS8_3iteBIt_Z_TL_qys9fI{fi$f0Gh_g}J6}YP!1V2l zIF&Gc_#!ZuM?QV~B2IH){PSczk3OC0ecTUxhTt?4;~U^1 z`L=iwgP99y#CxuRU4skscQlLGmJ>3sfsG58F_=K}S_GZeq;=*H&^ecM-Vr*1%tb=y z2a3+Sq;oSlh2z#i*0|J>^F$8GHvt&5%28xTD|H*}Z#)aQZG@}893c!$uz@Eu4GSd* zVxJB!iO80NlsZ@?@Bym^FiJU=5g%AX5!1h>x}IM7ippzYbFfho<`%aKqNE&0sQZK! zmTX%e)URsSB4Sq#U0YpQaY5`0e5q^vBOrz?JE4IkaNe1yhLF08cRPKVs*V^b6~qsD z&%$`c{uZ85&S8(%J#>%8`6%OXXCKt9SoP5Rpx$-D!xF!6!h0wF;)HuCaaS`&4zumzH1b9PT$D-a;H&Iek0(U90#0>1t*DZ7`!6O8j0U3XMq%3k$gi# zNMDT&D-7H~M3*!Ci)ugfB|^sx1K-@tvI(#5ckHOQml7rzu=WQ~aujp4fsm%^G$4K3 zHx;d`K_+PO34f`ERB-A}@5=;EefwR$+9xXGUb?3Bgniey6itq(dTxTy)P_litfNy6 zfc-XLwHr6vc%@w96*PZ{2AVkl1qlRXgJWhi!s<+i_uf{4D76zopZ@ES_`O{5bRY?s zWAL=To$`BO4{C5<*nVViBm2m~rx6dsxMo25lqM`1Z`L57NlhK^?5P15Y zq&rED?W5(mQsJ^V)*m5A4W;XZb$pe;1k8g0WRCUbqU*R+%Km+U+dfY-8#KoOI5h^E zsma=T_cNM7_iDmtSH>A=%4$E`b}Y>(+YwZ^dDABGhVx}ixNX>7i=2*F^b@7B zn(ChTnuth_uVKh(OZ1ZI7_1xO5+4-4|1OT9oHuFc_8uo$6WzzCw%7d7a*Tr;jDb)R zta+8n9j-qjAI|C2fI2BwCMU(Jf~B}w6WdfmNo)rTnR_8K!?l8{%sq*7(V}~Agh@zT z&Jc}5;s%CzHe)QleLlqGCqBU=`yPIa;c)!kfP5VrVWKniYMHv{6C1nqJ)c4Ia+1K# z=_`bkUgK7Kk$+5D>7OAxN3}%vd8UuCDqjVAqrl#h7nZRK_6XjAV%$X81WbEJqG|== zNeGzSwpdlqPF$t)3&B9K4}fBj zEzORUVz9fi-^nn<;S2$%Aj#(WB{1ils&ja@@tBXpYbypRa^V)f+(r?5M5sjFNU9zV zRIJI^N+qC=k(tt62*{R;^(Le{#*oh_7?p{C0>r+k3m<`U@{wD-(1uiuD;1T;rILqr z2n-A&RGjqIl?g0-YkE41(nFjmo1QHn)TWo)Jpku&I}C5vRAh0xk4s8(OWtg5D{YSC zKHV~PEm~y)9uUoulD8aMs5Iw5g`A!57vme23H&Bp1kSlpiqTutDD zn0XZ{$bnLJRh{|0nJ_i9KHv9(*mNq4Euix=!UU($y-->+ixaVaHM6MyrNIkg{np7R zg4Jj>F$w}uchLm)iVQTc;Tr#XZbidH76%SpJ1}r@B>W}f8sEGuuwM&6jDADc9XJr{ z`|4XASxKHlwGp}TO-u<|(+!(&Uf82Jf$ViRb zuJK4f_gC!GZ`@?mC*j;}w$@r`mU$obavDM|k}9*>S8^9|67yJ{*F!AwsU{7n^@nETZs9>X0CmJ} zPs5xDR!}ZwUQjxjS>@csrerr5{^My7$2~$PYo>e>vbQhQNo*x6lRz2M+(Yp*y$ZPp z#C0Iw*C@9pBes8_rozH{f2bP1VMrDG^C~^PlURQ#Rkcws?y{cSQA?G3_OqrarqSm6 zfiTXw0d@%dWTktSn^T>%Hc2a$Y=`S_V+++mr8UDPXG{tQl@1$OXB`Ht!KLz5=Ru`C zcOW0_HU0@DT94#j#)_s(x_KSOE#_0gHi+z5CZYsOGMki&z~yR{gH&}m?nm}{s!sYz z-+Zsg5*2Y1TSd7#PNB|;AC4Huh6QX}o}30&PRYJ2X)oh7)XRPO>g61#UXrgtjc|+t zQ;g6+Bd}*cS3a1g>KQ?Sz~tA0=MKCNwO)|lV}@e*wG|lzha977ac|oKsKVAD`9vfK z%? zyu^YU!E%wkP*?MO?wuTf_xn-TIP-Nlv_Us@Td($ze&7M5tM6|$5Tq>eP3VENCTj*F zu(jrU*%8-gN6@19P=3ycU*e%@Fzk)!Wec_M3#~AY0iO?2Cx?Wb>*b;1EFs3waw&j? zMHNiu>t%;1dp4|!gzQMQF?Wbqj51z0=P|8LpGS|+L(Id;0n+#7fF+(#Rdx<4vRt_0VS@O#wp97awzLvh;a-(J31A8 z3!=whv0*+4%dsYeags+lwT42?D^W!8JR+eN3D9)=jt9vYi$!2~dN-Hqgy*s^YR-rB zG|!I9SKVo`%)pf^gu@=vD~yZBl}MO+%~|iy`NMh4ZQ#n$Y-KY?)D1TlLBzixj61)U zE(?Q@IwZkeNAX(=@aSJ(hlmPmA;Q&0pwc>$DO5Nfdv>}n>CcghGg%B)=qt*8DMOUJ zn@)pL304(NNx%AYfQ1U|&o|7QaA;IS4;!OJU*-`#)YF#bAbiA*rNjVw9!MCaatjSV zgZvU$*|Wl01b&^q*}~w1${aQG^5)-+W;2#y zO=&MCpXG9MgVVI^wp(TV8hJk|btyy?DRT)>)Z$MN=kUtzfrOGv8Fwc&0$+K`j;ksw zmx%*BfEz&(Ub~(h4m??2oq0uz#DI%D*Y1(>CHy6x4DM?77>+#QkLA7{vB6Rx!bl zc_Ugq#QOoUR!}52A)@CV59$L%T}f2NDpZEdp8(SQDIVT>7aKRwcmupY&U#R`tLI)1 z!3Rlj6$vs{5oD<6J`d1C1X@iX#ws9&Oe_uHA_GsGtg7c!xLn#~e*-spvrXcvzhm(u z9)AozXz9(FYP?;~HjUv2?j?|38h6_6VygxT>bcxsaBCm;7u2Ap2(Ib|y-dJpG1fh( zmLECZUxc(@vY!5I*VAR53QF@u%(vKXa}BtJkV4>1lpS^PA?so-;;nT|6u*la-|Zpy zggzm16|-tvEL9}CLGpuptHDA*zFy>o;A(SgZhnmV)?XUi|&^q3mY}){p z{u?JR2i=$cTS;d@{pkti)Pm>f1klFU#!loVKTQ}vzD|Ee(utfu zeY>QSYIgb{spDsnuC6mLOT5m}(HmfO47Ol1%WZ4eeZzZ&n8c^vRA#tsttT}!-h<2R zwypD|hTT;0bY|Cag~18W4)7A}Iu3aF2o(olW+MnGR?37S>m)>oZ(b5tB~}g%4i6`ns~?Jo#Et;I4HN++3|z zUxJ&b)g}qf=?K;TAM4cjdL*O1WB5Tu>w4TN^~AL7dQ$$#=Ovv;+3D5B2`KanNZ0i^ z#+5d%e+0_5uX*ZXvNx3kw>5fF3)Pfr6XgcCPrQh{f?X%6dZHK8+yF8vt1`*Z+K32M z8F5KsK4ob>t#&;8m7&}DY>;{hw8I|;Z~u`aa+kK%0aUjxT*{Uu2_BJ48+2vfiFC;P zWc+w!{<6rFY1uMWGJi$ViIknLWd17Bwaiy|rAm_9A|9#6y{RO)t;v&GjLcs{Ucs(r zkIWMw6G$_wGI?4_1eMHFlEi$<(tKK7codfTF3=9|Gv?}1j?7)!)+V63GIuFkns^9dclHj(eC$$)v zzlFSlUGP8C9*Lfx0y2R#v%+~gJgqbyO6FT7iTRYJ`Lr^46qfnhpdCIe^j@1IbCvnrFPbq0b;=4VP0^C?U7X`O{fVVVCPw8N*> z|7NZubCJChRLT5(NheZvx{~=Hk)BuP zB)M&aN2;HAWlnkG6G$_wGI?6(A*f`&O_G>TS(;Dld^`%v z`~%PqpYmD1mmQhAw5dM@uY+Wb`g=Kyb(joJU@#B&CpGBrj%a*B<`G=BDr0jGh z^N*0OW$x=kNpc%*gLcM3WwoBs4he4S@T3+a^N*2Nu*>qu{1T7}q?uKjJgrL+R5Jgj zBrzX2Z}7A(!=tdw{|mIk2h{bx<;dKnZG8)=HHVf=2MpD)4CFm!ZQDF&<;WbV?ot_P|sbC&AkD1GdM@uZ2e3U3d{T!q(kPn;>RO%%nLC0Wm>jOmCOT@PNeK~CG#NCwanl1N|hwH zb$g^5nBcMJB)IJqPiiqTFGXI#uCzzyw}Fh}zD&ws-Hr$)^E)Jo`IM#kwC=>Cu*~~` zb~rX}?#+(OUE0=NKy_vAQnv1vgu*hv2kDUcz4-CSyi8=uv}~CwnU_mCk+Rd3%qx(t zW$qg*lH@il#5sLv*ei1q+=ev)H`N{0_&f&Qd1xi_3U*=bz_I7|flMIHtjgqR-H)J> z`2&)~e9F>%S`Xq;Smq(n4&Qj%S0o9ecOWAr@5(>-w=SYXle}Ny5%&SDE zOv{$3l6ikgCsKC0l6f`KwajOFrAm_9PW4E2sW+7bw_#1>E6IEh#hLv>ruJ$^0=%Vm@VQKCQ>`C@k{Di9 zitJv5L)R}m?)hRYssZ~Z0_Gm@g_icSu+voC>${)w*I-|Tssmg`09*7@UOJ2=9Sysu zz`mRpma$$~uHpyMujGYgEMc>G86r5Z=EY&Gm;PP?`&wRD#(H6E1Qxr_^2my@`FO#0 zO7Q=BUL3}H=?@cFI2iNLXRH@?Z-IR?FDzsIyp+lLkKw>EpQN5Wg-0O$JHQ>m1*<^% zZ3IVtAxkZyf80SQ+aYT*Ou`Br7d2~=wNQhq@<93>L}vIv_&tW-W!PN?^7(j2kXQ2{ zI^o4(@7{4*ZQ$x5V;?CC^9hyB=avFGsrehiAJ<~I=3CE5Sr4t>$Fk+W-Z0_GV1y+I?vSxAG*+>&5%yWT!fVkXAef=YiRm2}%68%(O`olE+C&-td|K(qa{+W5{@2%<6f1E{s73fbJ#&}m=vWLN0m&D5N zK}d(dj^rwkE0*D!EZ6omSsoW4wCCG-$~NpP^-FpB>wkE10G#QkpqhC{iGtm)0PHD_ ze^~U}B96iZK#&P_SR4CWF>*@C*&D3Z#FFfPa4^78dCq2B@TQhbD@T z*aI0`uD%-VK{T;rS(|91K3o9kdMpXpcHAND+Z>sdt-aAPf3`$4p9bfeV!mtzXn$|E zXHX3LD_Mq6S@;OqcA!8+SOQ^0@>#sP z%N2IJFO$9Eqk!jDR3NKvBo+fSBm>>$JZHrhBzSMsTwNb`oFCajx32g*a=GGs8l6)R9nHTV|W7F>< zw&z7e=q+V0A)I^}k6y-#P$k{Gg^RSe;*og;2^#+`QhgN>nb+_z0$X?C=Zn3tvwK8f zNal3~Nrav^@X(pOiE#2QJbD?cGGWNPjhWoeOy0&T%sQT_Z5WK0@NuG$Dy9mbx%v@G zTwZZ4HYbe0_7&?LBwO#|AX9$a(7?RN+5SGG0;56%?%`$pYt@rVc4c`?**Y>Z#ey%S{h3rw-_@H3TJ5WmG zDbdRm4T{ia>W>KORK<%*$iSBu3JjB~#d@<^ebqIcro62W@Nig?Y$T79a7q_@(bSSN zcLQksQg-V=(JxZ>>tD8wV>dd+ffeaG2yA<c}J{cjO+d=m{nGmO|6G3pqdiq3g8zIMPt^#n^L*Vt0rzPr2)FWSKQi!v1+xQ7D`)+aXGJWHaaNOOIQj z$$ygBe+f53O*m1&gEJ-{4;q2=mxy$QO4)F1&sZf(rN6ZT3-3i9SjH+?W!EPF)>X_v z8Z@^eLZS$y#uP*Y*BCko%BUC^$diV9bD z{co)Ly)uNRU1z@OnRr<6PJ}XWBZQ!AnBhZ+NanjW3SDXjlll;bg2bzzMjC-MqpSmv zcwIXTWCqiEA<5qi=H0Y01Rq+p>tZ4(WN3`w!3czKlJcH_iD|UpF|QOTl~|bUhJ=Se znw(%O8%6~OgNDQL3~+2SKTCpyv+jYeN)Z64F`@B5o&ck1)Ku-_j+20i$uReb@c`>= zoNIzQ$Uj^gZ17LEr65L+$0mtt&MzFwmj!90tUvJMJ2Ou)T2gY`T7#_%QmR)51 zQCS+uqZ!GWKk^P__}dM93J`XV`4qGPBLJpsz@Z3183>I)AWbH$77VfF#^DTxew_6& zx&A}s4G2cb6~vi65pr-&08SvyC~GHXQkfwLDROCSl}C_CfvtlH0Pjd>+60nI^IeYc z1kwsa02)y^6MhkPQfdNj5BAHa9|1Jrky`&insUN6RzOwackGA-ol|AJm;A3gqwF4$8r6JE+ylc8mu8Y~m|* zQNr<>3K5oUy0!PktNw8gaJ=ng7%1B9WGI3K+6j}Kc5*U=%z4k=h|KU&sBO$8f93{& z`{m31)DNIO=1KWU8;5ic=UIlbz1PVEh_;xH6{v?HJ6`J_W(eEM?3RMXSGE-5iUyGl zi&`&E6}dE8wV8d901YBw{S}~rHp3{@W`-l=M-QYKm-sQx+x6Ut$-9YdqanHeS&`ch zsnAa$H(8Nmlp;5RGc|0^0s@n zQn%e7NqnXJN@=|9UbNfW?t=zx#UkRUcA)gnizE7&i*uAWAL@h`M|8x+(PIFfC*+~I zqos^tAepK&g8xSyd-v;six-q{CN2gZ=8PEHqQ}4(wp2c)R0yX`aF$432Lc%PwxCbR ze{Y2vCoBc5*Z$$)pSFJoAy~lvF$wms90jXMo(}z|{TqwO%)xjddVH!fv2BIP`R03$^WGrz7 z9Ixg|AZI4vHBghO!;gF*4iFNRX3Vvyv69SqglHc48%VP-{H%0YW(?nl30+vSmyx@j z3xSD_86|(zi=u1a$MT(kd4?DdSVEDZ&DZq~UlWN~lbM7c&6h-_8Kd~Z$vNSRzd3vj z*L=+;Un&>!MRf4RAN3MQldj9xnZlQ2)Oz`W2C+)8h?FiyT-d0 zqF`x-r(Sn6cA$3I@(QGtCZId)Yqp{=q$Fd3>>cB;EWn>@W28RZrjTJv7>oJ0QYF&! zhTV1=koLVw=pQQLos6gX3#f{@$ur}~KR;OwJhbmAM0o@#T6$jIj|Gg;GYud*)h!#F z!5XH!SJ?RGLAA;AP?Nnx&bnv3LhdVBOWdH`CaCTd%rX{=kABkh*1512nu9X~B1~=a zeC9Kq`DoebU)n%!WCEAtQ(c;Jb%8!a?U+W z3yce&SLe&LJoNniM93qMUdU4If{k>9$9i#LOXbkc*97)Rzy{Slfev)Go-5x#qrfi$ zy#E#_KW%lF(@B6un?Svnn%{+ z-fifC^fKVsWB#QG7U=Vs2ILCU~8U@w6kZDD$v zv-lt&4?kHWBHRN zlH4vZomCo0Gf`a+BkPx{RMsz1CF&6BJ@J(~Dd~8}vm&j0V?h&mJV*&EF7M_<5;B~u&(d|=|;fYcH(OY7O)dc za>mB|rXlS_1d*AO@Ibhk;U_k$-F;L+p0Ej;>zff zGBcloZRr$~CM=WR!&i*P%=bA%gQa6T<_lO~|3uyVfezma^F> z>^r%>KK}lI`6x9Rn09F&U}+gfqvDU46j_UZU)JKQ?N06IssU8`d}Zq(IsRqq|0bym zvemc#Z}!w#@%k?%=u`i<6v*Gze@e%z|I}i)f9)o|QV%6TZ~rQlkgtDL{nROv_a@K_ zs*j=nqj2A*$L6g#&PRsQ-SRvIPwQ8(Xk4??FiQjJw4`oj>NAq6)7Ul-LbYRtrtb_3 zq%(la`Tm-_LzVW3cVoe~;SGfTx(}NHi7qQ?pT1GrY0}V#d*|@OI zd~3jb-fmi?q44(Bc%1ra{v21$4%Mb`?;Cdbv8eC9tD2JbubwKhAP0T7qh629if>24 zZlCSwv;z6N?TBLWwj*ke+m22rzN!@^EN?p!;koTd_b+Dv$E%B92Sr;K&qlC-E;7l{ zMSk~>y7&!5X3oI_;qw?im*E2a%bDcWd?80K$=CI$o3lg~%m;dz>&t2Zh*HIrs%k>A z%D2fc&N1RQkR}I#G~kaxpgkGcB?4E8uIR$3K^q8 z>m1MuT27jQp*;h*4>HogmZG)D7iBEifBphmmLyG3S$&No2E*nS+?k-Ko! zjlUMQ?b=(7Y)=o-tYZ*cRbNdp1x@T6&fYWW+Dm1t&lMig_~53x5Cr4`5U14H^ANQc z>^zatMS#xTm*CPb6aU6G(hta0SL)soxjf0d2PVnMh2?kg)ZFNN$>S2{QEJ}dh0f+l zeShHsfxna@nC0DwMB0=iw}f3NFyACi>v#YKtx-@v>i|6R@-iKaUj}INZsgAj!M|_S zm2W;Ivd4$_9aH(8y&r2Yzwpxyol~xBe*fCbTCSRO&Z~R;@SfMY_j~{OH_v%_$G68V zzN_-Vt+)1+kH6>l7w`M z>$x+Iy*xhn=QnI@Ipwpae|_*&^xS19lni+}Ue??^W5DNst*$u#$#BQvUmF-({Lbu? zo==?IcFnWz1RECaEIs;PXI1amcxULk&u_SMO8oNM=DhIK{jVPJ*#kfMUHqjUU&_Ko~v#`xB|E}H$?rm~Y?EqNfk21M5x@Af;`B9-4fyLXU%n-}{QbN4{Np_j zowxOzd;j^yzPp+hjeljYzifSOTXgZxf2@t%w&dw!?wp=79=P`Hy8Cy|zV3~qUcBt3 z8SRff`@?^H`oeP?-jB`w=gS?F7o5}f)9v@1^h$Dk>AZLM4IbLKICSGvTdQ|9oZN5u zjk5y>4IEhY(AnYsPaSyY`Zc$oWrZtuw%+^wcOp;k@!9KNyZot_4<2>-_FL|_;l(G0 z&bWQuY1Mbs9)7}ucmFhg-_OHm-1FzVZh!cS{%_wEykf_#sc8$J|Kra#@3?ZWF|U@M zQS(}I&#LC%oq2f6H)n2WufE~94X0E+v&TDEepz|xK{p$rTdyk5%)4~J$2+dA`1<-! zO7{EWk+Rr{YnuM{>$Yg`$y4Kd|GsQv$EFcGzj$-pbKf}blvf7+=BQn5)*JVJ_Sr`d zT`>2dyN5o1!7V5K;o28o=(+USA3XNROZ6*0d1KjswcY=0+nNWi-&JBJ{KWJ}Nl%q*F>~Kl;&0Z>)Z!?S_vo=$P33P;9}r+atdoen#s9SMRV6oci|q z6_;)9|C`{#s{8M)35=RBrr+v^4!`elv+BXyE;;Uwaitq>KjBATzWB(*XSUyY-c>Ij zvhU5WAAiduE#DpUN%IHayLLlY=+gGUkIO2*H*4x1e>$tJJTZ8U(eL!59=>eIDfhg6 z^SE2n^&{@;|J@6ATvGke^Y7mM(Q8}xf8*7vojaa8d(PWC|LgC!?^@q+#w#O#Tl3Iq z$B()9zu($?i?w;--NW8HuHu}|4FkUX)!}8WCsdUT`tqvig|VBP{{GyT8zb|diPvm- zJ9PDjJE~t?bw=sZM{W;Ji;QXe(cfxL+P-9AY|*QmJ7ylW;n|yCJMM*-TdUqU;^V_# zI&9_55B&J?tL}gO)Msv6`2Lr7*6s7jgAbnj$bG-6yY%*z*I#?b=zdeT-*;)*i@!a1 z&FiZkZhQHF+EZF@zvrmPV}TLtPyFUMYwTeURo(G}3;I7g;*EaCo&Ql_JbYHh)4%%Y zAq@8o?zW4s>`tbl?X@eSNvkW-98Ef*712mbG;v6{J=ts};<2Vf!pBAv$(YqKV{&aB z|2rf+w=16NN@{t0NU_kLui4Mllm|CnC#d&*T4{b!*T3skQf`Rf!XSbIK+E`0%#cYwCV*;j~$! zKkqs6yF<=9^=_b?g1@;a)Tj7;6u(>}1dC$piwt=~P;e1MX( zMq>%k+KnbW6X2yNm9yo916WCF^`SJyQ1OdNJod23O7Z=9bNHw z*h+*W9pPwuXR14#OeJC+ZM7w%6l8l>QsA1Rsm;-7M>t)V0c=Y+Juy>TGSLqc32zeW ztqH3=oLV0Zj{@|laI~YVJ(`H5(12=7M*30O646L1ngBEy0Ca81xIO^DXY}N*NIaaf z6!1QN;CM8d^pLU(tBc^K=FnNH=(u9Z7DsqdDlBxOF%&G}lU%sN>KN}6-VUre{;xMR zIIe;_mKC}3|pFcY+{K4zS-tWC}(`|ow^WuZYymh77@w?Z4 z-~QeiUmWmhjUMTB{FkoWKA0MUSqXaCQHsb*t9j zHl-u=n#QQ$9=tag*Rl@cDFL4dz1#A%Q9QbePI52#-T}7UJK- zlK#zryB5DA@%J#gkGrdYhcNsY#wURL8Q^duru?%2i!YfO4EnXCh_W^BYUue6pj2ft9LtiBPWz7{6_H-DNizDDK zGrTy)5q%*Zi^@tsB1-M@E5qd=QcEJ6L~Jp%mSrAYJyv47KxjTlC7_xK55gDM??he&o1y=%PPJR?6{3ety z3F&E={FQ+FH;mdPB2m^B?ab~f0mspd$zC9T9j*bH6vm1)B`ISiI7s0?ssr}R8*}_3 z_t)VZR5@8D3`yi?c`nFI>WfT%H2A)ad3~WR6NWqGIS++M6v+P`5IV9iLMx%gQ5eyf z(F)_mk)w`TfH?LOu10?fVq^Oz)&)|u$Q=F-M^D$#7x?ZpZ59YjE{=d--_8Ldq~3)o zL>#3^qI&$5mtX4m)Cw6cjOORX4;h6?_zMWk^hf*i^`|Kn_7mL)Lx?^}?7nRu2NHc2 zV|Q{t4Fn+f!g6p4_~rhbM$DD?T&Sp;pXDocIR;XPFvncP{8cpz2*P46g1?2Y5M}H{ z3umVnHO>NJUH+VCWWCaL75_pYi9Y4#=C3`slvIbufi^vVUViE3FJlQtdG-0xy=>-3 zUIFB(`H|h)%a7U()Y{#l`YV11P?jrEyQ8w@sB%lpO9B?M8y3ov%AlN6#*wg_oA5r{ zV=-dVV57!D#HWnUL3H}=h$><$0nX7QyM$H9iZ<l=M8ixW5MC5rq-6D~KHzr!)Sh`7VeoD4xh-Ba$z%Zd&E|}#f>#U??VnQ;cVG&1Y*en^t!;~65bq1hFhZXXe!zgcDyXf zXkt?|QL_I$Cct+iJ{m%2LBOXYAkkzv67GyNZ;Z4>b72l#*%@t)wZ;HN7fw?o84WLt z#N*LK_e#kqygCuDEt#jlx&>%ai}-}V1-+zUt5srk7I4-mo^vys)Ue#{nk-f@Vxe2F-53<$zppvF}x(XxVcnls#sE{s17^3}8h-=TKmP@nM z>gp&`g!^et*K!Ldqme}O`Y`;K?GW*>c*wP@xLNRoA6m6qk)W zU5QTHl9pH^+MKcy-J+yucj0Cs-jYR{IhTxH9*>e;MY zm=bgaggKqPaLHt}r9_nN4K`cbW@X6_33q0zt!?5PlXtome3T-&m-5IrwU5kb0#s;)L0-b_BM8ponn&MFm1JG4UuT1EP zFpZrFt23HNb=Q{6B0>FX(}EGp&Voo%zhXmWNlbFDEm{8WaD*{HD%R}g%Rxnp;;pu1 z?COpP*`~?CGMFz_NV;#NU-1X7sjchTLM^|SH z7Tc0)7zS;wE!lr=S0aIy1lyVD>gXV#SozxM7If?avShVjNoD53*wxw*-AogzhXRpJ z=&JD+Y8&lny&JTTN<9j?rTXMPRNP`z=Pt<-mkp3Zhj} zPhr?2+WnhDa!Alv`?4Fo)b#DDe%f>Y0VrVmeEH+1zsuD_`B%p0p8 z|K*L(-|{=$Wk2etr;j`Isa1Pl`)jjg^RtJ&xp3#%zdK`R>76g`9QoYV*LJ@B*jxYl zRp{*to6X-JxoPDGKmGK~zdiQLSNl?*18#YI>fV_t zQ--g(A-L~85B+-7VRsCyd+~}NPaOTi(}zuZb@B8O7kt#P@s{Z`%l~@L5rJ1PS#U{g z>5*4Gv*ySRPyJ|d=?A}9{H@EnR)yQ2U$^`>A2%KRwG-M8pY_P5SATfLR-9BczJx#T z&sYGR1$Sge&@gb0()a|+f@!sw6SmBH5-j4Kc~9F!h zKLD`HLE}@%a zQQ7Up)ubp~kqP+Fn96^3-fd!DFSolj%VqstKv3 zbhUF-vCkI50;$Csm8aiqXl?T@a9zT}{?EuV(^mW?@JF)~g*q#>_GW}jn7Ly^@y~@N z*A-9uI9r6k#-o>mDq&i&i$Wpz3$nX*Jr<}(Z81IvdTTB^3&ZWkssrX;7-}jx zahFNC4V&3A#Sfp9-7_x6YG`=esKKbl^MdlDd6WA-m~v%8@v)naic3Ywhz(tB0IY@?|#+W zNp}sR5&&W;*eB`k)31B%N7XL9q_G2NW+AjCV2M33J8PQdzXEu1Hn5+Kl`>N6lwn_s z!RA3>aGy&QmLY{dHI(6=jHt06hV3V06J#m<_DB`SpApB!+|D@%1?GrhV~#OOA&Vu* zpk%`AHf*(TgQG2ca#u9L6`2IK(qln}%WHI5W6ce&v}FmLe3=73>5RGRh(Put2>gIR zSRb){-<{EpmS{&a>2<)v*lcyA;7-K4%-mR_xhoz?z~yYi(EFUi`j0q1;o5^Mb*|OX zic>Sly1AK-$d+2$>z9bO!o%Lt3|KCdkX85>1rwfGLQR5iP?1hLD`4=G|3@f#2o9Pp z>oZ)DQmnyenjJ+KW~&v4-~dAQN)DLk7FxM6BXO*BwRB^NO_qbXa1&mP<=PzAEQF|5 zt*~w}cty0`+JsVjvp*m=GM9n993ah?2z;!=7b{G0CZ`&bvfRu?Hrs_;TVgt}-8LjE z9gcRr#@GjBA)0IFu8(1{Le-nCHduyp-n$`rxT0+bZBidoX^(9QN4H=Zvm+9hrF{7B zH$amdK%7MJi&($xXQyC zTh)WZ7|Uc!KkOr>RzX$H^tSVG(P$q;!fpx*MuZ?xBYjX^Si-Oym}YDEJhv@khsR%5O2II=NPVM5(mw_yxkIWFpxMzptC{S(5_}O-w z*TrW(SjEOtNkTU>E}lw>u(Gp&HiqgTdlT#xoZ6DL3)H>=h@}M!KU_@K3J7xxquGqr zo7yl}rEKd9gXmu)Y?dWLlE#uO^pLxIQ2No!?Y%e7S{eyNuu2jM>ve8y9B>y^9O){a zL9IE0Rd`jUww{SKj-dyb^40Lzu86iTW$7@aMQ7(xTXL{keZzL2=4d;58fX-bTiX2C zy%O467Zh=g%YdvWVOvkMy@@Mbx^t1UVp!lqCx{I@omisdG8|WmWVOp~*sTdH)@`;D z8+A<`;S#o&ncOC3!^m;5NVi&?Y~r~&M|PC_0WJkDJaSb$heXbLm~C}57yJ9$X><#= z%_M8XD>ueEJE3W8>j&u0w#VAmV+)i=AE2;Mx26OusCEP{(QTNur9G}Sf5xbZwRNMgir)+_I@)H8 z>PoeauOBsQW_74xOLBU$d404!5{|XZ7^Sv-jH(WW@lVysQq)Ki@`%nDwLX>VoIYWK zf=|}A$C?vX(rQiBqDChuk%9b#Np%zJCe$4^K@qFnl5DXFV$U4)XaTm0%~QLqW{lzy zLy?RP1GYPo|MRSb%=GqT>OV(pi_6yL&6{gCA6jcASlGIW6V@(Syi$aSLO`e#9tCTc zH_R328KZ2S8f61$Ahw2hbjvENKzmYjYLcTdSjem-o$Sw{9s8cJz8e_@ld@$Qhk0Om zBHm&h?pq#8np$C22%-P6WZ2MFfQ}c+&t0sgPrhWyf5s^4qig{f6`t^wv#|U9|L^&v zVySqvk6h5$xP9V(Sei%|HkKuledL3>{SV}Wo(`Ky`^YALadb`R`&DfqUkc-L+lJlg zW4CLOY(zS`SFcz^9VwKFj{mBx*kjB84Xng4M)=>rhdqc}tj2A#onc#%b=729nDlo1 zI}N%enru$QWH)jjnf+&)L9z=woDttOncr70oR^w(#3^)^aNA%uBZCZfvN>G>MwBx~>6zH>HOHHW4(H3u z>2338sCRjO^$Z&({M)h-RD0Y}god$rg7Os<<|}enBu4^Pcvw|LroN1Hz3JcFW}K_< z^n9_+x~dL?=Nm~DkZAF$OvoZdou5A+dmP%j1KqFG5{qY9OOU_Bie$C8WTJT#=WN~< zmeU}1Hu+>P~RJYM+I~?p%5I!pkJnI-A(>akIz-*p1tT#R%xWjV}f-Ysl?0AaK zrkNWX8|OfjV0b|+8gDTg=BoYY`4i{4Q-oYhPa>*TuAa+JWl5}KcA_nrOJPZ5Oa6q_ zNsQrFsyRb0nm4uYoCVUuX8~Fsh`#CR)KzpSWs9;ABTgRUToUO3_qck_eoq>W_WWW2 z4mx4ZX*8@9Y2{F8&}}%IbOXeMyT>|Gd4!0SLU>+t*=bl2?X;3H9#dNok<)59`87s5 zV>p!RDC#0tXKhZLLd@TSt>Qd+O8y%$k8kN}7L79It{mMkb6R8LT%7xhw#>#IV%_al zS8_=d4we?4)8%6Ap~ZnsE)Hx;abWeuflWh40ds04b7j~V-O?QIYKa;R%eqpXU8#Bc z;9rg?8+as9dXVh8D@r~SojM>5+<>9Z$mL{XyLPoANe^hZV4fh+wzWm|jjS{q!*}wT zbtp&BGy)Gq!vUde$BBIQlmmN0d|Gm5Z51BM(>S-j4XfyT%t>yT zt(=9q3AWb;^2|+JuGV(*rY%y=r(7iVHqfygZ%{5|LF>5Kc7f!gtb&gsH+G&LyTGZC zliCPfjxnR=ULTh!qtRjnG#06yYTPLDHySulRTtRi zaE{7MtuLsVE76Tci7n>2IFsH~Ty;#UGdOILWk9eVZ*jX`bvLikkbhVueS~vUZ=M1r zES@O060>p0KgJzPxac<*Y-x0J!C}W-t0l^g?Z`y5H5XH-7DTsuv1nqsg+++&9164T zm27*i#bTnrQroOjI#FU9IZaYECyLSz8>tW|vEFB8qfwa~>@FrJ-$q$%UlDDK zZZR4=P)21MfPtZE!O|>BB6U#*1_VhQZ_gnLYqg~>+{l(ba97Gr41EkQ6u>g^*5_ue zQtj?IH+c;BD|0ZIo+ndU&j7|M>6you7B*F+LLd5bD+>T1)2 zTz3?jOK~yo{D}7jpbS;s9PM!pM!(#sCpH5^0l5KTMKmt+UWsg2CM$5cnX@(Lc6dcK z?Ma4Ok*2xejoYH44KQr7LY$k`qNKBHF(*-5sCo9D7#e=tXc^L_Q&+We&RzQ51_vZ|sRD7}kmfZ&*8A;|*9;v4-xp_&$7XJoz zwBdGTv_ZQs&dI*0s)-b5bc?jj&Bal}CgWlzLAd*>7_ipjz$O+s3z`_g#0{HE=Eh@a zD6pP9NiSA1j+r0ks7<^xg|#+yveDp-?Q_KMq&WI%Pb)zl$f&hVF?74eBFq7uK8!O; z8Q7pJ#^yri!d}B@+!Vvql!FVs5R}3h6}vld+#N|6#5}Paq;=SXCN(0Ug+LD2+z^el zJ8X4wD%Gf5ybJW^CkzWo2*#TY!U!aW|#67xAVS!Edu(Y!F|_D5=`6>nI{QOD*)^D54DjHS_( z(*#`~w$Uh;fVdGb|H_9SYizU~l*)SlyPa7nR zS6zTkPdJieraXxpr+QvtamAnSQtHd0??MTl9!l$zB_Jx zH>$;PYq@c*W8aAzJz6Pp-Il3!b#+rB6UR?98sP1B02<)#cVBqjUAB3W8JMGUxyel8 z?s!{Y^A37uPHJqFQx@pW8fH#xgxTl(vSDVt5hGbOVPDVP@aTLRW=?Kw#Dyv17>Hs2 z9;Vv%Py}g*Ha5avkQKd2t)s|@Ho65LMWOH1@XXXtrUDub=s9JcK66TAV-w|YO1G$H zk`c{DLlV1X83Yqp_0>9u2;d?@sWDz#4TvqdQP3vVaXyPR8q8hj70VS6OvfVZtk3Ov z8WOU+qR5at*olrVwf=)#CK(OrZ`;Yxp(y!bjg6ZVkxq2@IylAPM2M4nyU4kD(@m}x zMRL7bTE;FAcr4;EZo$XhQ@hZ4Zyfuj6>Cx*-s>UC+Bs2;B!0 z+&4S47<P1%;KoK`sw5(AQKK0yP0EMAE>e@B%(`8@_K%!!G7{VkZ{YG#7$aPUVPQ#>Ce&Es zY)@Z=`8O?g?V4y)?dnu4o~(rewObu}a-6J%Ws+%fQmsnZ>9w+WQ5eci*$trb&O>u+ z-A(ZZCL4|Rnx}!QBb_kg$sg9~M6;RZeP_C7IZ$xD?^)@ZNr#pP)|W;+xR1EpDKvFh z;?**!inqgz_pWnFqAwyF!j~P3<%RYoI+z}2UHab0e2_j;PCgzi9{?%n2=T`d!xynI zn(`nUc=a;wynA74rAxMZD&-TydHzTO#!OW$*TRUo6dkxHiajTz?Wm+DjPq)0ub(H* z6V#c&X9!agP1qEan(4J!k)g9vi?sytcMFViWC?&BY=az*RYMJl)?vnDgu*3ViPvGq zyRI@l$5qnITIV&6jYT)}Vqq+6#5#0oJ*8O%u{c1ON9xi*G-xxD+MsF7Y-((*!wRWQ zlCQA!-dET>{p!*p94uJ=gu_H8C@~jZb?GGx4z%GEn5<=2fz6JiWc2E*05~t8rmk^i zkDXl9;m&O^%#q4brK@cgg(4x_qb788cx5!+s$6M?`XM=E2~M=a$?2piQlv2#=GjUt zj<({|vj3H-a#~Xgw+1%Y+Po�yhN#z3*$pw98YJSwad`D)lIQ&P_!n{wn`c{y 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 literal 135168 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 M6i6xXze$0A0a`foA^-pY diff --git a/lib/nunit.framework.xml b/lib/nunit.framework.xml deleted file mode 100644 index e67b2cd..0000000 --- a/lib/nunit.framework.xml +++ /dev/null @@ -1,10228 +0,0 @@ - - - - nunit.framework - - - -

- BinaryConstraint is the abstract base of all constraints - that combine two other constraints in some fashion. - - - - - The Constraint class is the base of all built-in constraints - within NUnit. It provides the operator overloads used to combine - constraints. - - - - - The IConstraintExpression interface is implemented by all - complete and resolvable constraints and expressions. - - - - - Return the top-level constraint for this expression - - - - - - Static UnsetObject used to detect derived constraints - failing to set the actual value. - - - - - The actual value being tested against a constraint - - - - - The display name of this Constraint for use by ToString() - - - - - Argument fields used by ToString(); - - - - - The builder holding this constraint - - - - - Construct a constraint with no arguments - - - - - Construct a constraint with one argument - - - - - Construct a constraint with two arguments - - - - - Sets the ConstraintBuilder holding this constraint - - - - - Write the failure message to the MessageWriter provided - as an argument. The default implementation simply passes - the constraint and the actual value to the writer, which - then displays the constraint description and the value. - - Constraints that need to provide additional details, - such as where the error occured can override this. - - The MessageWriter on which to display the message - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Test whether the constraint is satisfied by an - ActualValueDelegate that returns the value to be tested. - The default implementation simply evaluates the delegate - but derived classes may override it to provide for delayed - processing. - - An ActualValueDelegate - True for success, false for failure - - - - Test whether the constraint is satisfied by a given reference. - The default implementation simply dereferences the value but - derived classes may override it to provide for delayed processing. - - A reference to the value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - Write the actual value for a failing constraint test to a - MessageWriter. The default implementation simply writes - the raw value of actual, leaving it to the writer to - perform any formatting. - - The writer on which the actual value is displayed - - - - Default override of ToString returns the constraint DisplayName - followed by any arguments within angle brackets. - - - - - - Returns the string representation of this constraint - - - - - This operator creates a constraint that is satisfied only if both - argument constraints are satisfied. - - - - - This operator creates a constraint that is satisfied if either - of the argument constraints is satisfied. - - - - - This operator creates a constraint that is satisfied if the - argument constraint is not satisfied. - - - - - Returns a DelayedConstraint with the specified delay time. - - The delay in milliseconds. - - - - - Returns a DelayedConstraint with the specified delay time - and polling interval. - - The delay in milliseconds. - The interval at which to test the constraint. - - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - Returns a ConstraintExpression by appending And - to the current constraint. - - - - - Returns a ConstraintExpression by appending And - to the current constraint. - - - - - Returns a ConstraintExpression by appending Or - to the current constraint. - - - - - Class used to detect any derived constraints - that fail to set the actual value in their - Matches override. - - - - - The first constraint being combined - - - - - The second constraint being combined - - - - - Construct a BinaryConstraint from two other constraints - - The first constraint - The second constraint - - - - AndConstraint succeeds only if both members succeed. - - - - - Create an AndConstraint from two other constraints - - The first constraint - The second constraint - - - - Apply both member constraints to an actual value, succeeding - succeeding only if both of them succeed. - - The actual value - True if the constraints both succeeded - - - - Write a description for this contraint to a MessageWriter - - The MessageWriter to receive the description - - - - Write the actual value for a failing constraint test to a - MessageWriter. The default implementation simply writes - the raw value of actual, leaving it to the writer to - perform any formatting. - - The writer on which the actual value is displayed - - - - OrConstraint succeeds if either member succeeds - - - - - Create an OrConstraint from two other constraints - - The first constraint - The second constraint - - - - Apply the member constraints to an actual value, succeeding - succeeding as soon as one of them succeeds. - - The actual value - True if either constraint succeeded - - - - Write a description for this contraint to a MessageWriter - - The MessageWriter to receive the description - - - - CollectionConstraint is the abstract base class for - constraints that operate on collections. - - - - - Construct an empty CollectionConstraint - - - - - Construct a CollectionConstraint - - - - - - Determines whether the specified enumerable is empty. - - The enumerable. - - true if the specified enumerable is empty; otherwise, false. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Protected method to be implemented by derived classes - - - - - - - CollectionItemsEqualConstraint is the abstract base class for all - collection constraints that apply some notion of item equality - as a part of their operation. - - - - - Construct an empty CollectionConstraint - - - - - Construct a CollectionConstraint - - - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied Comparison object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied IEqualityComparer object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied IEqualityComparer object. - - The IComparer object to use. - Self. - - - - Compares two collection members for equality - - - - - Return a new CollectionTally for use in making tests - - The collection to be included in the tally - - - - Flag the constraint to ignore case and return self. - - - - - EmptyCollectionConstraint tests whether a collection is empty. - - - - - Check that the collection is empty - - - - - - - Write the constraint description to a MessageWriter - - - - - - UniqueItemsConstraint tests whether all the items in a - collection are unique. - - - - - Check that all items are unique. - - - - - - - Write a description of this constraint to a MessageWriter - - - - - - CollectionContainsConstraint is used to test whether a collection - contains an expected object as a member. - - - - - Construct a CollectionContainsConstraint - - - - - - Test whether the expected item is contained in the collection - - - - - - - Write a descripton of the constraint to a MessageWriter - - - - - - CollectionEquivalentCOnstraint is used to determine whether two - collections are equivalent. - - - - - Construct a CollectionEquivalentConstraint - - - - - - Test whether two collections are equivalent - - - - - - - Write a description of this constraint to a MessageWriter - - - - - - CollectionSubsetConstraint is used to determine whether - one collection is a subset of another - - - - - Construct a CollectionSubsetConstraint - - The collection that the actual value is expected to be a subset of - - - - Test whether the actual collection is a subset of - the expected collection provided. - - - - - - - Write a description of this constraint to a MessageWriter - - - - - - CollectionOrderedConstraint is used to test whether a collection is ordered. - - - - - Construct a CollectionOrderedConstraint - - - - - Modifies the constraint to use an IComparer and returns self. - - - - - Modifies the constraint to use an IComparer<T> and returns self. - - - - - Modifies the constraint to use a Comparison<T> and returns self. - - - - - Modifies the constraint to test ordering by the value of - a specified property and returns self. - - - - - Test whether the collection is ordered - - - - - - - Write a description of the constraint to a MessageWriter - - - - - - Returns the string representation of the constraint. - - - - - - If used performs a reverse comparison - - - - - Abstract base class for constraints that compare values to - determine if one is greater than, equal to or less than - the other. - - - - - The value against which a comparison is to be made - - - - - If true, less than returns success - - - - - if true, equal returns success - - - - - if true, greater than returns success - - - - - The predicate used as a part of the description - - - - - ComparisonAdapter to be used in making the comparison - - - - - Initializes a new instance of the class. - - The value against which to make a comparison. - if set to true less succeeds. - if set to true equal succeeds. - if set to true greater succeeds. - String used in describing the constraint. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - Modifies the constraint to use an IComparer and returns self - - - - - Modifies the constraint to use an IComparer<T> and returns self - - - - - Modifies the constraint to use a Comparison<T> and returns self - - - - - Tests whether a value is greater than the value supplied to its constructor - - - - - Initializes a new instance of the class. - - The expected value. - - - - Tests whether a value is greater than or equal to the value supplied to its constructor - - - - - Initializes a new instance of the class. - - The expected value. - - - - Tests whether a value is less than the value supplied to its constructor - - - - - Initializes a new instance of the class. - - The expected value. - - - - Tests whether a value is less than or equal to the value supplied to its constructor - - - - - Initializes a new instance of the class. - - The expected value. - - - - Delegate used to delay evaluation of the actual value - to be used in evaluating a constraint - - - - - ConstraintBuilder maintains the stacks that are used in - processing a ConstraintExpression. An OperatorStack - is used to hold operators that are waiting for their - operands to be reognized. a ConstraintStack holds - input constraints as well as the results of each - operator applied. - - - - - Initializes a new instance of the class. - - - - - Appends the specified operator to the expression by first - reducing the operator stack and then pushing the new - operator on the stack. - - The operator to push. - - - - Appends the specified constraint to the expresson by pushing - it on the constraint stack. - - The constraint to push. - - - - Sets the top operator right context. - - The right context. - - - - Reduces the operator stack until the topmost item - precedence is greater than or equal to the target precedence. - - The target precedence. - - - - Resolves this instance, returning a Constraint. If the builder - is not currently in a resolvable state, an exception is thrown. - - The resolved constraint - - - - Gets a value indicating whether this instance is resolvable. - - - true if this instance is resolvable; otherwise, false. - - - - - OperatorStack is a type-safe stack for holding ConstraintOperators - - - - - Initializes a new instance of the class. - - The builder. - - - - Pushes the specified operator onto the stack. - - The op. - - - - Pops the topmost operator from the stack. - - - - - - Gets a value indicating whether this is empty. - - true if empty; otherwise, false. - - - - Gets the topmost operator without modifying the stack. - - The top. - - - - ConstraintStack is a type-safe stack for holding Constraints - - - - - Initializes a new instance of the class. - - The builder. - - - - Pushes the specified constraint. As a side effect, - the constraint's builder field is set to the - ConstraintBuilder owning this stack. - - The constraint. - - - - Pops this topmost constrait from the stack. - As a side effect, the constraint's builder - field is set to null. - - - - - - Gets a value indicating whether this is empty. - - true if empty; otherwise, false. - - - - Gets the topmost constraint without modifying the stack. - - The topmost constraint - - - - EmptyConstraint tests a whether a string or collection is empty, - postponing the decision about which test is applied until the - type of the actual argument is known. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - EqualConstraint is able to compare an actual value with the - expected value provided in its constructor. Two objects are - considered equal if both are null, or if both have the same - value. NUnit has special semantics for some object types. - - - - - If true, strings in error messages will be clipped - - - - - NUnitEqualityComparer used to test equality. - - - - - Initializes a new instance of the class. - - The expected value. - - - - Flag the constraint to use a tolerance when determining equality. - - Tolerance value to be used - Self. - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied Comparison object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied IEqualityComparer object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied IEqualityComparer object. - - The IComparer object to use. - Self. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write a failure message. Overridden to provide custom - failure messages for EqualConstraint. - - The MessageWriter to write to - - - - Write description of this constraint - - The MessageWriter to write to - - - - Display the failure information for two collections that did not match. - - The MessageWriter on which to display - The expected collection. - The actual collection - The depth of this failure in a set of nested collections - - - - Displays a single line showing the types and sizes of the expected - and actual collections or arrays. If both are identical, the value is - only shown once. - - The MessageWriter on which to display - The expected collection or array - The actual collection or array - The indentation level for the message line - - - - Displays a single line showing the point in the expected and actual - arrays at which the comparison failed. If the arrays have different - structures or dimensions, both values are shown. - - The MessageWriter on which to display - The expected array - The actual array - Index of the failure point in the underlying collections - The indentation level for the message line - - - - Flag the constraint to ignore case and return self. - - - - - Flag the constraint to suppress string clipping - and return self. - - - - - Flag the constraint to compare arrays as collections - and return self. - - - - - Switches the .Within() modifier to interpret its tolerance as - a distance in representable values (see remarks). - - Self. - - Ulp stands for "unit in the last place" and describes the minimum - amount a given value can change. For any integers, an ulp is 1 whole - digit. For floating point values, the accuracy of which is better - for smaller numbers and worse for larger numbers, an ulp depends - on the size of the number. Using ulps for comparison of floating - point results instead of fixed tolerances is safer because it will - automatically compensate for the added inaccuracy of larger numbers. - - - - - Switches the .Within() modifier to interpret its tolerance as - a percentage that the actual values is allowed to deviate from - the expected value. - - Self - - - - Causes the tolerance to be interpreted as a TimeSpan in days. - - Self - - - - Causes the tolerance to be interpreted as a TimeSpan in hours. - - Self - - - - Causes the tolerance to be interpreted as a TimeSpan in minutes. - - Self - - - - Causes the tolerance to be interpreted as a TimeSpan in seconds. - - Self - - - - Causes the tolerance to be interpreted as a TimeSpan in milliseconds. - - Self - - - - Causes the tolerance to be interpreted as a TimeSpan in clock ticks. - - Self - - - - SameAsConstraint tests whether an object is identical to - the object passed to its constructor - - - - - Initializes a new instance of the class. - - The expected object. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - StringConstraint is the abstract base for constraints - that operate on strings. It supports the IgnoreCase - modifier for string operations. - - - - - The expected value - - - - - Indicates whether tests should be case-insensitive - - - - - Constructs a StringConstraint given an expected value - - The expected value - - - - Modify the constraint to ignore case in matching. - - - - - EmptyStringConstraint tests whether a string is empty. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - NullEmptyStringConstraint tests whether a string is either null or empty. - - - - - Constructs a new NullOrEmptyStringConstraint - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - SubstringConstraint can test whether a string contains - the expected substring. - - - - - Initializes a new instance of the class. - - The expected. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - StartsWithConstraint can test whether a string starts - with an expected substring. - - - - - Initializes a new instance of the class. - - The expected string - - - - Test whether the constraint is matched by the actual value. - This is a template method, which calls the IsMatch method - of the derived class. - - - - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - EndsWithConstraint can test whether a string ends - with an expected substring. - - - - - Initializes a new instance of the class. - - The expected string - - - - Test whether the constraint is matched by the actual value. - This is a template method, which calls the IsMatch method - of the derived class. - - - - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - RegexConstraint can test whether a string matches - the pattern provided. - - - - - Initializes a new instance of the class. - - The pattern. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - TypeConstraint is the abstract base for constraints - that take a Type as their expected value. - - - - - The expected Type used by the constraint - - - - - Construct a TypeConstraint for a given Type - - - - - - Write the actual value for a failing constraint test to a - MessageWriter. TypeConstraints override this method to write - the name of the type. - - The writer on which the actual value is displayed - - - - ExactTypeConstraint is used to test that an object - is of the exact type provided in the constructor - - - - - Construct an ExactTypeConstraint for a given Type - - The expected Type. - - - - Test that an object is of the exact type specified - - The actual value. - True if the tested object is of the exact type provided, otherwise false. - - - - Write the description of this constraint to a MessageWriter - - The MessageWriter to use - - - - InstanceOfTypeConstraint is used to test that an object - is of the same type provided or derived from it. - - - - - Construct an InstanceOfTypeConstraint for the type provided - - The expected Type - - - - Test whether an object is of the specified type or a derived type - - The object to be tested - True if the object is of the provided type or derives from it, otherwise false. - - - - Write a description of this constraint to a MessageWriter - - The MessageWriter to use - - - - AssignableFromConstraint is used to test that an object - can be assigned from a given Type. - - - - - Construct an AssignableFromConstraint for the type provided - - - - - - Test whether an object can be assigned from the specified type - - The object to be tested - True if the object can be assigned a value of the expected Type, otherwise false. - - - - Write a description of this constraint to a MessageWriter - - The MessageWriter to use - - - - AssignableToConstraint is used to test that an object - can be assigned to a given Type. - - - - - Construct an AssignableToConstraint for the type provided - - - - - - Test whether an object can be assigned to the specified type - - The object to be tested - True if the object can be assigned a value of the expected Type, otherwise false. - - - - Write a description of this constraint to a MessageWriter - - The MessageWriter to use - - - - ContainsConstraint tests a whether a string contains a substring - or a collection contains an object. It postpones the decision of - which test to use until the type of the actual argument is known. - This allows testing whether a string is contained in a collection - or as a substring of another string using the same syntax. - - - - - Initializes a new instance of the class. - - The expected. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - Flag the constraint to ignore case and return self. - - - - - PropertyExistsConstraint tests that a named property - exists on the object provided through Match. - - Originally, PropertyConstraint provided this feature - in addition to making optional tests on the vaue - of the property. The two constraints are now separate. - - - - - Initializes a new instance of the class. - - The name of the property. - - - - Test whether the property exists for a given object - - The object to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - Write the actual value for a failing constraint test to a - MessageWriter. - - The writer on which the actual value is displayed - - - - Returns the string representation of the constraint. - - - - - - PropertyConstraint extracts a named property and uses - its value as the actual value for a chained constraint. - - - - - Abstract base class used for prefixes - - - - - The base constraint - - - - - Construct given a base constraint - - - - - - Initializes a new instance of the class. - - The name. - The constraint to apply to the property. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - Write the actual value for a failing constraint test to a - MessageWriter. The default implementation simply writes - the raw value of actual, leaving it to the writer to - perform any formatting. - - The writer on which the actual value is displayed - - - - Returns the string representation of the constraint. - - - - - - NotConstraint negates the effect of some other constraint - - - - - Initializes a new instance of the class. - - The base constraint to be negated. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for if the base constraint fails, false if it succeeds - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - Write the actual value for a failing constraint test to a MessageWriter. - - The writer on which the actual value is displayed - - - - AllItemsConstraint applies another constraint to each - item in a collection, succeeding if they all succeed. - - - - - Construct an AllItemsConstraint on top of an existing constraint - - - - - - Apply the item constraint to each item in the collection, - failing if any item fails. - - - - - - - Write a description of this constraint to a MessageWriter - - - - - - SomeItemsConstraint applies another constraint to each - item in a collection, succeeding if any of them succeeds. - - - - - Construct a SomeItemsConstraint on top of an existing constraint - - - - - - Apply the item constraint to each item in the collection, - succeeding if any item succeeds. - - - - - - - Write a description of this constraint to a MessageWriter - - - - - - NoItemConstraint applies another constraint to each - item in a collection, failing if any of them succeeds. - - - - - Construct a SomeItemsConstraint on top of an existing constraint - - - - - - Apply the item constraint to each item in the collection, - failing if any item fails. - - - - - - - Write a description of this constraint to a MessageWriter - - - - - - The Numerics class contains common operations on numeric values. - - - - - Checks the type of the object, returning true if - the object is a numeric type. - - The object to check - true if the object is a numeric type - - - - Checks the type of the object, returning true if - the object is a floating point numeric type. - - The object to check - true if the object is a floating point numeric type - - - - Checks the type of the object, returning true if - the object is a fixed point numeric type. - - The object to check - true if the object is a fixed point numeric type - - - - Test two numeric values for equality, performing the usual numeric - conversions and using a provided or default tolerance. If the tolerance - provided is Empty, this method may set it to a default tolerance. - - The expected value - The actual value - A reference to the tolerance in effect - True if the values are equal - - - - Compare two numeric values, performing the usual numeric conversions. - - The expected value - The actual value - The relationship of the values to each other - - - - MessageWriter is the abstract base for classes that write - constraint descriptions and messages in some form. The - class has separate methods for writing various components - of a message, allowing implementations to tailor the - presentation as needed. - - - - - Construct a MessageWriter given a culture - - - - - Method to write single line message with optional args, usually - written to precede the general failure message. - - The message to be written - Any arguments used in formatting the message - - - - Method to write single line message with optional args, usually - written to precede the general failure message, at a givel - indentation level. - - The indentation level of the message - The message to be written - Any arguments used in formatting the message - - - - Display Expected and Actual lines for a constraint. This - is called by MessageWriter's default implementation of - WriteMessageTo and provides the generic two-line display. - - The constraint that failed - - - - Display Expected and Actual lines for given values. This - method may be called by constraints that need more control over - the display of actual and expected values than is provided - by the default implementation. - - The expected value - The actual value causing the failure - - - - Display Expected and Actual lines for given values, including - a tolerance value on the Expected line. - - The expected value - The actual value causing the failure - The tolerance within which the test was made - - - - Display the expected and actual string values on separate lines. - If the mismatch parameter is >=0, an additional line is displayed - line containing a caret that points to the mismatch point. - - The expected string value - The actual string value - The point at which the strings don't match or -1 - If true, case is ignored in locating the point where the strings differ - If true, the strings should be clipped to fit the line - - - - Writes the text for a connector. - - The connector. - - - - Writes the text for a predicate. - - The predicate. - - - - Writes the text for an expected value. - - The expected value. - - - - Writes the text for a modifier - - The modifier. - - - - Writes the text for an actual value. - - The actual value. - - - - Writes the text for a generalized value. - - The value. - - - - Writes the text for a collection value, - starting at a particular point, to a max length - - The collection containing elements to write. - The starting point of the elements to write - The maximum number of elements to write - - - - Abstract method to get the max line length - - - - - Static methods used in creating messages - - - - - Static string used when strings are clipped - - - - - Returns the representation of a type as used in NUnitLite. - This is the same as Type.ToString() except for arrays, - which are displayed with their declared sizes. - - - - - - - Converts any control characters in a string - to their escaped representation. - - The string to be converted - The converted string - - - - Return the a string representation for a set of indices into an array - - Array of indices for which a string is needed - - - - Get an array of indices representing the point in a collection or - array corresponding to a single int index into the collection. - - The collection to which the indices apply - Index in the collection - Array of indices - - - - Clip a string to a given length, starting at a particular offset, returning the clipped - string with ellipses representing the removed parts - - The string to be clipped - The maximum permitted length of the result string - The point at which to start clipping - The clipped string - - - - Clip the expected and actual strings in a coordinated fashion, - so that they may be displayed together. - - - - - - - - - Shows the position two strings start to differ. Comparison - starts at the start index. - - The expected string - The actual string - The index in the strings at which comparison should start - Boolean indicating whether case should be ignored - -1 if no mismatch found, or the index where mismatch found - - - - PathConstraint serves as the abstract base of constraints - that operate on paths and provides several helper methods. - - - - - The expected path used in the constraint - - - - - Flag indicating whether a caseInsensitive comparison should be made - - - - - Construct a PathConstraint for a give expected path - - The expected path - - - - Returns the string representation of this constraint - - - - - Canonicalize the provided path - - - The path in standardized form - - - - Test whether two paths are the same - - The first path - The second path - - - - - Test whether one path is the same as or under another path - - The first path - supposed to be the parent path - The second path - supposed to be the child path - - - - - Modifies the current instance to be case-insensitve - and returns it. - - - - - Modifies the current instance to be case-sensitve - and returns it. - - - - - Summary description for SamePathConstraint. - - - - - Initializes a new instance of the class. - - The expected path - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - SamePathOrUnderConstraint tests that one path is under another - - - - - Initializes a new instance of the class. - - The expected path - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - EmptyDirectoryConstraint is used to test that a directory is empty - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - Write the actual value for a failing constraint test to a - MessageWriter. The default implementation simply writes - the raw value of actual, leaving it to the writer to - perform any formatting. - - The writer on which the actual value is displayed - - - - SubDirectoryConstraint is used to test that one directory is a subdirectory of another. - - - - - Initializes a new instance of the class. - - The dir info. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - Builds a list of DirectoryInfo objects, recursing where necessary - - directory to recurse - list of DirectoryInfo objects from the top level - - - - private method to determine whether a directory is within the path - - top-level directory to search - directory to search for - true if found, false if not - - - - Method to compare two DirectoryInfo objects - - first directory to compare - second directory to compare - true if equivalent, false if not - - - - ThrowsConstraint is used to test the exception thrown by - a delegate by applying a constraint to it. - - - - - Initializes a new instance of the class, - using a constraint to be applied to the exception. - - A constraint to apply to the caught exception. - - - - Executes the code of the delegate and captures any exception. - If a non-null base constraint was provided, it applies that - constraint to the exception. - - A delegate representing the code to be tested - True if an exception is thrown and the constraint succeeds, otherwise false - - - - Converts an ActualValueDelegate to a TestDelegate - before calling the primary overload. - - - - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - Write the actual value for a failing constraint test to a - MessageWriter. The default implementation simply writes - the raw value of actual, leaving it to the writer to - perform any formatting. - - The writer on which the actual value is displayed - - - - Returns the string representation of this constraint - - - - - Get the actual exception thrown - used by Assert.Throws. - - - - - ThrowsNothingConstraint tests that a delegate does not - throw an exception. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True if no exception is thrown, otherwise false - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - Write the actual value for a failing constraint test to a - MessageWriter. The default implementation simply writes - the raw value of actual, leaving it to the writer to - perform any formatting. - - The writer on which the actual value is displayed - - - - RangeConstraint tests whethe two values are within a - specified range. - - - - - Initializes a new instance of the class. - - From. - To. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - Modifies the constraint to use an IComparer and returns self. - - - - - Modifies the constraint to use an IComparer<T> and returns self. - - - - - Modifies the constraint to use a Comparison<T> and returns self. - - - - - Helper class with properties and methods that supply - a number of constraints used in Asserts. - - - - - Returns a new PropertyConstraintExpression, which will either - test for the existence of the named property on the object - being tested or apply any following constraint to that property. - - - - - Returns a new AttributeConstraint checking for the - presence of a particular attribute on an object. - - - - - Returns a new AttributeConstraint checking for the - presence of a particular attribute on an object. - - - - - Returns a constraint that tests two items for equality - - - - - Returns a constraint that tests that two references are the same object - - - - - Returns a constraint that tests whether the - actual value is greater than the suppled argument - - - - - Returns a constraint that tests whether the - actual value is greater than or equal to the suppled argument - - - - - Returns a constraint that tests whether the - actual value is greater than or equal to the suppled argument - - - - - Returns a constraint that tests whether the - actual value is less than the suppled argument - - - - - Returns a constraint that tests whether the - actual value is less than or equal to the suppled argument - - - - - Returns a constraint that tests whether the - actual value is less than or equal to the suppled argument - - - - - Returns a constraint that tests whether the actual - value is of the exact type supplied as an argument. - - - - - Returns a constraint that tests whether the actual - value is of the exact type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is of the type supplied as an argument or a derived type. - - - - - Returns a constraint that tests whether the actual value - is of the type supplied as an argument or a derived type. - - - - - Returns a constraint that tests whether the actual value - is of the type supplied as an argument or a derived type. - - - - - Returns a constraint that tests whether the actual value - is of the type supplied as an argument or a derived type. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a collection containing the same elements as the - collection supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a subset of the collection supplied as an argument. - - - - - Returns a new CollectionContainsConstraint checking for the - presence of a particular object in the collection. - - - - - Returns a new CollectionContainsConstraint checking for the - presence of a particular object in the collection. - - - - - Returns a new ContainsConstraint. This constraint - will, in turn, make use of the appropriate second-level - constraint, depending on the type of the actual argument. - This overload is only used if the item sought is a string, - since any other type implies that we are looking for a - collection member. - - - - - Returns a constraint that succeeds if the actual - value contains the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value contains the substring supplied as an argument. - - - - - Returns a constraint that fails if the actual - value contains the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that fails if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that fails if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the Regex pattern supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the Regex pattern supplied as an argument. - - - - - Returns a constraint that fails if the actual - value matches the pattern supplied as an argument. - - - - - Returns a constraint that tests whether the path provided - is the same as an expected path after canonicalization. - - - - - Returns a constraint that tests whether the path provided - is the same path or under an expected path after canonicalization. - - - - - Returns a constraint that tests whether the actual value falls - within a specified range. - - - - - Returns a ConstraintExpression that negates any - following constraint. - - - - - Returns a ConstraintExpression that negates any - following constraint. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them succeed. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if at least one of them succeeds. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them fail. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Length property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Count property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Message property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the InnerException property of the object being tested. - - - - - Returns a constraint that tests for null - - - - - Returns a constraint that tests for True - - - - - Returns a constraint that tests for False - - - - - Returns a constraint that tests for NaN - - - - - Returns a constraint that tests for empty - - - - - Returns a constraint that tests whether a collection - contains all unique items. - - - - - Returns a constraint that tests whether an object graph is serializable in binary format. - - - - - Returns a constraint that tests whether an object graph is serializable in xml format. - - - - - Returns a constraint that tests whether a collection is ordered - - - - - The ConstraintOperator class is used internally by a - ConstraintBuilder to represent an operator that - modifies or combines constraints. - - Constraint operators use left and right precedence - values to determine whether the top operator on the - stack should be reduced before pushing a new operator. - - - - - The precedence value used when the operator - is about to be pushed to the stack. - - - - - The precedence value used when the operator - is on the top of the stack. - - - - - Reduce produces a constraint from the operator and - any arguments. It takes the arguments from the constraint - stack and pushes the resulting constraint on it. - - - - - - The syntax element preceding this operator - - - - - The syntax element folowing this operator - - - - - The precedence value used when the operator - is about to be pushed to the stack. - - - - - The precedence value used when the operator - is on the top of the stack. - - - - - PrefixOperator takes a single constraint and modifies - it's action in some way. - - - - - Reduce produces a constraint from the operator and - any arguments. It takes the arguments from the constraint - stack and pushes the resulting constraint on it. - - - - - - Returns the constraint created by applying this - prefix to another constraint. - - - - - - - Negates the test of the constraint it wraps. - - - - - Constructs a new NotOperator - - - - - Returns a NotConstraint applied to its argument. - - - - - Abstract base for operators that indicate how to - apply a constraint to items in a collection. - - - - - Constructs a CollectionOperator - - - - - Represents a constraint that succeeds if all the - members of a collection match a base constraint. - - - - - Returns a constraint that will apply the argument - to the members of a collection, succeeding if - they all succeed. - - - - - Represents a constraint that succeeds if any of the - members of a collection match a base constraint. - - - - - Returns a constraint that will apply the argument - to the members of a collection, succeeding if - any of them succeed. - - - - - Represents a constraint that succeeds if none of the - members of a collection match a base constraint. - - - - - Returns a constraint that will apply the argument - to the members of a collection, succeeding if - none of them succeed. - - - - - Represents a constraint that simply wraps the - constraint provided as an argument, without any - further functionality, but which modifes the - order of evaluation because of its precedence. - - - - - Constructor for the WithOperator - - - - - Returns a constraint that wraps its argument - - - - - Abstract base class for operators that are able to reduce to a - constraint whether or not another syntactic element follows. - - - - - Operator used to test for the presence of a named Property - on an object and optionally apply further tests to the - value of that property. - - - - - Constructs a PropOperator for a particular named property - - - - - Reduce produces a constraint from the operator and - any arguments. It takes the arguments from the constraint - stack and pushes the resulting constraint on it. - - - - - - Gets the name of the property to which the operator applies - - - - - Operator that tests for the presence of a particular attribute - on a type and optionally applies further tests to the attribute. - - - - - Construct an AttributeOperator for a particular Type - - The Type of attribute tested - - - - Reduce produces a constraint from the operator and - any arguments. It takes the arguments from the constraint - stack and pushes the resulting constraint on it. - - - - - Operator that tests that an exception is thrown and - optionally applies further tests to the exception. - - - - - Construct a ThrowsOperator - - - - - Reduce produces a constraint from the operator and - any arguments. It takes the arguments from the constraint - stack and pushes the resulting constraint on it. - - - - - Abstract base class for all binary operators - - - - - Reduce produces a constraint from the operator and - any arguments. It takes the arguments from the constraint - stack and pushes the resulting constraint on it. - - - - - - Abstract method that produces a constraint by applying - the operator to its left and right constraint arguments. - - - - - Gets the left precedence of the operator - - - - - Gets the right precedence of the operator - - - - - Operator that requires both it's arguments to succeed - - - - - Construct an AndOperator - - - - - Apply the operator to produce an AndConstraint - - - - - Operator that requires at least one of it's arguments to succeed - - - - - Construct an OrOperator - - - - - Apply the operator to produce an OrConstraint - - - - - ConstraintExpression represents a compound constraint in the - process of being constructed from a series of syntactic elements. - - Individual elements are appended to the expression as they are - reognized. Once an actual Constraint is appended, the expression - returns a resolvable Constraint. - - - - - ConstraintExpressionBase is the abstract base class for the - generated ConstraintExpression class, which represents a - compound constraint in the process of being constructed - from a series of syntactic elements. - - NOTE: ConstraintExpressionBase is aware of some of its - derived classes, which is an apparent violation of - encapsulation. Ideally, these classes would be a - single class, but they must be separated in order to - allow parts to be generated under .NET 1.x and to - provide proper user feedback in syntactically - aware IDEs. - - - - - The ConstraintBuilder holding the elements recognized so far - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the - class passing in a ConstraintBuilder, which may be pre-populated. - - The builder. - - - - Returns a string representation of the expression as it - currently stands. This should only be used for testing, - since it has the side-effect of resolving the expression. - - - - - - Appends an operator to the expression and returns the - resulting expression itself. - - - - - Appends a self-resolving operator to the expression and - returns a new ResolvableConstraintExpression. - - - - - Appends a constraint to the expression and returns that - constraint, which is associated with the current state - of the expression being built. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the - class passing in a ConstraintBuilder, which may be pre-populated. - - The builder. - - - - Returns a new PropertyConstraintExpression, which will either - test for the existence of the named property on the object - being tested or apply any following constraint to that property. - - - - - Returns a new AttributeConstraint checking for the - presence of a particular attribute on an object. - - - - - Returns a new AttributeConstraint checking for the - presence of a particular attribute on an object. - - - - - Returns the constraint provided as an argument - used to allow custom - custom constraints to easily participate in the syntax. - - - - - Returns the constraint provided as an argument - used to allow custom - custom constraints to easily participate in the syntax. - - - - - Returns a constraint that tests two items for equality - - - - - Returns a constraint that tests that two references are the same object - - - - - Returns a constraint that tests whether the - actual value is greater than the suppled argument - - - - - Returns a constraint that tests whether the - actual value is greater than or equal to the suppled argument - - - - - Returns a constraint that tests whether the - actual value is greater than or equal to the suppled argument - - - - - Returns a constraint that tests whether the - actual value is less than the suppled argument - - - - - Returns a constraint that tests whether the - actual value is less than or equal to the suppled argument - - - - - Returns a constraint that tests whether the - actual value is less than or equal to the suppled argument - - - - - Returns a constraint that tests whether the actual - value is of the exact type supplied as an argument. - - - - - Returns a constraint that tests whether the actual - value is of the exact type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is of the type supplied as an argument or a derived type. - - - - - Returns a constraint that tests whether the actual value - is of the type supplied as an argument or a derived type. - - - - - Returns a constraint that tests whether the actual value - is of the type supplied as an argument or a derived type. - - - - - Returns a constraint that tests whether the actual value - is of the type supplied as an argument or a derived type. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a collection containing the same elements as the - collection supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a subset of the collection supplied as an argument. - - - - - Returns a new CollectionContainsConstraint checking for the - presence of a particular object in the collection. - - - - - Returns a new CollectionContainsConstraint checking for the - presence of a particular object in the collection. - - - - - Returns a new ContainsConstraint. This constraint - will, in turn, make use of the appropriate second-level - constraint, depending on the type of the actual argument. - This overload is only used if the item sought is a string, - since any other type implies that we are looking for a - collection member. - - - - - Returns a constraint that succeeds if the actual - value contains the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value contains the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the Regex pattern supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the Regex pattern supplied as an argument. - - - - - Returns a constraint that tests whether the path provided - is the same as an expected path after canonicalization. - - - - - Returns a constraint that tests whether the path provided - is the same path or under an expected path after canonicalization. - - - - - Returns a constraint that tests whether the actual value falls - within a specified range. - - - - - Returns a ConstraintExpression that negates any - following constraint. - - - - - Returns a ConstraintExpression that negates any - following constraint. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them succeed. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if at least one of them succeeds. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them fail. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Length property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Count property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Message property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the InnerException property of the object being tested. - - - - - With is currently a NOP - reserved for future use. - - - - - Returns a constraint that tests for null - - - - - Returns a constraint that tests for True - - - - - Returns a constraint that tests for False - - - - - Returns a constraint that tests for NaN - - - - - Returns a constraint that tests for empty - - - - - Returns a constraint that tests whether a collection - contains all unique items. - - - - - Returns a constraint that tests whether an object graph is serializable in binary format. - - - - - Returns a constraint that tests whether an object graph is serializable in xml format. - - - - - Returns a constraint that tests whether a collection is ordered - - - - - BinarySerializableConstraint tests whether - an object is serializable in binary format. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - Write the actual value for a failing constraint test to a - MessageWriter. The default implementation simply writes - the raw value of actual, leaving it to the writer to - perform any formatting. - - The writer on which the actual value is displayed - - - - Returns the string representation - - - - - BinarySerializableConstraint tests whether - an object is serializable in binary format. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - Write the actual value for a failing constraint test to a - MessageWriter. The default implementation simply writes - the raw value of actual, leaving it to the writer to - perform any formatting. - - The writer on which the actual value is displayed - - - - Returns the string representation of this constraint - - - - - BasicConstraint is the abstract base for constraints that - perform a simple comparison to a constant value. - - - - - Initializes a new instance of the class. - - The expected. - The description. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - NullConstraint tests that the actual value is null - - - - - Initializes a new instance of the class. - - - - - TrueConstraint tests that the actual value is true - - - - - Initializes a new instance of the class. - - - - - FalseConstraint tests that the actual value is false - - - - - Initializes a new instance of the class. - - - - - NaNConstraint tests that the actual value is a double or float NaN - - - - - Test that the actual value is an NaN - - - - - - - Write the constraint description to a specified writer - - - - - - AttributeExistsConstraint tests for the presence of a - specified attribute on a Type. - - - - - Constructs an AttributeExistsConstraint for a specific attribute Type - - - - - - Tests whether the object provides the expected attribute. - - A Type, MethodInfo, or other ICustomAttributeProvider - True if the expected attribute is present, otherwise false - - - - Writes the description of the constraint to the specified writer - - - - - AttributeConstraint tests that a specified attribute is present - on a Type or other provider and that the value of the attribute - satisfies some other constraint. - - - - - Constructs an AttributeConstraint for a specified attriute - Type and base constraint. - - - - - - - Determines whether the Type or other provider has the - expected attribute and if its value matches the - additional constraint specified. - - - - - Writes a description of the attribute to the specified writer. - - - - - Writes the actual value supplied to the specified writer. - - - - - Returns a string representation of the constraint. - - - - - ResolvableConstraintExpression is used to represent a compound - constraint being constructed at a point where the last operator - may either terminate the expression or may have additional - qualifying constraints added to it. - - It is used, for example, for a Property element or for - an Exception element, either of which may be optionally - followed by constraints that apply to the property or - exception. - - - - - Create a new instance of ResolvableConstraintExpression - - - - - Create a new instance of ResolvableConstraintExpression, - passing in a pre-populated ConstraintBuilder. - - - - - Resolve the current expression to a Constraint - - - - - Appends an And Operator to the expression - - - - - Appends an Or operator to the expression. - - - - - Applies a delay to the match so that a match can be evaluated in the future. - - - - - Creates a new DelayedConstraint - - The inner constraint two decorate - The time interval after which the match is performed - If the value of is less than 0 - - - - Creates a new DelayedConstraint - - The inner constraint two decorate - The time interval after which the match is performed - The time interval used for polling - If the value of is less than 0 - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for if the base constraint fails, false if it succeeds - - - - Test whether the constraint is satisfied by a delegate - - The delegate whose value is to be tested - True for if the base constraint fails, false if it succeeds - - - - Test whether the constraint is satisfied by a given reference. - Overridden to wait for the specified delay period before - calling the base constraint with the dereferenced value. - - A reference to the value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - Write the actual value for a failing constraint test to a MessageWriter. - - The writer on which the actual value is displayed - - - - Returns the string representation of the constraint. - - - - Helper routines for working with floating point numbers - - - The floating point comparison code is based on this excellent article: - http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm - - - "ULP" means Unit in the Last Place and in the context of this library refers to - the distance between two adjacent floating point numbers. IEEE floating point - numbers can only represent a finite subset of natural numbers, with greater - accuracy for smaller numbers and lower accuracy for very large numbers. - - - If a comparison is allowed "2 ulps" of deviation, that means the values are - allowed to deviate by up to 2 adjacent floating point values, which might be - as low as 0.0000001 for small numbers or as high as 10.0 for large numbers. - - - - - Compares two floating point values for equality - First floating point value to be compared - Second floating point value t be compared - - Maximum number of representable floating point values that are allowed to - be between the left and the right floating point values - - True if both numbers are equal or close to being equal - - - Floating point values can only represent a finite subset of natural numbers. - For example, the values 2.00000000 and 2.00000024 can be stored in a float, - but nothing inbetween them. - - - This comparison will count how many possible floating point values are between - the left and the right number. If the number of possible values between both - numbers is less than or equal to maxUlps, then the numbers are considered as - being equal. - - - Implementation partially follows the code outlined here: - http://www.anttirt.net/2007/08/19/proper-floating-point-comparisons/ - - - - - Compares two double precision floating point values for equality - First double precision floating point value to be compared - Second double precision floating point value t be compared - - Maximum number of representable double precision floating point values that are - allowed to be between the left and the right double precision floating point values - - True if both numbers are equal or close to being equal - - - Double precision floating point values can only represent a limited series of - natural numbers. For example, the values 2.0000000000000000 and 2.0000000000000004 - can be stored in a double, but nothing inbetween them. - - - This comparison will count how many possible double precision floating point - values are between the left and the right number. If the number of possible - values between both numbers is less than or equal to maxUlps, then the numbers - are considered as being equal. - - - Implementation partially follows the code outlined here: - http://www.anttirt.net/2007/08/19/proper-floating-point-comparisons/ - - - - - - Reinterprets the memory contents of a floating point value as an integer value - - - Floating point value whose memory contents to reinterpret - - - The memory contents of the floating point value interpreted as an integer - - - - - Reinterprets the memory contents of a double precision floating point - value as an integer value - - - Double precision floating point value whose memory contents to reinterpret - - - The memory contents of the double precision floating point value - interpreted as an integer - - - - - Reinterprets the memory contents of an integer as a floating point value - - Integer value whose memory contents to reinterpret - - The memory contents of the integer value interpreted as a floating point value - - - - - Reinterprets the memory contents of an integer value as a double precision - floating point value - - Integer whose memory contents to reinterpret - - The memory contents of the integer interpreted as a double precision - floating point value - - - - Union of a floating point variable and an integer - - - The union's value as a floating point variable - - - The union's value as an integer - - - The union's value as an unsigned integer - - - Union of a double precision floating point variable and a long - - - The union's value as a double precision floating point variable - - - The union's value as a long - - - The union's value as an unsigned long - - - - Modes in which the tolerance value for a comparison can - be interpreted. - - - - - The tolerance was created with a value, without specifying - how the value would be used. This is used to prevent setting - the mode more than once and is generally changed to Linear - upon execution of the test. - - - - - The tolerance is used as a numeric range within which - two compared values are considered to be equal. - - - - - Interprets the tolerance as the percentage by which - the two compared values my deviate from each other. - - - - - Compares two values based in their distance in - representable numbers. - - - - - The Tolerance class generalizes the notion of a tolerance - within which an equality test succeeds. Normally, it is - used with numeric types, but it can be used with any - type that supports taking a difference between two - objects and comparing that difference to a value. - - - - - Constructs a linear tolerance of a specdified amount - - - - - Constructs a tolerance given an amount and ToleranceMode - - - - - Tests that the current Tolerance is linear with a - numeric value, throwing an exception if it is not. - - - - - Returns an empty Tolerance object, equivalent to - specifying an exact match. - - - - - Gets the ToleranceMode for the current Tolerance - - - - - Gets the value of the current Tolerance instance. - - - - - Returns a new tolerance, using the current amount as a percentage. - - - - - Returns a new tolerance, using the current amount in Ulps. - - - - - Returns a new tolerance with a TimeSpan as the amount, using - the current amount as a number of days. - - - - - Returns a new tolerance with a TimeSpan as the amount, using - the current amount as a number of hours. - - - - - Returns a new tolerance with a TimeSpan as the amount, using - the current amount as a number of minutes. - - - - - Returns a new tolerance with a TimeSpan as the amount, using - the current amount as a number of seconds. - - - - - Returns a new tolerance with a TimeSpan as the amount, using - the current amount as a number of milliseconds. - - - - - Returns a new tolerance with a TimeSpan as the amount, using - the current amount as a number of clock ticks. - - - - - Returns true if the current tolerance is empty. - - - - - ComparisonAdapter class centralizes all comparisons of - values in NUnit, adapting to the use of any provided - IComparer, IComparer<T> or Comparison<T> - - - - - Returns a ComparisonAdapter that wraps an IComparer - - - - - Returns a ComparisonAdapter that wraps an IComparer<T> - - - - - Returns a ComparisonAdapter that wraps a Comparison<T> - - - - - Compares two objects - - - - - Gets the default ComparisonAdapter, which wraps an - NUnitComparer object. - - - - - Construct a ComparisonAdapter for an IComparer - - - - - Compares two objects - - - - - - - - Construct a default ComparisonAdapter - - - - - ComparisonAdapter<T> extends ComparisonAdapter and - allows use of an IComparer<T> or Comparison<T> - to actually perform the comparison. - - - - - Construct a ComparisonAdapter for an IComparer<T> - - - - - Compare a Type T to an object - - - - - Construct a ComparisonAdapter for a Comparison<T> - - - - - Compare a Type T to an object - - - - - EqualityAdapter class handles all equality comparisons - that use an IEqualityComparer, IEqualityComparer<T> - or a ComparisonAdapter. - - - - - Compares two objects, returning true if they are equal - - - - - Returns an EqualityAdapter that wraps an IComparer. - - - - - Returns an EqualityAdapter that wraps an IEqualityComparer. - - - - - Returns an EqualityAdapter that wraps an IEqualityComparer<T>. - - - - - Returns an EqualityAdapter that wraps an IComparer<T>. - - - - - Returns an EqualityAdapter that wraps a Comparison<T>. - - - - - NUnitComparer encapsulates NUnit's default behavior - in comparing two objects. - - - - - Compares two objects - - - - - - - - Returns the default NUnitComparer. - - - - - NUnitEqualityComparer encapsulates NUnit's handling of - equality tests between objects. - - - - - If true, all string comparisons will ignore case - - - - - If true, arrays will be treated as collections, allowing - those of different dimensions to be compared - - - - - If non-zero, equality comparisons within the specified - tolerance will succeed. - - - - - Comparison object used in comparisons for some constraints. - - - - - Compares two objects for equality. - - - - - Helper method to compare two arrays - - - - - Method to compare two DirectoryInfo objects - - first directory to compare - second directory to compare - true if equivalent, false if not - - - - Returns the default NUnitEqualityComparer - - - - - Gets and sets a flag indicating whether case should - be ignored in determining equality. - - - - - Gets and sets a flag indicating that arrays should be - compared as collections, without regard to their shape. - - - - - Gets and sets an external comparer to be used to - test for equality. It is applied to members of - collections, in place of NUnit's own logic. - - - - - Gets and sets a tolerance used to compare objects of - certin types. - - - - - Gets the list of failure points for the last Match performed. - - - - - Predicate constraint wraps a Predicate in a constraint, - returning success if the predicate is true. - - - - - Construct a PredicateConstraint from a predicate - - - - - Determines whether the predicate succeeds when applied - to the actual value. - - - - - Writes the description to a MessageWriter - - - - - CollectionTally counts (tallies) the number of - occurences of each object in one or more enumerations. - - - - - Construct a CollectionTally object from a comparer and a collection - - - - - Try to remove an object from the tally - - The object to remove - True if successful, false if the object was not found - - - - Try to remove a set of objects from the tally - - The objects to remove - True if successful, false if any object was not found - - - - The number of objects remaining in the tally - - - - - SetUpFixtureAttribute is used to identify a SetUpFixture - - - - - Basic Asserts on strings. - - - - - The Equals method throws an AssertionException. This is done - to make sure there is no mistake by calling this function. - - - - - - - override the default ReferenceEquals to throw an AssertionException. This - implementation makes sure there is no mistake in calling this function - as part of Assert. - - - - - - - Asserts that a string is found within another string. - - The expected string - The string to be examined - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string is found within another string. - - The expected string - The string to be examined - The message to display in case of failure - - - - Asserts that a string is found within another string. - - The expected string - The string to be examined - - - - Asserts that a string is not found within another string. - - The expected string - The string to be examined - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string is found within another string. - - The expected string - The string to be examined - The message to display in case of failure - - - - Asserts that a string is found within another string. - - The expected string - The string to be examined - - - - Asserts that a string starts with another string. - - The expected string - The string to be examined - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string starts with another string. - - The expected string - The string to be examined - The message to display in case of failure - - - - Asserts that a string starts with another string. - - The expected string - The string to be examined - - - - Asserts that a string does not start with another string. - - The expected string - The string to be examined - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string does not start with another string. - - The expected string - The string to be examined - The message to display in case of failure - - - - Asserts that a string does not start with another string. - - The expected string - The string to be examined - - - - Asserts that a string ends with another string. - - The expected string - The string to be examined - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string ends with another string. - - The expected string - The string to be examined - The message to display in case of failure - - - - Asserts that a string ends with another string. - - The expected string - The string to be examined - - - - Asserts that a string does not end with another string. - - The expected string - The string to be examined - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string does not end with another string. - - The expected string - The string to be examined - The message to display in case of failure - - - - Asserts that a string does not end with another string. - - The expected string - The string to be examined - - - - Asserts that two strings are equal, without regard to case. - - The expected string - The actual string - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that two strings are equal, without regard to case. - - The expected string - The actual string - The message to display in case of failure - - - - Asserts that two strings are equal, without regard to case. - - The expected string - The actual string - - - - Asserts that two strings are not equal, without regard to case. - - The expected string - The actual string - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that two strings are Notequal, without regard to case. - - The expected string - The actual string - The message to display in case of failure - - - - Asserts that two strings are not equal, without regard to case. - - The expected string - The actual string - - - - Asserts that a string matches an expected regular expression pattern. - - The regex pattern to be matched - The actual string - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string matches an expected regular expression pattern. - - The regex pattern to be matched - The actual string - The message to display in case of failure - - - - Asserts that a string matches an expected regular expression pattern. - - The regex pattern to be matched - The actual string - - - - Asserts that a string does not match an expected regular expression pattern. - - The regex pattern to be used - The actual string - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string does not match an expected regular expression pattern. - - The regex pattern to be used - The actual string - The message to display in case of failure - - - - Asserts that a string does not match an expected regular expression pattern. - - The regex pattern to be used - The actual string - - - - PropertyAttribute is used to attach information to a test as a name/value pair.. - - - - - Construct a PropertyAttribute with a name and string value - - The name of the property - The property value - - - - Construct a PropertyAttribute with a name and int value - - The name of the property - The property value - - - - Construct a PropertyAttribute with a name and double value - - The name of the property - The property value - - - - Constructor for derived classes that set the - property dictionary directly. - - - - - Constructor for use by derived classes that use the - name of the type as the property name. Derived classes - must ensure that the Type of the property value is - a standard type supported by the BCL. Any custom - types will cause a serialization Exception when - in the client. - - - - - Gets the property dictionary for this attribute - - - - - A set of Assert methods operationg on one or more collections - - - - - The Equals method throws an AssertionException. This is done - to make sure there is no mistake by calling this function. - - - - - - - override the default ReferenceEquals to throw an AssertionException. This - implementation makes sure there is no mistake in calling this function - as part of Assert. - - - - - - - Asserts that all items contained in collection are of the type specified by expectedType. - - IEnumerable containing objects to be considered - System.Type that all objects in collection must be instances of - - - - Asserts that all items contained in collection are of the type specified by expectedType. - - IEnumerable containing objects to be considered - System.Type that all objects in collection must be instances of - The message that will be displayed on failure - - - - Asserts that all items contained in collection are of the type specified by expectedType. - - IEnumerable containing objects to be considered - System.Type that all objects in collection must be instances of - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that all items contained in collection are not equal to null. - - IEnumerable containing objects to be considered - - - - Asserts that all items contained in collection are not equal to null. - - IEnumerable containing objects to be considered - The message that will be displayed on failure - - - - Asserts that all items contained in collection are not equal to null. - - IEnumerable of objects to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Ensures that every object contained in collection exists within the collection - once and only once. - - IEnumerable of objects to be considered - - - - Ensures that every object contained in collection exists within the collection - once and only once. - - IEnumerable of objects to be considered - The message that will be displayed on failure - - - - Ensures that every object contained in collection exists within the collection - once and only once. - - IEnumerable of objects to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that expected and actual are exactly equal. The collections must have the same count, - and contain the exact same objects in the same order. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - - - - Asserts that expected and actual are exactly equal. The collections must have the same count, - and contain the exact same objects in the same order. - If comparer is not null then it will be used to compare the objects. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The IComparer to use in comparing objects from each IEnumerable - - - - Asserts that expected and actual are exactly equal. The collections must have the same count, - and contain the exact same objects in the same order. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The message that will be displayed on failure - - - - Asserts that expected and actual are exactly equal. The collections must have the same count, - and contain the exact same objects in the same order. - If comparer is not null then it will be used to compare the objects. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The IComparer to use in comparing objects from each IEnumerable - The message that will be displayed on failure - - - - Asserts that expected and actual are exactly equal. The collections must have the same count, - and contain the exact same objects in the same order. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that expected and actual are exactly equal. The collections must have the same count, - and contain the exact same objects in the same order. - If comparer is not null then it will be used to compare the objects. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The IComparer to use in comparing objects from each IEnumerable - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that expected and actual are equivalent, containing the same objects but the match may be in any order. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - - - - Asserts that expected and actual are equivalent, containing the same objects but the match may be in any order. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The message that will be displayed on failure - - - - Asserts that expected and actual are equivalent, containing the same objects but the match may be in any order. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that expected and actual are not exactly equal. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - - - - Asserts that expected and actual are not exactly equal. - If comparer is not null then it will be used to compare the objects. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The IComparer to use in comparing objects from each IEnumerable - - - - Asserts that expected and actual are not exactly equal. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The message that will be displayed on failure - - - - Asserts that expected and actual are not exactly equal. - If comparer is not null then it will be used to compare the objects. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The IComparer to use in comparing objects from each IEnumerable - The message that will be displayed on failure - - - - Asserts that expected and actual are not exactly equal. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that expected and actual are not exactly equal. - If comparer is not null then it will be used to compare the objects. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The IComparer to use in comparing objects from each IEnumerable - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that expected and actual are not equivalent. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - - - - Asserts that expected and actual are not equivalent. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The message that will be displayed on failure - - - - Asserts that expected and actual are not equivalent. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that collection contains actual as an item. - - IEnumerable of objects to be considered - Object to be found within collection - - - - Asserts that collection contains actual as an item. - - IEnumerable of objects to be considered - Object to be found within collection - The message that will be displayed on failure - - - - Asserts that collection contains actual as an item. - - IEnumerable of objects to be considered - Object to be found within collection - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that collection does not contain actual as an item. - - IEnumerable of objects to be considered - Object that cannot exist within collection - - - - Asserts that collection does not contain actual as an item. - - IEnumerable of objects to be considered - Object that cannot exist within collection - The message that will be displayed on failure - - - - Asserts that collection does not contain actual as an item. - - IEnumerable of objects to be considered - Object that cannot exist within collection - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that superset is not a subject of subset. - - The IEnumerable superset to be considered - The IEnumerable subset to be considered - - - - Asserts that superset is not a subject of subset. - - The IEnumerable superset to be considered - The IEnumerable subset to be considered - The message that will be displayed on failure - - - - Asserts that superset is not a subject of subset. - - The IEnumerable superset to be considered - The IEnumerable subset to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that superset is a subset of subset. - - The IEnumerable superset to be considered - The IEnumerable subset to be considered - - - - Asserts that superset is a subset of subset. - - The IEnumerable superset to be considered - The IEnumerable subset to be considered - The message that will be displayed on failure - - - - Asserts that superset is a subset of subset. - - The IEnumerable superset to be considered - The IEnumerable subset to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Assert that an array, list or other collection is empty - - An array, list or other collection implementing IEnumerable - The message to be displayed on failure - Arguments to be used in formatting the message - - - - Assert that an array, list or other collection is empty - - An array, list or other collection implementing IEnumerable - The message to be displayed on failure - - - - Assert that an array,list or other collection is empty - - An array, list or other collection implementing IEnumerable - - - - Assert that an array, list or other collection is empty - - An array, list or other collection implementing IEnumerable - The message to be displayed on failure - Arguments to be used in formatting the message - - - - Assert that an array, list or other collection is empty - - An array, list or other collection implementing IEnumerable - The message to be displayed on failure - - - - Assert that an array,list or other collection is empty - - An array, list or other collection implementing IEnumerable - - - - Assert that an array, list or other collection is ordered - - An array, list or other collection implementing IEnumerable - The message to be displayed on failure - Arguments to be used in formatting the message - - - - Assert that an array, list or other collection is ordered - - An array, list or other collection implementing IEnumerable - The message to be displayed on failure - - - - Assert that an array, list or other collection is ordered - - An array, list or other collection implementing IEnumerable - - - - Assert that an array, list or other collection is ordered - - An array, list or other collection implementing IEnumerable - A custom comparer to perform the comparisons - The message to be displayed on failure - Arguments to be used in formatting the message - - - - Assert that an array, list or other collection is ordered - - An array, list or other collection implementing IEnumerable - A custom comparer to perform the comparisons - The message to be displayed on failure - - - - Assert that an array, list or other collection is ordered - - An array, list or other collection implementing IEnumerable - A custom comparer to perform the comparisons - - - - Summary description for FileAssert. - - - - - The Equals method throws an AssertionException. This is done - to make sure there is no mistake by calling this function. - - - - - - - override the default ReferenceEquals to throw an AssertionException. This - implementation makes sure there is no mistake in calling this function - as part of Assert. - - - - - - - We don't actually want any instances of this object, but some people - like to inherit from it to add other static methods. Hence, the - protected constructor disallows any instances of this object. - - - - - Verifies that two Streams are equal. Two Streams are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - The expected Stream - The actual Stream - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Verifies that two Streams are equal. Two Streams are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - The expected Stream - The actual Stream - The message to display if objects are not equal - - - - Verifies that two Streams are equal. Two Streams are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - The expected Stream - The actual Stream - - - - Verifies that two files are equal. Two files are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - A file containing the value that is expected - A file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Verifies that two files are equal. Two files are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - A file containing the value that is expected - A file containing the actual value - The message to display if objects are not equal - - - - Verifies that two files are equal. Two files are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - A file containing the value that is expected - A file containing the actual value - - - - Verifies that two files are equal. Two files are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - The path to a file containing the value that is expected - The path to a file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Verifies that two files are equal. Two files are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - The path to a file containing the value that is expected - The path to a file containing the actual value - The message to display if objects are not equal - - - - Verifies that two files are equal. Two files are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - The path to a file containing the value that is expected - The path to a file containing the actual value - - - - Asserts that two Streams are not equal. If they are equal - an is thrown. - - The expected Stream - The actual Stream - The message to be displayed when the two Stream are the same. - Arguments to be used in formatting the message - - - - Asserts that two Streams are not equal. If they are equal - an is thrown. - - The expected Stream - The actual Stream - The message to be displayed when the Streams are the same. - - - - Asserts that two Streams are not equal. If they are equal - an is thrown. - - The expected Stream - The actual Stream - - - - Asserts that two files are not equal. If they are equal - an is thrown. - - A file containing the value that is expected - A file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Asserts that two files are not equal. If they are equal - an is thrown. - - A file containing the value that is expected - A file containing the actual value - The message to display if objects are not equal - - - - Asserts that two files are not equal. If they are equal - an is thrown. - - A file containing the value that is expected - A file containing the actual value - - - - Asserts that two files are not equal. If they are equal - an is thrown. - - The path to a file containing the value that is expected - The path to a file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Asserts that two files are not equal. If they are equal - an is thrown. - - The path to a file containing the value that is expected - The path to a file containing the actual value - The message to display if objects are not equal - - - - Asserts that two files are not equal. If they are equal - an is thrown. - - The path to a file containing the value that is expected - The path to a file containing the actual value - - - - Attribute used to provide descriptive text about a - test case or fixture. - - - - - Construct the attribute - - Text describing the test - - - - Gets the test description - - - - - Interface implemented by a user fixture in order to - validate any expected exceptions. It is only called - for test methods marked with the ExpectedException - attribute. - - - - - Method to handle an expected exception - - The exception to be handled - - - - TextMessageWriter writes constraint descriptions and messages - in displayable form as a text stream. It tailors the display - of individual message components to form the standard message - format of NUnit assertion failure messages. - - - - - Prefix used for the expected value line of a message - - - - - Prefix used for the actual value line of a message - - - - - Length of a message prefix - - - - - Construct a TextMessageWriter - - - - - Construct a TextMessageWriter, specifying a user message - and optional formatting arguments. - - - - - - - Method to write single line message with optional args, usually - written to precede the general failure message, at a givel - indentation level. - - The indentation level of the message - The message to be written - Any arguments used in formatting the message - - - - Display Expected and Actual lines for a constraint. This - is called by MessageWriter's default implementation of - WriteMessageTo and provides the generic two-line display. - - The constraint that failed - - - - Display Expected and Actual lines for given values. This - method may be called by constraints that need more control over - the display of actual and expected values than is provided - by the default implementation. - - The expected value - The actual value causing the failure - - - - Display Expected and Actual lines for given values, including - a tolerance value on the expected line. - - The expected value - The actual value causing the failure - The tolerance within which the test was made - - - - Display the expected and actual string values on separate lines. - If the mismatch parameter is >=0, an additional line is displayed - line containing a caret that points to the mismatch point. - - The expected string value - The actual string value - The point at which the strings don't match or -1 - If true, case is ignored in string comparisons - If true, clip the strings to fit the max line length - - - - Writes the text for a connector. - - The connector. - - - - Writes the text for a predicate. - - The predicate. - - - - Write the text for a modifier. - - The modifier. - - - - Writes the text for an expected value. - - The expected value. - - - - Writes the text for an actual value. - - The actual value. - - - - Writes the text for a generalized value. - - The value. - - - - Writes the text for a collection value, - starting at a particular point, to a max length - - The collection containing elements to write. - The starting point of the elements to write - The maximum number of elements to write - - - - Write the generic 'Expected' line for a constraint - - The constraint that failed - - - - Write the generic 'Expected' line for a given value - - The expected value - - - - Write the generic 'Expected' line for a given value - and tolerance. - - The expected value - The tolerance within which the test was made - - - - Write the generic 'Actual' line for a constraint - - The constraint for which the actual value is to be written - - - - Write the generic 'Actual' line for a given value - - The actual value causing a failure - - - - Gets or sets the maximum line length for this writer - - - - - AssertionHelper is an optional base class for user tests, - allowing the use of shorter names for constraints and - asserts and avoiding conflict with the definition of - , from which it inherits much of its - behavior, in certain mock object frameworks. - - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. Works - identically to - - A Constraint to be applied - The actual value to test - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. Works - identically to - - A Constraint to be applied - The actual value to test - The message that will be displayed on failure - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. Works - identically to - - A Constraint to be applied - The actual value to test - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - A Constraint expression to be applied - An ActualValueDelegate returning the value to be tested - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - A Constraint expression to be applied - An ActualValueDelegate returning the value to be tested - The message that will be displayed on failure - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to a referenced value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - A Constraint to be applied - The actual value to test - - - - Apply a constraint to a referenced value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - A Constraint to be applied - The actual value to test - The message that will be displayed on failure - - - - Apply a constraint to a referenced value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - A Constraint to be applied - The actual value to test - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that a condition is true. If the condition is false the method throws - an . Works Identically to - . - - The evaluated condition - The message to display if the condition is false - Arguments to be used in formatting the message - - - - Asserts that a condition is true. If the condition is false the method throws - an . Works Identically to - . - - The evaluated condition - The message to display if the condition is false - - - - Asserts that a condition is true. If the condition is false the method throws - an . Works Identically to . - - The evaluated condition - - - - Asserts that the code represented by a delegate throws an exception - that satisfies the constraint provided. - - A TestDelegate to be executed - A ThrowsConstraint used in the test - - - - Returns a ListMapper based on a collection. - - The original collection - - - - - Abstract base for Attributes that are used to include tests - in the test run based on environmental settings. - - - - - Constructor with no included items specified, for use - with named property syntax. - - - - - Constructor taking one or more included items - - Comma-delimited list of included items - - - - Name of the item that is needed in order for - a test to run. Multiple itemss may be given, - separated by a comma. - - - - - Name of the item to be excluded. Multiple items - may be given, separated by a comma. - - - - - The reason for including or excluding the test - - - - - PlatformAttribute is used to mark a test fixture or an - individual method as applying to a particular platform only. - - - - - Constructor with no platforms specified, for use - with named property syntax. - - - - - Constructor taking one or more platforms - - Comma-deliminted list of platforms - - - - CultureAttribute is used to mark a test fixture or an - individual method as applying to a particular Culture only. - - - - - Constructor with no cultures specified, for use - with named property syntax. - - - - - Constructor taking one or more cultures - - Comma-deliminted list of cultures - - - - Summary description for SetCultureAttribute. - - - - - Construct given the name of a culture - - - - - - GlobalSettings is a place for setting default values used - by the framework in performing asserts. - - - - - Default tolerance for floating point equality - - - - - Summary description for DirectoryAssert - - - - - The Equals method throws an AssertionException. This is done - to make sure there is no mistake by calling this function. - - - - - - - override the default ReferenceEquals to throw an AssertionException. This - implementation makes sure there is no mistake in calling this function - as part of Assert. - - - - - - - We don't actually want any instances of this object, but some people - like to inherit from it to add other static methods. Hence, the - protected constructor disallows any instances of this object. - - - - - Verifies that two directories are equal. Two directories are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - A directory containing the value that is expected - A directory containing the actual value - The message to display if directories are not equal - Arguments to be used in formatting the message - - - - Verifies that two directories are equal. Two directories are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - A directory containing the value that is expected - A directory containing the actual value - The message to display if directories are not equal - - - - Verifies that two directories are equal. Two directories are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - A directory containing the value that is expected - A directory containing the actual value - - - - Verifies that two directories are equal. Two directories are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - A directory path string containing the value that is expected - A directory path string containing the actual value - The message to display if directories are not equal - Arguments to be used in formatting the message - - - - Verifies that two directories are equal. Two directories are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - A directory path string containing the value that is expected - A directory path string containing the actual value - The message to display if directories are not equal - - - - Verifies that two directories are equal. Two directories are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - A directory path string containing the value that is expected - A directory path string containing the actual value - - - - Asserts that two directories are not equal. If they are equal - an is thrown. - - A directory containing the value that is expected - A directory containing the actual value - The message to display if directories are not equal - Arguments to be used in formatting the message - - - - Asserts that two directories are not equal. If they are equal - an is thrown. - - A directory containing the value that is expected - A directory containing the actual value - The message to display if directories are not equal - - - - Asserts that two directories are not equal. If they are equal - an is thrown. - - A directory containing the value that is expected - A directory containing the actual value - - - - Asserts that two directories are not equal. If they are equal - an is thrown. - - A directory path string containing the value that is expected - A directory path string containing the actual value - The message to display if directories are equal - Arguments to be used in formatting the message - - - - Asserts that two directories are not equal. If they are equal - an is thrown. - - A directory path string containing the value that is expected - A directory path string containing the actual value - The message to display if directories are equal - - - - Asserts that two directories are not equal. If they are equal - an is thrown. - - A directory path string containing the value that is expected - A directory path string containing the actual value - - - - Asserts that the directory is empty. If it is not empty - an is thrown. - - A directory to search - The message to display if directories are not equal - Arguments to be used in formatting the message - - - - Asserts that the directory is empty. If it is not empty - an is thrown. - - A directory to search - The message to display if directories are not equal - - - - Asserts that the directory is empty. If it is not empty - an is thrown. - - A directory to search - - - - Asserts that the directory is empty. If it is not empty - an is thrown. - - A directory to search - The message to display if directories are not equal - Arguments to be used in formatting the message - - - - Asserts that the directory is empty. If it is not empty - an is thrown. - - A directory to search - The message to display if directories are not equal - - - - Asserts that the directory is empty. If it is not empty - an is thrown. - - A directory to search - - - - Asserts that the directory is not empty. If it is empty - an is thrown. - - A directory to search - The message to display if directories are not equal - Arguments to be used in formatting the message - - - - Asserts that the directory is not empty. If it is empty - an is thrown. - - A directory to search - The message to display if directories are not equal - - - - Asserts that the directory is not empty. If it is empty - an is thrown. - - A directory to search - - - - Asserts that the directory is not empty. If it is empty - an is thrown. - - A directory to search - The message to display if directories are not equal - Arguments to be used in formatting the message - - - - Asserts that the directory is not empty. If it is empty - an is thrown. - - A directory to search - The message to display if directories are not equal - - - - Asserts that the directory is not empty. If it is empty - an is thrown. - - A directory to search - - - - Asserts that path contains actual as a subdirectory or - an is thrown. - - A directory to search - sub-directory asserted to exist under directory - The message to display if directory is not within the path - Arguments to be used in formatting the message - - - - Asserts that path contains actual as a subdirectory or - an is thrown. - - A directory to search - sub-directory asserted to exist under directory - The message to display if directory is not within the path - - - - Asserts that path contains actual as a subdirectory or - an is thrown. - - A directory to search - sub-directory asserted to exist under directory - - - - Asserts that path contains actual as a subdirectory or - an is thrown. - - A directory to search - sub-directory asserted to exist under directory - The message to display if directory is not within the path - Arguments to be used in formatting the message - - - - Asserts that path contains actual as a subdirectory or - an is thrown. - - A directory to search - sub-directory asserted to exist under directory - The message to display if directory is not within the path - - - - Asserts that path contains actual as a subdirectory or - an is thrown. - - A directory to search - sub-directory asserted to exist under directory - - - - Asserts that path does not contain actual as a subdirectory or - an is thrown. - - A directory to search - sub-directory asserted to exist under directory - The message to display if directory is not within the path - Arguments to be used in formatting the message - - - - Asserts that path does not contain actual as a subdirectory or - an is thrown. - - A directory to search - sub-directory asserted to exist under directory - The message to display if directory is not within the path - - - - Asserts that path does not contain actual as a subdirectory or - an is thrown. - - A directory to search - sub-directory asserted to exist under directory - - - - Asserts that path does not contain actual as a subdirectory or - an is thrown. - - A directory to search - sub-directory asserted to exist under directory - The message to display if directory is not within the path - Arguments to be used in formatting the message - - - - Asserts that path does not contain actual as a subdirectory or - an is thrown. - - A directory to search - sub-directory asserted to exist under directory - The message to display if directory is not within the path - - - - Asserts that path does not contain actual as a subdirectory or - an is thrown. - - A directory to search - sub-directory asserted to exist under directory - - - - TestCaseAttribute is used to mark parameterized test cases - and provide them with their arguments. - - - - - The ITestCaseData interface is implemented by a class - that is able to return complete testcases for use by - a parameterized test method. - - NOTE: This interface is used in both the framework - and the core, even though that results in two different - types. However, sharing the source code guarantees that - the various implementations will be compatible and that - the core is able to reflect successfully over the - framework implementations of ITestCaseData. - - - - - Gets the argument list to be provided to the test - - - - - Gets the expected result - - - - - Gets the expected exception Type - - - - - Gets the FullName of the expected exception - - - - - Gets the name to be used for the test - - - - - Gets the description of the test - - - - - Gets a value indicating whether this is ignored. - - true if ignored; otherwise, false. - - - - Gets the ignore reason. - - The ignore reason. - - - - Construct a TestCaseAttribute with a list of arguments. - This constructor is not CLS-Compliant - - - - - - Construct a TestCaseAttribute with a single argument - - - - - - Construct a TestCaseAttribute with a two arguments - - - - - - - Construct a TestCaseAttribute with a three arguments - - - - - - - - Gets the list of arguments to a test case - - - - - Gets or sets the expected result. - - The result. - - - - Gets or sets the expected exception. - - The expected exception. - - - - Gets or sets the name the expected exception. - - The expected name of the exception. - - - - Gets or sets the expected message of the expected exception - - The expected message of the exception. - - - - Gets or sets the type of match to be performed on the expected message - - - - - Gets or sets the description. - - The description. - - - - Gets or sets the name of the test. - - The name of the test. - - - - Gets or sets the ignored status of the test - - - - - Gets or sets the ignored status of the test - - - - - Gets the ignore reason. - - The ignore reason. - - - - The TestCaseData class represents a set of arguments - and other parameter info to be used for a parameterized - test case. It provides a number of instance modifiers - for use in initializing the test case. - - Note: Instance modifiers are getters that return - the same instance after modifying it's state. - - - - - The argument list to be provided to the test - - - - - The expected result to be returned - - - - - The expected exception Type - - - - - The FullName of the expected exception - - - - - The name to be used for the test - - - - - The description of the test - - - - - A dictionary of properties, used to add information - to tests without requiring the class to change. - - - - - If true, indicates that the test case is to be ignored - - - - - The reason for ignoring a test case - - - - - Initializes a new instance of the class. - - The arguments. - - - - Initializes a new instance of the class. - - The argument. - - - - Initializes a new instance of the class. - - The first argument. - The second argument. - - - - Initializes a new instance of the class. - - The first argument. - The second argument. - The third argument. - - - - Sets the expected result for the test - - The expected result - A modified TestCaseData - - - - Sets the expected exception type for the test - - Type of the expected exception. - The modified TestCaseData instance - - - - Sets the expected exception type for the test - - FullName of the expected exception. - The modified TestCaseData instance - - - - Sets the name of the test case - - The modified TestCaseData instance - - - - Sets the description for the test case - being constructed. - - The description. - The modified TestCaseData instance. - - - - Applies a category to the test - - - - - - - Applies a named property to the test - - - - - - - - Applies a named property to the test - - - - - - - - Applies a named property to the test - - - - - - - - Ignores this TestCase. - - - - - - Ignores this TestCase, specifying the reason. - - The reason. - - - - - Gets the argument list to be provided to the test - - - - - Gets the expected result - - - - - Gets the expected exception Type - - - - - Gets the FullName of the expected exception - - - - - Gets the name to be used for the test - - - - - Gets the description of the test - - - - - Gets a value indicating whether this is ignored. - - true if ignored; otherwise, false. - - - - Gets the ignore reason. - - The ignore reason. - - - - Gets a list of categories associated with this test. - - - - - Gets the property dictionary for this test - - - - - Thrown when an assertion failed. - - - - - - - The error message that explains - the reason for the exception - The exception that caused the - current exception - - - - Serialization Constructor - - - - - Thrown when a test executes inconclusively. - - - - - The error message that explains - the reason for the exception - - - The error message that explains - the reason for the exception - The exception that caused the - current exception - - - - Serialization Constructor - - - - - Attribute used to identify a method that is - called before any tests in a fixture are run. - - - - - Attribute used to identify a method that is called after - all the tests in a fixture have run. The method is - guaranteed to be called, even if an exception is thrown. - - - - - ExplicitAttribute marks a test or test fixture so that it will - only be run if explicitly executed from the gui or command line - or if it is included by use of a filter. The test will not be - run simply because an enclosing suite is run. - - - - - Default constructor - - - - - Constructor with a reason - - The reason test is marked explicit - - - - The reason test is marked explicit - - - - - Thrown when an assertion failed. - - - - - The error message that explains - the reason for the exception - - - The error message that explains - the reason for the exception - The exception that caused the - current exception - - - - Serialization Constructor - - - - - Thrown when an assertion failed. - - - - - - - The error message that explains - the reason for the exception - The exception that caused the - current exception - - - - Serialization Constructor - - - - - Enumeration indicating how the expected message parameter is to be used - - - - Expect an exact match - - - Expect a message containing the parameter string - - - Match the regular expression provided as a parameter - - - Expect a message that starts with the parameter string - - - - ExpectedExceptionAttribute - - - - - - Constructor for a non-specific exception - - - - - Constructor for a given type of exception - - The type of the expected exception - - - - Constructor for a given exception name - - The full name of the expected exception - - - - Gets or sets the expected exception type - - - - - Gets or sets the full Type name of the expected exception - - - - - Gets or sets the expected message text - - - - - Gets or sets the user message displayed in case of failure - - - - - Gets or sets the type of match to be performed on the expected message - - - - - Gets the name of a method to be used as an exception handler - - - - - Attribute used to mark a test that is to be ignored. - Ignored tests result in a warning message when the - tests are run. - - - - - Constructs the attribute without giving a reason - for ignoring the test. - - - - - Constructs the attribute giving a reason for ignoring the test - - The reason for ignoring the test - - - - The reason for ignoring a test - - - - - Attribute used to mark a class that contains one-time SetUp - and/or TearDown methods that apply to all the tests in a - namespace or an assembly. - - - - - Attribute used to mark a static (shared in VB) property - that returns a list of tests. - - - - - Attribute used to identify a method that is called - immediately after each test is run. The method is - guaranteed to be called, even if an exception is thrown. - - - - - Adding this attribute to a method within a - class makes the method callable from the NUnit test runner. There is a property - called Description which is optional which you can provide a more detailed test - description. This class cannot be inherited. - - - - [TestFixture] - public class Fixture - { - [Test] - public void MethodToTest() - {} - - [Test(Description = "more detailed description")] - publc void TestDescriptionMethod() - {} - } - - - - - - Descriptive text for this test - - - - - [TestFixture] - public class ExampleClass - {} - - - - - Default constructor - - - - - Construct with a object[] representing a set of arguments. - In .NET 2.0, the arguments may later be separated into - type arguments and constructor arguments. - - - - - - Descriptive text for this fixture - - - - - The arguments originally provided to the attribute - - - - - Gets or sets a value indicating whether this should be ignored. - - true if ignore; otherwise, false. - - - - Gets or sets the ignore reason. May set Ignored as a side effect. - - The ignore reason. - - - - Get or set the type arguments. If not set - explicitly, any leading arguments that are - Types are taken as type arguments. - - - - - RequiredAddinAttribute may be used to indicate the names of any addins - that must be present in order to run some or all of the tests in an - assembly. If the addin is not loaded, the entire assembly is marked - as NotRunnable. - - - - - Initializes a new instance of the class. - - The required addin. - - - - Gets the name of required addin. - - The required addin name. - - - - Marks a test to use a combinatorial join of any argument data - provided. NUnit will create a test case for every combination of - the arguments provided. This can result in a large number of test - cases and so should be used judiciously. This is the default join - type, so the attribute need not be used except as documentation. - - - - - Default constructor - - - - - Marks a test to use pairwise join of any argument data provided. - NUnit will attempt too excercise every pair of argument values at - least once, using as small a number of test cases as it can. With - only two arguments, this is the same as a combinatorial join. - - - - - Default constructor - - - - - Marks a test to use a sequential join of any argument data - provided. NUnit will use arguements for each parameter in - sequence, generating test cases up to the largest number - of argument values provided and using null for any arguments - for which it runs out of values. Normally, this should be - used with the same number of arguments for each parameter. - - - - - Default constructor - - - - - Abstract base class for attributes that apply to parameters - and supply data for the parameter. - - - - - Gets the data to be provided to the specified parameter - - - - - ValuesAttribute is used to provide literal arguments for - an individual parameter of a test. - - - - - The collection of data to be returned. Must - be set by any derived attribute classes. - We use an object[] so that the individual - elements may have their type changed in GetData - if necessary. - - - - - Construct with one argument - - - - - - Construct with two arguments - - - - - - - Construct with three arguments - - - - - - - - Construct with an array of arguments - - - - - - Get the collection of values to be used as arguments - - - - - RandomAttribute is used to supply a set of random values - to a single parameter of a parameterized test. - - - - - Construct a set of doubles from 0.0 to 1.0, - specifying only the count. - - - - - - Construct a set of doubles from min to max - - - - - - - - Construct a set of ints from min to max - - - - - - - - Get the collection of values to be used as arguments - - - - - RangeAttribute is used to supply a range of values to an - individual parameter of a parameterized test. - - - - - Construct a range of ints using default step of 1 - - - - - - - Construct a range of ints specifying the step size - - - - - - - - Construct a range of longs - - - - - - - - Construct a range of doubles - - - - - - - - Construct a range of floats - - - - - - - - Helper class with properties and methods that supply - a number of constraints used in Asserts. - - - - - Returns a new PropertyConstraintExpression, which will either - test for the existence of the named property on the object - being tested or apply any following constraint to that property. - - - - - Returns a new AttributeConstraint checking for the - presence of a particular attribute on an object. - - - - - Returns a new AttributeConstraint checking for the - presence of a particular attribute on an object. - - - - - Returns a new CollectionContainsConstraint checking for the - presence of a particular object in the collection. - - - - - Returns a ConstraintExpression that negates any - following constraint. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them succeed. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if at least one of them succeeds. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them fail. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Length property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Count property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Message property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the InnerException property of the object being tested. - - - - - Helper class with properties and methods that supply - a number of constraints used in Asserts. - - - - - Returns a constraint that tests two items for equality - - - - - Returns a constraint that tests that two references are the same object - - - - - Returns a constraint that tests whether the - actual value is greater than the suppled argument - - - - - Returns a constraint that tests whether the - actual value is greater than or equal to the suppled argument - - - - - Returns a constraint that tests whether the - actual value is greater than or equal to the suppled argument - - - - - Returns a constraint that tests whether the - actual value is less than the suppled argument - - - - - Returns a constraint that tests whether the - actual value is less than or equal to the suppled argument - - - - - Returns a constraint that tests whether the - actual value is less than or equal to the suppled argument - - - - - Returns a constraint that tests whether the actual - value is of the exact type supplied as an argument. - - - - - Returns a constraint that tests whether the actual - value is of the exact type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is of the type supplied as an argument or a derived type. - - - - - Returns a constraint that tests whether the actual value - is of the type supplied as an argument or a derived type. - - - - - Returns a constraint that tests whether the actual value - is of the type supplied as an argument or a derived type. - - - - - Returns a constraint that tests whether the actual value - is of the type supplied as an argument or a derived type. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a collection containing the same elements as the - collection supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a subset of the collection supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value contains the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the Regex pattern supplied as an argument. - - - - - Returns a constraint that tests whether the path provided - is the same as an expected path after canonicalization. - - - - - Returns a constraint that tests whether the path provided - is the same path or under an expected path after canonicalization. - - - - - Returns a constraint that tests whether the actual value falls - within a specified range. - - - - - Returns a ConstraintExpression that negates any - following constraint. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them succeed. - - - - - Returns a constraint that tests for null - - - - - Returns a constraint that tests for True - - - - - Returns a constraint that tests for False - - - - - Returns a constraint that tests for NaN - - - - - Returns a constraint that tests for empty - - - - - Returns a constraint that tests whether a collection - contains all unique items. - - - - - Returns a constraint that tests whether an object graph is serializable in binary format. - - - - - Returns a constraint that tests whether an object graph is serializable in xml format. - - - - - Returns a constraint that tests whether a collection is ordered - - - - - The List class is a helper class with properties and methods - that supply a number of constraints used with lists and collections. - - - - - List.Map returns a ListMapper, which can be used to map - the original collection to another collection. - - - - - - - ListMapper is used to transform a collection used as an actual argument - producing another collection to be used in the assertion. - - - - - Construct a ListMapper based on a collection - - The collection to be transformed - - - - Produces a collection containing all the values of a property - - The collection of property values - - - - - Helper class with static methods used to supply constraints - that operate on strings. - - - - - Returns a constraint that succeeds if the actual - value contains the substring supplied as an argument. - - - - - Returns a constraint that fails if the actual - value contains the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that fails if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that fails if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the Regex pattern supplied as an argument. - - - - - Returns a constraint that fails if the actual - value matches the pattern supplied as an argument. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them succeed. - - - - - Helper class with properties and methods that supply - constraints that operate on exceptions. - - - - - Creates a constraint specifying the exact type of exception expected - - - - - Creates a constraint specifying the exact type of exception expected - - - - - Creates a constraint specifying the type of exception expected - - - - - Creates a constraint specifying the type of exception expected - - - - - Creates a constraint specifying an expected exception - - - - - Creates a constraint specifying an exception with a given InnerException - - - - - Creates a constraint specifying an expected TargetInvocationException - - - - - Creates a constraint specifying an expected TargetInvocationException - - - - - Creates a constraint specifying an expected TargetInvocationException - - - - - Creates a constraint specifying that no exception is thrown - - - - - FactoryAttribute indicates the source to be used to - provide test cases for a test method. - - - - - Construct with the name of the factory - for use with languages - that don't support params arrays. - - An array of the names of the factories that will provide data - - - - Construct with a Type and name - for use with languages - that don't support params arrays. - - The Type that will provide data - The name of the method, property or field that will provide data - - - - The name of a the method, property or fiend to be used as a source - - - - - A Type to be used as a source - - - - - ValueSourceAttribute indicates the source to be used to - provide data for one parameter of a test method. - - - - - Construct with the name of the factory - for use with languages - that don't support params arrays. - - The name of the data source to be used - - - - Construct with a Type and name - for use with languages - that don't support params arrays. - - The Type that will provide data - The name of the method, property or field that will provide data - - - - The name of a the method, property or fiend to be used as a source - - - - - A Type to be used as a source - - - - - The Iz class is a synonym for Is intended for use in VB, - which regards Is as a keyword. - - - - - WUsed on a method, marks the test with a timeout value in milliseconds. - The test will be run in a separate thread and is cancelled if the timeout - is exceeded. Used on a method or assembly, sets the default timeout - for all contained test methods. - - - - - Construct a TimeoutAttribute given a time in milliseconds - - The timeout value in milliseconds - - - - Marks a test that must run in the STA, causing it - to run in a separate thread if necessary. - - On methods, you may also use STAThreadAttribute - to serve the same purpose. - - - - - Construct a RequiresSTAAttribute - - - - - Marks a test that must run in the MTA, causing it - to run in a separate thread if necessary. - - On methods, you may also use MTAThreadAttribute - to serve the same purpose. - - - - - Construct a RequiresMTAAttribute - - - - - Marks a test that must run on a separate thread. - - - - - Construct a RequiresThreadAttribute - - - - - Construct a RequiresThreadAttribute, specifying the apartment - - - - - Summary description for MaxTimeAttribute. - - - - - Construct a MaxTimeAttribute, given a time in milliseconds. - - The maximum elapsed time in milliseconds - - - - RepeatAttribute may be applied to test case in order - to run it multiple times. - - - - - Construct a RepeatAttribute - - The number of times to run the test - - - - Provides static methods to express the assumptions - that must be met for a test to give a meaningful - result. If an assumption is not met, the test - should produce an inconclusive result. - - - - - The Equals method throws an AssertionException. This is done - to make sure there is no mistake by calling this function. - - - - - - - override the default ReferenceEquals to throw an AssertionException. This - implementation makes sure there is no mistake in calling this function - as part of Assert. - - - - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an InconclusiveException on failure. - - A Constraint expression to be applied - The actual value to test - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an InconclusiveException on failure. - - A Constraint expression to be applied - The actual value to test - The message that will be displayed on failure - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an InconclusiveException on failure. - - A Constraint expression to be applied - The actual value to test - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an InconclusiveException on failure. - - A Constraint expression to be applied - An ActualValueDelegate returning the value to be tested - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an InconclusiveException on failure. - - A Constraint expression to be applied - An ActualValueDelegate returning the value to be tested - The message that will be displayed on failure - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an InconclusiveException on failure. - - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to a referenced value, succeeding if the constraint - is satisfied and throwing an InconclusiveException on failure. - - A Constraint expression to be applied - The actual value to test - - - - Apply a constraint to a referenced value, succeeding if the constraint - is satisfied and throwing an InconclusiveException on failure. - - A Constraint expression to be applied - The actual value to test - The message that will be displayed on failure - - - - Apply a constraint to a referenced value, succeeding if the constraint - is satisfied and throwing an InconclusiveException on failure. - - A Constraint expression to be applied - The actual value to test - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that a condition is true. If the condition is false the method throws - an . - - The evaluated condition - The message to display if the condition is false - Arguments to be used in formatting the message - - - - Asserts that a condition is true. If the condition is false the method throws - an . - - The evaluated condition - The message to display if the condition is false - - - - Asserts that a condition is true. If the condition is false the - method throws an . - - The evaluated condition - - - - Asserts that the code represented by a delegate throws an exception - that satisfies the constraint provided. - - A TestDelegate to be executed - A ThrowsConstraint used in the test - - - - Randomizer returns a set of random values in a repeatable - way, to allow re-running of tests if necessary. - - - - - Get a randomizer for a particular member, returning - one that has already been created if it exists. - This ensures that the same values are generated - each time the tests are reloaded. - - - - - Get a randomizer for a particular parameter, returning - one that has already been created if it exists. - This ensures that the same values are generated - each time the tests are reloaded. - - - - - Construct a randomizer using a random seed - - - - - Construct a randomizer using a specified seed - - - - - Return an array of random doubles between 0.0 and 1.0. - - - - - - - Return an array of random doubles with values in a specified range. - - - - - Return an array of random ints with values in a specified range. - - - - - Get a random seed for use in creating a randomizer. - - - - - Adding this attribute to a method within a - class makes the method callable from the NUnit test runner. There is a property - called Description which is optional which you can provide a more detailed test - description. This class cannot be inherited. - - - - [TestFixture] - public class Fixture - { - [Test] - public void MethodToTest() - {} - - [Test(Description = "more detailed description")] - publc void TestDescriptionMethod() - {} - } - - - - - - Used to mark a field for use as a datapoint when executing a theory - within the same fixture that requires an argument of the field's Type. - - - - - Used to mark an array as containing a set of datapoints to be used - executing a theory within the same fixture that requires an argument - of the Type of the array elements. - - - - - The SpecialValue enum is used to represent TestCase arguments - that cannot be used as arguments to an Attribute. - - - - - Null represents a null value, which cannot be used as an - argument to an attriute under .NET 1.x - - - - - Summary description for SetUICultureAttribute. - - - - - Construct given the name of a culture - - - - - - Delegate used by tests that execute code and - capture any thrown exception. - - - - - The Assert class contains a collection of static methods that - implement the most common assertions used in NUnit. - - - - - We don't actually want any instances of this object, but some people - like to inherit from it to add other static methods. Hence, the - protected constructor disallows any instances of this object. - - - - - The Equals method throws an AssertionException. This is done - to make sure there is no mistake by calling this function. - - - - - - - override the default ReferenceEquals to throw an AssertionException. This - implementation makes sure there is no mistake in calling this function - as part of Assert. - - - - - - - Helper for Assert.AreEqual(double expected, double actual, ...) - allowing code generation to work consistently. - - The expected value - The actual value - The maximum acceptable difference between the - the expected and the actual - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Throws a with the message and arguments - that are passed in. This allows a test to be cut short, with a result - of success returned to NUnit. - - The message to initialize the with. - Arguments to be used in formatting the message - - - - Throws a with the message and arguments - that are passed in. This allows a test to be cut short, with a result - of success returned to NUnit. - - The message to initialize the with. - - - - Throws a with the message and arguments - that are passed in. This allows a test to be cut short, with a result - of success returned to NUnit. - - - - - Throws an with the message and arguments - that are passed in. This is used by the other Assert functions. - - The message to initialize the with. - Arguments to be used in formatting the message - - - - Throws an with the message that is - passed in. This is used by the other Assert functions. - - The message to initialize the with. - - - - Throws an . - This is used by the other Assert functions. - - - - - Throws an with the message and arguments - that are passed in. This causes the test to be reported as ignored. - - The message to initialize the with. - Arguments to be used in formatting the message - - - - Throws an with the message that is - passed in. This causes the test to be reported as ignored. - - The message to initialize the with. - - - - Throws an . - This causes the test to be reported as ignored. - - - - - Throws an with the message and arguments - that are passed in. This causes the test to be reported as inconclusive. - - The message to initialize the with. - Arguments to be used in formatting the message - - - - Throws an with the message that is - passed in. This causes the test to be reported as inconclusive. - - The message to initialize the with. - - - - Throws an . - This causes the test to be reported as Inconclusive. - - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - A Constraint to be applied - The actual value to test - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - A Constraint to be applied - The actual value to test - The message that will be displayed on failure - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - A Constraint expression to be applied - The actual value to test - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - A Constraint expression to be applied - An ActualValueDelegate returning the value to be tested - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - A Constraint expression to be applied - An ActualValueDelegate returning the value to be tested - The message that will be displayed on failure - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to a referenced value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - A Constraint to be applied - The actual value to test - - - - Apply a constraint to a referenced value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - A Constraint to be applied - The actual value to test - The message that will be displayed on failure - - - - Apply a constraint to a referenced value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - A Constraint to be applied - The actual value to test - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that a condition is true. If the condition is false the method throws - an . - - The evaluated condition - The message to display if the condition is false - Arguments to be used in formatting the message - - - - Asserts that a condition is true. If the condition is false the method throws - an . - - The evaluated condition - The message to display if the condition is false - - - - Asserts that a condition is true. If the condition is false the method throws - an . - - The evaluated condition - - - - Asserts that the code represented by a delegate throws an exception - that satisfies the constraint provided. - - A TestDelegate to be executed - A ThrowsConstraint used in the test - - - - Verifies that a delegate throws a particular exception when called. - - A constraint to be satisfied by the exception - A TestSnippet delegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that a delegate throws a particular exception when called. - - A constraint to be satisfied by the exception - A TestSnippet delegate - The message that will be displayed on failure - - - - Verifies that a delegate throws a particular exception when called. - - A constraint to be satisfied by the exception - A TestSnippet delegate - - - - Verifies that a delegate throws a particular exception when called. - - The exception Type expected - A TestSnippet delegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that a delegate throws a particular exception when called. - - The exception Type expected - A TestSnippet delegate - The message that will be displayed on failure - - - - Verifies that a delegate throws a particular exception when called. - - The exception Type expected - A TestSnippet delegate - - - - Verifies that a delegate throws a particular exception when called. - - Type of the expected exception - A TestSnippet delegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that a delegate throws a particular exception when called. - - Type of the expected exception - A TestSnippet delegate - The message that will be displayed on failure - - - - Verifies that a delegate throws a particular exception when called. - - Type of the expected exception - A TestSnippet delegate - - - - Verifies that a delegate throws an exception when called - and returns it. - - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that a delegate throws an exception when called - and returns it. - - A TestDelegate - The message that will be displayed on failure - - - - Verifies that a delegate throws an exception when called - and returns it. - - A TestDelegate - - - - Verifies that a delegate throws an exception of a certain Type - or one derived from it when called and returns it. - - The expected Exception Type - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that a delegate throws an exception of a certain Type - or one derived from it when called and returns it. - - The expected Exception Type - A TestDelegate - The message that will be displayed on failure - - - - Verifies that a delegate throws an exception of a certain Type - or one derived from it when called and returns it. - - The expected Exception Type - A TestDelegate - - - - Verifies that a delegate throws an exception of a certain Type - or one derived from it when called and returns it. - - The expected Exception Type - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that a delegate throws an exception of a certain Type - or one derived from it when called and returns it. - - The expected Exception Type - A TestDelegate - The message that will be displayed on failure - - - - Verifies that a delegate throws an exception of a certain Type - or one derived from it when called and returns it. - - The expected Exception Type - A TestDelegate - - - - Verifies that a delegate does not throw an exception - - A TestSnippet delegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that a delegate does not throw an exception. - - A TestSnippet delegate - The message that will be displayed on failure - - - - Verifies that a delegate does not throw an exception. - - A TestSnippet delegate - - - - Asserts that a condition is true. If the condition is false the method throws - an . - - The evaluated condition - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a condition is true. If the condition is false the method throws - an . - - The evaluated condition - The message to display in case of failure - - - - Asserts that a condition is true. If the condition is false the method throws - an . - - The evaluated condition - - - - Asserts that a condition is true. If the condition is false the method throws - an . - - The evaluated condition - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a condition is true. If the condition is false the method throws - an . - - The evaluated condition - The message to display in case of failure - - - - Asserts that a condition is true. If the condition is false the method throws - an . - - The evaluated condition - - - - Asserts that a condition is false. If the condition is true the method throws - an . - - The evaluated condition - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a condition is false. If the condition is true the method throws - an . - - The evaluated condition - The message to display in case of failure - - - - Asserts that a condition is false. If the condition is true the method throws - an . - - The evaluated condition - - - - Asserts that a condition is false. If the condition is true the method throws - an . - - The evaluated condition - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a condition is false. If the condition is true the method throws - an . - - The evaluated condition - The message to display in case of failure - - - - Asserts that a condition is false. If the condition is true the method throws - an . - - The evaluated condition - - - - Verifies that the object that is passed in is not equal to null - If the object is null then an - is thrown. - - The object that is to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the object that is passed in is not equal to null - If the object is null then an - is thrown. - - The object that is to be tested - The message to display in case of failure - - - - Verifies that the object that is passed in is not equal to null - If the object is null then an - is thrown. - - The object that is to be tested - - - - Verifies that the object that is passed in is not equal to null - If the object is null then an - is thrown. - - The object that is to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the object that is passed in is not equal to null - If the object is null then an - is thrown. - - The object that is to be tested - The message to display in case of failure - - - - Verifies that the object that is passed in is not equal to null - If the object is null then an - is thrown. - - The object that is to be tested - - - - Verifies that the object that is passed in is equal to null - If the object is not null then an - is thrown. - - The object that is to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the object that is passed in is equal to null - If the object is not null then an - is thrown. - - The object that is to be tested - The message to display in case of failure - - - - Verifies that the object that is passed in is equal to null - If the object is not null then an - is thrown. - - The object that is to be tested - - - - Verifies that the object that is passed in is equal to null - If the object is not null then an - is thrown. - - The object that is to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the object that is passed in is equal to null - If the object is not null then an - is thrown. - - The object that is to be tested - The message to display in case of failure - - - - Verifies that the object that is passed in is equal to null - If the object is not null then an - is thrown. - - The object that is to be tested - - - - Verifies that the double that is passed in is an NaN value. - If the object is not NaN then an - is thrown. - - The value that is to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the double that is passed in is an NaN value. - If the object is not NaN then an - is thrown. - - The value that is to be tested - The message to display in case of failure - - - - Verifies that the double that is passed in is an NaN value. - If the object is not NaN then an - is thrown. - - The value that is to be tested - - - - Verifies that the double that is passed in is an NaN value. - If the object is not NaN then an - is thrown. - - The value that is to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the double that is passed in is an NaN value. - If the object is not NaN then an - is thrown. - - The value that is to be tested - The message to display in case of failure - - - - Verifies that the double that is passed in is an NaN value. - If the object is not NaN then an - is thrown. - - The value that is to be tested - - - - Assert that a string is empty - that is equal to string.Empty - - The string to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Assert that a string is empty - that is equal to string.Empty - - The string to be tested - The message to display in case of failure - - - - Assert that a string is empty - that is equal to string.Empty - - The string to be tested - - - - Assert that an array, list or other collection is empty - - An array, list or other collection implementing ICollection - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Assert that an array, list or other collection is empty - - An array, list or other collection implementing ICollection - The message to display in case of failure - - - - Assert that an array, list or other collection is empty - - An array, list or other collection implementing ICollection - - - - Assert that a string is not empty - that is not equal to string.Empty - - The string to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Assert that a string is not empty - that is not equal to string.Empty - - The string to be tested - The message to display in case of failure - - - - Assert that a string is not empty - that is not equal to string.Empty - - The string to be tested - - - - Assert that an array, list or other collection is not empty - - An array, list or other collection implementing ICollection - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Assert that an array, list or other collection is not empty - - An array, list or other collection implementing ICollection - The message to display in case of failure - - - - Assert that an array, list or other collection is not empty - - An array, list or other collection implementing ICollection - - - - Assert that a string is either null or equal to string.Empty - - The string to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Assert that a string is either null or equal to string.Empty - - The string to be tested - The message to display in case of failure - - - - Assert that a string is either null or equal to string.Empty - - The string to be tested - - - - Assert that a string is not null or empty - - The string to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Assert that a string is not null or empty - - The string to be tested - The message to display in case of failure - - - - Assert that a string is not null or empty - - The string to be tested - - - - Asserts that an object may be assigned a value of a given Type. - - The expected Type. - The object under examination - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object may be assigned a value of a given Type. - - The expected Type. - The object under examination - The message to display in case of failure - - - - Asserts that an object may be assigned a value of a given Type. - - The expected Type. - The object under examination - - - - Asserts that an object may be assigned a value of a given Type. - - The expected Type. - The object under examination - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object may be assigned a value of a given Type. - - The expected Type. - The object under examination - The message to display in case of failure - - - - Asserts that an object may be assigned a value of a given Type. - - The expected Type. - The object under examination - - - - Asserts that an object may not be assigned a value of a given Type. - - The expected Type. - The object under examination - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object may not be assigned a value of a given Type. - - The expected Type. - The object under examination - The message to display in case of failure - - - - Asserts that an object may not be assigned a value of a given Type. - - The expected Type. - The object under examination - - - - Asserts that an object may not be assigned a value of a given Type. - - The expected Type. - The object under examination - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object may not be assigned a value of a given Type. - - The expected Type. - The object under examination - The message to display in case of failure - - - - Asserts that an object may not be assigned a value of a given Type. - - The expected Type. - The object under examination - - - - Asserts that an object is an instance of a given type. - - The expected Type - The object being examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object is an instance of a given type. - - The expected Type - The object being examined - The message to display in case of failure - - - - Asserts that an object is an instance of a given type. - - The expected Type - The object being examined - - - - Asserts that an object is an instance of a given type. - - The expected Type - The object being examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object is an instance of a given type. - - The expected Type - The object being examined - The message to display in case of failure - - - - Asserts that an object is an instance of a given type. - - The expected Type - The object being examined - - - - Asserts that an object is an instance of a given type. - - The expected Type - The object being examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object is an instance of a given type. - - The expected Type - The object being examined - The message to display in case of failure - - - - Asserts that an object is an instance of a given type. - - The expected Type - The object being examined - - - - Asserts that an object is not an instance of a given type. - - The expected Type - The object being examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object is not an instance of a given type. - - The expected Type - The object being examined - The message to display in case of failure - - - - Asserts that an object is not an instance of a given type. - - The expected Type - The object being examined - - - - Asserts that an object is not an instance of a given type. - - The expected Type - The object being examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object is not an instance of a given type. - - The expected Type - The object being examined - The message to display in case of failure - - - - Asserts that an object is not an instance of a given type. - - The expected Type - The object being examined - - - - Asserts that an object is not an instance of a given type. - - The expected Type - The object being examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object is not an instance of a given type. - - The expected Type - The object being examined - The message to display in case of failure - - - - Asserts that an object is not an instance of a given type. - - The expected Type - The object being examined - - - - Verifies that two values are equal. If they are not, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two values are equal. If they are not, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - - - - Verifies that two values are equal. If they are not, then an - is thrown. - - The expected value - The actual value - - - - Verifies that two values are equal. If they are not, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two values are equal. If they are not, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - - - - Verifies that two values are equal. If they are not, then an - is thrown. - - The expected value - The actual value - - - - Verifies that two values are equal. If they are not, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two values are equal. If they are not, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - - - - Verifies that two values are equal. If they are not, then an - is thrown. - - The expected value - The actual value - - - - Verifies that two values are equal. If they are not, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two values are equal. If they are not, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - - - - Verifies that two values are equal. If they are not, then an - is thrown. - - The expected value - The actual value - - - - Verifies that two values are equal. If they are not, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two values are equal. If they are not, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - - - - Verifies that two values are equal. If they are not, then an - is thrown. - - The expected value - The actual value - - - - Verifies that two doubles are equal considering a delta. If the - expected value is infinity then the delta value is ignored. If - they are not equal then an is - thrown. - - The expected value - The actual value - The maximum acceptable difference between the - the expected and the actual - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two doubles are equal considering a delta. If the - expected value is infinity then the delta value is ignored. If - they are not equal then an is - thrown. - - The expected value - The actual value - The maximum acceptable difference between the - the expected and the actual - The message to display in case of failure - - - - Verifies that two doubles are equal considering a delta. If the - expected value is infinity then the delta value is ignored. If - they are not equal then an is - thrown. - - The expected value - The actual value - The maximum acceptable difference between the - the expected and the actual - - - - Verifies that two doubles are equal considering a delta. If the - expected value is infinity then the delta value is ignored. If - they are not equal then an is - thrown. - - The expected value - The actual value - The maximum acceptable difference between the - the expected and the actual - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two doubles are equal considering a delta. If the - expected value is infinity then the delta value is ignored. If - they are not equal then an is - thrown. - - The expected value - The actual value - The maximum acceptable difference between the - the expected and the actual - The message to display in case of failure - - - - Verifies that two doubles are equal considering a delta. If the - expected value is infinity then the delta value is ignored. If - they are not equal then an is - thrown. - - The expected value - The actual value - The maximum acceptable difference between the - the expected and the actual - - - - Verifies that two objects are equal. Two objects are considered - equal if both are null, or if both have the same value. NUnit - has special semantics for some object types. - If they are not equal an is thrown. - - The value that is expected - The actual value - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two objects are equal. Two objects are considered - equal if both are null, or if both have the same value. NUnit - has special semantics for some object types. - If they are not equal an is thrown. - - The value that is expected - The actual value - The message to display in case of failure - - - - Verifies that two objects are equal. Two objects are considered - equal if both are null, or if both have the same value. NUnit - has special semantics for some object types. - If they are not equal an is thrown. - - The value that is expected - The actual value - - - - Verifies that two values are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two values are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - - - - Verifies that two values are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - - - - Verifies that two values are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two values are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - - - - Verifies that two values are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - - - - Verifies that two values are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two values are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - - - - Verifies that two values are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - - - - Verifies that two values are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two values are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - - - - Verifies that two values are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - - - - Verifies that two values are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two values are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - - - - Verifies that two values are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - - - - Verifies that two values are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two values are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - - - - Verifies that two values are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - - - - Verifies that two values are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two values are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - - - - Verifies that two values are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - - - - Verifies that two objects are not equal. Two objects are considered - equal if both are null, or if both have the same value. NUnit - has special semantics for some object types. - If they are equal an is thrown. - - The value that is expected - The actual value - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two objects are not equal. Two objects are considered - equal if both are null, or if both have the same value. NUnit - has special semantics for some object types. - If they are equal an is thrown. - - The value that is expected - The actual value - The message to display in case of failure - - - - Verifies that two objects are not equal. Two objects are considered - equal if both are null, or if both have the same value. NUnit - has special semantics for some object types. - If they are equal an is thrown. - - The value that is expected - The actual value - - - - Asserts that two objects refer to the same object. If they - are not the same an is thrown. - - The expected object - The actual object - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that two objects refer to the same object. If they - are not the same an is thrown. - - The expected object - The actual object - The message to display in case of failure - - - - Asserts that two objects refer to the same object. If they - are not the same an is thrown. - - The expected object - The actual object - - - - Asserts that two objects do not refer to the same object. If they - are the same an is thrown. - - The expected object - The actual object - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that two objects do not refer to the same object. If they - are the same an is thrown. - - The expected object - The actual object - The message to display in case of failure - - - - Asserts that two objects do not refer to the same object. If they - are the same an is thrown. - - The expected object - The actual object - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is greater than or equal tothe second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal tothe second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - - - - Verifies that the first value is greater than or equal tothe second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal tothe second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal tothe second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - - - - Verifies that the first value is greater than or equal tothe second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal tothe second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal tothe second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - - - - Verifies that the first value is greater than or equal tothe second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal tothe second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal tothe second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - - - - Verifies that the first value is greater than or equal tothe second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal tothe second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal tothe second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - - - - Verifies that the first value is greater than or equal tothe second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal tothe second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal tothe second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - - - - Verifies that the first value is greater than or equal tothe second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal tothe second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal tothe second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - - - - Verifies that the first value is greater than or equal tothe second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal tothe second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal tothe second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - - - - Verifies that the first value is greater than or equal tothe second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Asserts that an object is contained in a list. - - The expected object - The list to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object is contained in a list. - - The expected object - The list to be examined - The message to display in case of failure - - - - Asserts that an object is contained in a list. - - The expected object - The list to be examined - - - - Gets the number of assertions executed so far and - resets the counter to zero. - - - - - Static helper class used in the constraint-based syntax - - - - - Creates a new SubstringConstraint - - The value of the substring - A SubstringConstraint - - - - Creates a new CollectionContainsConstraint. - - The item that should be found. - A new CollectionContainsConstraint - - - - Attribute used to apply a category to a test - - - - - The name of the category - - - - - Construct attribute for a given category based on - a name. The name may not contain the characters ',', - '+', '-' or '!'. However, this is not checked in the - constructor since it would cause an error to arise at - as the test was loaded without giving a clear indication - of where the problem is located. The error is handled - in NUnitFramework.cs by marking the test as not - runnable. - - The name of the category - - - - Protected constructor uses the Type name as the name - of the category. - - - - - The name of the category - - - - - The TestStatus enum indicates the result of running a test - - - - - The test was inconclusive - - - - - The test has skipped - - - - - The test succeeded - - - - - The test failed - - - - - Provide the context information of the current test - - - - - The TestState of current test. This maps to the ResultState - used in nunit.core and is subject to change in the future. - - - - - The TestStatus of current test. This enum will be used - in future versions of NUnit and so is to be preferred - to the TestState value. - - - - - The name of the currently executing test. If no - test is running, the name of the last test run. - - - - - The properties of the currently executing test - or, if no test is running, of the last test run. - - - - - The ResultState enum indicates the result of running a test - - - - - The result is inconclusive - - - - - The test was not runnable. - - - - - The test has been skipped. - - - - - The test has been ignored. - - - - - The test succeeded - - - - - The test failed - - - - - The test encountered an unexpected exception - - - - - The test was cancelled by the user - - - - diff --git a/lib/nunit.mocks.dll b/lib/nunit.mocks.dll deleted file mode 100644 index 43aafffea68e7e9de52a1e1c7449289126f6ea74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20480 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�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