@@ -64,6 +64,16 @@ TEST(RRegularAxis, ComputeLinearizedIndex)
64
64
EXPECT_FALSE (linIndex.fValid );
65
65
}
66
66
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
+
67
77
for (std::size_t i = 0 ; i < Bins; i++) {
68
78
auto linIndex = axis.ComputeLinearizedIndex (i + 0.5 );
69
79
EXPECT_EQ (linIndex.fIndex , i);
@@ -73,6 +83,16 @@ TEST(RRegularAxis, ComputeLinearizedIndex)
73
83
EXPECT_TRUE (linIndex.fValid );
74
84
}
75
85
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
+
76
96
// Overflow
77
97
static constexpr double PositiveInfinity = std::numeric_limits<double >::infinity ();
78
98
static constexpr double NaN = std::numeric_limits<double >::quiet_NaN ();
0 commit comments