Skip to content

Commit c8829bf

Browse files
cpovirkGoogle Java Core Libraries
authored and
Google Java Core Libraries
committed
Migrate JUnit double equality assertions to Truth.
This addresses some https://errorprone.info/bugpattern/JUnit3FloatingPointComparisonWithoutDelta warnings, and it moves us off the bug-prone 3-`double`-arg `assertEquals` overload. In some cases, it results in a slightly awkward mix of JUnit and Truth assertions. I think it's still worthwhile for the benefits, but obviously we can consider migrating to even more Truth assertions in the future. (We would have to be a little careful about mass migration of arbitrary assertions, since migration might [replace `assertEquals` with `isEqualTo` for testing `equals` implementations](google/truth#268), etc. But we could look at migrating, say, all equality assertions on `int` and similar types—assuming that we never use those assertions to differentiate between, say, `Integer(0)` and `Long(0)`, which Truth treats as equivalent....) PiperOrigin-RevId: 649135877
1 parent 8b0d007 commit c8829bf

26 files changed

+223
-180
lines changed

android/guava-testlib/test/com/google/common/testing/ArbitraryInstancesTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,8 +154,8 @@ public void testGet_primitives() {
154154
assertEquals(Long.valueOf(0), ArbitraryInstances.get(Long.class));
155155
assertEquals(Float.valueOf(0), ArbitraryInstances.get(float.class));
156156
assertEquals(Float.valueOf(0), ArbitraryInstances.get(Float.class));
157-
assertEquals(Double.valueOf(0), ArbitraryInstances.get(double.class));
158-
assertEquals(Double.valueOf(0), ArbitraryInstances.get(Double.class));
157+
assertThat(ArbitraryInstances.get(double.class)).isEqualTo(Double.valueOf(0));
158+
assertThat(ArbitraryInstances.get(Double.class)).isEqualTo(Double.valueOf(0));
159159
assertEquals(UnsignedInteger.ZERO, ArbitraryInstances.get(UnsignedInteger.class));
160160
assertEquals(UnsignedLong.ZERO, ArbitraryInstances.get(UnsignedLong.class));
161161
assertEquals(0, ArbitraryInstances.get(BigDecimal.class).intValue());

android/guava-tests/test/com/google/common/base/DefaultsTest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
package com.google.common.base;
1818

19+
import static com.google.common.truth.Truth.assertThat;
20+
1921
import com.google.common.annotations.GwtIncompatible;
2022
import junit.framework.TestCase;
2123

@@ -34,7 +36,7 @@ public void testGetDefaultValue() {
3436
assertEquals(0, Defaults.defaultValue(int.class).intValue());
3537
assertEquals(0, Defaults.defaultValue(long.class).longValue());
3638
assertEquals(0.0f, Defaults.defaultValue(float.class).floatValue());
37-
assertEquals(0.0d, Defaults.defaultValue(double.class).doubleValue());
39+
assertThat(Defaults.defaultValue(double.class).doubleValue()).isEqualTo(0.0d);
3840
assertNull(Defaults.defaultValue(void.class));
3941
assertNull(Defaults.defaultValue(String.class));
4042
}

android/guava-tests/test/com/google/common/cache/AbstractCacheTest.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
package com.google.common.cache;
1818

19+
import static com.google.common.truth.Truth.assertThat;
20+
1921
import com.google.common.cache.AbstractCache.SimpleStatsCounter;
2022
import com.google.common.cache.AbstractCache.StatsCounter;
2123
import com.google.common.collect.ImmutableList;
@@ -103,14 +105,14 @@ public void testEmptySimpleStats() {
103105
CacheStats stats = counter.snapshot();
104106
assertEquals(0, stats.requestCount());
105107
assertEquals(0, stats.hitCount());
106-
assertEquals(1.0, stats.hitRate());
108+
assertThat(stats.hitRate()).isEqualTo(1.0);
107109
assertEquals(0, stats.missCount());
108-
assertEquals(0.0, stats.missRate());
110+
assertThat(stats.missRate()).isEqualTo(0.0);
109111
assertEquals(0, stats.loadSuccessCount());
110112
assertEquals(0, stats.loadExceptionCount());
111113
assertEquals(0, stats.loadCount());
112114
assertEquals(0, stats.totalLoadTime());
113-
assertEquals(0.0, stats.averageLoadPenalty());
115+
assertThat(stats.averageLoadPenalty()).isEqualTo(0.0);
114116
assertEquals(0, stats.evictionCount());
115117
}
116118

@@ -135,15 +137,15 @@ public void testSingleSimpleStats() {
135137
int requestCount = 11 + 23;
136138
assertEquals(requestCount, stats.requestCount());
137139
assertEquals(11, stats.hitCount());
138-
assertEquals(11.0 / requestCount, stats.hitRate());
140+
assertThat(stats.hitRate()).isEqualTo(11.0 / requestCount);
139141
int missCount = 23;
140142
assertEquals(missCount, stats.missCount());
141-
assertEquals(((double) missCount) / requestCount, stats.missRate());
143+
assertThat(stats.missRate()).isEqualTo(((double) missCount) / requestCount);
142144
assertEquals(13, stats.loadSuccessCount());
143145
assertEquals(17, stats.loadExceptionCount());
144146
assertEquals(13 + 17, stats.loadCount());
145147
assertEquals(214, stats.totalLoadTime());
146-
assertEquals(214.0 / (13 + 17), stats.averageLoadPenalty());
148+
assertThat(stats.averageLoadPenalty()).isEqualTo(214.0 / (13 + 17));
147149
assertEquals(27, stats.evictionCount());
148150
}
149151

android/guava-tests/test/com/google/common/cache/CacheStatsTest.java

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
package com.google.common.cache;
1818

19+
import static com.google.common.truth.Truth.assertThat;
20+
1921
import junit.framework.TestCase;
2022

2123
/**
@@ -29,31 +31,31 @@ public void testEmpty() {
2931
CacheStats stats = new CacheStats(0, 0, 0, 0, 0, 0);
3032
assertEquals(0, stats.requestCount());
3133
assertEquals(0, stats.hitCount());
32-
assertEquals(1.0, stats.hitRate());
34+
assertThat(stats.hitRate()).isEqualTo(1.0);
3335
assertEquals(0, stats.missCount());
34-
assertEquals(0.0, stats.missRate());
36+
assertThat(stats.missRate()).isEqualTo(0.0);
3537
assertEquals(0, stats.loadSuccessCount());
3638
assertEquals(0, stats.loadExceptionCount());
37-
assertEquals(0.0, stats.loadExceptionRate());
39+
assertThat(stats.loadExceptionRate()).isEqualTo(0.0);
3840
assertEquals(0, stats.loadCount());
3941
assertEquals(0, stats.totalLoadTime());
40-
assertEquals(0.0, stats.averageLoadPenalty());
42+
assertThat(stats.averageLoadPenalty()).isEqualTo(0.0);
4143
assertEquals(0, stats.evictionCount());
4244
}
4345

4446
public void testSingle() {
4547
CacheStats stats = new CacheStats(11, 13, 17, 19, 23, 27);
4648
assertEquals(24, stats.requestCount());
4749
assertEquals(11, stats.hitCount());
48-
assertEquals(11.0 / 24, stats.hitRate());
50+
assertThat(stats.hitRate()).isEqualTo(11.0 / 24);
4951
assertEquals(13, stats.missCount());
50-
assertEquals(13.0 / 24, stats.missRate());
52+
assertThat(stats.missRate()).isEqualTo(13.0 / 24);
5153
assertEquals(17, stats.loadSuccessCount());
5254
assertEquals(19, stats.loadExceptionCount());
53-
assertEquals(19.0 / 36, stats.loadExceptionRate());
55+
assertThat(stats.loadExceptionRate()).isEqualTo(19.0 / 36);
5456
assertEquals(17 + 19, stats.loadCount());
5557
assertEquals(23, stats.totalLoadTime());
56-
assertEquals(23.0 / (17 + 19), stats.averageLoadPenalty());
58+
assertThat(stats.averageLoadPenalty()).isEqualTo(23.0 / (17 + 19));
5759
assertEquals(27, stats.evictionCount());
5860
}
5961

@@ -64,15 +66,15 @@ public void testMinus() {
6466
CacheStats diff = two.minus(one);
6567
assertEquals(76, diff.requestCount());
6668
assertEquals(42, diff.hitCount());
67-
assertEquals(42.0 / 76, diff.hitRate());
69+
assertThat(diff.hitRate()).isEqualTo(42.0 / 76);
6870
assertEquals(34, diff.missCount());
69-
assertEquals(34.0 / 76, diff.missRate());
71+
assertThat(diff.missRate()).isEqualTo(34.0 / 76);
7072
assertEquals(26, diff.loadSuccessCount());
7173
assertEquals(22, diff.loadExceptionCount());
72-
assertEquals(22.0 / 48, diff.loadExceptionRate());
74+
assertThat(diff.loadExceptionRate()).isEqualTo(22.0 / 48);
7375
assertEquals(26 + 22, diff.loadCount());
7476
assertEquals(14, diff.totalLoadTime());
75-
assertEquals(14.0 / (26 + 22), diff.averageLoadPenalty());
77+
assertThat(diff.averageLoadPenalty()).isEqualTo(14.0 / (26 + 22));
7678
assertEquals(4, diff.evictionCount());
7779

7880
assertEquals(new CacheStats(0, 0, 0, 0, 0, 0), one.minus(two));
@@ -85,15 +87,15 @@ public void testPlus() {
8587
CacheStats sum = two.plus(one);
8688
assertEquals(124, sum.requestCount());
8789
assertEquals(64, sum.hitCount());
88-
assertEquals(64.0 / 124, sum.hitRate());
90+
assertThat(sum.hitRate()).isEqualTo(64.0 / 124);
8991
assertEquals(60, sum.missCount());
90-
assertEquals(60.0 / 124, sum.missRate());
92+
assertThat(sum.missRate()).isEqualTo(60.0 / 124);
9193
assertEquals(56, sum.loadSuccessCount());
9294
assertEquals(52, sum.loadExceptionCount());
93-
assertEquals(52.0 / 108, sum.loadExceptionRate());
95+
assertThat(sum.loadExceptionRate()).isEqualTo(52.0 / 108);
9496
assertEquals(56 + 52, sum.loadCount());
9597
assertEquals(48, sum.totalLoadTime());
96-
assertEquals(48.0 / (56 + 52), sum.averageLoadPenalty());
98+
assertThat(sum.averageLoadPenalty()).isEqualTo(48.0 / (56 + 52));
9799
assertEquals(44, sum.evictionCount());
98100

99101
assertEquals(sum, one.plus(two));
@@ -113,15 +115,15 @@ public void testPlusLarge() {
113115
CacheStats sum = smallCacheStats.plus(maxCacheStats);
114116
assertEquals(Long.MAX_VALUE, sum.requestCount());
115117
assertEquals(Long.MAX_VALUE, sum.hitCount());
116-
assertEquals(1.0, sum.hitRate());
118+
assertThat(sum.hitRate()).isEqualTo(1.0);
117119
assertEquals(Long.MAX_VALUE, sum.missCount());
118-
assertEquals(1.0, sum.missRate());
120+
assertThat(sum.missRate()).isEqualTo(1.0);
119121
assertEquals(Long.MAX_VALUE, sum.loadSuccessCount());
120122
assertEquals(Long.MAX_VALUE, sum.loadExceptionCount());
121-
assertEquals(1.0, sum.loadExceptionRate());
123+
assertThat(sum.loadExceptionRate()).isEqualTo(1.0);
122124
assertEquals(Long.MAX_VALUE, sum.loadCount());
123125
assertEquals(Long.MAX_VALUE, sum.totalLoadTime());
124-
assertEquals(1.0, sum.averageLoadPenalty());
126+
assertThat(sum.averageLoadPenalty()).isEqualTo(1.0);
125127
assertEquals(Long.MAX_VALUE, sum.evictionCount());
126128

127129
assertEquals(sum, maxCacheStats.plus(smallCacheStats));

android/guava-tests/test/com/google/common/cache/LocalLoadingCacheTest.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,9 @@ public void testStats() {
8181
CacheStats stats = cache.stats();
8282
assertEquals(1, stats.requestCount());
8383
assertEquals(0, stats.hitCount());
84-
assertEquals(0.0, stats.hitRate());
84+
assertThat(stats.hitRate()).isEqualTo(0.0);
8585
assertEquals(1, stats.missCount());
86-
assertEquals(1.0, stats.missRate());
86+
assertThat(stats.missRate()).isEqualTo(1.0);
8787
assertEquals(1, stats.loadCount());
8888
long totalLoadTime = stats.totalLoadTime();
8989
assertTrue(totalLoadTime >= 0);
@@ -94,9 +94,9 @@ public void testStats() {
9494
stats = cache.stats();
9595
assertEquals(2, stats.requestCount());
9696
assertEquals(1, stats.hitCount());
97-
assertEquals(1.0 / 2, stats.hitRate());
97+
assertThat(stats.hitRate()).isEqualTo(1.0 / 2);
9898
assertEquals(1, stats.missCount());
99-
assertEquals(1.0 / 2, stats.missRate());
99+
assertThat(stats.missRate()).isEqualTo(1.0 / 2);
100100
assertEquals(1, stats.loadCount());
101101
assertEquals(0, stats.evictionCount());
102102

@@ -105,9 +105,9 @@ public void testStats() {
105105
stats = cache.stats();
106106
assertEquals(3, stats.requestCount());
107107
assertEquals(1, stats.hitCount());
108-
assertEquals(1.0 / 3, stats.hitRate());
108+
assertThat(stats.hitRate()).isEqualTo(1.0 / 3);
109109
assertEquals(2, stats.missCount());
110-
assertEquals(2.0 / 3, stats.missRate());
110+
assertThat(stats.missRate()).isEqualTo(2.0 / 3);
111111
assertEquals(2, stats.loadCount());
112112
assertTrue(stats.totalLoadTime() >= totalLoadTime);
113113
totalLoadTime = stats.totalLoadTime();
@@ -119,9 +119,9 @@ public void testStats() {
119119
stats = cache.stats();
120120
assertEquals(4, stats.requestCount());
121121
assertEquals(1, stats.hitCount());
122-
assertEquals(1.0 / 4, stats.hitRate());
122+
assertThat(stats.hitRate()).isEqualTo(1.0 / 4);
123123
assertEquals(3, stats.missCount());
124-
assertEquals(3.0 / 4, stats.missRate());
124+
assertThat(stats.missRate()).isEqualTo(3.0 / 4);
125125
assertEquals(3, stats.loadCount());
126126
assertTrue(stats.totalLoadTime() >= totalLoadTime);
127127
assertTrue(stats.averageLoadPenalty() >= 0.0);

android/guava-tests/test/com/google/common/collect/ImmutableClassToInstanceMapTest.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package com.google.common.collect;
1818

1919
import static com.google.common.collect.Maps.immutableEntry;
20+
import static com.google.common.truth.Truth.assertThat;
2021
import static org.junit.Assert.assertThrows;
2122

2223
import com.google.common.collect.testing.MapTestSuiteBuilder;
@@ -110,7 +111,7 @@ public void testCopyOf_map_valid() {
110111
assertEquals(0, zero);
111112

112113
Double pi = map.getInstance(Double.class);
113-
assertEquals(Math.PI, pi, 0.0);
114+
assertThat(pi).isEqualTo(Math.PI);
114115

115116
assertSame(map, ImmutableClassToInstanceMap.copyOf(map));
116117
}
@@ -140,7 +141,7 @@ public void testCopyOf_imap_valid() {
140141
assertEquals(0, zero);
141142

142143
Double pi = map.getInstance(Double.class);
143-
assertEquals(Math.PI, pi, 0.0);
144+
assertThat(pi).isEqualTo(Math.PI);
144145
}
145146

146147
public void testPrimitiveAndWrapper() {

android/guava-tests/test/com/google/common/hash/BloomFilterTest.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ public void testCreateAndCheckMitz32BloomFilterWithKnownFalsePositives() {
122122
assertEquals(knownNumberOfFalsePositives, numFpp);
123123
double expectedReportedFpp = (double) knownNumberOfFalsePositives / numInsertions;
124124
double actualReportedFpp = bf.expectedFpp();
125-
assertEquals(expectedReportedFpp, actualReportedFpp, 0.00015);
125+
assertThat(actualReportedFpp).isWithin(0.00015).of(expectedReportedFpp);
126126
}
127127

128128
public void testCreateAndCheckBloomFilterWithKnownFalsePositives64() {
@@ -166,7 +166,7 @@ public void testCreateAndCheckBloomFilterWithKnownFalsePositives64() {
166166
assertEquals(knownNumberOfFalsePositives, numFpp);
167167
double expectedReportedFpp = (double) knownNumberOfFalsePositives / numInsertions;
168168
double actualReportedFpp = bf.expectedFpp();
169-
assertEquals(expectedReportedFpp, actualReportedFpp, 0.00033);
169+
assertThat(actualReportedFpp).isWithin(0.00033).of(expectedReportedFpp);
170170
}
171171

172172
public void testCreateAndCheckBloomFilterWithKnownUtf8FalsePositives64() {
@@ -209,7 +209,7 @@ public void testCreateAndCheckBloomFilterWithKnownUtf8FalsePositives64() {
209209
assertEquals(knownNumberOfFalsePositives, numFpp);
210210
double expectedReportedFpp = (double) knownNumberOfFalsePositives / numInsertions;
211211
double actualReportedFpp = bf.expectedFpp();
212-
assertEquals(expectedReportedFpp, actualReportedFpp, 0.00033);
212+
assertThat(actualReportedFpp).isWithin(0.00033).of(expectedReportedFpp);
213213
}
214214

215215
/** Sanity checking with many combinations of false positive rates and expected insertions */
@@ -323,7 +323,7 @@ public void testCopy() {
323323
public void testExpectedFpp() {
324324
BloomFilter<Object> bf = BloomFilter.create(HashTestUtils.BAD_FUNNEL, 10, 0.03);
325325
double fpp = bf.expectedFpp();
326-
assertEquals(0.0, fpp);
326+
assertThat(fpp).isEqualTo(0.0);
327327
// usually completed in less than 200 iterations
328328
while (fpp != 1.0) {
329329
boolean changed = bf.put(new Object());
@@ -485,7 +485,7 @@ public void testJavaSerialization() {
485485
for (int i = 0; i < 10; i++) {
486486
assertTrue(copy.mightContain(Ints.toByteArray(i)));
487487
}
488-
assertEquals(bf.expectedFpp(), copy.expectedFpp());
488+
assertThat(copy.expectedFpp()).isEqualTo(bf.expectedFpp());
489489

490490
SerializableTester.reserializeAndAssert(bf);
491491
}

android/guava-tests/test/com/google/common/hash/HashTestUtils.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package com.google.common.hash;
1818

19+
import static com.google.common.truth.Truth.assertThat;
1920
import static org.junit.Assert.assertEquals;
2021
import static org.junit.Assert.assertFalse;
2122

@@ -353,7 +354,7 @@ static void checkAvalanche(HashFunction function, int trials, double epsilon) {
353354
// measure probability and assert it's within margin of error
354355
for (int j = 0; j < hashBits; j++) {
355356
double prob = (double) diff[j] / (double) (diff[j] + same[j]);
356-
Assert.assertEquals(0.50d, prob, epsilon);
357+
assertThat(prob).isWithin(epsilon).of(0.50d);
357358
}
358359
}
359360
}
@@ -450,7 +451,7 @@ static void check2BitAvalanche(HashFunction function, int trials, double epsilon
450451
// measure probability and assert it's within margin of error
451452
for (int j = 0; j < hashBits; j++) {
452453
double prob = (double) diff[j] / (double) (diff[j] + same[j]);
453-
Assert.assertEquals(0.50d, prob, epsilon);
454+
assertThat(prob).isWithin(epsilon).of(0.50d);
454455
}
455456
}
456457
}

android/guava-tests/test/com/google/common/io/ByteStreamsTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -178,14 +178,14 @@ public void testNewDataInput_readLine() {
178178
public void testNewDataInput_readFloat() {
179179
byte[] data = {0x12, 0x34, 0x56, 0x78, 0x76, 0x54, 0x32, 0x10};
180180
ByteArrayDataInput in = ByteStreams.newDataInput(data);
181-
assertEquals(Float.intBitsToFloat(0x12345678), in.readFloat(), 0.0);
182-
assertEquals(Float.intBitsToFloat(0x76543210), in.readFloat(), 0.0);
181+
assertThat(in.readFloat()).isEqualTo(Float.intBitsToFloat(0x12345678));
182+
assertThat(in.readFloat()).isEqualTo(Float.intBitsToFloat(0x76543210));
183183
}
184184

185185
public void testNewDataInput_readDouble() {
186186
byte[] data = {0x12, 0x34, 0x56, 0x78, 0x76, 0x54, 0x32, 0x10};
187187
ByteArrayDataInput in = ByteStreams.newDataInput(data);
188-
assertEquals(Double.longBitsToDouble(0x1234567876543210L), in.readDouble(), 0.0);
188+
assertThat(in.readDouble()).isEqualTo(Double.longBitsToDouble(0x1234567876543210L));
189189
}
190190

191191
public void testNewDataInput_readUTF() {

0 commit comments

Comments
 (0)