public void TestDegen2() { FitsFactory.UseAsciiTables = false; Object[] data = new Object[] { new String[] { "a", "b", "c", "d", "e", "f" }, new int[] { 1, 2, 3, 4, 5, 6 }, new float[] { 1f, 2f, 3f, 4f, 5f, 6f }, new String[] { "", "", "", "", "", "" }, new String[] { "a", "", "c", "", "e", "f" }, new String[] { "", "b", "c", "d", "e", "f" }, new String[] { "a", "b", "c", "d", "e", "" }, new String[] { null, null, null, null, null, null }, new String[] { "a", null, "c", null, "e", "f" }, new String[] { null, "b", "c", "d", "e", "f" }, new String[] { "a", "b", "c", "d", "e", null } }; Fits f = new Fits(); f.AddHDU(Fits.MakeHDU(data)); BufferedFile ff = new BufferedFile("bt8.fits", FileAccess.ReadWrite, FileShare.ReadWrite); f.Write(ff); ff.Flush(); ff.Close(); f = new Fits("bt8.fits"); BinaryTableHDU bhdu = (BinaryTableHDU)f.GetHDU(1); Assertion.AssertEquals("deg21", "e", bhdu.GetElement(4, data.Length - 1)); Assertion.AssertEquals("deg22", "", bhdu.GetElement(5, data.Length - 1)); String[] col = (String[])bhdu.GetColumn(0); Assertion.AssertEquals("deg23", "a", col[0]); Assertion.AssertEquals("deg24", "f", col[5]); col = (String[])bhdu.GetColumn(3); Assertion.AssertEquals("deg25", "", col[0]); Assertion.AssertEquals("deg26", "", col[5]); col = (String[])bhdu.GetColumn(7); // All nulls Assertion.AssertEquals("deg27", "", col[0]); Assertion.AssertEquals("deg28", "", col[5]); col = (String[])bhdu.GetColumn(8); Assertion.AssertEquals("deg29", "a", col[0]); Assertion.AssertEquals("deg210", "", col[1]); f.Close(); }
public void TestDegen2() { FitsFactory.UseAsciiTables = false; Object[] data = new Object[] { new String[] { "a", "b", "c", "d", "e", "f" }, new int[] { 1, 2, 3, 4, 5, 6 }, new float[] { 1f, 2f, 3f, 4f, 5f, 6f }, new String[] { "", "", "", "", "", "" }, new String[] { "a", "", "c", "", "e", "f" }, new String[] { "", "b", "c", "d", "e", "f" }, new String[] { "a", "b", "c", "d", "e", "" }, new String[] { null, null, null, null, null, null }, new String[] { "a", null, "c", null, "e", "f" }, new String[] { null, "b", "c", "d", "e", "f" }, new String[] { "a", "b", "c", "d", "e", null } }; Fits f = null; try { f = new Fits(); f.AddHDU(Fits.MakeHDU(data)); BufferedFile ff = new BufferedFile(TestFileSetup.GetTargetFilename("bt8.fits"), FileAccess.ReadWrite, FileShare.ReadWrite); f.Write(ff); ff.Flush(); ff.Close(); f.Close(); f = new Fits(TestFileSetup.GetTargetFilename("bt8.fits")); BinaryTableHDU bhdu = (BinaryTableHDU)f.GetHDU(1); Assert.AreEqual("e", bhdu.GetElement(4, data.Length - 1)); Assert.AreEqual("", bhdu.GetElement(5, data.Length - 1)); String[] col = (String[])bhdu.GetColumn(0); Assert.AreEqual("a", col[0]); Assert.AreEqual("f", col[5]); col = (String[])bhdu.GetColumn(3); Assert.AreEqual("", col[0]); Assert.AreEqual("", col[5]); col = (String[])bhdu.GetColumn(7); // All nulls Assert.AreEqual("", col[0]); Assert.AreEqual("", col[5]); col = (String[])bhdu.GetColumn(8); Assert.AreEqual("a", col[0]); Assert.AreEqual("", col[1]); } finally { if (f != null) { f.Close(); } } }
public void TestSet() { Fits f = null; try { f = new Fits(TestFileSetup.GetTargetFilename("bt2.fits"), FileAccess.Read); f.Read(); BinaryTableHDU bhdu = (BinaryTableHDU)f.GetHDU(1); Header hdr = bhdu.Header; // Check the various set methods on variable length data. float[] dta = (float[])bhdu.GetElement(4, 1); dta = new float[] { 22, 21, 20 }; bhdu.SetElement(4, 1, dta); BufferedFile bdos = new BufferedFile( TestFileSetup.GetTargetFilename("bt2a.fits"), FileAccess.ReadWrite, FileShare.ReadWrite); f.Write(bdos); bdos.Close(); bdos.Dispose(); f.Close(); f = new Fits(TestFileSetup.GetTargetFilename("bt2a.fits")); bhdu = (BinaryTableHDU)f.GetHDU(1); float[] xdta = (float[])bhdu.GetElement(4, 1); Assert.AreEqual(true, ArrayFuncs.ArrayEquals(dta, xdta)); Assert.AreEqual(true, ArrayFuncs.ArrayEquals(bhdu.GetElement(3, 1), vf[3])); Assert.AreEqual(true, ArrayFuncs.ArrayEquals(bhdu.GetElement(5, 1), vf[5])); Assert.AreEqual(true, ArrayFuncs.ArrayEquals(bhdu.GetElement(4, 1), dta)); float[] tvf = new float[] { 101, 102, 103, 104 }; vf[4] = tvf; bhdu.SetColumn(1, vf); Assert.AreEqual(true, ArrayFuncs.ArrayEquals(bhdu.GetElement(3, 1), vf[3])); Assert.AreEqual(true, ArrayFuncs.ArrayEquals(bhdu.GetElement(4, 1), vf[4])); Assert.AreEqual(true, ArrayFuncs.ArrayEquals(bhdu.GetElement(5, 1), vf[5])); bdos = new BufferedFile( TestFileSetup.GetTargetFilename("bt2b.fits"), FileAccess.ReadWrite, FileShare.ReadWrite); f.Write(bdos); bdos.Close(); bdos.Dispose(); f.Close(); f = new Fits(TestFileSetup.GetTargetFilename("bt2b.fits")); bhdu = (BinaryTableHDU)f.GetHDU(1); Assert.AreEqual(true, ArrayFuncs.ArrayEquals(bhdu.GetElement(3, 1), vf[3])); Assert.AreEqual(true, ArrayFuncs.ArrayEquals(bhdu.GetElement(4, 1), vf[4])); Assert.AreEqual(true, ArrayFuncs.ArrayEquals(bhdu.GetElement(5, 1), vf[5])); Object[] rw = (Object[])bhdu.GetRow(4); float[] trw = new float[] { -1, -2, -3, -4, -5, -6 }; rw[1] = trw; bhdu.SetRow(4, rw); Assert.AreEqual(true, ArrayFuncs.ArrayEquals(bhdu.GetElement(3, 1), vf[3])); Assert.AreEqual(false, ArrayFuncs.ArrayEquals(bhdu.GetElement(4, 1), vf[4])); Assert.AreEqual(true, ArrayFuncs.ArrayEquals(bhdu.GetElement(4, 1), trw)); Assert.AreEqual(true, ArrayFuncs.ArrayEquals(bhdu.GetElement(5, 1), vf[5])); // bdos = new BufferedDataStream(new FileStream("bt2c.fits",FileMode.Open)); bdos = new BufferedFile( TestFileSetup.GetTargetFilename("bt2c.fits"), FileAccess.ReadWrite, FileShare.ReadWrite); f.Write(bdos); bdos.Close(); bdos.Dispose(); f.Close(); f = new Fits(TestFileSetup.GetTargetFilename("bt2c.fits")); bhdu = (BinaryTableHDU)f.GetHDU(1); Assert.AreEqual(true, ArrayFuncs.ArrayEquals(bhdu.GetElement(3, 1), vf[3])); Assert.AreEqual(false, ArrayFuncs.ArrayEquals(bhdu.GetElement(4, 1), vf[4])); Assert.AreEqual(true, ArrayFuncs.ArrayEquals(bhdu.GetElement(4, 1), trw)); Assert.AreEqual(true, ArrayFuncs.ArrayEquals(bhdu.GetElement(5, 1), vf[5])); } finally { if (f != null) { f.Close(); } } }
public void TestSet() { Fits f = new Fits("testdocs\\bt2.fits", FileAccess.Read); f.Read(); BinaryTableHDU bhdu = (BinaryTableHDU)f.GetHDU(1); Header hdr = bhdu.Header; // Check the various set methods on variable length data. float[] dta = (float[])bhdu.GetElement(4, 1); dta = new float[] { 22, 21, 20 }; bhdu.SetElement(4, 1, dta); // BufferedDataStream bdos = new BufferedDataStream(new FileStream("bt2a.fits",FileMode.Open)); BufferedFile bdos = new BufferedFile("bt2a.fits", FileAccess.ReadWrite, FileShare.ReadWrite); f.Write(bdos); bdos.Close(); f = new Fits("bt2a.fits"); bhdu = (BinaryTableHDU)f.GetHDU(1); float[] xdta = (float[])bhdu.GetElement(4, 1); Assertion.AssertEquals("ts1", true, ArrayFuncs.ArrayEquals(dta, xdta)); Assertion.AssertEquals("ts2", true, ArrayFuncs.ArrayEquals(bhdu.GetElement(3, 1), vf[3])); Assertion.AssertEquals("ts5", true, ArrayFuncs.ArrayEquals(bhdu.GetElement(5, 1), vf[5])); Assertion.AssertEquals("ts4", true, ArrayFuncs.ArrayEquals(bhdu.GetElement(4, 1), dta)); float[] tvf = new float[] { 101, 102, 103, 104 }; vf[4] = tvf; bhdu.SetColumn(1, vf); Assertion.AssertEquals("ts6", true, ArrayFuncs.ArrayEquals(bhdu.GetElement(3, 1), vf[3])); Assertion.AssertEquals("ts7", true, ArrayFuncs.ArrayEquals(bhdu.GetElement(4, 1), vf[4])); Assertion.AssertEquals("ts8", true, ArrayFuncs.ArrayEquals(bhdu.GetElement(5, 1), vf[5])); // bdos = new BufferedDataStream(new FileStream("bt2b.fits",FileMode.Open)); bdos = new BufferedFile("bt2b.fits", FileAccess.ReadWrite, FileShare.ReadWrite); f.Write(bdos); bdos.Close(); f.Close(); f = new Fits("bt2b.fits"); bhdu = (BinaryTableHDU)f.GetHDU(1); Assertion.AssertEquals("ts9", true, ArrayFuncs.ArrayEquals(bhdu.GetElement(3, 1), vf[3])); Assertion.AssertEquals("ts10", true, ArrayFuncs.ArrayEquals(bhdu.GetElement(4, 1), vf[4])); Assertion.AssertEquals("ts11", true, ArrayFuncs.ArrayEquals(bhdu.GetElement(5, 1), vf[5])); Object[] rw = (Object[])bhdu.GetRow(4); float[] trw = new float[] { -1, -2, -3, -4, -5, -6 }; rw[1] = trw; bhdu.SetRow(4, rw); Assertion.AssertEquals("ts12", true, ArrayFuncs.ArrayEquals(bhdu.GetElement(3, 1), vf[3])); Assertion.AssertEquals("ts13", false, ArrayFuncs.ArrayEquals(bhdu.GetElement(4, 1), vf[4])); Assertion.AssertEquals("ts14", true, ArrayFuncs.ArrayEquals(bhdu.GetElement(4, 1), trw)); Assertion.AssertEquals("ts15", true, ArrayFuncs.ArrayEquals(bhdu.GetElement(5, 1), vf[5])); // bdos = new BufferedDataStream(new FileStream("bt2c.fits",FileMode.Open)); bdos = new BufferedFile("bt2c.fits", FileAccess.ReadWrite, FileShare.ReadWrite); f.Write(bdos); bdos.Close(); f.Close(); f = new Fits("bt2c.fits"); bhdu = (BinaryTableHDU)f.GetHDU(1); Assertion.AssertEquals("ts16", true, ArrayFuncs.ArrayEquals(bhdu.GetElement(3, 1), vf[3])); Assertion.AssertEquals("ts17", false, ArrayFuncs.ArrayEquals(bhdu.GetElement(4, 1), vf[4])); Assertion.AssertEquals("ts18", true, ArrayFuncs.ArrayEquals(bhdu.GetElement(4, 1), trw)); Assertion.AssertEquals("ts19", true, ArrayFuncs.ArrayEquals(bhdu.GetElement(5, 1), vf[5])); f.Close(); }