def testContinuousMapper(self): "Axis: ContinuousMapper" from histogram.EvenlyContinuousAxisMapper import EvenlyContinuousAxisMapper as AxisMapper min = 0.5 delta = 1.0 nBins = 3 binBoundaries = calcBinBoundaries(min, delta, nBins) storage = ndArray("double", binBoundaries) self.assertVectorEqual(binBoundaries, [0.0, 1.0, 2.0, 3.0]) axisMapper = AxisMapper(binBoundaries=binBoundaries) axis = Axis('x', unit='1', attributes={}, length=nBins, storage=storage, mapper=axisMapper) self.assertEqual(axis.cellIndexFromValue(0.5), 0) self.assertEqual(axis.cellIndexFromValue(0.), 0) self.assertEqual(axis.cellIndexFromValue(1.), 1) self.assertEqual(axis.cellIndexFromValue(2.), 2) self.assertEqual(axis.cellIndexFromValue(0.9), 0) self.assertEqual(axis.cellIndexFromValue(1.9), 1) self.assertRaises(IndexError, axis.cellIndexFromValue, -0.5) self.assertRaises(IndexError, axis.cellIndexFromValue, 3.5) self.assertVectorEqual(axis.binCenters(), [0.5, 1.5, 2.5]) return
def testDiscreteMapper(self): "Axis: DiscreteMapper" from histogram.DiscreteAxisMapper import DiscreteAxisMapper as AxisMapper items = [10,100,2999] itemDict = {} for i, value in enumerate(items): itemDict[value] = i axisMapper = AxisMapper( itemDict ) from histogram import ndArray storage = ndArray( 'int', items + [-1] ) # -1 is a patch from histogram.Axis import Axis axis = Axis( name = "category", storage = storage, mapper = axisMapper ) self.assertEqual( axis.cellIndexFromValue( 10 ), 0 ) self.assertEqual( axis.cellIndexFromValue( 100 ), 1 ) self.assertEqual( axis.cellIndexFromValue( 2999 ), 2 ) self.assertRaises( IndexError, axis.cellIndexFromValue, -1 ) self.assertVectorEqual( axis.binCenters(), [10,100,2999]) return
def testDiscreteMapper(self): "Axis: DiscreteMapper" from histogram.DiscreteAxisMapper import DiscreteAxisMapper as AxisMapper items = [10, 100, 2999] itemDict = {} for i, value in enumerate(items): itemDict[value] = i axisMapper = AxisMapper(itemDict) from histogram import ndArray storage = ndArray('int', items + [-1]) # -1 is a patch from histogram.Axis import Axis axis = Axis(name="category", storage=storage, mapper=axisMapper) self.assertEqual(axis.cellIndexFromValue(10), 0) self.assertEqual(axis.cellIndexFromValue(100), 1) self.assertEqual(axis.cellIndexFromValue(2999), 2) self.assertRaises(IndexError, axis.cellIndexFromValue, -1) self.assertVectorEqual(axis.binCenters(), [10, 100, 2999]) return
def testContinuousMapper(self): "Axis: ContinuousMapper" from histogram.EvenlyContinuousAxisMapper import EvenlyContinuousAxisMapper as AxisMapper min = 0.5; delta = 1.0; nBins = 3 binBoundaries = calcBinBoundaries( min, delta, nBins ) storage = ndArray( "double", binBoundaries ) self.assertVectorEqual( binBoundaries, [0.0, 1.0, 2.0, 3.0] ) axisMapper = AxisMapper( binBoundaries = binBoundaries ) axis = Axis( 'x', unit='1', attributes = {}, length = nBins, storage = storage, mapper = axisMapper) self.assertEqual( axis.cellIndexFromValue( 0.5 ), 0 ) self.assertEqual( axis.cellIndexFromValue( 0. ), 0 ) self.assertEqual( axis.cellIndexFromValue( 1. ), 1 ) self.assertEqual( axis.cellIndexFromValue( 2. ), 2 ) self.assertEqual( axis.cellIndexFromValue( 0.9 ), 0 ) self.assertEqual( axis.cellIndexFromValue( 1.9 ), 1 ) self.assertRaises( IndexError, axis.cellIndexFromValue, -0.5 ) self.assertRaises( IndexError, axis.cellIndexFromValue, 3.5 ) self.assertVectorEqual( axis.binCenters(), [0.5,1.5,2.5] ) return