yoda-2.1.2: TestBinEstimators.cc auto testLogEst() FAILED on i686/32bit
I modified:
auto testLogEst() {
LogBinEstimator est1(0, 0.1, 10);
LogBinEstimator est2(1, 0.1, 10);
std::cout << est1.estindex( -1.) << std::endl;
std::cout << est1.estindex( 0.) << std::endl;
std::cout << est1.estindex( 1.) << std::endl;
std::cout << est1.estindex( 5.) << std::endl;
std::cout << est1.estindex( 10.) << std::endl;
std::cout << est1.estindex(100.) << std::endl;
std::cout << est2.estindex( -1.) << std::endl;
std::cout << est2.estindex( 0.) << std::endl;
std::cout << est2.estindex( 1.) << std::endl;
std::cout << est2.estindex( 5.) << std::endl;
std::cout << est2.estindex( 10.) << std::endl;
std::cout << est2.estindex(100.) << std::endl;
return CHECK_TEST_RES(est1.estindex( -1.) == 0 &&
est1.estindex( 0.) == 0 &&
est1.estindex( 1.) == 0 &&
est1.estindex( 5.) == 0 &&
est1.estindex( 10.) == 0 &&
est1.estindex(100.) == 0 &&
est2.estindex( -1.) == 0 &&
est2.estindex( 0.) == 0 &&
est2.estindex( 1.) == 1 &&
est2.estindex( 5.) == 1 &&
est2.estindex( 10.) == 2 &&
est2.estindex(100.) == 2);
}
and got
# ./testbinestimators
0
0
0
0
0
0
0
0
1
1
1
2
auto testLogEst() FAILED
where est2.estindex( 10.) == 2 is 1 instead.
I am running on an amd64 machine but in 32bit chroot with -march=i686, which seems to have different precision in rounding math.