The "buckets" you provide are actually boundaries. When you provide 1, 2 and 3, then you get the buckets ~1, 1~2, 2~3, 3~
So, zero would be placed in your first bucket. The upper boundary is inclusive, while the lower boundary is exclusive. This is why the tag for the bucket is le
(less equal) with the value of this tag being the upper boundary of the bucket.