public void supplying_all_any_and_none_in_different_order_populates_them_in_typeFilter()
        {
            TypeFilter expectedFilter = new TypeFilter(ALL_OF, ANY_OF, NONE_OF);

            instance.NoneOf(NONE_OF.ToArray()).AllOf(ALL_OF.ToArray()).AnyOf(ANY_OF.ToArray());

            assertMatchesTypeFilter(expectedFilter, instance.CreateTypeFilter());
        }
        public void clone_returns_open_copy_when_not_locked()
        {
            instance.AllOf(ALL_OF.ToArray()).AnyOf(ANY_OF.ToArray());
            TypeMatcher clone = instance.Clone();

            clone.NoneOf(NONE_OF.ToArray());
            TypeFilter expectedFilter = new TypeFilter(ALL_OF, ANY_OF, NONE_OF);

            assertMatchesTypeFilter(expectedFilter, clone.CreateTypeFilter());
        }
		/*============================================================================*/
		/* Private Functions                                                          */
		/*============================================================================*/

		private ITypeFilter CreateTypeFilter(Type[] allOf, Type[] anyOf = null, Type[] noneOf = null)
		{
			TypeMatcher matcher = new TypeMatcher();
			if (allOf != null)
				matcher.AllOf(allOf);
			if (anyOf != null)
				matcher.AnyOf(anyOf);
			if (noneOf != null)
				matcher.NoneOf(noneOf);

			return matcher.CreateTypeFilter();
		}