9#ifndef TRKDETDESCRUNITTESTS_BinUtilityTEST_H
10#define TRKDETDESCRUNITTESTS_BinUtilityTEST_H
13#include "GaudiKernel/ServiceHandle.h"
14#include "GaudiKernel/ToolHandle.h"
42 void prepareData(std::vector<float>&
vec, std::map<float, size_t>&
map,
float& low,
float& high);
47 if ( value < array[0] )
return 0;
48 if ( value > array[array.size()-1] )
return (array.size()-1);
49 std::vector<float>::iterator vIter = array.begin();
51 for ( ; vIter != array.end() ; ++vIter, ++
bin )
52 if ((*vIter) > value)
break;
61 if ( value < array[0] )
return 0;
62 if ( value > array[array.size()-1] )
return (array.size()-1);
64 size_t nabove, nbelow, middle;
66 nabove = array.size()+1;
67 if ( value > array[nabove-2])
return nabove-2;
70 while (nabove-nbelow > 1) {
71 middle = (nabove+nbelow)/2;
72 if (value == array[middle-1])
return middle-1;
73 if (value < array[middle-1]) nabove = middle;
std::vector< size_t > vec
size_t m_numberOfTestsPerSet
size_t searchInVectorWithBoundary(std::vector< float > &array, float value)
A binary search with a map - superior in O(10) searches.
size_t m_numberOfSegments
size_t binarySearchWithBoundary(std::vector< float > &array, float value)
A binary search with underflow/overflow.
void prepareData(std::vector< float > &vec, std::map< float, size_t > &map, float &low, float &high)
preparation of std::vector and std::map for comparison
BinUtilityTest(const std::string &name, ISvcLocator *pSvcLocator)
Standard Athena-Algorithm Constructor.
TrkDetDescrUnitTestBase(const std::string &name, ISvcLocator *pSvcLocator)
Standard Athena-Algorithm Constructor.
Ensure that the ATLAS eigen extensions are properly loaded.