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)