/** * */ package edu.berkeley.nlp.PCFGLA.smoothing; import java.io.Serializable; import edu.berkeley.nlp.PCFGLA.BinaryCounterTable; import edu.berkeley.nlp.PCFGLA.BinaryRule; import edu.berkeley.nlp.PCFGLA.UnaryCounterTable; import edu.berkeley.nlp.PCFGLA.UnaryRule; /** * @author leon * */ public class SmoothAcrossParentSubstateTest{ public SmoothAcrossParentSubstateTest() { // CLASS IS BROKEN } /* * Test method for 'edu.berkeley.nlp.PCFGLA.smoothing.SmoothAcrossParentSubstate.smooth(UnaryCounterTable, BinaryCounterTable)' */ public void testSmooth() { short pState = 1, lState = 2, rState = 3; short[] numSubStates = {3,3,3,3}; double[][] uScores = {{ 1, 0, 0 }, {1, 1, 1}, {0, 0, 1}}; double[][] targetUScores = {{ 0.75, 0.25, 0.5 }, {0.75, 0.5, 0.75}, {0.5, 0.25, 0.75}}; double[][][] bScores = {{{1, 0, 0}, {0, 1, 0}, {0,0,1}}, {{0,1,0},{0,0,0},{0,0,0}}, {{0,0,0},{0,0,0},{0,0,0}}}; double[][][] targetBScores = {{{0.5,0.25,0},{0,0.5,0},{0,0,0.5}}, {{0.25,0.5,0},{0,0.25,0},{0,0,0.25}}, {{0.25,0.25,0},{0,0.25,0},{0,0,0.25}}}; UnaryRule ur = new UnaryRule(pState,lState,uScores); BinaryRule br = new BinaryRule(pState,lState,rState,bScores); Smoother sm = new SmoothAcrossParentSubstate(0.5); UnaryCounterTable unaryCounter = new UnaryCounterTable(numSubStates); unaryCounter.setCount(ur,uScores); BinaryCounterTable binaryCounter = new BinaryCounterTable(numSubStates); binaryCounter.setCount(br,bScores); sm.smooth(unaryCounter,binaryCounter); double[][] newUScores = unaryCounter.getCount(ur); for (int i=0; i<newUScores.length; i++) { for (int j=0; j<newUScores[i].length; j++) { //assertEquals(newUScores[i][j],targetUScores[i][j],0.0001); } } double[][][] newBScores = binaryCounter.getCount(br); for (int i=0; i<newBScores.length; i++) { for (int j=0; j<newBScores[i].length; j++) { for (int k=0; k<newBScores[i][j].length; k++) { //assertEquals(newBScores[i][j][k],targetBScores[i][j][k],0.0001); } } } } }