from main import check_frame from util import invalidate_record, invalidate_records import pandas as pd random_dataframe = pd.DataFrame(pd.np.random.randn(10,10), columns=list('abcdefghij')) def test_it_works(): qc_frame = check_frame(random_dataframe, {}) assert 'qc_percent' in qc_frame.columns print(qc_frame) def test_invalidate_record(): invalidated = invalidate_record(three_scenes.copy(), 2, 'test', .5) assert invalidated.loc[2].test == .5 assert pd.np.isnan(invalidated.loc[3].test) assert pd.np.isnan(invalidated.loc[1].test) tricky_index = three_scenes.copy() tricky_index.index = tricky_index.index - 1 invalidated = invalidate_record(tricky_index, 1, 'test', .5) assert invalidated.loc[1].test == .5, invalidated.test assert pd.np.isnan(invalidated.loc[2].test), invalidated assert pd.np.isnan(invalidated.loc[0].test), invalidated corrupt_cal = three_scenes.copy() invalidated = invalidate_record(corrupt_cal, 3, 'test', .5) assert invalidated.loc[2].test == .5, invalidated.test assert invalidated.loc[4].test != .5, invalidated.test assert invalidated.loc[5].test == .5, invalidated.test def test_invalidate_records(): corrupt_cal = three_scenes.copy() corrupt_cal['test'] = 0 corrupt_cal['test'][3] = 1 invalidated = invalidate_records(corrupt_cal, 'test') assert invalidated.loc[2].test == 1, invalidated.test assert invalidated.loc[4].test == 0, invalidated.test assert invalidated.loc[5].test == 1, invalidated.test def test_invalidate_record_and_annotate(): invalidated = invalidate_record(three_scenes.copy(), 2, 'test', .5, 'test annotation') assert invalidated.loc[2].test == .5 assert pd.np.isnan(invalidated.loc[3].test) assert pd.np.isnan(invalidated.loc[1].test) assert invalidated.loc[2].qc_notes == 'test annotation' tricky_index = three_scenes.copy() tricky_index.index = tricky_index.index - 1 invalidated = invalidate_record(tricky_index, 1, 'test', .5, 'test annotation') assert invalidated.loc[1].test == .5, invalidated.test assert pd.np.isnan(invalidated.loc[2].test) assert pd.np.isnan(invalidated.loc[0].test) assert invalidated.loc[1].qc_notes == 'test annotation' corrupt_cal = three_scenes.copy() invalidated = invalidate_record(corrupt_cal, 3, 'test', .5) assert invalidated.loc[2].test == .5, invalidated.test assert invalidated.loc[2].qc_notes == 'invalid calibration:3' assert invalidated.loc[5].test == .5, invalidated.test assert invalidated.loc[5].qc_notes == 'invalid calibration:3' three_scenes = pd.DataFrame({'sceneMirrorPosition': list(map(ord, 'HASAHSAHSAH')), 'qc_notes':''})