⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 categoryfilter.cs

📁 C#编写的网络爬虫程序 效率很高 很好用!
💻 CS
字号:
using System;
using System.Collections;

namespace NUnit.Core
{
	/// <summary>
	/// Summary description for CategoryFilter.
	/// </summary>
	/// 
	[Serializable]
	public class CategoryFilter : Filter
	{
		ArrayList categories;

		public CategoryFilter() : this( false ) { }

		public CategoryFilter( bool exclude ) : base( exclude )
		{
			categories = new ArrayList();
		}

		public CategoryFilter( string name ) : this( name, false ) { }

		public CategoryFilter( string name, bool exclude ) : base( exclude )
		{
			categories = new ArrayList();
			categories.Add( name );
		}

		public CategoryFilter( string[] names ) : this( names, false ) { }

		public CategoryFilter( string[] names, bool exclude ) : base( exclude )
		{
			categories = new ArrayList();
			categories.AddRange( names );
		}

		public void AddCategory(string name) 
		{
			categories.Add( name );
		}

		#region IFilter Members

		public override bool Pass(TestSuite suite)
		{
//			return CheckCategories( suite ) ? !Exclude : Exclude;

			if ( categories.Count == 0 ) return true;

			bool pass = Exclude;

			if (CheckCategories(suite))
				return !Exclude;

			foreach (Test test in suite.Tests) 
			{
				if ( test.Filter(this) == !Exclude )
				{
					pass=true;
					break;
				}
			}

			return pass;
		}

		public override bool Pass(TestCase test)
		{
			if ( categories.Count == 0 )
				return true;
			return CheckCategories( test ) ? !Exclude : Exclude ;

//			if (CheckCategories(test.Parent))
//				return true;
//
//			return CheckCategories(test);
		}

		#endregion

		/// <summary>
		/// Method returns true if the test has a particular
		/// category or if an ancestor test does. We don't
		/// worry about whether this is an include or an
		/// exclude filter at this point because only positive
		/// categories are inherited, not their absence.
		/// </summary>
		private bool CheckCategories(Test test) 
		{
			return test.HasCategory( categories )
				|| test.Parent != null 
				&& test.Parent.HasCategory( categories );

//			if (test.Categories != null) 
//			{
//				foreach (string name in categories) 
//				{
//					if (test.Categories.Contains(name))
//						return true;
//				}
//			}
//
//			return false;
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -