package hep.io.hbook.test; import hep.io.hbook.CompositeHbookObject; import hep.io.hbook.HbookFile; import hep.io.hbook.RowwiseTuple; import hep.io.hbook.RowwiseTupleColumn; import org.freehep.util.*; import java.io.File; import java.io.IOException; import junit.framework.TestCase; /** * * @author Tony Johnson */ public class RowWiseTest extends TestCase { private HbookFile hbook; public RowWiseTest(String name) { super(name); } public void testRowWiseTuple() throws IOException { CompositeHbookObject top = hbook.getTopLevelDirectory(); assertEquals(top.nChildren(),5); RowwiseTuple tuple = (RowwiseTuple) top.getChild(1); int n = tuple.nChildren(); assertEquals(n,10); RowwiseTuple tuple2 = (RowwiseTuple) top.getChild(2); assertEquals(tuple2.nChildren(),8); assertEquals(tuple.getRows(),5888); assertEquals(mean(tuple,0),8915629,1); assertEquals(mean(tuple,1),10.38145,0.00001); assertEquals(mean(tuple,2),0,.00001); assertEquals(mean(tuple,3),.0021680,0.0000001); RowwiseTuple tuple3 = (RowwiseTuple) top.getChild(3); assertEquals(tuple3.nChildren(),3); assertEquals(tuple3.getRows(),1000); assertEquals(mean(tuple3,0),-1.5054,0.0001); assertEquals(mean(tuple3,1),-2.4667,0.0001); assertEquals(mean(tuple3,2),71.975,.001); // String testDataDir = "C:\\Documents and Settings\\Tony Johnson\\My Documents\\My Data\\test"; // File f = new File(testDataDir,"pawdemo.hbook"); // HbookFile hbook2 = new HbookFile(f); // OneDHistogram h100 = (OneDHistogram) hbook2.getTopLevelDirectory().getChild("MULTIPLICITY - WEIGHTED"); // assertEquals(h100.getXMean(),10.079,0.001); // // assertEquals(mean(tuple,1),10.38145,0.00001); // assertEquals(mean(tuple,2),0,.00001); // assertEquals(mean(tuple,3),.0021680,0.0000001); // // hbook2.close(); } private double mean(RowwiseTuple tuple, int col) { double mean = 0; int r = tuple.getRows(); for (int i=0; i<r; i++) { tuple.setCurrentRow(i+1); mean += ((RowwiseTupleColumn) tuple.getChild(col)).getDouble(); } return mean/r; } protected void tearDown() throws Exception { hbook.close(); } protected void setUp() throws Exception { String testDataFile = System.getProperty("org.freehep.hbook.test.data.rowwise.hbook"); String localRepository = System.getProperty("localRepository"); if (localRepository != null) testDataFile = StringUtilities.replace("${localRepository}", localRepository, testDataFile); File f = new File(testDataFile); hbook = new HbookFile(f); } }