def test_header_line_raises_on_both_missing(): stats_file = os.path.join(TEST_DATA_DIR, 'subject1', 'stats', 'lh.aparc.DKTatlas.stats') stats = bl.stat(stats_file) del stats['table_meta_data']['column_info_'] del stats['table_meta_data']['ColHeaders'] with pytest.raises(ValueError) as exc_info: hdr_string = st._header_line(stats['table_meta_data']) assert 'Could not determine header line' in str(exc_info.value)
def test_header_line(): stats_file = os.path.join(TEST_DATA_DIR, 'subject1', 'stats', 'lh.aparc.DKTatlas.stats') stats = bl.stat(stats_file) hdr_string = st._header_line(stats['table_meta_data']) assert hdr_string == '\t'.join([ 'StructName', 'NumVert', 'SurfArea', 'GrayVol', 'ThickAvg', 'ThickStd', 'MeanCurv', 'GausCurv', 'FoldInd', 'CurvInd' ])
def test_header_line_missing_column_info_warns(): stats_file = os.path.join(TEST_DATA_DIR, 'subject1', 'stats', 'lh.aparc.DKTatlas.stats') stats = bl.stat(stats_file) del stats['table_meta_data']['column_info_'] with pytest.warns(UserWarning, match='Stats data is missing some header data'): hdr_string = st._header_line(stats['table_meta_data']) assert hdr_string == '\t'.join([ 'StructName', 'NumVert', 'SurfArea', 'GrayVol', 'ThickAvg', 'ThickStd', 'MeanCurv', 'GausCurv', 'FoldInd', 'CurvInd' ])
def test_header_line_does_not_raise_on_broken_col_headers(): stats_file = os.path.join(TEST_DATA_DIR, 'subject1', 'stats', 'lh.aparc.DKTatlas.stats') stats = bl.stat(stats_file) stats['table_meta_data'][ 'ColHeaders'] = 1 # ruin data: cannot split an int with pytest.warns(UserWarning, match='Stats data is missing some header data'): hdr_string = st._header_line(stats['table_meta_data']) assert hdr_string == '\t'.join([ 'StructName', 'NumVert', 'SurfArea', 'GrayVol', 'ThickAvg', 'ThickStd', 'MeanCurv', 'GausCurv', 'FoldInd', 'CurvInd' ])
def test_header_line_inconsistent_warns(): stats_file = os.path.join(TEST_DATA_DIR, 'subject1', 'stats', 'lh.aparc.DKTatlas.stats') stats = bl.stat(stats_file) stats['table_meta_data'][ 'ColHeaders'] = 'StructName NumVertBROKEN SurfArea GrayVol ThickAvg ThickStd MeanCurv GausCurv FoldInd CurvInd' # mess with data, add 'BROKEN' to 2nd header column with pytest.warns( UserWarning, match= 'Stats data regarding table header is inconsistent between ColHeaders and TableCol->ColHeader entries' ): hdr_string = st._header_line(stats['table_meta_data']) assert hdr_string == '\t'.join([ 'StructName', 'NumVert', 'SurfArea', 'GrayVol', 'ThickAvg', 'ThickStd', 'MeanCurv', 'GausCurv', 'FoldInd', 'CurvInd' ])