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    }