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(); }