internal static IFilter Filter()
        {
            int     response;
            IFilter filter;

            response = GetNumber(1, 4);
            switch (response)
            {
            case 1:
                filter = new DepartBeforeArriveFilter();
                break;

            case 2:
                filter = new LongGroundTimeFilter();
                break;

            case 3:
                filter = new MultiSegmentFilter();
                break;

            case 4:
                filter = new PastDepartFilter();
                break;

            default:
                filter = new DepartBeforeArriveFilter();
                break;
            }
            return(filter);
        }
        public void EmptyIncludeTest()
        {
            IFilter filter = new DepartBeforeArriveFilter();
            var     test   = DepartBefore();

            var result = filter.Include(new HashSet <Flight>(), test);

            Assert.Empty(result);
        }
        public void EmptyExcludeTest()
        {
            IFilter filter = new DepartBeforeArriveFilter();
            var     test   = ArriveBefore();

            var result = filter.Exclude(test);

            Assert.Empty(result);
        }
        public void ExcludeValidTest()
        {
            IFilter filter = new DepartBeforeArriveFilter();
            var     depart = DepartBefore();
            var     arrive = ArriveBefore();
            var     test   = new List <Flight>(depart);

            test.AddRange(arrive);


            var result = filter.Exclude(test);


            Assert.Equal(depart, result);
        }