001 package calhoun.analysis.crf.test;
002
003 import java.util.List;
004
005 import junit.framework.TestCase;
006 import calhoun.analysis.crf.Conrad;
007 import calhoun.analysis.crf.features.interval29.StateTransitionsInterval29;
008 import calhoun.analysis.crf.io.TrainingSequence;
009 import calhoun.analysis.crf.io.SequenceConverter;
010
011 public class Interval29FeatureTest extends TestCase {
012
013 public void testStateTransitions() throws Exception {
014 Conrad cr = new Conrad("test/input/interval29/config/ssbaselineCPD2Int29.xml");
015 List<? extends TrainingSequence<? extends Character>> data = (List<? extends TrainingSequence<? extends Character>>) cr.getInputHandler().readTrainingData("test/input/interval13/data/oneGeneTrain.interval13.txt");
016 for (TrainingSequence<? extends Character> seq : data) {
017 seq.setY(SequenceConverter.convertSeqFromInterval13ToInterval29(seq.getY()));
018 }
019 StateTransitionsInterval29 f = new StateTransitionsInterval29();
020 f.train(0, cr.getModel(), data);
021 assertEquals(Math.log(1/4.0), f.getEndProb());
022 assertEquals(Math.log(3/4.0), f.getIntronProb());
023 }
024 }