def construct_demo_data(): # because of windows we have to manage temp file ourselves temp = tempfile.NamedTemporaryFile(mode="ab+", delete=False) try: # counts distinct field values cnt = gem.LabelCounter() # holds names for the gziped files filename_iterator = ("MG_%03i.dcm.gz" % i for i in count(1)) objects_inside = 0 with open('demo_data.pkl', 'rb') as inp: dataset = pickle.load(inp) for data in dataset.values(): for d in data: d = gem.DicomObject( tensor=d['tensor'], labels=['modality', 'bpe', 'studydes', 'seriesdes'], label_values=[ d['modality'], d['bpe'], d['studydes'], d['seriesdes'] ]) gem.os.io.pickle.dump(d, temp) temp.flush() zip_to_file(temp, next(filename_iterator)) finally: temp.close() os.remove(temp.name) return cnt
def test_update_on_dimcom(self): data = gem.load_dicom(raw_dicom_file_path) ctr = gem.LabelCounter() ctr.update(data.get('Modality')) self.assertEqual(ctr.dic[data.get('Modality')], 1) ctr.update(data.get('Modality')) ctr.update(data.get('Modality')) self.assertEqual(ctr.dic[data.get('Modality')], 3)
def test_update_on_gemicai_dicom_object(self): iterator = gem.PickledDicomoDataSet(dicom_data_set, ['Modality']) data = next(iter(iterator)) ctr = gem.LabelCounter() ctr.update(data[1]) self.assertEqual(ctr.dic[data[1]], 1) ctr.update(data[1]) ctr.update(data[1]) self.assertEqual(ctr.dic[data[1]], 3)
def test_update_correct_param(self): ctr = gem.LabelCounter() ctr.update('z') self.assertEqual(ctr.dic['z'], 1) ctr.update('z') ctr.update('z') self.assertEqual(ctr.dic['z'], 3) ctr.update('m') self.assertEqual(ctr.dic['z'], 3) self.assertEqual(ctr.dic['m'], 1)
def test_update_nested_correct_param(self): ctr = gem.LabelCounter() ctr.update([[['z']], ['k'], 'o']) self.assertEqual(ctr.dic['z'], 1) self.assertEqual(ctr.dic['k'], 1) self.assertEqual(ctr.dic['o'], 1)
def test_update_wrong_param_type(self): ctr = gem.LabelCounter() with self.assertRaises(TypeError): ctr.update(dict())
def test__str__(self): ctr = gem.LabelCounter() temp_1 = str(ctr) ctr.update(['z']) temp_2 = str(ctr) self.assertNotEqual(temp_1, temp_2)