Exemple #1
0
        public void ConfigurationLayer()
        {
            var chain = InputChain <int> .Build((c, r) => {
                //config
                stringHolder pointer = new stringHolder()
                {
                    str = "1"
                };

                //------------------------------
                return(c1 => {
                    if (pointer.str == "3") //check new value from inner.
                    {
                        return c.Complete();
                    }

                    if (pointer.str != "1")
                    {
                        throw new Exception("C# Broke");
                    }

                    //override inner property of pointer
                    pointer.str = "2";

                    //------------------------------
                    return _ => {
                        if (pointer.str != "2")
                        {
                            throw new Exception("C# Broke");
                        }

                        //override pointer.
                        pointer = new stringHolder()
                        {
                            str = "3"
                        };
                        return c.Backwards(1); //to root.
                    };
                });
            });

            //run
            while (!chain.Completed)
            {
                chain.Pulse();
            }
        }
Exemple #2
0
        public static void TestDirectJoinInvocation()
        {
            var table1 = new stringHolder[] {
                "hello",
                "goodbye"
            };

            var table2 = new stringHolder[] {
                "world",
                "everybody"
            };

            Enumerable.Join(
                inner: table1,
                outer: table2,
                innerKeySelector: row1 => true,
                outerKeySelector: row2 => true,
                resultSelector: (stringHolder t1Val, stringHolder t2Val) =>
            {
                if (t2Val._val == null)
                {
                    Assert.Fail("t2Val._val == null");
                }

                if (t1Val._val == null)
                {
                    Assert.Fail("t1Val._val == null");
                }

                Assert.True(t1Val._val == "world" || t1Val._val == "everybody", "table 1 element value is '" + t1Val._val + "'.");
                Assert.True(t2Val._val == "hello" || t2Val._val == "goodbye", "table 2 element value is '" + t2Val._val + "'.");

                return(true);
            }
                ).All(retc => retc == true);
        }