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

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

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

import pl.edu.amu.wmi.daut.base.AutomatonSpecification;
import pl.edu.amu.wmi.daut.base.NondeterministicAutomatonByThompsonApproach;
import junit.framework.TestCase;
import pl.edu.amu.wmi.daut.re.EscapeOperator.Factory;
import java.util.ArrayList;

/**
* Test klasy EscapeOperator.
*/
public class TestEscapeOperator extends TestCase {

    /**
     * Test znaku ucieczki "\a".
     */
    public void testEscapeOperatorA() {
        EscapeOperator operator = new EscapeOperator('a');
        AutomatonSpecification automaton = operator.createFixedAutomaton();
        NondeterministicAutomatonByThompsonApproach result =
                new NondeterministicAutomatonByThompsonApproach(automaton);

        assertFalse(automaton.isEmpty());
        assertTrue(result.accepts("\7"));
        assertFalse(result.accepts("\\7"));
        assertFalse(result.accepts("\6"));
        assertFalse(result.accepts("c"));
    }

    /**
     * Test znaku ucieczki "\n".
     */
    public void testEscapeOperatorN() {

        EscapeOperator operator1 = new EscapeOperator('n');
        AutomatonSpecification automaton1 = operator1.createFixedAutomaton();
        NondeterministicAutomatonByThompsonApproach result1 =
                new NondeterministicAutomatonByThompsonApproach(automaton1);

        assertFalse(automaton1.isEmpty());
        assertTrue(result1.accepts("\n"));
        assertFalse(result1.accepts("\\nn"));
        assertFalse(result1.accepts("n"));

    }

    /**
     * Test znaku ucieczki "\t".
     */
    public void testEscapeOperatorT() {

        EscapeOperator operator2 = new EscapeOperator('t');
        AutomatonSpecification automaton2 = operator2.createFixedAutomaton();
        NondeterministicAutomatonByThompsonApproach result2 =
                new NondeterministicAutomatonByThompsonApproach(automaton2);

        assertFalse(automaton2.isEmpty());
        assertTrue(result2.accepts("\t"));
        assertFalse(result2.accepts("\\tt"));
        assertFalse(result2.accepts("t"));
    }

    /**
     * Test znaku ucieczki "\f".
     */
    public void testEscapeOperatorF() {

        EscapeOperator operator3 = new EscapeOperator('f');
        AutomatonSpecification automaton3 = operator3.createFixedAutomaton();
        NondeterministicAutomatonByThompsonApproach result3 =
                new NondeterministicAutomatonByThompsonApproach(automaton3);

        assertFalse(automaton3.isEmpty());
        assertTrue(result3.accepts("\f"));
        assertFalse(result3.accepts("\\ff"));
        assertFalse(result3.accepts("f"));
    }

    /**
     * Test znaku ucieczki "\r".
     */
    public void testEscapeOperatorR() {

        EscapeOperator operator4 = new EscapeOperator('r');
        AutomatonSpecification automaton4 = operator4.createFixedAutomaton();
        NondeterministicAutomatonByThompsonApproach result4 =
                new NondeterministicAutomatonByThompsonApproach(automaton4);

        assertFalse(automaton4.isEmpty());
        assertTrue(result4.accepts("\r"));
        assertFalse(result4.accepts("\\rr"));
        assertFalse(result4.accepts("r"));
    }

    /**
     * Test zwyklego znaku.
     */
    public void testEscapeOperatorI() {

        EscapeOperator operator5 = new EscapeOperator('i');
        AutomatonSpecification automaton5 = operator5.createFixedAutomaton();
        NondeterministicAutomatonByThompsonApproach result5 =
                new NondeterministicAutomatonByThompsonApproach(automaton5);

        assertFalse(automaton5.isEmpty());
        assertTrue(result5.accepts("i"));
        assertFalse(result5.accepts("\\ii"));
        assertFalse(result5.accepts("\\i"));
    }

    /**
     * Test znaku ucieczki "\v".
     */
    public void testEscapeOperatorV() {

        EscapeOperator operator6 = new EscapeOperator('v');
        AutomatonSpecification automaton6 = operator6.createFixedAutomaton();
        NondeterministicAutomatonByThompsonApproach result6 =
                new NondeterministicAutomatonByThompsonApproach(automaton6);

        assertFalse(automaton6.isEmpty());
        assertTrue(result6.accepts("\13"));
        assertFalse(result6.accepts("\\1313"));
        assertFalse(result6.accepts("13"));
    }

    /**
     * Test fabryki.
     */
    public void testFactory() {
        Factory factory = new Factory();
        assertEquals(factory.numberOfParams(), 1);
        ArrayList list = new ArrayList<String>();
        list.add("\13");
        RegexpOperator operator = factory.createOperator(list);
        int arity = operator.arity();
        assertEquals(arity, 0);
    }
}
TOP

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

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.