xref: /aosp_15_r20/external/leakcanary2/shark-graph/src/test/java/shark/LongScatterSetAssertion.kt (revision d9e8da70d8c9df9a41d7848ae506fb3115cae6e6)
1 package shark
2 
3 import org.assertj.core.api.Assertions.assertThat
4 import shark.internal.hppc.LongScatterSet
5 
6 /**
7  * Assertion class for writing checks for [LongScatterSet] in AssertJ style.
8  * API is made similar to [org.assertj.core.api.AbstractIterableAssert].
9  */
10 internal class LongScatterSetAssertion(private val actual: LongScatterSet) {
11 
<lambda>null12   fun contains(value: Long) = apply {
13     assertThat(value in actual).isTrue()
14   }
15 
<lambda>null16   fun contains(values: List<Long>) = apply {
17     values.forEach { contains(it) }
18   }
19 
<lambda>null20   fun containsExactly(value: Long) = apply {
21     hasSize(1)
22     contains(value)
23   }
24 
<lambda>null25   fun containsExactly(values: List<Long>) = apply {
26     hasSize(values.size)
27     contains(values)
28   }
29 
<lambda>null30   fun hasSize(expected: Int) = apply {
31     assertThat(actual.size()).isEqualTo(expected)
32   }
33 
isEmptynull34   fun isEmpty() = hasSize(0)
35 
36   companion object {
37     fun assertThat(actual: LongScatterSet): LongScatterSetAssertion =
38       LongScatterSetAssertion(actual)
39   }
40 }
41