Swiftの半開区間/閉区間の表現を使うとして
 (10 ..< 20) → (10 <= x < 20) 要素数: 20-10  = 10
 (10 ... 19) → (10 <= x <= 19) 要素数: 19-10+1 = 10

2分割を考える

整数区間の表現や分割は互いに代用可能
 (10 ..< 20) → (10 ..< 15) (15 ..< 20) 要素数: 5, 5
 (10 ... 19) → (10 ... 14) (15 ... 19) 要素数: 5, 5

実数区間は代用不可能 ※精度の仮定無しに <= 1.9999.. は表現不可
 (1.0 ..< 2.0) → (1.0 ..< 1.5) (1.5 ..< 2.0)
 (1.0 ... 2.0) → (1.0 ... 1.5) (1.5 ... 2.0) ※境界点のhitTestは両方に該当

閉区間では整数区間と実数区間で考え方が異なる
また、固有の値の数が多くなりがち (10...14) (15...19) → 10,14,15,19

両方あるべきとは思うけど、半開区間の方がロジックが簡潔になることが多い