Internal change. PiperOrigin-RevId: 953305255 Change-Id: If5ec2c400c00556de9658d77ac9cc399f9b34e1a
diff --git a/src/main/java/com/google/devtools/build/lib/util/Bucket.java b/src/main/java/com/google/devtools/build/lib/util/Bucket.java index 0542091..270f753 100644 --- a/src/main/java/com/google/devtools/build/lib/util/Bucket.java +++ b/src/main/java/com/google/devtools/build/lib/util/Bucket.java
@@ -18,4 +18,10 @@ /** A bucket of values. min is inclusive, max is exclusive. */ @SkybridgeInterface -public record Bucket(long minInclusive, long maxExclusive, long count) {} +public interface Bucket { + long minInclusive(); + + long maxExclusive(); + + long count(); +}
diff --git a/src/main/java/com/google/devtools/build/lib/util/DecimalBucketer.java b/src/main/java/com/google/devtools/build/lib/util/DecimalBucketer.java index a175ccb..3a3f857 100644 --- a/src/main/java/com/google/devtools/build/lib/util/DecimalBucketer.java +++ b/src/main/java/com/google/devtools/build/lib/util/DecimalBucketer.java
@@ -14,6 +14,7 @@ package com.google.devtools.build.lib.util; +import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; import java.util.ArrayList; @@ -61,7 +62,7 @@ if (count > 0) { long min = base * leadingDigit; long max = Long.MAX_VALUE - base < min ? Long.MAX_VALUE : min + base; - builder.add(new Bucket(min, max, count)); + builder.add(new BucketImpl(min, max, count)); } leadingDigit += 1; @@ -72,4 +73,7 @@ } return builder.build(); } + + @VisibleForTesting + record BucketImpl(long minInclusive, long maxExclusive, long count) implements Bucket {} }
diff --git a/src/test/java/com/google/devtools/build/lib/util/DecimalBucketerTest.java b/src/test/java/com/google/devtools/build/lib/util/DecimalBucketerTest.java index c7de94e..f72d03a 100644 --- a/src/test/java/com/google/devtools/build/lib/util/DecimalBucketerTest.java +++ b/src/test/java/com/google/devtools/build/lib/util/DecimalBucketerTest.java
@@ -34,14 +34,14 @@ public void testSingleValue() { DecimalBucketer bucketer = new DecimalBucketer(); bucketer.add(5); - assertThat(bucketer.getBuckets()).containsExactly(new Bucket(5, 6, 1)); + assertThat(bucketer.getBuckets()).containsExactly(new DecimalBucketer.BucketImpl(5, 6, 1)); } @Test public void testZero() { DecimalBucketer bucketer = new DecimalBucketer(); bucketer.add(0); - assertThat(bucketer.getBuckets()).containsExactly(new Bucket(0, 1, 1)); + assertThat(bucketer.getBuckets()).containsExactly(new DecimalBucketer.BucketImpl(0, 1, 1)); } @Test @@ -50,7 +50,7 @@ bucketer.add(10); bucketer.add(15); bucketer.add(19); - assertThat(bucketer.getBuckets()).containsExactly(new Bucket(10, 20, 3)); + assertThat(bucketer.getBuckets()).containsExactly(new DecimalBucketer.BucketImpl(10, 20, 3)); } @Test @@ -65,11 +65,11 @@ assertThat(bucketer.getBuckets()) .containsExactly( - new Bucket(5, 6, 1), - new Bucket(10, 20, 2), - new Bucket(20, 30, 1), - new Bucket(90, 100, 1), - new Bucket(100, 200, 1)) + new DecimalBucketer.BucketImpl(5, 6, 1), + new DecimalBucketer.BucketImpl(10, 20, 2), + new DecimalBucketer.BucketImpl(20, 30, 1), + new DecimalBucketer.BucketImpl(90, 100, 1), + new DecimalBucketer.BucketImpl(100, 200, 1)) .inOrder(); } @@ -81,7 +81,9 @@ bucketer.add(69999); assertThat(bucketer.getBuckets()) - .containsExactly(new Bucket(5, 6, 1), new Bucket(60000, 70000, 2)) + .containsExactly( + new DecimalBucketer.BucketImpl(5, 6, 1), + new DecimalBucketer.BucketImpl(60000, 70000, 2)) .inOrder(); } @@ -97,6 +99,7 @@ long val = 9000000000000000000L; // 9 * 10^18 bucketer.add(val); - assertThat(bucketer.getBuckets()).containsExactly(new Bucket(val, Long.MAX_VALUE, 1)); + assertThat(bucketer.getBuckets()) + .containsExactly(new DecimalBucketer.BucketImpl(val, Long.MAX_VALUE, 1)); } }