Skip to content

Commit

Permalink
BUG: Fix some small bugs in the baseline generation script
Browse files Browse the repository at this point in the history
  • Loading branch information
JoostJM committed Sep 14, 2018
1 parent 7d919cf commit c285c15
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 15 deletions.
18 changes: 8 additions & 10 deletions tests/add_baseline.py
Expand Up @@ -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
Expand All @@ -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]

Expand All @@ -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)
Expand Down
10 changes: 5 additions & 5 deletions tests/testUtils.py
Expand Up @@ -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']:
Expand Down Expand Up @@ -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
Expand Down

0 comments on commit c285c15

Please sign in to comment.