From 0d9a0a1c46840a41c633aa6a0fd652a5260855a6 Mon Sep 17 00:00:00 2001 From: derikwhittaker Date: Sat, 14 Dec 2013 08:45:40 -0500 Subject: [PATCH] New gitignore. remove ignored files --- .gitignore | 175 +- CronNET.sln.DotSettings.user | 4 - CronNET.suo | Bin 19456 -> 0 bytes CronNET.v12.suo | Bin 43008 -> 49152 bytes packages/NUnit.2.6.3/NUnit.2.6.3.nupkg | Bin 98508 -> 0 bytes packages/NUnit.2.6.3/NUnit.2.6.3.nuspec | 27 - packages/NUnit.2.6.3/lib/nunit.framework.dll | Bin 151552 -> 0 bytes packages/NUnit.2.6.3/lib/nunit.framework.xml | 10960 ----------------- packages/NUnit.2.6.3/license.txt | 15 - packages/repositories.config | 4 - 10 files changed, 172 insertions(+), 11013 deletions(-) delete mode 100644 CronNET.sln.DotSettings.user delete mode 100644 CronNET.suo delete mode 100644 packages/NUnit.2.6.3/NUnit.2.6.3.nupkg delete mode 100644 packages/NUnit.2.6.3/NUnit.2.6.3.nuspec delete mode 100644 packages/NUnit.2.6.3/lib/nunit.framework.dll delete mode 100644 packages/NUnit.2.6.3/lib/nunit.framework.xml delete mode 100644 packages/NUnit.2.6.3/license.txt delete mode 100644 packages/repositories.config diff --git a/.gitignore b/.gitignore index 77fd30e..d13c477 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,173 @@ -_Resharper* -*.resharper* +################# +## Customer +################# +_ReSharper* +TestResults + +################# +## Eclipse +################# + +*.pydevproject +.project +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.classpath +.settings/ +.loadpath + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# CDT-specific +.cproject + +# PDT-specific +.buildpath + + +################# +## Visual Studio +################# + +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.sln.docstates + +# Build results +[Dd]ebug/ +[Rr]elease/ +*_i.c +*_p.c +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.vspscc +.builds +*.dotCover + +## TODO: If you have NuGet Package Restore enabled, uncomment this +packages/ + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf + +# Visual Studio profiler +*.psess +*.vsp + +# ReSharper is a .NET coding add-in +_ReSharper* + +# Installshield output folder +[Ee]xpress + + +#azure +*.PublishSettings + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish + +# Others +[Bb]in +[Oo]bj +sql +TestResults +*.Cache +ClientBin +stylecop.* +~$* +*.dbmdl +Generated_Code #added for RIA/Silverlight projects + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML + + + +############ +## Windows +############ + +# Windows image file caches +Thumbs.db + +# Folder config file +Desktop.ini + + +############# +## Python +############# + +*.py[co] + +# Packages +*.egg +*.egg-info +dist +build +eggs +parts bin -obj +var +sdist +develop-eggs +.installed.cfg + +# Installer logs +pip-log.txt + +# Unit test / coverage reports +.coverage +.tox + +#Translations +*.mo + +#Mr Developer +.mr.developer.cfg + +# Mac crap +.DS_Store diff --git a/CronNET.sln.DotSettings.user b/CronNET.sln.DotSettings.user deleted file mode 100644 index 4c74edf..0000000 --- a/CronNET.sln.DotSettings.user +++ /dev/null @@ -1,4 +0,0 @@ - - True - CronScheduleTests - <Session><Elements><UnitTestElement Provider="nUnit" Id="CronTests.CronScheduleTests" type="NUnitTestFixtureElement" Project="6FCFBDF4-ECB7-4FC2-A376-E962B11D487D" /><UnitTestElement Provider="nUnit" Id="CronTests.CronScheduleTests.divided_array_test" ParentId="CronTests.CronScheduleTests" type="NUnitTestElement" TypeName="CronTests.CronScheduleTests" MethodName="divided_array_test" Project="6FCFBDF4-ECB7-4FC2-A376-E962B11D487D" /><UnitTestElement Provider="nUnit" Id="CronTests.CronScheduleTests.generate_days_of_month_test" ParentId="CronTests.CronScheduleTests" type="NUnitTestElement" TypeName="CronTests.CronScheduleTests" MethodName="generate_days_of_month_test" Project="6FCFBDF4-ECB7-4FC2-A376-E962B11D487D" /><UnitTestElement Provider="nUnit" Id="CronTests.CronScheduleTests.generate_days_of_weeks" ParentId="CronTests.CronScheduleTests" type="NUnitTestElement" TypeName="CronTests.CronScheduleTests" MethodName="generate_days_of_weeks" Project="6FCFBDF4-ECB7-4FC2-A376-E962B11D487D" /><UnitTestElement Provider="nUnit" Id="CronTests.CronScheduleTests.generate_hours_test" ParentId="CronTests.CronScheduleTests" type="NUnitTestElement" TypeName="CronTests.CronScheduleTests" MethodName="generate_hours_test" Project="6FCFBDF4-ECB7-4FC2-A376-E962B11D487D" /><UnitTestElement Provider="nUnit" Id="CronTests.CronScheduleTests.generate_minutes_test" ParentId="CronTests.CronScheduleTests" type="NUnitTestElement" TypeName="CronTests.CronScheduleTests" MethodName="generate_minutes_test" Project="6FCFBDF4-ECB7-4FC2-A376-E962B11D487D" /><UnitTestElement Provider="nUnit" Id="CronTests.CronScheduleTests.generate_months_test" ParentId="CronTests.CronScheduleTests" type="NUnitTestElement" TypeName="CronTests.CronScheduleTests" MethodName="generate_months_test" Project="6FCFBDF4-ECB7-4FC2-A376-E962B11D487D" /><UnitTestElement Provider="nUnit" Id="CronTests.CronScheduleTests.generate_values_divided_test" ParentId="CronTests.CronScheduleTests" type="NUnitTestElement" TypeName="CronTests.CronScheduleTests" MethodName="generate_values_divided_test" Project="6FCFBDF4-ECB7-4FC2-A376-E962B11D487D" /><UnitTestElement Provider="nUnit" Id="CronTests.CronScheduleTests.generate_values_range_test" ParentId="CronTests.CronScheduleTests" type="NUnitTestElement" TypeName="CronTests.CronScheduleTests" MethodName="generate_values_range_test" Project="6FCFBDF4-ECB7-4FC2-A376-E962B11D487D" /><UnitTestElement Provider="nUnit" Id="CronTests.CronScheduleTests.is_time_day_of_month_test" ParentId="CronTests.CronScheduleTests" type="NUnitTestElement" TypeName="CronTests.CronScheduleTests" MethodName="is_time_day_of_month_test" Project="6FCFBDF4-ECB7-4FC2-A376-E962B11D487D" /><UnitTestElement Provider="nUnit" Id="CronTests.CronScheduleTests.is_time_day_of_week_test" ParentId="CronTests.CronScheduleTests" type="NUnitTestElement" TypeName="CronTests.CronScheduleTests" MethodName="is_time_day_of_week_test" Project="6FCFBDF4-ECB7-4FC2-A376-E962B11D487D" /><UnitTestElement Provider="nUnit" Id="CronTests.CronScheduleTests.is_time_hour_test" ParentId="CronTests.CronScheduleTests" type="NUnitTestElement" TypeName="CronTests.CronScheduleTests" MethodName="is_time_hour_test" Project="6FCFBDF4-ECB7-4FC2-A376-E962B11D487D" /><UnitTestElement Provider="nUnit" Id="CronTests.CronScheduleTests.is_time_minute_test" ParentId="CronTests.CronScheduleTests" type="NUnitTestElement" TypeName="CronTests.CronScheduleTests" MethodName="is_time_minute_test" Project="6FCFBDF4-ECB7-4FC2-A376-E962B11D487D" /><UnitTestElement Provider="nUnit" Id="CronTests.CronScheduleTests.is_time_month_test" ParentId="CronTests.CronScheduleTests" type="NUnitTestElement" TypeName="CronTests.CronScheduleTests" MethodName="is_time_month_test" Project="6FCFBDF4-ECB7-4FC2-A376-E962B11D487D" /><UnitTestElement Provider="nUnit" Id="CronTests.CronScheduleTests.is_time_test" ParentId="CronTests.CronScheduleTests" type="NUnitTestElement" TypeName="CronTests.CronScheduleTests" MethodName="is_time_test" Project="6FCFBDF4-ECB7-4FC2-A376-E962B11D487D" /><UnitTestElement Provider="nUnit" Id="CronTests.CronScheduleTests.is_valid_test" ParentId="CronTests.CronScheduleTests" type="NUnitTestElement" TypeName="CronTests.CronScheduleTests" MethodName="is_valid_test" Project="6FCFBDF4-ECB7-4FC2-A376-E962B11D487D" /><UnitTestElement Provider="nUnit" Id="CronTests.CronScheduleTests.list_array_test" ParentId="CronTests.CronScheduleTests" type="NUnitTestElement" TypeName="CronTests.CronScheduleTests" MethodName="list_array_test" Project="6FCFBDF4-ECB7-4FC2-A376-E962B11D487D" /><UnitTestElement Provider="nUnit" Id="CronTests.CronScheduleTests.ppp" ParentId="CronTests.CronScheduleTests" type="NUnitTestElement" TypeName="CronTests.CronScheduleTests" MethodName="ppp" Project="6FCFBDF4-ECB7-4FC2-A376-E962B11D487D" /><UnitTestElement Provider="nUnit" Id="CronTests.CronScheduleTests.range_array_test" ParentId="CronTests.CronScheduleTests" type="NUnitTestElement" TypeName="CronTests.CronScheduleTests" MethodName="range_array_test" Project="6FCFBDF4-ECB7-4FC2-A376-E962B11D487D" /><UnitTestElement Provider="nUnit" Id="CronTests.CronScheduleTests.wild_array_test" ParentId="CronTests.CronScheduleTests" type="NUnitTestElement" TypeName="CronTests.CronScheduleTests" MethodName="wild_array_test" Project="6FCFBDF4-ECB7-4FC2-A376-E962B11D487D" /></Elements></Session> \ No newline at end of file diff --git a/CronNET.suo b/CronNET.suo deleted file mode 100644 index 62e9cad2dd0800c9f523860031173eddae2d77b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19456 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 Wbal1Dje-i>h%sus=Tr6d!2bZ{sYkN_ diff --git a/CronNET.v12.suo b/CronNET.v12.suo index 83ab8d62efeb3e1d4ac927eef415c44172b54088..48ab0ddd5514240e18e978f517279417e4f67dc0 100644 GIT binary patch delta 3268 zcmcgvdr(wW7(eIk-Q|i4EXp%hc?Kp1sDx!$EMTLB2$5Qb3JM|(CxsD6R!S3pIdWhkTu*ntp00pFBXT+hST)$vsaLI|B&$|_3ugF(DFe;O9nk{RdTQjXJ40C+k*ttsT$}({?S@x>U4^MRa&ts{JbHIE?1+ ztvwjL7BsrXFycwhL(qsYI1n_-qr=e^*2kfHBB;BLb@r#Adllg3*WL{?vN#8W;7VKu zeRM%PPVZTA$k(UR*vb-nI<&D9%nYx}$}~>8`BNI|g>jizK0==9?be4dRY?~rj@wfM zMy8>y5Q>GNbn&)QjVsgC8;h>;+OnVV4MQU`{2UA5@3fi0QQ|j&e7!G&4au;(9edC`@KT&%xlv2iKMi#m$P|7H?Bz zDD6rhWo#zJIQuL(kF@KiL^|ozqPZZOM2*-ewu!Bx0XsyBsV?Ih9A-M0k)JR=9u1Ri zFt|%pid#i3jA})-Xc4vg&RO4R`Z4E#9GqKXl1k6%?}MZw<`|@M=x<2n>9W~sZ+TQz zC_cdZ;7D^y;{lF1XM(-?M;?I<7bTb96@bZ6X0`(ilXRt7#vFc5EfW+o4v)>2`QI{5 z`~S%}?AHPKcQD{1#(GHZE~%HLq^Zhxaddb3i&L!x4)9-B!r8|87J4K3Rq9EeN9S`s zki|61SslGm)T62Qj&8$?VFt&8L@cr@K0d}e?FhR_kh;;{t3e{&W0lArqpeDAZDod z)O-Dh>&M2jJmgq+j&^HT7{q(6L6?0ndxg$c-C{S3g(a2uyDy_STLqrfoRc`*Jgj_B z|3wbR4Z#%kha18m^~rqU4zL5Y#Xrc~Bc~%HO!7hE({8wiosruytl1|hzH5MC5m=SsJ zvggk1r0>#NlcEYwKQ3!7ef%>el?wWOfASB?T-{ySCFTFU9oc-z|4e(>vHCAvsSW)f z9veCE>C%C!1^R+!M+iB3M+fusrQAb_&JA4ZAkb-W)s1l-^<{?ZgG){-Y*X{LrrKtAeQir+bxTWaINMnjVd(5(?G5U8M@G=$=mPeJ&81O1|!>iSSqF8n3Do-MKWHs#0Fh92(gl zMFS}*G}`T8-Si|pi0cu3kJw4oozLq(F5e*KWw)YQMe${gA|qS@50=A&tW7P;X?9n3 zY}xM~PMl}2qWRx|+4#-H7jZHC9-=Qgd{!J@VW)MSuMO@Sk`&WbpcnL@gIA`mK9jHf E2G}z}B>(^b delta 1779 zcmdT_O>Yxd6rDHm4C63kJHg|G#1Mys@|BW!fm#ruC?BLwTz`~=bYUuxSad;lV+lea z!>U!&1@@Kr0S2*PQ<7N#3lLIJg@Qz>lr@4~mn>WfMtV%%Gw@58tsH~<_34gr0@m%w3w z9z^>#4)Aw09vEWAurEaXZGHs7bDFaY`+f3qo#gvD%&!918o08#Y>5^StpIXltu(HL zN;UJj$@NkjLgd~K&^v3wl9l5J_~HVS6Uv!!q}q+?PfAD+rOhwuq@OKjsTiKuFM%#7 zwAPZ^=opvXPa&s}rRCNnRST2!?GBfoP4{VMkuXWMwh7a(oS!ZVRBV4?39ce{^dldq z;?4{$Hzl=B4pD7t+>*WSXviYx%&O7eK!|xNPSk zNg1>j88_Q7wHjjNwB+ciIv^`i<+9=`8^bhg4w7p;GgxE(LgWPT>S{801>`Dc(tCT% zWRJL&c5^FIt{*^e)6+Dc)?Su6piyH?(vxtqMyzC(<07 zVdwNCMLH+NC6ewrZEUHZG>*44xJP(z$0LGX_uQnD$v%4U%^&o*=Ts@5vvXL4>&^$` ziya0R^dI12`4VQCvy55dI{}tBOP!^0oE}B{H?;jW8jZ8Ihk+4b6gUO2)AB$mp9qd& z{2ss__hm!Y7xTZ1(z*1KGo&4v!8SiAGs;Db7w~&g5y)kX4W&~jFb*rnAiHTLrDU*2 z7PHgzX0N^NFz!d8uj_+tboW+_o{sG9ZhZFWr=ImbTo#eCF=FzYH%f>cW7S|QabUwD zL06M4rP}tD|M1-kH@|MRv@{jVX>*y-r11%t%}G;bg;oIW0 zYP&1gCiA{U!p}{1J$uYwWmDW4gN5(&5Vosx532!Mn}Uyd&Y#uIgfo9yN&*b)*Jq`_ z7XCM%$yik%!0DyYVuB*AUmN_F;lGXN6n^`x{RZgG&$eg(`jw#gy=FAvAyx=`XBTei Pl}ccXjw^T6N=5${j$?N- diff --git a/packages/NUnit.2.6.3/NUnit.2.6.3.nupkg b/packages/NUnit.2.6.3/NUnit.2.6.3.nupkg deleted file mode 100644 index 61e3a5ecfc122b969532f236ae4d08f73eaf6a67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98508 zcmb5T1C(aLvL@PPb=kIU+cvsv+g6utb=kJfF8x)1+32!uPoHz{oj2#*H}}o#wIbKf zof%(7W_*#6E4Pv?7&z>=e>~?gGNKYTXPc)W-@g4r;J)E~GjKMubzx-qM@dwO^^GbY z?Vnx$-^Eo|AD^J7oh^~OnX`+PgFQb9GXoO|k(s@TgQ=Ch1wV)#$OmR61~M1NK6UHC~XU0oe{7#UqmEY0kUTo@c2&FufSm^(Pz8M*$gI$JP08kyJ_ zS(q`hFfnm3{TeN3;KeXlG^O?BL>H?#f`|VD}$jf9?7U$IQgY#K~x9 zWN&3|=Hg01q-Nx7VdlzD!lO9*jP>3jm?bA&AFMFnN3aDOqrR@85~{gOidjBV}9nQCT2#QTpT9c z?5u2@rsn^gALGAyOhD-`UC_RPeuMreUCIko_eMa!eba>e_U-#$y8N$;_TTYkN`2d5 zo(ai6ulZ|d;fQ^e2ZlJsENg{S4w?!@amuY~94%BmvY;w6L^Ak6lHAI~ApY zS*Np`mz%nNFP;1~>4fpsFNmKYYG6s0;E|>cHCeAlc4+G4UlZHTC=ZpM%DS2dwuhQ3 z#ZCxWG4CXx4@)nvZj9L)&{x%qTB&zO=Vl&|dAtX8tCF;lzxUQocra~2@6ear-m64u znj~lE^Q&%$1xaJ31qzF|iPa9q_vn5$A2QmGe>(T98PrA1G7X;R4dMI4Pwf1nj^(9x zA~Paes+q~HdfW4fbC{7WlZaxWG%FAn9w>kUsX?%W4tY9;eji9!G3ckt{$pOKx?SH9 zi10&@TsQ-=T=EP-=y<#gaYFRZAM(q{mqiH^5D&w_dSR$m2uwM(FHnv&Z_6Bf5=gmB z(*~58FlC>EtT6>xZV@i^~B@mL~R4%MPU3Ge+Ib zeSi6~8h{|1W-H~UBPIHaW8Z0;2DWcdCIO-7JZdGHbOZi?v9I4DqvzD2+N_~wKm}zT zx?=gSy>~AaA^7eJv&FLb29hduo*#@`)!iC^ENz4QdnkbacsNA-8w$GM|Jpfi|3;?0 ziy4Efr|W+g2{o!c&g)Fyw;s?|=C-(bMo$(LxD`+IdHO}r&wL4b(5Paai62aj(y$z0lNW{8^w6K<7dC4HiU%Jsndg}acDMU`cBq^c2 z2|^GT48b@VHdQ)*^hY&&n^L&Q~cU}*ip$P`zsP*7YJqke?!EYY?=+;C5ZS#H)H_%hZP03XuiIZ@*V5AKP zK>kL)F#W~2G#w8w4yn-oElMEe_txFU6IHJ6H_mdRt48Cp&}l*=QHjN@qwQe$61rx3 z?2B6TVJ3Q_)C)x%itN#bkE117vc-K@gz*(IB3dGZWgeerydw(dRT&kV%9 zDR*1$=ZDP@@NdRVO%`e4e}E#VNf09}lVP+a{(8Pu^8x3d=ePL+qpia6VrdsQLK>jzc!z-O8%41JwMM6jl4fV|Q^iN7 z2>hL&^`i0I6g~O=OFIvlp`#0gZgL+Cs82P5Jp6ChONE6}1{EfAwK1{Fu8+Gb+wu($ zy+fX&YH-XNz@5D7Gd$`%k9`vNXI+}zsf@eHG{;-P#x{hLwHr0ik{Is3)9}yN;H_=u z0#3BC)Q?ieIFnHUoT%@eWDUk>?F1F+;H`@ z0m1Aima(CJzR9N}-T^iNqzqifI|)Cxdv+_yNptx>>O^HJ1=UTaUi?qOz5pAwO#<(W zz2}nzziprp@V!=dRXZ=A&&$?xeY$9z0MD8#J|~3qR}KEpyMiane2Z=~Fgt7eSx|ip z9oIB>fr9TFPsJ-MZ(r>G%gKTU4?s=C?skJsqu6+UkENfqiUv+c*+t=-bMG^ph%u{t zMh}BttSc4r8&RwnK^biDM%b|pCQS!{m|$FLAo*!SIGynRL8Q~3BN+4z;?WuOJJYa+ zRAvcqJ5LuV~xoyhrWJ%$;t#QR0+PG z9S5kNFg~6#e!AWF)!vWxyh7j&w(Bb!k)tu$DhWtgtSjqp>~ zVOXDx#|S;jPXo%af-5D~sl|k^Yr6N`HZLb4zmQ!CuX8aMz1fQyXL<3P++O|qHnYPJ|E8$@tS~_+pE>)n3t;p(OO71 z&&NN%Q=-@z>*x4ub2<~`9Ei~ZtL7EYBot2Y#6|TQj28Ep*4Tm#Lvhttpet1(&DBMd zbB~fTb{}iT_A2&0On9Co)@~}U-^!tLNoc_qjg?8~e6ShFA+TFZ2T+Fv5QYT2evVDn zv%}{SQE+`ny@gCnH?qOu6P9zuqBw*nVH{dw^9-i)z?!)GpDoT<6bJv=l5x%?H;pT% zA68?fBn$}QCZ6q%^4ogppyjhO@>KA_&Yjl}yXzLd$`L&7xr6Fya|l6(!8;~Az}xQb zCV)4}=G(V)^u4?7gvvgb8RGo|jVKr{xv$nYR^gwhdKXvHb$~DHG0B^D`FLjCFJ%Q{ z&^$f_+(Ag;Yy9OG)cIG@+h(~vdySo;%stixb3*rb4mWY4+8-~e(2`rV<&&4Hv-|f& zw@zOA92T7%p@`Z-jfh@!F9-eD@$o8VZZGz*FQCd+H;yV-_$b=+4)cqPr}ZaZZkAwp z+2Pg9Clt9?qt~fMl+|AuFZ#lwknrH%h`*kWcm6Lv`ZwQ^tquRD?Mc&N2uoPuBtZifgv zljJ{ObPI4YivHpMS|xbE>^}fB%OMYs@8>%c@0R)#x!D~}72pApkyR9S%kuCWwZCxM z^*I0kb!pYWTwMRbJoL&S?tjv*o87T1`>*nUpv9h+LdN}v{A;-Xs`7UR{~N2b+aTj6 zDuRlft@9OSj#d?2w}*9}_phm_DIS-eG%b8J=mAVRg&U_JeXix{5gGLSVrvIkm~EAg zj4^7(uLm>V8@L@acZ`Sl{bQ%U$$c+l?ax4#rW+t+%`z6|!xc-&R`8ea0grvWWygT% zAexv}TM=M&eAC3dCRFP0YYhxQj1K@j9%(4nPP2prL`?5h>)U^oUpOot9AkbyK)mC^ zK0i%I#(!@^^vIbdvkiC(w#+}|5k%%08cQ|<3D82m?PD1gl=;Mkf8v(UPW1E2CNBq0 z^xCxpQ^9-2#J|QwF}uo zsX=KZd^W4P&G!1pYFrd~WZtCIxky(3&ajF@{8ntx`kV62lwehx_$~8ta)@B?3u@G0 zAv0IaqIcoLtu+15*Kl1~LO{;7;F5v+!(c#SU);f+;>zc$hLQ>VAbilhk;36xBRmUT z-?Z;1%=&hXi+k<#mdK-T!28_`rENglG^w-OBXT3^#|_{pul{3`Cmyi4syQ}&b9PSo z-sJx!u_L&Av)rK9__^<3TEIstc1#`8Uq(ilSZdwkw#E;6KZ-KoqIEvhPD0tN30+dLpF|(PCzG0VkY^VXXuMKT0<-M;CR~ zhRBt$teKv>A0G+=u-Sd@(gtOHWwRga~e{xI4Mc2I}#sa zPdBma27EoXfq`!95l(mlJJm|2u^C{|9hOqN%$P~*#aeV^E02r_CfSyidI8Vv z`7Vpr)82yL(7#sMgIAPjFA7+vO$Z{&cAl>5#JQ&kR zuqV#dHmjDD!{~}Em$;7Bl1Ki?maI&H1Fr*D*LfEk_*jeJnPFrV6}4{}x>-#;;*dy^ zG$iz;|v;_c5n{uF^jpHsRhobxWYrYRyW~?(nA_^xr7L@CsX`TL`ghqlRd>=+^Dj&gk)SwXphl&7tzzC^&qGv-^7O81o4OVud(WqkBC z)_nMQAGtISt7B{v&n4o^x)#fjkzJ_;${+16Bh-n@xQocw%YrC_Hk5J$*SRGEWBFYa z!h;A^7gx~VZr~Dp$D4gBHadiMQk=~Nn=@e@Pk(j^aN5F-R^t&nj!AvrZb~@#o1o_p zxPgwAlbr=M=V9(8@oBhuv%Sx1Yp%=6VLa!Cp+`#7TjPw3Kewl)_OW3Y9VG_gvJgLtmOG;Ul~8D^7a8rQlXx#9YDQK2TO*kR!bz8Q#Hl4o zUNB1^S?%LfX)V6yx2Hm56ZlaXX&^_8C42KvK5WirYb#M%G0d=QXW_}|uv5G6&FMgfQv zub^x-A(H2dg#DtG(d=IqVoJ26x&tEKuGR};3V;#dQVdxUCA$L&39J^U^L4P~WuqcN z^b#G&oZ14=YcHw-RDnJ_&$TYu5E?P*MrlGBor$@Sb2iiq-$Gv-pxv||J%qG^JJNIF z6f+1n0i{;3JygI!^V|S$R$wL#0}WfI;#+746oj*Ft`Lj=XAJ6CLn!EvV@&O1aA$vl z&%KZLQQn|z1IxMfOHAvh>6Du2J7~Ap(2!APf`aaWobz zL4(w2Mk`Oxw^y$!zixF9%)WY2Y;n6Te13j+=AzJmoNWU@&HCBL=Q`XMWZxIUV4nxb zmjJ~38wPY+Ltwxcs5jlHfyInV6SHxT3k;g6h2lB0h2g;3kvLke3EPu-@B$zqdOObHJ1H z?0WCcOk&UwUB|1PXK(4}*9|(J3`u;howcKY%~MdBRUaYwrk|k;xnD z?oNJs=qS#iv1k@^TSid+s{Z}uB<*TD);FNf*9H;;Wt3sy_DK#;#dy~+eNmxVqY_l( zjHsGCwwJSd@u1VQ&lPZ=w2&-ARzW;n?I16*Y#N6hO zs$(|Lg?!y>tV$670-Uv;xALRvgDOOHnh)Qf3-3G;-E@sT9@@A!;^?{7?z-+Ij=w-Bo+&DD?CMDi2?JqhMJeF^b0X=obe2 zV=7#7@-zq?+_Ad>J!-1Y~a-^VFt|XgJ3r9$!f|>X-~cJSM+I}{l_mA zS$%`a&QE$T`EPZB53!?&M-&#!o$0X4$iQ7KSi9*AWp+{(JS0D@YBAa!^Zr+y#$P8( znAfV6*t?i4#2|J@xV}qXM+{uwRYeSieBni@IEqnnUkFq?5`z^975G>%km7>U=x1>H z_8woRE=>&`!EcebhQgm*jo7ZGzhcGo;xk%LvH%Viw@_x?=~3qER8t(p(m>_61T$R& z!-Ad3vhs5JAif0<4cl3Kg!}qWX}oQw{c=|qHBcyTvQv^1&WIBTW1hjXL+$%|0n#`@ zlu=Vbs8zoJ1w0GXQ8G?R7{`RzH_WlbtTINrr{r<9FIkeSB1XJFlttkW=!rUJ`gj$$ zg&`ga&W$|k!@QJT&b=6?_sK|Q{8n}FX|4&G?L>?+7x<+Io-q(_1B25Ew1Y+fIfW}s z7^P4O!d&Ye^G5cJ3Z~VD3Zc^9&Fi3uk-?^PbZPrz{-T=k^;(HTD%~Qd&?8{h;tbU~ zV_o2tgbwC^1?}@+*o7c%)z972n%7 zVS;{(Kc+%yZ6HnMVG*yP(^N(}vnr?HjP07sve|#;HGJYu&n8SP$7v>d_gZ23n~FQQvI{EcT561 z?WtZkd5*&q-C>GcpQc*_l-1Lj^v@xFQl(tbidq${?9U;K-18BNT2h%-&mlQZheWRoVfM(erZ&s}XWe==R6TEz^Z9x|C!F*h0_=-;a z%Pt%!ZD!Q|eEj6Vj?}A|fij)ra_5tbEXnYz?*6%VC|%Z$MTT^^6I3VlzPgQcn0o3* zzS+Y+7_sU29JmgWoUE9zRGSq%wcZTxsJr3TvU;8puVj*4tl=qVb$%Dzri{oLubWem z`lAc)jjDF56u&TWLS$`AZ6=KaRCY8v`+D3T&k3iR-KN!XLduFt#|h&<`0xIFWO{D{ zMqC2Jj{>{-pu9X0Zg0;?JrVA&@iH`l0|W$O^>p>9xhEkaXIx~Iya?lYqv0!^?>Gok zvyN0QS7*{MqIW5YI+kfo=8t1jx5Y*pTdo9$JKS`PKwCsak{Ib8h9z-N^BJN%IL|!N zrx}E@k)#+8UJ{?lNcNhuu+f%-X7u0V48N_sutszPqVR0)temy2hVR)FHj0>0OUuM1 z#QIC^!%y~eHtx7Krn{*5n!uaQmI6)KCu17;9j1<6%GX`+(yz!7lL*{#pDslmB-O42 z?vd#{2(@ny&P92<{XV+Ao(kgYZR$`vBIaOaIw3MAInAkDJFKDEPz&#)t6ItRqh5NGa5tg# znyMv#9N7;K3q|}etmDygLEFOqxd+tjFw83#lg>~>g2%WZbT4$NaAD^#%o!2YX(80I zU`d6bFx5y_ORyVu4>Y&n(P+M3vzL zc2wTf`u^T@oy6J6a0o-AVAHH;FKJ9Filv=vqZ^$|2!#4;6+ocER58u)ZLe&!jfSe$}R$v9-wTjDS>;fzi{(%=M6rS zn8Ts`MOXrMb(|YwH=GO-CO}#r;OrgptM*T!H(hGNLFnWLQp=%RLI1thOmPw5Nvvz= zE_NKkby~cn&b7*ou*9ua>8&<~_B+YS)yq9($mUYq(Peu;$RJahtZXggsDdEP#Lr8- zpEwL)aKeTSOb@MRgFz?a1^K!yeMRSy7X4Sf9Xk)^wl@qkbV9PN#M#m>gX1U2o1(k# zzI(^MU5o^yto-?uvwA%?<{6_yg2}gEgWZB8_fSE8l`Hd(iUaQ^mcLoUNSw7YpT4V* zkz8Su(R~}iHcdOo6`mOOdG!yk+XAM~KmChIZ=ZCNE|8gKy{vprkXHD{ia96fU7~K< zNUzh>nB}(veA+~vv7y!%yWF(8#~~&OJ^lWJgc4>&9TM*pns~yiY2`M(d>I0%JCk7gzRO8TYwE_q}K%rdmTT+cK0KfViwX3EXovW_#VF#m%!D=12`fO z#_Px?nx8NF?zY*-bFGJuC0_CVI{P`=i-(U7-)nFFWas2O_ekPbI2`bh<>t(`cc`A4 zWbYC!ZC|cUks|Mh03lXW+Wwhf+Vfd!H74cT2l*FuE*o+152w%;0D*|5Ah^bCbJ^u^ z!H;Ft(qnesG^21V>4)VhS&Tv_dlzaxy=X-kZhoo3?uD5tSj&ugQYKJ_Wnj?aPY$ zAfU30Ujdb8`Z~lVtc&pR>+m~MnUhU^#;(@S9Zpu5u$bXnisd9yLdm%y<~Yic_4(Gh z7JbC@{7Yn4&2?6n%8MU`Yq{fmXHJ<878vDi7OS7wTV5P|9&{F`{F1)hcX)H|3IfJS z5lGh^!!9NQxip-JV)o<>D!p}$lbrpRsW!|JK-k0V@c2$}O5#iT(m6>2|>(CmY(7519F;1ndmX3wgmE@}pK$}qmO?pHn)H{|q;m}=ETq#fK(z8>M# z!|2uzUS?pbfo(*nHe@uAya5ZuEov)ex+wn(*TEj1zEVFR?4l+<4Js2V(;X zi|dyyNv8g5?x-k`l$`F9DDFZ_&NyB5ylf}Mp_6O5OShx7Tpgy8VnB8tvuc?5|t}I8=z6Q*%m?&wD-^F6=arZ)ty82flPi{FFOTd)m z!3FK#GpXFFIOGgN;8Zae73&z%MW%!*ScjG+gcTthdj8ZLbWNfhGjA|EngM2OK8RRx zCfUP?r9-{oNzAcw@+AUv(l0-xI^~4N*v%VwcrM@U?|g_zzUD4cOr@ZvGYX~F3M+VT zlJ5CqssP_~Hw)@X3V5ezVR(Y-;A^mUME%%)00J9dYwk+#0l#!xr(NV1?S~@9T-|&d zA%gQg8)oFTt0I`kMMtjQxj-3bxxL${gXuc|<11Gle>+nj)4})_n6yr?Ufd{0u-R5P z&;Duwd5&A7d_Uk0_SEbF_C>p^ov6@+-Ax_}1qCgo1a=0yykuqs*M<5WPah`+K z7jN#H{URKMJXbuFImarsc!U;xdZ5YCRzm9J3bD$HPJ_~1qkX><=y=;V`? zlQ&%s=S_+4JT%^T$W5Z#J9KuMm|9mRx1(NtGBNB0YP{6S#w|OuVb0J#yIE9C)Oh>= z=~?-7Z#ru&oXa3Qxu^6VAa=!Th_+aY9CIFiPd?W*oIn-3-3jP%>NmJZX{`|wa|3xkA#7s;sVMrk9S z+>5VT_{?ooS|TbFp5Kl_p<^CC`Cmf69e%G}aQ$Kg@gaW}Lo4P~dM zEPXvwq9fL51q01E7u*HWy`7g%{RVIjE2sO2N3pfno-}L!) z*q3&>a(^oBX`mcJ;A<*7ZzoXyI(b~Ik)Qr7uNM?hxxdm>-mFG2gi~`#vS#Gp1gj&K z&KvFK7~Azx3r2*rY(Di-d|CnRJej#y*_<8HDcEj9|4791`pNQ4#Urbao`1qxD#1CS z)u|a+;nmchY*?GD&)>DW)P%*>XVNy}mXVq%T3Cx6F|XjSC|XpX6IF65;%p5vML1F& z@2YJfl*5$7)C0ZRVs4@-KgQpaFH=;C3B%ljr}eftmdIaw`1^wavjueE)UYz0NnPe)FWA&iPSg9u>bL@6 zp5gyRmK5_5x4E}@5_i9-P;BH^8>BYMUP}XD#eKh#I5YI_Ls;qvFx1Dr>y0Ya(LI^V zF{z5PNe#&(d`(yg7$RJU^rx)#9(Aj2H}=Cu_&Gl-RpoeoG4a!maPOXmD)v%D{E--M zP4^+cHO~vmxmd1gX@#`Llk-=b0j0N>@uq0*B8)+2CG44o)K(Ds^dfA*!R&;b&Ypmh zB2$Yw7k*$iJ>s=H;Nwt=kBIKi^%x>HSfq24O@Oc+G0l^zhv5!%ZitacYQ+zwj4TLo zQRva3xQZWI4|xX^`s@;ZKn4C`U9>was8{3I$n;0kKDNcxzRtLg%V63i)~=EB9ddOz zbZ32lI&qyUdQv1?xz&U?^ZIq_A?9Q`{BA}Q0rcwK2#E+J#1x5@IYHb`d#Jv#jB5}U zVu{9|$jr>XLJjHmCHi*+7=tr(4%RDL|KvEmiXUEUZx0Jwf>AGP@~IPuTmC(pYT}~m zF6)Gw+)h37Y)-x*ZX~kv9elm5^G;wc7ZfM>oVy!h-6PoY>fjgbi|}ms^R$`5KFkmL znkr~4>Y^L6$_HmFD39hn9t9UD4{^oK;}Wqaa2MQgv@@gI8GZ4iUh@sNe3nRUMIOkO z^ELFHJuqs&Z6`*s=(V;M$3Aq>pE1Cm3FKCMz%v9aX0O)oa$c}BIL?3MjoJp}!oO}4Cw!)JxtPX(l>nY9uk1Hi;D40Z8@Fx- zJ`0r4MgO8opHHvACW|N>*Pc-d_m>$tc+5s|Yi6~oij%w@^q*{58(bb{84+iSFU4W# zB=w$LHsbU>uMxL2IW{SSaSQogW&`g$Z*$S!x#vFeMd{QvNZ3Yu(LR+zy5r4k*K||? z<<)&L1?J-ybCBc|?{}61GOAeCP>bsgkQJ0=cg?*Bt#l~hkFX{5?Nwidf70&!;K)`z zha#abL3tOadzo-8PavaW2e}`k==_w{=N?FXM=&fvC)%4a>;n zco_Ee&WQJ|{fLGoxf`r|BDfzpIl%DxAk%g~ zJI~3~sAMnM;*PF-HAwF~z9pptiykaVKV#Z#DcZKjKmp`cHw{HBVI5d_L3*A0q;Vsv z?XYiIlcgZgvxT{XfXnpoTZ&%w*z$RXHhqHkTv9<-Ab{3ib6K)`lbCeG0D^sA)>hf9 z8ET3*8BsXs7&XH^30Q;u=%|??oGgiM$;m%kmGu42!B2Lg_!d*k?{VYk^a70F+mU^3 zteMfY5A`==*u?D%za3`0@_?5(DiuDQ4fFNVDxT19)4mO1v|9b8o`c`@_ zy_4h?@2}>2PG4Uy&=PE$NeYOV?@0BO6|3-xMEgsKmg2YUM#1F zuP$klKJZs)Axz9_?)|Gy``}lq6*orRM38g@HR4hnE!hm;kSCH(3zNp(VONyCa2ILJ z!$(m7>Do^{V9jg>R7jz(@9v|d|!2 zYei_y?V{TLk`^u##~u>7!)np~FU9tY$j@DT-!1?6l_BD={7ikjgjp#lYqN?9mEcni zwEiBh$gaQt8bB-N8Ur6BHwdA_=GxWqA-eT1fi3SnRmF7m$gPtkf+|{a2-5U1@wm+>}vPdUg%+Ij2H`?jc zZ0pVr?lmt4mOFso6t1TcH(YtZj>8DHU_W|mj^py%t+VEO&3Tw;Ps_h70v9hc^K zwoc6Q@S|LGMSCUMms@g2)fFr_T%@~e4SjIkEotjl>VGSJna4WHWkG5=@SIJG5$DR zu`X$^Uu5Y3s?n}3(vHeZ8r`g0sDDR#{DC#C_vyRVrX;|9sB;Op)p6tIcE4V7v6b(| zy9-Sg#4^}|H~%PY_~svJ-18)+2UJ7fD`hE_*HYZ&ZsD`UFY`UibL*CU|M30NmYS%v9PsYzC+aTtZ3A^njk zp+eqyf984>im2+wdFL58TJJ}j^bZhtL$FE7%{py|*QnJq;4$TheUoct7 zUhtH#cf047I$lFx5LbR*;&>!p_c&aVPt)+yA#EnHOD~ZrdOhbC!#@LM6U5?E>z8n? zd&`^dGMlcx>Z|+;P}rc=QZ;nhnL*a}iBBtG^yYHjD2l^fPQ(y%7;+q6eC%_PB5Po0 zzU9nkWY+tA4a5~;rDa8f)$T|SSK*Y#HPb*x=!Do0u(bv`n<*e)XQ}3AVo#7sLv9*p zC?_nyCRL`WqzY8fq*Rhs$Pl|>%9NPnz~L54i3%h_qF5o3v?WOeB+?F2FxKLNWXdwm zP6-=bOZ6S^{~R}59ps@V1clL@o;6cOHu5JVS|*6qzMmcqlrBO|@DM-%EWTud*{dC(hel-8K3}_^lg%?u-o1R=Wc5WE;q}8DxnbaqW74=X(+tif z(zY%B62pDGU<_K`DBpSsi3(8WBHkaF{Iz4MBoHB0zd+P;H$J!l!ihrS-YWptC%f;B z-e=_6wUVaUAT#96pkh15Ya*dXjZw~>C}H(&37^WowJ(aE%DT1B97r>RQct-&^_cEd zyZQ;+J|f}l-KQeTHolM>g>5h%nD+Rl;uiZu$W*$e{WYq@8}vmj+}3kEUAxf)&- zVB+Qkj5N$KP@%$x)TYQjh^(nzim)~0+j%Eb)j1IBQAU4$BSk^JiA;KFv6|CUZXgOG z3My2>dV&I&qs9{0y`>|M-wIU@#6TURROG*>rZIRIZbU#O&Cj|svCTy64F*Cp3S}y5 z=okp6rTlVoJ5UQK#f0L?(|{2j$`spZ?gj64bIJrw!(8M(x=Pg{{l z<+m-8;pZ;O^9vxzk_YFPNDDaI8fz56`VsZ8$(F{m+S&$ng4}SC2UnL-UjJ+=#_u2UTMS(DWRF&VfoDPD%Fx zhe;KTj-{%zYvn6r2hCeJ*%|~d^9AgQotgAe$CE%pSV_JN_VOsn7RmAW^%V$3q%ehDz>Tz;Iq->46f+f((@|@ybqb7 z9%fkyL3b$&i85`>dl}QWR}<-aF=G)_7`v}ye(W^pv@UOMJsHSsUM(tF5OGR68x*hp z(GNen&z-BN^@H8`IXD&Bmw+z@;Z_OH6kZ-^nQ_v`^p?x9DJS?l+vZBw;Fl*}K-mp= zPuQ=M*x3MSk5H?6w`(7quphr$)pEfi>E`zt_waFvG0d_U{C~V{|0%1rcdwRfB8)zD zl1eDXF8DbaL~q{|7RU9RfZ&THCt@k_{O49E69Z8SuQgNX*bO$$-&{-45Ea8iAdA|l zIqIed*)_+0^hp$_NY#(?afbmpMO4Cg4d3OPVnl7e@`9UR;-sN@bPSu z%yYZmOV7Y$$gkYE>n$L<6PC@zuEz1=s{3HUvT}&`?GX_|(nZUoPZ)LT9E8VKw)deK z93yLni>E=HE}MVAqvFqU`_C(92;lisTKA5JoyoJF!t-gWpvPXo;QaIEl|GMM--`d! zh1H?o#l=+AdtHy$+;gkU9;f|d+lLikYOk%0Io6?TF5}neRr$4OYVGy*sy9JjQ|wOP z9*qfaeCV{I@R9S=hE^^^meV^4PS2p&CQXgf1ehJup5dy6Wr4_NgP3w4|TbZwI}^thHKfV0dpvsHW}FpWm~4Sld1sxfBP)d~RbbYEwFaRP>#ELX4@NX}~lr zFJ>2iqjzc|_>IruUE|rBKZM~>l}r8AqK6QdiCu!S;tt|e34b~Ko z^){RY3c}$EWh=IC4Gp_Qx-fl-=l-g+7gMFDqq2sSQywhUW0WJ{OBXRH5=nnb+F2y) ze@(GkhC$B1yCCZRb)^e@WhApkt)Vu>pUZcxdrSmRBa zGP4|ZUMcp<2=PH{HHCsKKcsY17ur}c$}a>+#7@lrM)H`=7mHmwwQ+88sC1&}oE5Lb zu{a7-goZVbo6Q0P(UEd}0M-k~9C>Sm0#Oi6cqUE*g2g9{tr*L!n;4Nbfc-2@j;%(A z46Sh?_>;^yTaiU%sV`qMv-<2*IgN4YRUIu2S|;QkB@E4S)@x$lwG|oukHw|D(;+fz zlnOi@Rw*PVir}N2kI^x!b~bO`?3H?(^)DcJuTV*M()5dIF|c(l*JjVoWJ>%t$)z)| zLq^vzF4wj0#g{pM<#5~6*;U4DdOY!s{i}&)a}Ry`#^~ZxcKhxs^@#r~t>}2*|eYc^X;_9a~3(#ux2DVdMbSm1Sk~5q& zy~7#lY%W*GAjgM;1|9)&Rnoqebc&aj-^-fkDB!gDR<;c7=KD&=-Y_gUR@RzM>BhL` z*;(S_v(A8({0#Wt^S?pwMrQe8E$(fJL7>;t3ee{vW{??O?PH4`Lr!9?mh#HW|4Myd z?-H^2=emawkH6$iDC)ca+fC@(^N0H`9OdhW_VZwe7s|3emy?!;Cw5szQ3Nhc^kyC! z5^D;LeNW6qn(h$n&WWr}Q&?mcnK;EkRJRC8U4m4G*me0(hS(9=;_19hW>yFfZ84vS z+kt@F;)ZwXLV=B3BT4ZUeJ$H5TH>P=*ymcW!<(|xzih6f)>JQObTu?6hv*JqA;1cq&6wlZBG5 z6dRfBJBmwYV(_2Ry>UA1=Nqu9`*yZ`E7@Ey7Lou>FkL^PRRmd4ZmnX+CSO<>kKXQB zq`fi|y{rtX1O+)6w~I~v@2d_Eh$O-UsxM44(@7FaSQw4SF*DOCS>yloxUeLVsqTqO z^d5{$*_setFFSd$Ak!8+co)c-7Ak zTx5tIbx_J`T86qt-PJEmsUV~#L%UCte}R)ZhiGNI>Ryw)uq>u>1p7-qTSr5b83FFt zS3)K{I1*CcYC3a*3n!mVSgdB&m;pAW^a0T`Bro3a76XnxYZP-_3?med62;U-1)H;6 z{*RtDCI;Ok|0evK3C(0vHn@E=YPoD@_$^Hu$GJ#f*-cVtdpn5qbLBvO+pd1<*e>sgRrJzAimNV5MJy zwRpa+r|m{tpq-rwCIyoRZI{gn={*`fS+a|rM*9+N@S6JUb;!I<-xVvP`a*3Asys))b z$Q}FF(6#0QWR($xOfk3hOdZy6NV&Zhxz^1w544|=NJ;3J*(>Nh^W3(f{`|#pSYFu% z5kZb80;6?T(yGB&(vgfZt7@X@D1~Oqcu|a)qaI%ZLI3_}nzU?P0s}Dh#zgFQXM1K? zb%bv8-Cp6saK1rkW>q1BX}j7n0eU!QNg+0^)$(wCK+X$n@|E$~@EMeekV3)+{2fK)?AR<1q*8mK2Ou=e0ciI6rFmjdhE-u^*5AK`I_XM(pp$ z&xk0!rtfUpjhWxC$XaQ;23VHXbdkRNTOJW+C7r2?G*#7E^B;ur7aVHC04|Btd)kfG z(NzY^g;r^5``%feA55sis@PtT+j+hHfXt}euQH2DH_PoWFHL}VJmE2OsBMPee;KD` ze82fqP_C|ZMP{=`K<2+Jj$wBd1MjQUW+dyc)sW4xqtz=;&Toq} z&c3ZV;iDB*>BY1*SNn|Vs!eAuN*s0mla$tHymk*66T=saW^+6#3+?GCO|l4WgQ5!8 z9x_BRm-^W953dt@^TJbqOGnws`r6V{?eE=v^6buhAIy)Ax@@`80OeWIpOikGPsa8h z7;*jHo6;+0cu$@vmhy40tR-pb? z?>s-6AF@g9@P;vWRS$-eh$lI;RQ`5?REp{k1Mx7f9{PiI)RvFTuXCqYgbWu`EKC>=3)L5tg znZ#{%+(Gx|!*z5S&$Pk|3D?6GSIGr+n%P?zUCxeWmW2lP$FEgNKNGQJeX~RCVw`XB zh^;_S#ZUo{*jM}`N8ZKGB#R6W>TX_9n)q@$&_v5S^hC>dPbr@G;-Q2D9}wJ-l~?7# zE0FB34Akqy53Bb*2RqkgU#;>?x(-gaqG@H>CsBYQP6u0sQM%QU7X{zmD0vdk#TWEZ zh@P;?$TqQ@aFHt%y04hT{pCJKyRQaL_R|XRHj~5^_b~A}zI!+-Tu%AIYVE_O(D$QF zZyPE-xMz|@Kz18o?eW8B_#-r~#Zzs~Y|c#d`zqMZH{5Hn(pF9i%o=~+(jLDl81=6p z@aae(D{-YQRImr5Up_db{}3;qLmpjBXSkg;=R(`ssTh5Gx%+8t@cD-oY@mnw;8b8x zGWCzWdptoR48?hbh9qOcz=%3IA@o1l4GqU1Dzjrs@znR< z`95m>?37xTs!=b`xz>?bQW>25oC9Ma(4?MPnOvB2N+J{WxR?U8tX|s(F9L&(w&-?Wi*reo{F=KmuDwV5_;&d zc#JXx@zqk)m3(BSX^O+QDHq(^ zwtx8Kc?B1?Oo-J|2Lng6n&9r;qFk3B5lj_jPtTgBCAC=Sg9AL$lUTN*)$Gfb?L`Q@ zn+yZGbIK3?Xa!e%Ll0pzi&RD znm$=F9auJ1qx_2K?~CV=WYG~aMx1F{MWGp5LXq4M7R$>AVbUeB#dklP8DN z#=KDSCyc7`^^+2}8Jq7;jnC5(jq~04WX+dz56Jw}eO@j&-_Oj+@qP5lNYlg-I#w?C z$xMcWi|zI6)U{UjFQFxlCrr%{ngqZkU>z^NXsjnTzex9~G9tm$PQ|uD?!1zr;P_@d z(fKD-eF9x1$9w{Bb*w517pgj1;$1Z^d3ve0gydkHQ@!BSyWJ~TZLlSNF8IN>g~?r- z8%mN6b&F;*Ls-_&hi%y(rG6S{!Ai$JQCsYtQ$e)TGp>Dmw!|Z7fZn2Kv?i>tJ)8SKm2FHad8q78RAekb$C2A8cMrbpWE+nChtRj z5u7iQ6IgcshN<%I%zg%2?67hv=xyjL^dZC6)pcax#pb{~^?myYp=P~c#2c(->1T7l zE@!Ubgz=1Kv*=|pkpne*e(iMz-q{@g@6#=&?S&B+k=_TbrAFC~l!sM95!=}xHw`Gm zzHgYubzPWz@shL9$#W@vJg^}QrC@JU4VJFT&){vwozt&-zPNMCp{@GD&$F>}_L(^~ z_;Y@}?k^6DzvqwB6Rc;PZdn^^LVVsp=M$ znL0CLN&FdHRT9wk>PV3w|KHqz2w8~t7@$`Yu+|@Vemryo4p?h57`DS6*YZS<6#KnF zJZ>;xlo4I95T>5#8ScI_?A-H?-&rsJ^2fTk9MlHe%oOSL<6{roCssO661>I;aDN$o#0sTCA@%0UvE-R_b1JVSXw;J^i^S-I^Rh zZow|mN0}@Tc0q|o_|8-cY^X92wJ?T~TRjC>!X+(o*zKSiPbigd;?J!#p4N)?FkgRX zX7twc<{5lPVzcdN@jQ>{?+xoTaZ72hG2PSaHcJHEH?9dH5fxt+Y3I;iZZD@RgC*bW z{n#$7SbR0^>BAQ!E`AYJ_3)#jx%W#`t=;}YOvFy40*B$3Z5dUBLfR|Q#%~es!O7}f z4kV^M;SC)LpLWgm)sBO>A`B|_^RyiNYPje^n>>%?Z}}E}aJh*XV+j)vL=A-f-ag6X z`U(xI&OO*x&`~SFYVhy<{tVsf<|7{LVHl*hGhCri=d=>~(QVI8)oG4<17u0Q`bFHOOc(s6z60GXknu^4C?hdNqaY#JkN0J( zn+TB~pMxkdqYpLzHZL&S#d+1XDD;bgrZ~6l_YCa}Fs|_;h&^jS|3cR({I7nd&s9j~ z%M5qZPa16S7A{qmM?a?uk6kpk%6t)PToUgPBkzk1*^DFq4tJMOJMD~_>HUc$l(=yG zh1I+%{&$3B=;@uw^;wu-lfDPCy{X+I3x5-5&v|L@`Qmhi?8RLR+HX}% zFW$hoX7$TlmpT!XOda3Z;=S|MwVwEJsnSE0+|Q!3v5$+-NTI@*!>EvE%B)c0EnB)x zLz{=wt54s8{-x|c2UZ^k;#b^OH@~Y0W++u0eDJQ~uiOSKJznv4QKPycx{>xSd~9H2 z$ghU@w;A8|r{IAX_nY?xW?fCl(NRnti*r=3&Va(szpfiq_rjlYTbj^KJ}jLy*1l#i zE2@zl{H*`|hOUF?;ZaocTYqvUHwQRcPsdzaIWu{shKWdPR{{N_qVOjDbKq{ELiqm5 z?&r|QJ>y3te1mk)(iN&%M`?~o(v(fpYOo2gf?Iu7SwbvLDXh+^}eUvgqQPB@s{ zLTTQdDDG@wWi30-YVJ^P#kewz=wLQ8-Yen77lK{<_Wa=*=Y#?}Zawec|4t61_EU!% zqs;~t*;uvSaiULw&i#5L0`Y5(ErfT+fvx`7BPoNy2TnoFQZ|y6!A1vvR9C51sByca zKH>A7oA+mXuHG3W_idDjOE2s`$nAfWv)Xz?^eFVy(QL1Mv)_B=L>hp)j1Ps(^dInSJ zQ1Qr^q$(+7NBDB=N5-#NMHvrP4ku}5Lp=dy9ciP1UVKRly?1i_bmz7)k+*Hi+bRc* zSq0uVGQgs)NK{u(_H3N#qICPE# z11xLc>nWxASy)WSeG8WE-T8_M1R|kOX+~pf%kx0LsYjrV~_f1iS`kAYnmsNvzs+wb*#^uad^MZ zxb`PUfK0}>HBqiK{@G_ePC+r9yTHaiQ!N+onfqxbUFr5xY~yijEMru@8Mi+)?Mooe!+5Cg@4|3Egn&EQbG1fE?OV`TcprE-U;qR0?sc zj_!JI2dD+8n~jOq(1v@|N{lseOBz8e$vU(#@?gb>R|W8Xdh^$Sc2e_JLNFhH{f?#T z=;^(miYGTIi##68h`bj_Mo0+(P`;di6q;2`Lf@kTi6^ros%5)X$Z8{ z=F3LtU=jeY7{UwS_d*CpF0rdQ4A4VnwK96P(If6@E>IvXmLZY$$Ng`w&q=}bYA&>R zuc)-9OYll4Ytv`q;34iav```-3my^xeBysJ5zP%_FDF(>N(ah=>z=$oUC<|zmOM0m zIRalYLSb745ly^Ey%bLFAkqdN%yY21l_7`Aq6Uz;K>*qHmNPy#MMJQXVjfUytu;Mp zB>`qEr#d8+PJqj%B+(Z>MmzD3wdAS>j)TrkoT|_g0|t z>F>4LOF$vYh#g&wJRlo5kj!m`(wI6SuZ4kZT^A^1^LRWKUf|6H&Uk1o z;>r#D#OO$F9WnHG?=hER~|XQ9;8v~)yROxfh|Wff$L>Ug6z)6;X$%pHcyCk!Fr;U5awg4JtK&sZ0J-G(5X@lf2!JRM=t4trlu7>i55u zEsG~qCp=X?c1b0hqIUA+a?~XYrr#wvlvLY&5yT8urVam4qW<&73Sth3;DqNR2M;6Z zyda8`qP)}1g6=bIz2>4mi=}QfbhF<;r7juwbz5n0!GxtiBqjKNk1ACJ2f$s$S_bIZ z3}IA<9t2uV>fhQOlP-B9^3)t?hcSJlrF=o|_YY=uy$Qe*cnhcb%M%GoVC!4@h+Nnj z5zM(WvriKya8G1Tx-Biio`P>z^SsBHI%-jQPgpIvp&GjIvY`GEO0_a=Mga_0%47Ux7C^;vS>Fgf;DCb(=6Wx%U*uiK z5#OR7P)v=hJ@$JTkZ~1T;|;twar03y=~jqc6-KRA*4~;ho$A~;;P{)=P7Bt&e3ZcX z&e|S^aAvSVg zrerroaGFC(x*6X0yBUYxxY(?`Aqltjz8S=e1%>b{si%;ek?|GxX`vTm`Lw*Doa}0 zXAH|<@%2Wa+aZ?ym9-T+`{b|%C)fSS^oHl+w69n!Mad*vPQG(}MHhV%c^Wp>^4;#o zk=~JHz}!}o_WU6JzZC%c`%1q@NncOjZoOnE8;R`=43K$k$uAHa;U7?6;Mm@fM=W)2 z5ga8ut<=a#c$ByAK! zwi(r*pC*`2vfk3pRDdx5J}2#-S>&B*_&#U8Dhz48@WKMTxqhCM-q-P&VTcU`8g6YS zuMLK$OQAn;ybRZLMP{9bLn4T}Y0N9IB;oyuYrSJP5}(rNgTH4SWp63b965%BHcLy# zDb5`0rR77sR)YJVb4?uKKINe(GO2sMuBWQEKq5^B)gK zud%!RenSnabF~3`@%Z3OZ0KvLbN>M+afOALru)oAom;EXs9Tb?em$?}oG@@h>#yO= zFJh7PY{nA942zG_e!D#N@_qi)9cwA2L|D8sT=ONWhVJ(@Yqzqrvo&Ey_uYlg<5k%n z(sjG9>s@!p?M!$7kKyYBgzIu!M>8 z@#^$&_UmDa`(&C2bTe1F<+n|1rTkZpNsEr*-^9J(g|X}m8|WJXY!6d#v|;hD0-Eo$ zVr-u%j3!3cT^yS~mL!wV*itEFP=793)B5%8)k&5BiL=9nboVCpcX`uisM9uL3vpom z-hAK8M74;VCvA^_3^;=K6We@KPe2-!J>hDJ=39959rvMnDQkj|juPle+2 zTz$WA0e7fh(0RhS>6jVvlCicasE49ThbC4$N?q}n8@CM8Ni+kPV)@T3-@T}Zi1Vt` zm!K#y#J^d}NzX3776jRo;SkGOhGFa;y*}|YZ%BcfKnwjjNus=e?jwZck0)+LO!Be0 zt&V=|!EFH+{D{~uR@2l*C_;;|9l`lAdhbj?pspbv%naQAk_i(pEuXQ_md|88vA;Y* zZZ{I%UdGhJYOU|a#lAj#)p|>=IC<5MWV!_mifmZ?N;)|e zf;txIT_KM2?gW4pVRDB$iI2RrTB*o6%BLza;ABCcLMSmM_##4z`nv5LjPjNfEs9J% zDmGu-U%>FkLwIzBgE$mQOX}fM-r~JxkcBTR)4rxC`NgqPGn9L0LLWb3=u6l$tTp&x z`5AMkcaVfa+Jbfv(d*Lbr2jNi(NLVGoPrrdImf;l>Np}4l-8LAH9~3nNcCDnY~G$e z4{26g0 z4W8$r{?6LKyjC709wB@kb(z9n^cL8G;lGjLAp>eNUR~{J<}4Yk2VAr zdGn+SUei*zX$Nk0yovs(rtF!~n$0--FZ<9WG45I@q)W~1TJF3}ts{~Es|HqTIoW_1 zQEZO>kur=;I@NE~1f#=P*el`o*T>$LiPe8&S_;TH#+98;84D+rUzLzgxj3}u()UqZ zUP|@qgCiU{F0#~UzJ?!qC2}rFx4&~|SEMn``iVoehm=f|{z`r*o4B#`4XHsMRX+ra zV7k%~UfeK3X+ia{8ES0J^Wm^%!O?6aHF@q|YczMFXP6lJVdBndI9ex>`LrL&M_w|C z^*R;`lIJSlgGyVE*}(eA?M6vFdLIV~Vw^|>CG#`jZ8%VT9qkXVC}p+0@`Z4$g+*b> zjI=q1YJpsO(1i6sWOZ;-e!I4IEQp z2M^iEi$^?Y1YwzCi}ofc!Vt)LCZPBGzzzp8gZ$>Z;i7ZA4+ zA#3&HZu8vZ2mAfDGsnH zIyFU1O$V00M<_b={5{U=5ik~5GcIN$w1rvSEA)}V);i#ej-`%urYp16N{(t=9NQqZ z$rYRX8tm%f4M;3;I7QyuFa=w7 zxGR}}n_(9HWw=aI{}-7ksZ`u-BskjjTSm}qSnG6zseaq#UoUydbm*3{5G?EXTf?e% z5YJ`_jU`ZNGuzMtD88A@1%;1A(kq*SH?A0?>(oT9ByY76HBl1()aez8FT0gDE8&XB zuh$BRoU`tKPco&El~X$eOyLd+S;tU#4f6Q%0WQ1JcX0V{Uo_KfgfjQR8*sp((ul0U zp-R16BKP`<1`%)n? zQLXRn;vW-v2a4-tm5~h`GkM30Q1N+xD->f6R>X+?Q)Vozyi4_a1WSryJ02YP**-!m z!YGO@xg~JW0Wvi_IdE0}vw&~T0poy7kd`pBnS?xjy&;4URGZO(F@P`lk=bzfl>a2fd(bW27?7C zVbX)8)3!BwH2!=kxK~>{C^1rd{O71W9XdBAQ3l^iXi#;o@u}c%-~yM9wd7oy^$OwqoRyhk^`}eIJhUG z9>g2YP)-Gke!oEuq=EeSxCFG4g ziieFHG|ES}&KPLcIko^A{vIi!d(sDbgrBvY3wksXDIk1e5j#CmA4!O?6Cc2r7x+*Q z42Xs)U*hY-T!?bD!cU%AotdJ`v~Mq$S9BjkX$r|NM<(B zhjI&BZ~CTM&4baP$g zc-LJrgz5q$V*AZ!w+--1OrLG_P8wWrPmrB0y+jFS4=9rt-yD0Nq%-kuLLmi zh9Be$*Kk9+JP5W!@Yl6Ywo36ucrF8=DjAt-VWldD*}P%7DhH#lFWq9Lvx>I*@X_3S z+kE(Ffv!<90xAqYD_<7_O45J)hOp;_&b9*4tk3pIAHmesx~P~lP<-VrhJCE@1P5BKai0RlX;olOL=v_s;UCtdh*MzAU8c7t1naZTxN)rM?CUN(xoM-v#! zJHeBu^Vwk5%2J+9$GLIWuqqYBjf|-xICckrg&%G?s}=@PDbr5f zDgbS~$9U>)kq{O_6a|}^f$5!k8@zBeG+kJ}%0$P=c04|Gu{38uJqVU!X~XA02TVV2 zd?5cFCp!xuhlp`sqy@;tRs+SxyYZ(G_E~;(Kyasi2nEbG!n{-z?&(u=eIIhnebKeW zLReUV&g}Y6VtGqyEU>DHdo$;gicJU2Ry#f#PCa^JlxEOEJw)9l7zsp_r;f;W@gFcgj!=!HFk@nd9U5fgym$2NaVlbkOTe zp4;4E@MkN>_w9j&>T(Z1=x11_Q!v&GJZ2$$H-NpY{;R z<&E_Yw{dG!0f&6Hsj)NF>$M?8)o+HbrtrY4^^J#M%* zFTbcd$T`L5$ZBKU(Fu zW@bp9vj=L*P_AKmoJ`cVH>9)cL`=S*C3s5oZca-mgDj_hv;MgNoX4ZFjRV2mB4^;w z$U0h`VfmPld|`c@GxisTY}|oRXF+jX2-g9r@n(%3(!WAqhjvH{DkX)awMJd5tXdIW zO9$Dw_O}mAbDzX&qC$m+@a4`}$EjoMF>>Q&g!N0u=IP{&HJdeCG%_QzYHm5WZVrv3 z2h)sS_w@q`c#QgQN!-9He3<0iT%0D84oaW6e%A6a8UDh7;bSxoYne$N4r{Y{DLv`~ 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 z·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%0D|(AT|jZ@uFm#D0a&sL-FN5NomG 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 - - - NUnit - 2.6.3 - NUnit - Charlie Poole - Charlie Poole - http://nunit.org/nuget/license.html - http://nunit.org/ - http://nunit.org/nuget/nunit_32x32.png - false - NUnit features a fluent assert syntax, parameterized, generic and theory tests and is user-extensible. A number of runners, both from the NUnit project and by third parties, are able to execute NUnit tests. - -Version 2.6 is the seventh major release of this well-known and well-tested programming tool. - -This package includes only the framework assembly. You will need to install the NUnit.Runners package unless you are using a third-party runner. - NUnit is a unit-testing framework for all .Net languages with a strong TDD focus. - Version 2.6 is the seventh major release of NUnit. - -Unlike earlier versions, this package includes only the framework assembly. You will need to install the NUnit.Runners package unless you are using a third-party runner. - -The nunit.mocks assembly is now provided by the NUnit.Mocks package. The pnunit.framework assembly is provided by the pNUnit package. - en-US - nunit test testing tdd framework fluent assert theory plugin addin - - \ No newline at end of file diff --git a/packages/NUnit.2.6.3/lib/nunit.framework.dll b/packages/NUnit.2.6.3/lib/nunit.framework.dll deleted file mode 100644 index 780727f219d08aa635e12a56a326850ef82dbec5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 151552 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%0ANEfz#`T+5knLeJ%5cmKE0sc26YHG1oPt)XZ; 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≺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 - - - nunit.framework - - - - - The different targets a test action attribute can be applied to - - - - - Default target, which is determined by where the action attribute is attached - - - - - Target a individual test case - - - - - Target a suite of test cases - - - - - 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. - - - - - - - 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. - - The actual value to test - A Constraint to be applied - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - The actual value to test - A Constraint to be applied - 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. - - The actual value to test - A Constraint expression to be applied - 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 - - - - 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 - - - - 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 - - - - 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. - - The actual value to test - A Constraint to be applied - - - - Apply a constraint to a referenced value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - The actual value to test - A Constraint to be applied - 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. - - The actual value to test - A Constraint to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - 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 - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - Used as a synonym for That in rare cases where a private setter - causes a Visual Basic compilation error. - - The actual value to test - A Constraint to be applied - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - Used as a synonym for That in rare cases where a private setter - causes a Visual Basic compilation error. - - The actual value to test - A Constraint to be applied - 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. - Used as a synonym for That in rare cases where a private setter - causes a Visual Basic compilation error. - - - This method is provided for use by VB developers needing to test - the value of properties with private setters. - - The actual value to test - A Constraint expression to be applied - 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 TestDelegate - 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 TestDelegate - 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 TestDelegate - - - - Verifies that a delegate throws a particular exception when called. - - The exception Type expected - A TestDelegate - 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 TestDelegate - The message that will be displayed on failure - - - - Verifies that a delegate throws a particular exception when called. - - The exception Type expected - A TestDelegate - - - - Verifies that a delegate throws a particular exception when called. - - Type of the expected exception - A TestDelegate - 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 TestDelegate - The message that will be displayed on failure - - - - Verifies that a delegate throws a particular exception when called. - - Type of the expected exception - A TestDelegate - - - - 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 TestDelegate - 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 TestDelegate - The message that will be displayed on failure - - - - Verifies that a delegate does not throw an exception. - - A TestDelegate - - - - 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 two ints 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 ints 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 ints are equal. If they are not, then an - is thrown. - - The expected value - The actual value - - - - Verifies that two longs 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 longs 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 longs are equal. If they are not, then an - is thrown. - - The expected value - The actual value - - - - Verifies that two unsigned ints 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 unsigned ints 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 unsigned ints are equal. If they are not, then an - is thrown. - - The expected value - The actual value - - - - Verifies that two unsigned longs 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 unsigned longs 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 unsigned longs are equal. If they are not, then an - is thrown. - - The expected value - The actual value - - - - Verifies that two decimals 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 decimals 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 decimals 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 ints 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 ints 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 ints are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - - - - Verifies that two longs 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 longs 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 longs are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - - - - Verifies that two unsigned ints 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 unsigned ints 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 unsigned ints are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - - - - Verifies that two unsigned longs 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 unsigned longs 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 unsigned longs are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - - - - Verifies that two decimals 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 decimals 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 decimals are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - - - - Verifies that two floats 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 floats 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 floats are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - - - - Verifies that two doubles 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 doubles 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 doubles 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 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 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 - - - - 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 - - - - Gets the number of assertions executed so far and - resets the counter to zero. - - - - - 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. - - - - - Helper class with properties and methods that supply - a number of constraints used in Asserts. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding only if a specified number of them succeed. - - - - - 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 regular expression supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression 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 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 a positive value - - - - - Returns a constraint that tests for a negative value - - - - - 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 - - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. Works - identically to Assert.That. - - The actual value to test - A Constraint to be applied - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. Works - identically to Assert.That. - - The actual value to test - A Constraint to be applied - The message to be displayed in case of failure - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. Works - identically to Assert.That. - - The actual value to test - A Constraint to be applied - The message to be displayed in case of failure - Arguments to use 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 - - - - 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. - - The actual value to test - A Constraint to be applied - - - - Apply a constraint to a referenced value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - The actual value to test - A Constraint to be applied - 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. - - The actual value to test - A Constraint to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - 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 - - - - - 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 - - - - 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 - - - - 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 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 - - - - Waits for pending asynchronous operations to complete, if appropriate, - and returns a proper result of the invocation by unwrapping task results - - The raw result of the method invocation - The unwrapped result, if necessary - - - - 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 - - - - Helper class with properties and methods that supply - a number of constraints used in Asserts. - - - - - Returns a new CollectionContainsConstraint checking for the - presence of a particular object in the collection. - - - - - Returns a constraint that succeeds if the actual - value contains the substring supplied as an argument. - - - - - 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 - - - - 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 - - - - GlobalSettings is a place for setting default values used - by the framework in performing asserts. - - - - - Default tolerance for floating point equality - - - - - Class used to guard against unexpected argument values - by throwing an appropriate exception. - - - - - Throws an exception if an argument is null - - The value to be tested - The name of the argument - - - - Throws an exception if a string argument is null or empty - - The value to be tested - The name of the argument - - - - Helper class with properties and methods that supply - a number of constraints used in Asserts. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding only if a specified number of them succeed. - - - - - 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. - - - - - 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 - - - - 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 regular expression 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 under 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 a positive value - - - - - Returns a constraint that tests for a negative value - - - - - 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 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 - - - - - Indicates whether a result has been specified. - This is necessary because the result may be - null, so it's value cannot be checked. - - - - - 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 a value indicating whether this is explicit. - - true if explicit; otherwise, false. - - - - Gets the ignore reason. - - The ignore reason. - - - - The Iz class is a synonym for Is intended for use in VB, - which regards Is as a keyword. - - - - - 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 - - - - - 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. - - - - - 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 attribute under .NET 1.x - - - - - 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 - - - - 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 - - - - - Set to true if this has an expected result - - - - - 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 - - - - - If true, indicates that the test case is marked explicit - - - - - 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. - - - - - Marks this TestCase as Explicit - - - - - - Marks this TestCase as Explicit, specifying the reason. - - The reason. - - - - - Gets the argument list to be provided to the test - - - - - Gets the expected result - - - - - Returns true if the result has been set - - - - - 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 a value indicating whether this is explicit. - - true if explicit; 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 - - - - - Provide the context information of the current test - - - - - Constructs a TestContext using the provided context dictionary - - A context dictionary - - - - Get the current test context. This is created - as needed. The user may save the context for - use within a test, but it should not be used - outside the test for which it is created. - - - - - Gets a TestAdapter representing the currently executing test in this context. - - - - - Gets a ResultAdapter representing the current result for the test - executing in this context. - - - - - Gets the directory containing the current test assembly. - - - - - Gets the directory to be used for outputing files created - by this test run. - - - - - TestAdapter adapts a Test for consumption by - the user test code. - - - - - Constructs a TestAdapter for this context - - The context dictionary - - - - The name of the test. - - - - - The FullName of the test - - - - - The properties of the test. - - - - - ResultAdapter adapts a TestResult for consumption by - the user test code. - - - - - Construct a ResultAdapter for a context - - The context holding the result - - - - 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. - - - - - Provides details about a test - - - - - Creates an instance of TestDetails - - The fixture that the test is a member of, if available. - The method that implements the test, if available. - The full name of the test. - A string representing the type of test, e.g. "Test Case". - Indicates if the test represents a suite of tests. - - - - The fixture that the test is a member of, if available. - - - - - The method that implements the test, if available. - - - - - The full name of the test. - - - - - A string representing the type of test, e.g. "Test Case". - - - - - Indicates if the test represents a suite of tests. - - - - - 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 - - - - - The TestStatus enum indicates the result of running a test - - - - - The test was inconclusive - - - - - The test has skipped - - - - - The test succeeded - - - - - The test failed - - - - - 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. - - - - - 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. - - - - - 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 - - - - - 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 - - - - - 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 - - - - - 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 - - - - - 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. - - - - - Attribute used to provide descriptive text about a - test case or fixture. - - - - - Construct the attribute - - Text describing the test - - - - Gets the test description - - - - - 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 - - - - - 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 - - - - - 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 - - - - - 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 - - - - 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. - - - - - 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 - - - - - 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 - - - - - Summary description for MaxTimeAttribute. - - - - - Construct a MaxTimeAttribute, given a time in milliseconds. - - The maximum elapsed time in milliseconds - - - - RandomAttribute is used to supply a set of random values - to a single parameter of a parameterized test. - - - - - ValuesAttribute is used to provide literal arguments for - an individual parameter of a test. - - - - - 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 - - - - - 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 - - - - - 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 - - - - - - - - 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 - - - - 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. - - - - Summary description for SetCultureAttribute. - - - - - Construct given the name of a culture - - - - - - Summary description for SetUICultureAttribute. - - - - - Construct given the name of a culture - - - - - - SetUpAttribute is used in a TestFixture to identify a method - that is called immediately before each test is run. It is - also used in a SetUpFixture to identify the method that is - called once, before any of the subordinate tests are run. - - - - - 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 in a TestFixture to identify a method that is - called immediately after each test is run. It is also used - in a SetUpFixture to identify the method that is called once, - after all subordinate tests have run. In either case, the method - is guaranteed to be called, even if an exception is thrown. - - - - - Provide actions to execute before and after tests. - - - - - When implemented by an attribute, this interface implemented to provide actions to execute before and after tests. - - - - - Executed before each test is run - - Provides details about the test that is going to be run. - - - - Executed after each test is run - - Provides details about the test that has just been run. - - - - Provides the target for the action attribute - - The target for the action attribute - - - - 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 - - - - - TestCaseAttribute is used to mark parameterized test cases - and provide them with their arguments. - - - - - 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. Use - ExpectedResult by preference. - - The result. - - - - Gets or sets the expected result. - - The result. - - - - Gets a flag indicating whether an expected - result has been set. - - - - - Gets a list of categories associated with this test; - - - - - Gets or sets the category associated with this test. - May be a single category or a comma-separated list. - - - - - 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 or sets the explicit status of the test - - - - - Gets or sets the reason for not running the test - - - - - Gets or sets the reason for not running the test. - Set has the side effect of marking the test as ignored. - - The ignore reason. - - - - FactoryAttribute indicates the source to be used to - provide test cases for a test method. - - - - - Construct with the name of the data source, which must - be a property, field or method of the test class itself. - - An array of the names of the factories that will provide data - - - - Construct with a Type, which must implement IEnumerable - - The Type that will provide data - - - - Construct with a Type and name. - 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 - - - - - Gets or sets the category associated with this test. - May be a single category or a comma-separated list. - - - - - [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 - - - - - Gets and sets the category for this fixture. - May be a comma-separated list of categories. - - - - - Gets a list of categories 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. - - - - - 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. - - - - - 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 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 - - - - - 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 - - - - - AllItemsConstraint applies another constraint to each - item in a collection, succeeding if they all succeed. - - - - - Abstract base class used for prefixes - - - - - 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 - 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 base constraint - - - - - Construct given a base constraint - - - - - - 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 - - - - - - AndConstraint succeeds only if both members succeed. - - - - - BinaryConstraint is the abstract base of all constraints - that combine two other constraints in some fashion. - - - - - The first constraint being combined - - - - - The second constraint being combined - - - - - Construct a BinaryConstraint from two other constraints - - The first constraint - The second constraint - - - - 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 - - - - AssignableFromConstraint is used to test that an object - can be assigned from a given Type. - - - - - 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 - - - - 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 - - - - 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. - - - - - 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 - - - - - 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 - - - - 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 - - - - - 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 - - - - - - - CollectionContainsConstraint is used to test whether a collection - contains an expected object as a member. - - - - - 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 EqualityAdapter. - NOTE: For internal use only. - - The EqualityAdapter 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. - - - - 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. - - - - - 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 - - - - - - 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 - - - - - 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 - - - - - - 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 - - - - - 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 - - - - - Abstract base class for constraints that compare values to - determine if one is greater than, equal to or less than - the other. This class supplies the Using modifiers. - - - - - ComparisonAdapter to be used in making the comparison - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - - - - 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 - - - - - 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 - - - - 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 - ConstraintExpression class, which represents a - compound constraint in the process of being constructed - from a series of syntactic elements. - - NOTE: ConstraintExpressionBase is separate because the - ConstraintExpression class was generated in earlier - versions of NUnit. The two classes may be combined - in a future version. - - - - - 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 ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding only if a specified number of them succeed. - - - - - 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 regular expression supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression 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 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 a positive value - - - - - Returns a constraint that tests for a negative value - - - - - 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 - - - - - 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 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. - - - - Flag the constraint to ignore case and return self. - - - - - 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. - - - - - EmptyCollectionConstraint tests whether a collection is empty. - - - - - Check that the collection is empty - - - - - - - Write the constraint description to a MessageWriter - - - - - - 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 - - - - 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 - - - - 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 - - - - EndsWithConstraint can test whether a string ends - with an expected substring. - - - - - 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 - - - - 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 a given string - - The string to be tested - True for success, false for failure - - - - Modify the constraint to ignore case in matching. - - - - - 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 - - - - 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 enumerations, 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 - - - - Display the failure information for two IEnumerables that did not match. - - The MessageWriter on which to display - The expected enumeration. - The actual enumeration - The depth of this failure in a set of nested collections - - - - 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 - - - - 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 true if the two objects can be compared by this adapter. - The base adapter cannot handle IEnumerables except for strings. - - - - - 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>. - - - - - EqualityAdapter that wraps an IComparer. - - - - - Returns true if the two objects can be compared by this adapter. - Generic adapter requires objects of the specified type. - - - - - EqualityAdapter that wraps an IComparer. - - - - - EqualityAdapterList represents a list of EqualityAdapters - in a common class across platforms. - - - - - ExactCountConstraint applies another constraint to each - item in a collection, succeeding only if a specified - number of items succeed. - - - - - Construct an ExactCountConstraint on top of an existing constraint - - - - - - - Apply the item constraint to each item in the collection, - succeeding only if the expected number of items pass. - - - - - - - Write a description of this constraint to a MessageWriter - - - - - - 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 - - - - ExceptionTypeConstraint is a special version of ExactTypeConstraint - used to provided detailed info about the exception thrown in - an error message. - - - - - Constructs an ExceptionTypeConstraint - - - - - Write the actual value for a failing constraint test to a - MessageWriter. Overriden to write additional information - in the case of an Exception. - - The MessageWriter to use - - - - FailurePoint class represents one point of failure - in an equality test. - - - - - The location of the failure - - - - - The expected value - - - - - The actual value - - - - - Indicates whether the expected value is valid - - - - - Indicates whether the actual value is valid - - - - - FailurePointList represents a set of FailurePoints - in a cross-platform way. - - - - - FalseConstraint tests that the actual value is false - - - - - Initializes a new instance of the class. - - - - 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 - - - - Tests whether a value is greater than the value supplied to its constructor - - - - - The value against which a comparison is to be made - - - - - Initializes a new instance of the class. - - The expected value. - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Tests whether a value is greater than or equal to the value supplied to its constructor - - - - - The value against which a comparison is to be made - - - - - Initializes a new instance of the class. - - The expected value. - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - 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 - - - - Tests whether a value is less than the value supplied to its constructor - - - - - The value against which a comparison is to be made - - - - - Initializes a new instance of the class. - - The expected value. - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Tests whether a value is less than or equal to the value supplied to its constructor - - - - - The value against which a comparison is to be made - - - - - Initializes a new instance of the class. - - The expected value. - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - 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 enumerable, - 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 - - - - 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 - - - - - - NoItemConstraint applies another constraint to each - item in a collection, failing if any of them succeeds. - - - - - Construct a NoItemConstraint 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 - - - - - - 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 - - - - NullConstraint tests that the actual value is null - - - - - Initializes a new instance of the class. - - - - - 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 - - - - 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 - - - - NUnitComparer encapsulates NUnit's default behavior - in comparing two objects. - - - - - Compares two objects - - - - - - - - Returns the default NUnitComparer. - - - - - Generic version of NUnitComparer - - - - - - Compare two objects of the same type - - - - - NUnitEqualityComparer encapsulates NUnit's handling of - equality tests between objects. - - - - - - - - - - Compares two objects for equality within a tolerance - - The first object to compare - The second object to compare - The tolerance to use in the comparison - - - - - If true, all string comparisons will ignore case - - - - - If true, arrays will be treated as collections, allowing - those of different dimensions to be compared - - - - - Comparison objects used in comparisons for some constraints. - - - - - List of points at which a failure occured. - - - - - RecursionDetector used to check for recursion when - evaluating self-referencing enumerables. - - - - - Compares two objects for equality within a tolerance, setting - the tolerance to the actual tolerance used if an empty - tolerance is supplied. - - - - - 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 the list of external comparers to be used to - test for equality. They are applied to members of - collections, in place of NUnit's own logic. - - - - - Gets the list of failure points for the last Match performed. - The list consists of objects to be interpreted by the caller. - This generally means that the caller may only make use of - objects it has placed on the list at a particular depthy. - - - - - RecursionDetector detects when a comparison - between two enumerables has reached a point - where the same objects that were previously - compared are again being compared. This allows - the caller to stop the comparison if desired. - - - - - Check whether two objects have previously - been compared, returning true if they have. - The two objects are remembered, so that a - second call will always return true. - - - - - 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 - - - - 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 - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Returns true if the expected path and actual path match - - - - - Returns the string representation of this constraint - - - - - Transform the provided path to its canonical form so that it - may be more easily be compared with other paths. - - The original path - The path in canonical form - - - - Test whether one path in canonical form is under another. - - The first path - supposed to be the parent path - The second path - supposed to be the child path - Indicates whether case should be ignored - - - - - Modifies the current instance to be case-insensitve - and returns it. - - - - - Modifies the current instance to be case-sensitve - and returns it. - - - - - 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 - - - - - PropertyConstraint extracts a named property and uses - its value as the actual value for a chained 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. - - - - - - 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. - - - - - - RangeConstraint tests whether 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 - - - - 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 - - - - 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 - - - - - This operator creates a constraint that is satisfied only if both - argument constraints are satisfied. - - - - - This operator creates a constraint that is satisfied only if both - argument constraints are satisfied. - - - - - 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 either - of the argument constraints is 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. - - - - - Appends an And Operator to the expression - - - - - Appends an Or operator to the expression. - - - - - ReusableConstraint wraps a constraint expression after - resolving it so that it can be reused consistently. - - - - - Construct a ReusableConstraint from a constraint expression - - The expression to be resolved and reused - - - - Converts a constraint to a ReusableConstraint - - The constraint to be converted - A ReusableConstraint - - - - Returns the string representation of the constraint. - - A string representing the constraint - - - - Resolves the ReusableConstraint by returning the constraint - that it originally wrapped. - - A resolved constraint - - - - 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 - - - - 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 expected path - The actual path - 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 expected path - The actual path - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - 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 - - - - - - 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 - - - - SubPathConstraint tests that the actual path is under the expected path - - - - - Initializes a new instance of the class. - - The expected path - - - - Test whether the constraint is satisfied by a given value - - The expected path - The actual path - 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 - - - - 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. Overridden in ThrowsNothingConstraint to write - information about the exception that was actually caught. - - The writer on which the actual value is displayed - - - - 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 no tolerance. In most cases, it results - in an exact match but for floats and doubles a - default tolerance may be used. - - - - - Returns a zero 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. - - - - - 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. - - - - - TrueConstraint tests that the actual value is true - - - - - Initializes a new instance of the class. - - - - - 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 - - - - - - XmlSerializableConstraint tests whether - an object is serializable in XML 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 - - - - - Represents a constraint that succeeds if all the - members of a collection match a base constraint. - - - - - Abstract base for operators that indicate how to - apply a constraint to items in a collection. - - - - - PrefixOperator takes a single constraint and modifies - it's action in some way. - - - - - 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. - - - - - 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. - - - - - - - Constructs a CollectionOperator - - - - - Returns a constraint that will apply the argument - to the members of a collection, succeeding if - they all succeed. - - - - - Operator that requires both it's arguments to succeed - - - - - 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 - - - - - Construct an AndOperator - - - - - Apply the operator to produce an AndConstraint - - - - - Operator that tests for the presence of a particular attribute - on a type and optionally applies further tests to the attribute. - - - - - Abstract base class for operators that are able to reduce to a - constraint whether or not another syntactic element follows. - - - - - 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. - - - - - Represents a constraint that succeeds if the specified - count of members of a collection match a base constraint. - - - - - Construct an ExactCountOperator for a specified count - - The expected count - - - - Returns a constraint that will apply the argument - to the members of a collection, succeeding if - none 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. - - - - - Negates the test of the constraint it wraps. - - - - - Constructs a new NotOperator - - - - - Returns a NotConstraint applied to its argument. - - - - - Operator that requires at least one of it's arguments to succeed - - - - - Construct an OrOperator - - - - - Apply the operator to produce an OrConstraint - - - - - 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 - - - - - 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. - - - - - 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. - - - - - 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 - - - - - 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 - - - - - 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 - - - - - Thrown when an assertion failed. - - - - - - - The error message that explains - the reason for the exception - The exception that caused the - current exception - - - - Serialization Constructor - - - - - - - - - - - Compares two objects of a given Type for equality within a tolerance - - The first object to compare - The second object to compare - The tolerance to use in the comparison - - - - diff --git a/packages/NUnit.2.6.3/license.txt b/packages/NUnit.2.6.3/license.txt deleted file mode 100644 index b12903a..0000000 --- a/packages/NUnit.2.6.3/license.txt +++ /dev/null @@ -1,15 +0,0 @@ -Copyright © 2002-2013 Charlie Poole -Copyright © 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov -Copyright © 2000-2002 Philip A. Craig - -This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. - -Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment (see the following) in the product documentation is required. - -Portions Copyright © 2002-2013 Charlie Poole or Copyright © 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov or Copyright © 2000-2002 Philip A. Craig - -2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. - -3. This notice may not be removed or altered from any source distribution. diff --git a/packages/repositories.config b/packages/repositories.config deleted file mode 100644 index f75a71d..0000000 --- a/packages/repositories.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file