Exemple #1
0
 public void Iterators_Filter_ReturnsEmpty_IfPredicateIsFalse()
 {
     using (var input = new ConstantIterator())
         using (var iterator = new FilterIterator(input, () => false))
         {
             AssertEmpty(iterator);
         }
 }
        static void Main(string[] args)
        {
            ICustomCollection <Hero> zone1List = generateZone1();
            ICustomCollection <Hero> zone2List = generateZone2();
            ICustomCollection <Hero> zone3List = generateZone3();

            Console.WriteLine("------------------------- 1 --------------------");
            IIterator zone1ListIterator = zone1List.GetIterator();

            while (zone1ListIterator.hasNext())
            {
                Console.WriteLine("{0}", zone1ListIterator.next());
            }

            Console.WriteLine("\n-------------------------\n");

            IIterator zone2ListIterator = zone2List.GetIterator();

            while (zone2ListIterator.hasNext())
            {
                Console.WriteLine("{0}", zone2ListIterator.next());
            }

            Console.WriteLine("\n-------------------------\n");

            IIterator zone3ListIterator = zone3List.GetIterator();

            while (zone3ListIterator.hasNext())
            {
                Console.WriteLine("{0}", zone3ListIterator.next());
            }

            Console.WriteLine("------------------------- 2 --------------------");
            IIterator tournamentIterator = new TournamtneIterator(zone1List.GetIterator(),
                                                                  zone2List.GetIterator(),
                                                                  zone3List.GetIterator());

            while (tournamentIterator.hasNext())
            {
                Console.WriteLine("{0}", tournamentIterator.next());
            }

            Console.WriteLine("------------------------- 3 --------------------");
            Console.WriteLine("zone1 : Shaman");
            IIterator filterIterator1 = new FilterIterator(HeroClass.Shaman, zone1List.GetIterator());

            while (filterIterator1.hasNext())
            {
                Console.WriteLine("{0}", filterIterator1.next());
            }
            Console.WriteLine("zone2 : Warrior");
            IIterator filterIterator2 = new FilterIterator(HeroClass.Warrior, zone2List.GetIterator());

            while (filterIterator2.hasNext())
            {
                Console.WriteLine("{0}", filterIterator2.next());
            }
        }
Exemple #3
0
        public void Iterators_Filter_ReturnsEmpty_IfInputIsEmpty()
        {
            var rows = new object[0];

            using (var input = new MockedIterator(rows))
                using (var iterator = new FilterIterator(input, () => true))
                {
                    AssertEmpty(iterator);
                }
        }
Exemple #4
0
        public mIterate(Bitmap SourceBitmap, mFilters Filter, int Iterations)
        {
            ModifiedBitmap = (Bitmap)SourceBitmap.Clone();
            ModifiedBitmap = new mSetFormat(ModifiedBitmap, Filter.BitmapType).ModifiedBitmap;

            FilterIterator Iterator = new FilterIterator(Filter.Sequence, Iterations);

            ModifiedBitmap = Iterator.Apply(ModifiedBitmap);
            ModifiedBitmap = new mSetFormat(ModifiedBitmap, Filter.BitmapType).ModifiedBitmap;
            ModifiedBitmap.SetResolution(SourceBitmap.HorizontalResolution, SourceBitmap.VerticalResolution);
        }
Exemple #5
0
        public void Iterators_Filter_Filters()
        {
            var rows     = new object[] { 1, 2, 3, 4 };
            var expected = new object[] { 2, 4 };

            using (var input = new MockedIterator(rows))
                using (var iterator = new FilterIterator(input, () => (int)input.RowBuffer[0] % 2 == 0))
                {
                    AssertProduces(iterator, expected);
                }
        }
Exemple #6
0
        public override void Parse(IMessage message, string @string, ParserOptions parserOptions)
        {
            if (parserOptions is null)
            {
                throw new ArgumentNullException(nameof(parserOptions));
            }

            var messageIter = new Util.MessageIterator(message, "MSH", true);

            FilterIterator.IPredicate segmentsOnly = new AnonymousClassPredicate(this);
            var segmentIter = new FilterIterator(messageIter, segmentsOnly);

            var segments      = Split(@string, SegDelim);
            var encodingChars = GetEncodingChars(@string);

            var delimiter = '|';

            for (var i = 0; i < segments.Length; i++)
            {
                // get rid of any leading whitespace characters ...
                if (segments[i] != null && segments[i].Length > 0 && char.IsWhiteSpace(segments[i][0]))
                {
                    segments[i] = StripLeadingWhitespace(segments[i]);
                }

                // sometimes people put extra segment delimiters at end of msg ...
                if (segments[i] != null && segments[i].Length >= 3)
                {
                    var name = segments[i].Substring(0, 3 - 0);
                    if (i == 0)
                    {
                        name      = segments[i].Substring(0, 3);
                        delimiter = segments[i][3];
                    }
                    else
                    {
                        name = segments[i].IndexOf(delimiter) >= 0
                            ? segments[i].Substring(0, segments[i].IndexOf(delimiter))
                            : segments[i];
                    }

                    Log.Debug("Parsing segment " + name);

                    messageIter.Direction = name;
                    FilterIterator.IPredicate byDirection = new AnonymousClassPredicate1(name, this);
                    var dirIter = new FilterIterator(segmentIter, byDirection);

                    if (dirIter.MoveNext())
                    {
                        Parse((ISegment)dirIter.Current, segments[i], encodingChars, parserOptions);
                    }
                }
            }
        }
            /// <inheritdoc />
            public IEnumerator <TElement> GetEnumerator()
            {
                lock (_originSet) {
                    if (_elementCache != null)
                    {
                        return(_elementCache.GetEnumerator());
                    }

                    // Copy all matching items into the cache
                    _elementCache = new LinearList <TElement>();
                    using (FilterIterator itr = new FilterIterator(_originSet.GetEnumerator(), _wherePredicate)) {
                        while (itr.MoveNext())
                        {
                            _elementCache.Add(itr.Current);
                        }
                    }

                    return(_elementCache.GetEnumerator());
                }
            }
Exemple #8
0
        public void Iterators_Filter_ForwardsProperly()
        {
            var rows     = new object[] { 1, 2 };
            var expected = rows;

            using (var input = new MockedIterator(rows))
            {
                using (var iterator = new FilterIterator(input, () => true))
                {
                    for (var i = 0; i < 2; i++)
                    {
                        AssertProduces(iterator, expected);
                    }
                }

                Assert.Equal(2, input.TotalOpenCount);
                Assert.Equal(4, input.TotalReadCount);
                Assert.Equal(1, input.DisposalCount);
            }
        }
Exemple #9
0
        /// <summary> Parses a message string and returns the corresponding Message
        /// object.  Unexpected segments added at the end of their group.
        ///
        /// </summary>
        /// <throws>  HL7Exception if the message is not correctly formatted. </throws>
        /// <throws>  EncodingNotSupportedException if the message encoded </throws>
        /// <summary>      is not supported by this parser.
        /// </summary>
        protected internal override IMessage DoParse(System.String message, System.String version)
        {
            //try to instantiate a message object of the right class
            MessageStructure structure = GetStructure(message);
            IMessage         m         = InstantiateMessage(structure.messageStructure, version, structure.explicitlyDefined);

            //MessagePointer ptr = new MessagePointer(this, m, getEncodingChars(message));
            MessageIterator messageIter = new MessageIterator(m, "MSH", true);

            FilterIterator.IPredicate segmentsOnly = new AnonymousClassPredicate(this);
            FilterIterator            segmentIter  = new FilterIterator(messageIter, segmentsOnly);

            System.String[]    segments      = Split(message, segDelim);
            EncodingCharacters encodingChars = GetEncodingChars(message);

            for (int i = 0; i < segments.Length; i++)
            {
                //get rid of any leading whitespace characters ...
                if (segments[i] != null && segments[i].Length > 0 && System.Char.IsWhiteSpace(segments[i][0]))
                {
                    segments[i] = StripLeadingWhitespace(segments[i]);
                }

                //sometimes people put extra segment delimiters at end of msg ...
                if (segments[i] != null && segments[i].Length >= 3)
                {
                    System.String name = segments[i].Substring(0, (3) - (0));
                    log.Debug("Parsing segment " + name);

                    messageIter.Direction = name;
                    FilterIterator.IPredicate byDirection = new AnonymousClassPredicate1(name, this);
                    FilterIterator            dirIter     = new FilterIterator(segmentIter, byDirection);
                    if (dirIter.MoveNext())
                    {
                        Parse((ISegment)dirIter.Current, segments[i], encodingChars);
                    }
                }
            }
            return(m);
        }
Exemple #10
0
        static void Main(string[] args)
        {
            ICustomCollection <Hero> zone1List = generateZone1();
            ICustomCollection <Hero> zone2List = generateZone2();
            ICustomCollection <Hero> zone3List = generateZone3();

            var zone1Iterator = new SimpleIterator <Hero>(zone1List);
            var zone2Iterator = new SimpleIterator <Hero>(zone2List);
            var zone3Iterator = new SimpleIterator <Hero>(zone3List);

            //displayCollection<Hero>(zone1Iterator, 1);
            //displayCollection<Hero>(zone2Iterator, 2);
            //displayCollection<Hero>(zone3Iterator, 3);

            //displayPvPPairs<Hero>(zone1Iterator, 1);
            //displayPvPPairs<Hero>(zone2Iterator, 2);
            //displayPvPPairs<Hero>(zone3Iterator, 3);

            var filterZone1Iterator = new FilterIterator <Hero>(zone1List, 'S');

            displayCollection <Hero>(filterZone1Iterator, 1);
        }
Exemple #11
0
        public Bitmap Adelgazar()
        {
            Invert ivert = new Invert();

            imagen = ivert.Apply(imagen);

            FiltersSequence filterSequence = new FiltersSequence();

            filterSequence.Add(new HitAndMiss(
                                   new short[, ] {
                { 0, 0, 0 },
                { -1, 1, -1 },
                { 1, 1, 1 }
            },
                                   HitAndMiss.Modes.Thinning));
            filterSequence.Add(new HitAndMiss(
                                   new short[, ] {
                { -1, 0, 0 },
                { 1, 1, 0 },
                { -1, 1, -1 }
            },
                                   HitAndMiss.Modes.Thinning));
            filterSequence.Add(new HitAndMiss(
                                   new short[, ] {
                { 1, -1, 0 },
                { 1, 1, 0 },
                { 1, -1, 0 }
            },
                                   HitAndMiss.Modes.Thinning));
            filterSequence.Add(new HitAndMiss(
                                   new short[, ] {
                { -1, 1, -1 },
                { 1, 1, 0 },
                { -1, 0, 0 }
            },
                                   HitAndMiss.Modes.Thinning));
            filterSequence.Add(new HitAndMiss(
                                   new short[, ] {
                { 1, 1, 1 },
                { -1, 1, -1 },
                { 0, 0, 0 }
            },
                                   HitAndMiss.Modes.Thinning));
            filterSequence.Add(new HitAndMiss(
                                   new short[, ] {
                { -1, 1, -1 },
                { 0, 1, 1 },
                { 0, 0, -1 }
            },
                                   HitAndMiss.Modes.Thinning));
            filterSequence.Add(new HitAndMiss(
                                   new short[, ] {
                { 0, -1, 1 },
                { 0, 1, 1 },
                { 0, -1, 1 }
            },
                                   HitAndMiss.Modes.Thinning));
            filterSequence.Add(new HitAndMiss(
                                   new short[, ] {
                { 0, 0, -1 },
                { 0, 1, 1 },
                { -1, 1, -1 }
            },
                                   HitAndMiss.Modes.Thinning));

            FilterIterator filterIterator = new FilterIterator(filterSequence, 15);

            imagen = filterIterator.Apply(imagen);

            imagen = ivert.Apply(imagen);

            return(imagen);
        }