def testCalculatedValues(self): # Test calculations in 'normal' order data = {'one': 5, 'two': 10, 'three': 15} calculations = { 'four': lambda d: d['one'] + d['three'], 'five': lambda d: d['one'] + d['four'] } actual = calculatevalues(data, calculations) expected = {'one': 5, 'two': 10, 'three': 15, 'four': 20, 'five': 25} self.assertEquals(expected, actual) # Test calculations in 'reverse' order data = {'one': 5, 'two': 10, 'three': 15} calculations = { 'five': lambda d: d['one'] + d['four'], 'four': lambda d: d['one'] + d['three']} actual = calculatevalues(data, calculations) expected = {'one': 5, 'two': 10, 'three': 15, 'four': 20, 'five': 25} self.assertEquals(expected, actual)
def _add_calculated_columns(self, row): """Add Calculated Columns to row of data.""" row = calculatevalues( dict(zip(self._rawcolumns, row)), self._calculatedcolumns) return [row[k] for k in self._allcolumns]