def test_empty_data_json(tmp_fname): file = FlexFile() ext = BinaryDataExtension(data=[]) file.extensions["img"] = ext file.to_json(tmp_fname) del file f2 = FlexFile.from_json(tmp_fname) assert f2["img"].data.size == 0
def test_json_multi(tmp_fname): file = FlexFile() ext = MultipleDataExtension(data={"bla": np.zeros(10)}) file.extensions["img"] = ext file.to_json(tmp_fname) del file f2 = FlexFile.from_json(tmp_fname) assert f2["img"].data["bla"].size == 10 assert np.all(f2["img"].data["bla"] == 0)
def test_json(tmp_fname): file = FlexFile() ext = BinaryDataExtension(data=np.zeros(10)) file.extensions["img"] = ext file.to_json(tmp_fname) del file f2 = FlexFile.from_json(tmp_fname) assert f2["img"].data.size == 10 assert np.all(f2["img"].data == 0)
def test_json(tableclass, tmp_fname, table): file = FlexFile() ext = tableclass(data=table) file.extensions["tab"] = ext file.to_json(tmp_fname) del file f2 = FlexFile.from_json(tmp_fname) assert f2["tab"].data.size == 10 * 2 assert np.all(f2["tab"].data == 1) assert len(f2["tab"].data.columns) == 2 assert "A" in f2["tab"].data.columns assert "B" in f2["tab"].data.columns
file.header["blurb2"] = [1, 2, 3] file.header["int"] = 1 file.header["np_int"] = np.int(1) file.header["str"] = "Hello" file.header["np_str"] = np.str("World") # FITS can handle either long header keys, or long entries # But not both at the same time... file.header["really_long_entry"] = "bla" file.header["really_l"] = "bla" * 100 file.header["really_long_text_with_HIERARCH"] = "bla" * 100 file.extensions["np"] = ext file.extensions["tab"] = tab file.extensions["bin"] = ext_bin d = file.to_json() d2 = FlexFile.from_json(d) d = file.to_json("test.json") d2 = FlexFile.from_json("test.json") d = file.to_fits("test.fits", overwrite=True) d2 = FlexFile.from_fits("test.fits") file.write("test.flex") f2 = FlexFile.read("test.flex") f2["np"].data["data"][:5] = 1 print(f2["np"].data) del f2