Ejemplo n.º 1
0
        private void tmsiUnitEntry_Click(object sender, EventArgs e)
        {
            if (FileOpened && Automaton != default(Automaton))
            {
                string TestString = Interaction.InputBox("Insira a entrada para testar", "Entrada Unitária", string.Empty);

                if (Automaton.Type == "afd")
                {
                    if (Automaton.AcceptAFD(TestString))
                    {
                        MessageBox.Show("Entrada aceita pelo autômato finito determinístico.", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else
                    {
                        MessageBox.Show("Entrada rejeitada pelo autômato finito determinístico.", "Fracasso", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                else if (Automaton.Type == "afn")
                {
                    if (Automaton.AcceptAFN(TestString))
                    {
                        MessageBox.Show("Entrada aceita pelo autômato finito não-determinístico.", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else
                    {
                        MessageBox.Show("Entrada rejeitada pelo autômato finito não-determinístico.", "Fracasso", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                else if (Automaton.Type == "afdp")
                {
                    if (Automaton.AcceptAFDP(TestString))
                    {
                        MessageBox.Show("Entrada aceita pelo autômato finito determinístico com pilha.", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else
                    {
                        MessageBox.Show("Entrada rejeitada pelo autômato finito determinístico com pilha.", "Fracasso", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
            else
            {
                MessageBox.Show("Selecione um arquivo para carregar um autômato antes de tentar testá-lo.", "Selecione um arquivo", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Ejemplo n.º 2
0
        public void TestAcceptAFN()
        {
            List <State> ListStates = new List <State>();

            ListStates.Add(new State("q", true, true));
            ListStates.Add(new State("f", false, false));

            string[] Alphabet = { "a", "b" };

            State[,,] TransitionTable = new State[2, 2, 2];
            TransitionTable[0, 0, 0]  = new State("q", true, true);
            TransitionTable[0, 0, 1]  = new State("f", false, false);
            TransitionTable[0, 1, 0]  = new State("f", false, false);

            Automaton Automaton = new Automaton("afn", Alphabet, ListStates, TransitionTable);

            bool Accept = Automaton.AcceptAFN("a");

            Assert.AreEqual(Accept, true);

            bool Accept2 = Automaton.AcceptAFN("b");

            Assert.AreEqual(Accept2, false);
        }