final class RelationshipTester<T>
extends java.lang.Object
EqualsTester and EquivalenceTester that tests for
equivalence classes.| Modifier and Type | Class and Description |
|---|---|
(package private) static class |
RelationshipTester.Item<T> |
(package private) static class |
RelationshipTester.ItemReporter |
| Modifier and Type | Field and Description |
|---|---|
private Equivalence<? super T> |
equivalence
A word about using
Equivalence, which automatically checks for null and
identical inputs: This sounds like it ought to be a problem here, since the goals of this class
include testing that equals() is reflexive and is tolerant of null. |
private java.util.List<ImmutableList<T>> |
groups |
private java.lang.String |
hashName |
private RelationshipTester.ItemReporter |
itemReporter |
private java.lang.String |
relationshipName |
| Constructor and Description |
|---|
RelationshipTester(Equivalence<? super T> equivalence,
java.lang.String relationshipName,
java.lang.String hashName,
RelationshipTester.ItemReporter itemReporter) |
| Modifier and Type | Method and Description |
|---|---|
RelationshipTester<T> |
addRelatedGroup(java.lang.Iterable<? extends T> group) |
private void |
assertRelated(int groupNumber,
int itemNumber,
int relatedItemNumber) |
private void |
assertUnrelated(int groupNumber,
int itemNumber,
int unrelatedGroupNumber,
int unrelatedItemNumber) |
private void |
assertWithTemplate(java.lang.String template,
RelationshipTester.Item<T> item,
RelationshipTester.Item<T> other,
boolean condition) |
private RelationshipTester.Item<T> |
getItem(int groupNumber,
int itemNumber) |
void |
test() |
private final Equivalence<? super T> equivalence
Equivalence, which automatically checks for null and
identical inputs: This sounds like it ought to be a problem here, since the goals of this class
include testing that equals() is reflexive and is tolerant of null. However,
there's no problem. The reason: EqualsTester tests null and identical inputs
directly against equals() rather than through the Equivalence.private final java.lang.String relationshipName
private final java.lang.String hashName
private final RelationshipTester.ItemReporter itemReporter
private final java.util.List<ImmutableList<T>> groups
RelationshipTester(Equivalence<? super T> equivalence, java.lang.String relationshipName, java.lang.String hashName, RelationshipTester.ItemReporter itemReporter)
public RelationshipTester<T> addRelatedGroup(java.lang.Iterable<? extends T> group)
public void test()
private void assertRelated(int groupNumber,
int itemNumber,
int relatedItemNumber)
private void assertUnrelated(int groupNumber,
int itemNumber,
int unrelatedGroupNumber,
int unrelatedItemNumber)
private void assertWithTemplate(java.lang.String template,
RelationshipTester.Item<T> item,
RelationshipTester.Item<T> other,
boolean condition)
private RelationshipTester.Item<T> getItem(int groupNumber, int itemNumber)