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); } }
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); }