Package pl.edu.amu.wmi.daut.re

Source Code of pl.edu.amu.wmi.daut.re.TestAtLeastOneOperator

package pl.edu.amu.wmi.daut.re;

import java.util.ArrayList;
import pl.edu.amu.wmi.daut.base.AutomatonSpecification;
import pl.edu.amu.wmi.daut.base.NaiveAutomatonSpecification;
import pl.edu.amu.wmi.daut.base.State;
import pl.edu.amu.wmi.daut.base.CharTransitionLabel;
import pl.edu.amu.wmi.daut.base.NondeterministicAutomatonByThompsonApproach;
import junit.framework.TestCase;
import pl.edu.amu.wmi.daut.re.AtLeastOneOperator.Factory;


/**
*
* Test klasy AtLeastOneOperator.
*/
public class TestAtLeastOneOperator extends TestCase {
    /**
     * Test metody createAutomatonFromOneAutomaton.
     */
    public final void testCreateAutomatonFromOneAutomaton() {

        AutomatonSpecification automaton = new NaiveAutomatonSpecification();

        State q0 = automaton.addState();
        State q1 = automaton.addState();
        State q2 = automaton.addState();
        automaton.addTransition(q0, q1, new CharTransitionLabel('a'));
        automaton.addTransition(q1, q2, new CharTransitionLabel('b'));
        automaton.addLoop(q1, new CharTransitionLabel('a'));
        automaton.addLoop(q2, new CharTransitionLabel('b'));

        automaton.markAsInitial(q0);
        automaton.markAsFinal(q2);

        AtLeastOneOperator operator = new AtLeastOneOperator();
        NondeterministicAutomatonByThompsonApproach result =
        new NondeterministicAutomatonByThompsonApproach(
                operator.createAutomatonFromOneAutomaton(automaton));

        assertTrue(result.accepts("aaaab"));
        assertTrue(result.accepts("abbbbb"));
        assertTrue(result.accepts("aaaaaaaaaaaabb"));
        assertTrue(result.accepts("abbbaaaab"));
        assertTrue(result.accepts("abababb"));

        assertFalse(automaton.acceptEmptyWord());
        assertFalse(result.accepts("baba"));
        assertFalse(result.accepts("baaaaaaaaa"));
        assertFalse(result.accepts("cojatestujem"));
        assertFalse(result.accepts("bartlomiejburczymucha"));
    }
    /**
     * Test fabryki.
     */
    public final void testFactory() {

        Factory factory = new Factory();
        ArrayList<String> params = new ArrayList<String>();
        assertEquals(factory.createOperator(params).getClass(),
            new AtLeastOneOperator().getClass());
    }
}
TOP

Related Classes of pl.edu.amu.wmi.daut.re.TestAtLeastOneOperator

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.