예제 #1
0
        public void TestCollect()
        {
            StreamSink <int> sa   = Stream.CreateSink <int>();
            List <int>       @out = new List <int>();
            Stream <int>     sum  = sa.Collect(ValueTuple.Create(100, true), (a, s) =>
            {
                int outputValue = s.Item1 + (s.Item2 ? a * 3 : a);
                return(ValueTuple.Create(outputValue, ValueTuple.Create(outputValue, outputValue % 2 == 0)));
            });
            IListener l = sum.Listen(@out.Add);

            sa.Send(5);
            sa.Send(7);
            sa.Send(1);
            sa.Send(2);
            sa.Send(3);
            l.Unlisten();
            CollectionAssert.AreEqual(new[] { 115, 122, 125, 127, 130 }, @out);
        }
예제 #2
0
 public void TestCollect()
 {
     StreamSink<int> sa = new StreamSink<int>();
     List<int> @out = new List<int>();
     Stream<int> sum = sa.Collect(Tuple.Create(100, true), (a, s) =>
     {
         int outputValue = s.Item1 + (s.Item2 ? a * 3 : a);
         return Tuple.Create(outputValue, Tuple.Create(outputValue, outputValue % 2 == 0));
     });
     using (sum.Listen(@out.Add))
     {
         sa.Send(5);
         sa.Send(7);
         sa.Send(1);
         sa.Send(2);
         sa.Send(3);
     }
     CollectionAssert.AreEqual(new[] { 115, 122, 125, 127, 130 }, @out);
 }