Exemplo n.º 1
0
    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
Exemplo n.º 2
0
    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
Exemplo n.º 3
0
    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
Exemplo n.º 4
0
 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