def test_header_from_readme(): r = ascii.Cds("data/vizier/ReadMe") table = r.read("data/vizier/table1.dat") assert len(r.data.data_lines) == 15 assert len(table) == 15 assert len(table.keys()) == 18 Bmag = [ 14.79, 15.00, 14.80, 12.38, 12.36, 12.24, 13.75, 13.65, 13.41, 11.59, 11.68, 11.53, 13.92, 14.03, 14.18 ] for i, val in enumerate(table.field('Bmag')): assert val == Bmag[i] table = r.read("data/vizier/table5.dat") assert len(r.data.data_lines) == 49 assert len(table) == 49 assert len(table.keys()) == 10 Q = [ 0.289, 0.325, 0.510, 0.577, 0.539, 0.390, 0.957, 0.736, 1.435, 1.117, 1.473, 0.808, 1.416, 2.209, 0.617, 1.046, 1.604, 1.419, 1.431, 1.183, 1.210, 1.005, 0.706, 0.665, 0.340, 0.323, 0.391, 0.280, 0.343, 0.369, 0.495, 0.828, 1.113, 0.499, 1.038, 0.260, 0.863, 1.638, 0.479, 0.232, 0.627, 0.671, 0.371, 0.851, 0.607, -9.999, 1.958, 1.416, 0.949 ] for i, val in enumerate(table.field('Q')): if val is np.ma.masked: # text value for a missing value in that table assert Q[i] == -9.999 else: assert val == Q[i]
def test_cds_order(): # Make sure CDS Reader does not ignore order specifier that maybe present after # the null specifier '?' readme = 'data/cds/null/ReadMe1' data = 'data/cds/null/table.dat' r = ascii.Cds(readme) r.read(data) assert_equal(r.header.cols[5].description, 'Catalogue Identification Number') assert_equal(r.header.cols[8].description, 'Equivalent width (in mA)') assert_equal(r.header.cols[9].description, 'Luminosity class codified (11)')
def test_cds_ignore_nullable(): # Make sure CDS Reader does not ignore nullabilty for columns # with a limit specifier readme = 'data/cds/null/ReadMe' data = 'data/cds/null/table.dat' r = ascii.Cds(readme) r.read(data) assert_equal(r.header.cols[6].description, 'Temperature class codified (10)') assert_equal(r.header.cols[8].description, 'Luminosity class codified (11)') assert_equal(r.header.cols[5].description, 'Pericenter position angle (18)')
def test_cds_no_whitespace(): # Make sure CDS Reader only checks null values when an '=' symbol is present, # and read description text even if there is no whitespace after '?'. readme = 'data/cds/null/ReadMe1' data = 'data/cds/null/table.dat' r = ascii.Cds(readme) r.read(data) assert_equal(r.header.cols[6].description, 'Temperature class codified (10)') assert_equal(r.header.cols[6].null, '') assert_equal(r.header.cols[7].description, 'Equivalent width (in mA)') assert_equal(r.header.cols[7].null, '-9.9') assert_equal(r.header.cols[10].description, 'DAOSPEC quality parameter Q(large values are bad)') assert_equal(r.header.cols[10].null, '-9.999')
def read_table1(readme, data): reader = ascii.Cds(readme) return reader.read(data)