Beispiel #1
0
        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();
        }
Beispiel #2
0
        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();
                }
            }
        }
Beispiel #3
0
        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();
                }
            }
        }
Beispiel #4
0
        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();
        }