class ImageDatasetTest(ut.TestCase): def setUp(self): self.app = ImageDataset(home_folder) self.app.get_seq_list() self.seq_dir = test_sequence def test_dataset_assigns_main_dir_correctly(self): self.assertEqual(self.app.main_dir, home_folder) def test_dataset_seq_list_not_empty(self): self.assertFalse(len(self.app.seq_list) == 0) def test_dataset_has_correct_number_of_files(self): number_of_files = len(self.app.seq_list[test_sequence]) sequence = self.app.make_sequence(self.seq_dir) self.assertEqual(number_of_files, 26) def test_sequence_items_are_pydicom_datasets(self): sequence = self.app.make_sequence(self.seq_dir) self.assertEqual(sequence.info('PatientID'), 'yI1Yf6zek5U') self.assertEqual(sequence.info(tag=[0x10, 0x10]), 'MRIX LUMBAR') def test_sequence_size_method(self): sequence = self.app.make_sequence(self.seq_dir) number_of_files = len(self.app.seq_list[test_sequence]) self.assertIsInstance(sequence.size(), dict) self.assertEqual(sequence.size()['main'], number_of_files) def test_sequence_split_by_echo_time(self): sequence = self.app.make_sequence(self.seq_dir) sequence.split('InstanceNumber') self.assertEqual(type(sequence.split_ds), dict) def test_sequence_split_into_26_sequences(self): sequence = self.app.make_sequence(self.seq_dir) sequence.split('InstanceNumber') self.assertEqual(len(sequence.split_ds), 26)
slice_number += 1 def user_yn_query(question): sys.stdout.write('%s [y/n] ' % question) while True: try: return strtobool(raw_input().lower()) except ValueError: sys.stdout.write('Please respond with \'y\' or \'n\'. ') if __name__ == '__main__': data = ImageDataset() data.ask_for_source_dir() data.get_seq_list() if data.nii_list: print 'Found NIFTI file(s).' do_all = user_yn_query('Convert?') for nifti_path in data.nii_list: convert_NIFTI(data, nifti_path, do_all) print '\n............................................................\n' if data.seq_list: print 'Found {0} DICOM sequence(s):'.format(len(data.seq_list)) for sequence_path in data.seq_list: