Package edu.cmu.sphinx.fst

Source Code of edu.cmu.sphinx.fst.ProjectTest

/**
*
* Copyright 1999-2012 Carnegie Mellon University. 
* Portions Copyright 2002 Sun Microsystems, Inc. 
* Portions Copyright 2002 Mitsubishi Electric Research Laboratories.
* All Rights Reserved.  Use is subject to license terms.
*
* See the file "license.terms" for information on usage and
* redistribution of this file, and for a DISCLAIMER OF ALL
* WARRANTIES.
*
*/

package edu.cmu.sphinx.fst;

import org.testng.Assert;
import org.testng.annotations.Test;

import edu.cmu.sphinx.fst.Arc;
import edu.cmu.sphinx.fst.Fst;
import edu.cmu.sphinx.fst.State;
import edu.cmu.sphinx.fst.operations.Project;
import edu.cmu.sphinx.fst.operations.ProjectType;
import edu.cmu.sphinx.fst.semiring.TropicalSemiring;

/**
* @author John Salatas <jsalatas@users.sourceforge.net>
*
*/
public class ProjectTest {
    /**
     * Create an fst to Project as per the example at
     * http://www.openfst.org/twiki/bin/view/FST/ProjectDoc
     *
     * @return the created fst
     */
    private Fst createFst() {
        TropicalSemiring ts = new TropicalSemiring();
        Fst fst = new Fst(ts);

        State s1 = new State(ts.zero());
        State s2 = new State(ts.zero());
        State s3 = new State(ts.zero());
        State s4 = new State(2.f);

        // State 0
        fst.addState(s1);
        s1.addArc(new Arc(1, 5, 1.f, s2));
        s1.addArc(new Arc(2, 4, 3.f, s2));
        fst.setStart(s1);

        // State 1
        fst.addState(s2);
        s2.addArc(new Arc(3, 3, 7.f, s2));
        s2.addArc(new Arc(4, 2, 5.f, s3));

        // State 2
        fst.addState(s3);
        s3.addArc(new Arc(5, 1, 9.f, s4));

        // State 3
        fst.addState(s4);

        return fst;
    }

    /**
     * Create the Project on Input Labels as per the example at
     * http://www.openfst.org/twiki/bin/view/FST/ProjectDoc
     *
     * @return the created fst
     */
    private Fst createPi() {
        TropicalSemiring ts = new TropicalSemiring();
        Fst fst = new Fst(ts);
        State s1 = new State(ts.zero());
        State s2 = new State(ts.zero());
        State s3 = new State(ts.zero());
        State s4 = new State(2.f);

        // State 0
        fst.addState(s1);
        s1.addArc(new Arc(1, 1, 1.f, s2));
        s1.addArc(new Arc(2, 2, 3.f, s2));
        fst.setStart(s1);

        // State 1
        fst.addState(s2);
        s2.addArc(new Arc(3, 3, 7.f, s2));
        s2.addArc(new Arc(4, 4, 5.f, s3));

        // State 2
        fst.addState(s3);
        s3.addArc(new Arc(5, 5, 9.f, s4));

        // State 3
        fst.addState(s4);

        return fst;
    }

    /**
     * Create the Project on Output Labels as per the example at
     * http://www.openfst.org/twiki/bin/view/FST/ProjectDoc
     *
     * @return the created fst
     */
    private Fst createPo() {
        TropicalSemiring ts = new TropicalSemiring();
        Fst fst = new Fst(ts);

        State s1 = new State(ts.zero());
        State s2 = new State(ts.zero());
        State s3 = new State(ts.zero());
        State s4 = new State(2.f);

        // State 0
        fst.addState(s1);
        s1.addArc(new Arc(5, 5, 1.f, s2));
        s1.addArc(new Arc(4, 4, 3.f, s2));
        fst.setStart(s1);

        // State 1
        fst.addState(s2);
        s2.addArc(new Arc(3, 3, 7.f, s2));
        s2.addArc(new Arc(2, 2, 5.f, s3));

        // State 2
        fst.addState(s3);
        s3.addArc(new Arc(1, 1, 9.f, s4));

        // State 3
        fst.addState(s4);

        return fst;
    }

    @Test
    public void testProject() {
        System.out.println("Testing Project...");
        // Project on Input label
        Fst fst = createFst();
        Fst p = createPi();
        Project.apply(fst, ProjectType.INPUT);
        Assert.assertTrue(fst.equals(p));

        // Project on Output label
        fst = createFst();
        p = createPo();
        Project.apply(fst, ProjectType.OUTPUT);
        Assert.assertTrue(fst.equals(p));

        System.out.println("Testing Project Completed!\n");

    }

}
TOP

Related Classes of edu.cmu.sphinx.fst.ProjectTest

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.