Пример #1
0
        public void Refresh_OK_regexp()
        {
            int lambdaCheck = 0;

            VEFD func = () => { lambdaCheck = 1; };//<Refresh_OK_ab>g__func|0

            VE[] list =
            {
                new VE(@".*", @"[bc]", func)
            };
            ins = new TW_StateVector("a", list);
            ins.EnableRefreshTrace = true;
            ins.EnableRegexp       = true;
            ins.Refresh("b");
            Assert.AreEqual(1, lambdaCheck);
        }
Пример #2
0
        public void Refresh_OK_ab()
        {
            // 状態Aから状態Bへの変化条件が登録済みのため動作する
            int lambdaCheck = 0;

            VEFD func = () => { lambdaCheck = 1; };

            VE[] list =
            {
                new VE("a", "b", () => { lambdaCheck = 1; }),
                new VE("a", "b", func),
                new VE("a", "b", NameCheckFunc)
            };
            ins = new TW_StateVector("Refresh_OK_ab", "a", list);
            ins.EnableRefreshTrace = true;
            ins.Refresh("b");
            Assert.AreEqual(1, lambdaCheck);
        }
Пример #3
0
        public void Refresh_OK_ab_FuncList()
        {
            // 状態Aから状態Bへの変化条件が登録済みのため動作する
            int lambdaCheck = 0;

            VEFD func = () => { lambdaCheck = 1; };//<Refresh_OK_ab>g__func|0

            VE[] list =
            {
                new VE("a", "b",
                       VE.Func(() => { lambdaCheck = 1; }), /* <Refresh_OK_ab>b__1 */
                       func,                                /* <Refresh_OK_ab_FuncList>b__0 */
                       NameCheckFunc,                       /* NameCheckFunc */
                       () => { lambdaCheck = 1; } /* <Refresh_OK_ab_FuncList>b__2 */)
            };
            ins = new TW_StateVector("Refresh_OK_ab_FuncList", "a", list);
            ins.EnableRefreshTrace = true;
            ins.Refresh("b");
            Assert.AreEqual(1, lambdaCheck);
        }
Пример #4
0
        public void Refresh_OK_ab_bb()
        {
            // 状態A or Bから状態Bへの変化条件が登録済みのため動作する
            int lambdaCheck = 0;

            VEFD func = () => { lambdaCheck++; };

            VE[] list =
            {
                new VE(
                    VE.HeadOr("a", "b"),
                    "b",
                    VE.Func(func))
            };
            ins = new TW_StateVector("Refresh_OK_ab_bb", "a", list);
            ins.EnableRefreshTrace = true;
            ins.Refresh("b");
            Assert.AreEqual(1, lambdaCheck);
            ins.Refresh("b");
            Assert.AreEqual(2, lambdaCheck);
        }
Пример #5
0
        public void Refresh_OK_ab_ac()
        {
            // 状態Aから状態B or Cへの変化条件が登録済みのため動作する
            int lambdaCheck = 0;

            VEFD func = () => { lambdaCheck++; };

            VE[] list =
            {
                new VE(
                    "a",
                    VE.TailOr("b","c"),
                    func)
            };
            ins = new TW_StateVector("Refresh_OK_ab_ac", "a", list);
            ins.EnableRefreshTrace = true;
            ins.Refresh("b");
            Assert.AreEqual(1, lambdaCheck);
            ins.StateNow = "a";
            ins.Refresh("c");
            Assert.AreEqual(2, lambdaCheck);
        }
Пример #6
0
        public void Refresh_func_null()
        {
            int  lambdaCheck = 0;
            bool isCatch     = false;

            VEFD func = () => { lambdaCheck = 1; };

            try
            {
                VE[] list =
                {
                    new VE("a", "b", (VEFD)null),
                };
                ins = new TW_StateVector("a", list);
            }
            catch (ArgumentNullException)
            {
                isCatch = true;
            }

            Assert.AreEqual(true, isCatch);
            Assert.AreEqual(0, lambdaCheck);
        }
Пример #7
0
 public static VEFD Func(VEFD func)
 {
     return(func);
 }
Пример #8
0
 protected void Init(string head, string tail, VEFD func)
 {
     m_head = head;
     m_tail = tail;
     m_func = func;
 }
Пример #9
0
 public VectorEventBase(string head, string tail, string tag, VEFD func)
 {
     Tag = tag;
     Init(head, tail, func);
 }
Пример #10
0
 public VectorEventBase(string head, string tail, VEFD func)
 {
     Init(head, tail, func);
 }