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

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

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

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

/**
* Test klasy NumericalRangeOperator.
*/
public class TestNumericalRangeOperator extends TestCase {

    /**
     * Test konstruktorow NumericalRangeOperator.
     */
    public void testNumericalRangeOperator() {
        NumericalRangeOperator operator = new NumericalRangeOperator(4, 7);

        try {
            NumericalRangeOperator operator2 = new NumericalRangeOperator(100, 1);
            NumericalRangeOperator operator3 = new NumericalRangeOperator(-1, 4);
            NumericalRangeOperator operator4 = new NumericalRangeOperator(5, -10);
            fail();
        } catch (InvalidValueException e) {
            assertTrue(true);
        }
    }

    /**
     * Test najprostszego automatu.
     */
    public void testcreateSimpleFixedAutomaton() {

        NumericalRangeOperator spec = new NumericalRangeOperator(101, 101);
        NondeterministicAutomatonByThompsonApproach automaton =
                new NondeterministicAutomatonByThompsonApproach(spec.createFixedAutomaton());

        assertTrue(automaton.accepts("101"));
        assertFalse(automaton.accepts(""));
        assertFalse(automaton.accepts("1"));
        assertFalse(automaton.accepts("100"));
        assertFalse(automaton.accepts("102"));
        assertFalse(automaton.accepts("a101b"));
        assertFalse(automaton.accepts("   101  "));
    }

    /**
     * Test ciekawszego automatu.
     */
    public final void testcreateFixedAutomaton() {
        NumericalRangeOperator spec = new NumericalRangeOperator(3, 88);
        NondeterministicAutomatonByThompsonApproach automaton =
                new NondeterministicAutomatonByThompsonApproach(spec.createFixedAutomaton());
        assertTrue(automaton.accepts("3"));
        assertTrue(automaton.accepts("4"));
        assertTrue(automaton.accepts("88"));
        assertTrue(automaton.accepts("87"));
        assertTrue(automaton.accepts("60"));
        assertTrue(automaton.accepts("44"));
        assertTrue(automaton.accepts("29"));
        assertFalse(automaton.accepts(""));
        assertFalse(automaton.accepts("2"));
        assertFalse(automaton.accepts("89"));
        assertFalse(automaton.accepts("100"));
        assertFalse(automaton.accepts("0"));
    }

    /**
     * Test automatu od 0 do 13.
     */
    public final void testcreateFixedAutomatonFrom0() {
        NumericalRangeOperator spec = new NumericalRangeOperator(0, 13);
        NondeterministicAutomatonByThompsonApproach automaton =
                new NondeterministicAutomatonByThompsonApproach(spec.createFixedAutomaton());
        assertTrue(automaton.accepts("0"));
        assertTrue(automaton.accepts("1"));
        assertTrue(automaton.accepts("13"));
        assertTrue(automaton.accepts("12"));
        assertTrue(automaton.accepts("10"));
        assertTrue(automaton.accepts("5"));
        assertTrue(automaton.accepts("7"));
        assertFalse(automaton.accepts(""));
        assertFalse(automaton.accepts("14"));
        assertFalse(automaton.accepts("100"));
        assertFalse(automaton.accepts("113"));
        assertFalse(automaton.accepts("  0  "));
    }

    /**
     * Test zakresu od 10 do 11.
     */
    public final void testcreateFixedAutomatonFrom10To11() {
        NumericalRangeOperator spec = new NumericalRangeOperator(10, 11);
        NondeterministicAutomatonByThompsonApproach automaton =
                new NondeterministicAutomatonByThompsonApproach(spec.createFixedAutomaton());
        assertTrue(automaton.accepts("10"));
        assertTrue(automaton.accepts("11"));
        assertFalse(automaton.accepts(""));
        assertFalse(automaton.accepts("9"));
        assertFalse(automaton.accepts("12"));
        assertFalse(automaton.accepts("0"));
        assertFalse(automaton.accepts("  10"));
    }

    /**
     * Test fabryki.
     */
    public final void testFactory() {
        Factory factory = new Factory();
        assertEquals(factory.numberOfParams(), 2);
        ArrayList<String> params = new ArrayList<String>();
        params.add(0, "100");
        params.add(1, "200");
        assertEquals(factory.createOperator(params).getClass(),
                new NumericalRangeOperator(100, 200).getClass());
    }

    /**
     * Test metody toString.
     */
    public final void testtoString() {
        NumericalRangeOperator spec = new NumericalRangeOperator(0, 10);
        String string = spec.toString();
        assertEquals(string, "NUMERICAL_FROM_0_TO_10");
    }
}
TOP

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

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.