@@ -81,6 +81,21 @@ TEST_F(IntervalTests, TestLimits)
8181 EXPECT_EQ (ival.high (), std::numeric_limits<types::value_type>::max ());
8282}
8383
84+ TEST_F (IntervalTests, TestIntervalSize)
85+ {
86+ auto ival = types::interval_type{0 , 5 };
87+ EXPECT_EQ (ival.size (), 5 );
88+
89+ auto ival2 = types::interval_type{-21 , 5 };
90+ EXPECT_EQ (ival2.size (), 26 );
91+
92+ auto ival3 = types::interval_type{-20 , -5 };
93+ EXPECT_EQ (ival3.size (), 15 );
94+
95+ auto ival4 = types::interval_type{100 , 125 };
96+ EXPECT_EQ (ival4.size (), 25 );
97+ }
98+
8499TEST_F (OverlapTests, ShallOverlapItself)
85100{
86101 auto base = types::interval_type{0 , 5 };
@@ -212,7 +227,34 @@ TEST_F(ContainmentTests, ExpectIntervalNotWithinOther)
212227TEST_F (DistanceTests, DistanceIsZeroOnOverlap)
213228{
214229 auto base = types::interval_type{-35 , 96 };
215-
216230 auto other = types::interval_type{-20 , 600 };
217231 EXPECT_EQ (base - other, 0 );
218232}
233+
234+ TEST_F (DistanceTests, DistanceLeftSide)
235+ {
236+ auto base = types::interval_type{5 , 10 };
237+ auto other = types::interval_type{0 , 1 };
238+ EXPECT_EQ (base - other, 4 );
239+ }
240+
241+ TEST_F (DistanceTests, DistanceRightSide)
242+ {
243+ auto base = types::interval_type{5 , 10 };
244+ auto other = types::interval_type{15 , 18 };
245+ EXPECT_EQ (base - other, 5 );
246+ }
247+
248+ TEST_F (DistanceTests, DistanceAdjacent)
249+ {
250+ auto base = types::interval_type{5 , 10 };
251+ auto other = types::interval_type{10 , 18 };
252+ EXPECT_EQ (base - other, 0 );
253+ }
254+
255+ TEST_F (DistanceTests, DistanceAdjacent2)
256+ {
257+ auto base = types::interval_type{5 , 10 };
258+ auto other = types::interval_type{0 , 5 };
259+ EXPECT_EQ (base - other, 0 );
260+ }
0 commit comments