From c285c15acd9c464324dc70a0fc707c00f7010a99 Mon Sep 17 00:00:00 2001 From: Joost van Griethuysen Date: Wed, 12 Sep 2018 17:53:16 +0200 Subject: [PATCH] BUG: Fix some small bugs in the baseline generation script --- tests/add_baseline.py | 18 ++++++++---------- tests/testUtils.py | 10 +++++----- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/tests/add_baseline.py b/tests/add_baseline.py index 6786e8bc..0a484083 100644 --- a/tests/add_baseline.py +++ b/tests/add_baseline.py @@ -40,22 +40,20 @@ def process_testcase(self, test, featureClassName): featureClass = self.featureClasses[featureClassName](testImage, testMask, **self.testUtils.getSettings()) + featureClass.enableAllFeatures() + featureClass.execute() + if "_calculateMatrix" in dir(featureClass): cMat = getattr(featureClass, 'P_%s' % featureClassName) if cMat is not None: numpy.save(os.path.join(self.baselineDir, '%s_%s.npy' % (test, featureClassName)), cMat) - featureClass.enableAllFeatures() - featureClass.calculateFeatures() - imageTypeName = 'original' # Update versions to reflect which configuration generated the baseline - versions = {} - versions['general_info_Version'] = generalinfo.GeneralInfo.getVersionValue() - versions['general_info_NumpyVersion'] = generalinfo.GeneralInfo.getNumpyVersionValue() - versions['general_info_SimpleITKVersion'] = generalinfo.GeneralInfo.getSimpleITKVersionValue() - versions['general_info_PyWaveletVersion'] = generalinfo.GeneralInfo.getPyWaveletVersionValue() + self.generalInfo = generalinfo.GeneralInfo() + + versions = self.generalInfo.getGeneralInfo() self.new_baselines[featureClassName].configuration[test].update(versions) self.new_baselines[featureClassName].baseline[test] = {'%s_%s_%s' % (imageTypeName, featureClassName, key): val @@ -70,7 +68,7 @@ def run(self, featureClass=None): if newClass not in self.new_baselines: self.logger.info('Adding class %s to the baseline', newClass) self.new_baselines[newClass] = PyRadiomicsBaseline(newClass) - self.new_baselines[newClass].config = config + self.new_baselines[newClass].configuration = config # add the new baseline to test utils so it's config can be used during processing self.testUtils._baseline[newClass] = self.new_baselines[newClass] @@ -85,7 +83,7 @@ def run(self, featureClass=None): else: # Feature class not yet present in the baseline, generate a new one self.new_baselines[featureClass] = PyRadiomicsBaseline(featureClass) - self.new_baselines[featureClass].config = config + self.new_baselines[featureClass].configuration = config for test in self.testCases: self.process_testcase(test, featureClass) diff --git a/tests/testUtils.py b/tests/testUtils.py index 790b1cc1..5875ba30 100644 --- a/tests/testUtils.py +++ b/tests/testUtils.py @@ -149,10 +149,10 @@ class or test case is changed, function returns True. self._featureClassName = className - # Check if test settings have changed - if self._current_config != self._baseline[className].getTestConfig(test): - self._current_config = self._baseline[className].getTestConfig(test) - self._testCase = None # forces image to be reloaded (as settings have changed) + # Check if test settings have changed + if self._current_config != self._baseline[className].getTestConfig(test): + self._current_config = self._baseline[className].getTestConfig(test) + self._testCase = None # forces image to be reloaded (as settings have changed) # Next, set testCase if necessary if self._testCase != self._current_config['TestCase']: @@ -367,7 +367,7 @@ def getBaselineValue(self, test, featureName): def writeBaselineFile(self, baselineDir): baselineFile = os.path.join(baselineDir, 'baseline_%s.csv' % self.cls) - testCases = list(self.baseline.keys()) + testCases = sorted(self.baseline.keys()) with open(baselineFile, 'wb') as baseline: csvWriter = csv.writer(baseline) header = ['featureName'] + testCases