@@ -64,6 +64,16 @@ TEST(RRegularAxis, ComputeLinearizedIndex)
6464 EXPECT_FALSE (linIndex.fValid );
6565 }
6666
67+ // Exactly the lower end of the axis interval
68+ {
69+ auto linIndex = axis.ComputeLinearizedIndex (0 );
70+ EXPECT_EQ (linIndex.fIndex , 0 );
71+ EXPECT_TRUE (linIndex.fValid );
72+ linIndex = axisNoFlowBins.ComputeLinearizedIndex (0 );
73+ EXPECT_EQ (linIndex.fIndex , 0 );
74+ EXPECT_TRUE (linIndex.fValid );
75+ }
76+
6777 for (std::size_t i = 0 ; i < Bins; i++) {
6878 auto linIndex = axis.ComputeLinearizedIndex (i + 0.5 );
6979 EXPECT_EQ (linIndex.fIndex , i);
@@ -73,6 +83,16 @@ TEST(RRegularAxis, ComputeLinearizedIndex)
7383 EXPECT_TRUE (linIndex.fValid );
7484 }
7585
86+ // Exactly the upper end of the axis interval
87+ {
88+ auto linIndex = axis.ComputeLinearizedIndex (Bins);
89+ EXPECT_EQ (linIndex.fIndex , Bins + 1 );
90+ EXPECT_TRUE (linIndex.fValid );
91+ linIndex = axisNoFlowBins.ComputeLinearizedIndex (Bins);
92+ EXPECT_EQ (linIndex.fIndex , Bins + 1 );
93+ EXPECT_FALSE (linIndex.fValid );
94+ }
95+
7696 // Overflow
7797 static constexpr double PositiveInfinity = std::numeric_limits<double >::infinity ();
7898 static constexpr double NaN = std::numeric_limits<double >::quiet_NaN ();
0 commit comments