Esempio n. 1
0
        public void TestSwitchEarlySSimultaneous()
        {
            Ss2            ss1  = new Ss2();
            CellSink <Ss2> css  = Cell.CreateSink(ss1);
            Stream <int>   so   = css.Map <Stream <int> >(b => b.S).SwitchEarlyS();
            List <int>     @out = new List <int>();
            IListener      l    = so.Listen(@out.Add);
            Ss2            ss2  = new Ss2();
            Ss2            ss3  = new Ss2();
            Ss2            ss4  = new Ss2();

            ss1.S.Send(0);
            ss1.S.Send(1);
            ss1.S.Send(2);
            css.Send(ss2);
            ss1.S.Send(7);
            ss2.S.Send(3);
            ss2.S.Send(4);
            ss3.S.Send(2);
            css.Send(ss3);
            ss3.S.Send(5);
            ss3.S.Send(6);
            ss3.S.Send(7);
            Transaction.RunVoid(() =>
            {
                ss4.S.Send(8);
                css.Send(ss4);
                ss3.S.Send(2);
            });
            ss4.S.Send(9);
            l.Unlisten();
            CollectionAssert.AreEqual(new[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }, @out);
        }
Esempio n. 2
0
 public void TestSwitchSSimultaneous()
 {
     Ss2 ss1 = new Ss2();
     CellSink<Ss2> css = new CellSink<Ss2>(ss1);
     Stream<int> so = css.Map<Stream<int>>(b => b.S).SwitchS();
     List<int> @out = new List<int>();
     using (so.Listen(@out.Add))
     {
         Ss2 ss2 = new Ss2();
         Ss2 ss3 = new Ss2();
         Ss2 ss4 = new Ss2();
         ss1.S.Send(0);
         ss1.S.Send(1);
         ss1.S.Send(2);
         css.Send(ss2);
         ss1.S.Send(7);
         ss2.S.Send(3);
         ss2.S.Send(4);
         ss3.S.Send(2);
         css.Send(ss3);
         ss3.S.Send(5);
         ss3.S.Send(6);
         ss3.S.Send(7);
         Transaction.RunVoid(() =>
         {
             ss3.S.Send(8);
             css.Send(ss4);
             ss4.S.Send(2);
         });
         ss4.S.Send(9);
     }
     CollectionAssert.AreEqual(new[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }, @out);
 }