1 package nom.tam.fits.test;
7 import static org.junit.Assert.assertEquals;
8 import junit.framework.JUnit4TestAdapter;
10 /** Test random groups formats in FITS data.
11 * Write and read random groups data
13 public class RandomGroupsTest {
16 public void test() throws Exception {
18 float[][] fa = new float[20][20];
19 float[] pa = new float[3];
21 BufferedFile bf = new BufferedFile("rg1.fits", "rw");
23 Object[][] data = new Object[1][2];
27 // First lets write out the file painfully group by group.
28 BasicHDU hdu = Fits.makeHDU(data);
29 Header hdr = hdu.getHeader();
30 // Change the number of groups
31 hdr.addValue("GCOUNT", 20, "Number of groups");
34 for (int i = 0; i < 20; i += 1) {
36 for (int j = 0; j < pa.length; j += 1) {
39 for (int j = 0; j < fa.length; j += 1) {
46 byte[] padding = new byte[FitsUtil.padding(20 * ArrayFuncs.computeLSize(data))];
52 // Read back the data.
53 Fits f = new Fits("rg1.fits");
54 BasicHDU[] hdus = f.read();
56 data = (Object[][]) hdus[0].getKernel();
58 for (int i = 0; i < data.length; i += 1) {
60 pa = (float[]) data[i][0];
61 fa = (float[][]) data[i][1];
62 for (int j = 0; j < pa.length; j += 1) {
63 assertEquals("paramTest:" + i + " " + j, (float) (i + j), pa[j], 0);
65 for (int j = 0; j < fa.length; j += 1) {
66 assertEquals("dataTest:" + i + " " + j, (float) (i * j), fa[j][j], 0);
70 // Now do it in one fell swoop -- but we have to have
71 // all the data in place first.
74 // Generate a FITS HDU from the kernel.
75 f.addHDU(Fits.makeHDU(data));
76 bf = new BufferedFile("rg2.fits", "rw");
82 f = new Fits("rg2.fits");
83 data = (Object[][]) f.read()[0].getKernel();
84 for (int i = 0; i < data.length; i += 1) {
86 pa = (float[]) data[i][0];
87 fa = (float[][]) data[i][1];
88 for (int j = 0; j < pa.length; j += 1) {
89 assertEquals("paramTest:" + i + " " + j, (float) (i + j), pa[j], 0);
91 for (int j = 0; j < fa.length; j += 1) {
92 assertEquals("dataTest:" + i + " " + j, (float) (i * j), fa[j][j], 0);