public bool Run(FiniteAvtomat finit, string s)
 {
     finit.Reset();
     foreach (char c in s)
     {
         finit.NewSymbol(c);
     }
     return(finit.Check());
 }
        public void  азветвление()
        {
            FiniteAvtomat finiteAvtomat = new FiniteAvtomat();

            finiteAvtomat.Add(0, 1);
            finiteAvtomat.Add(1, 'a', 1);
            finiteAvtomat.Add(1, 'b', 2);
            finiteAvtomat.Add(0, 3);
            finiteAvtomat.Add(3, 'd', 4);
            finiteAvtomat.Add(4, 'e', 5);

            finiteAvtomat.SetFinaleStates(new int[] { 2, 5 });
            Assert.AreEqual(true, Run(finiteAvtomat, "ab"));
            Assert.AreEqual(true, Run(finiteAvtomat, "aaaaaaaaaaaaaaaaaab"));
            Assert.AreEqual(true, Run(finiteAvtomat, "b"));
            Assert.AreEqual(false, Run(finiteAvtomat, "a"));
            Assert.AreEqual(true, Run(finiteAvtomat, "de"));
            Assert.AreEqual(true, Run(finiteAvtomat, "dddde"));
            Assert.AreEqual(true, Run(finiteAvtomat, "e"));
            Assert.AreEqual(false, Run(finiteAvtomat, "c"));
        }