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.

Assignee Loading
Time tracking Loading