package com.algocrafts.domain; import java.util.Set; import static com.google.common.collect.Sets.newHashSet; public class SetDiff<T> { private String diff; private final Set<T> expected; private final Set<T> actual; public SetDiff(String info, Set<T> expected, Set<T> actual) { this.diff = info; this.expected = expected; this.actual = actual; } @Override public String toString() { if (actual.size() > 0) { diff += "\nactual results,\n" + actual + "\n"; } Set<T> onlyInExpected = newHashSet(expected); onlyInExpected.removeAll(actual); actual.removeAll(expected); if (actual.size() > 0) { diff += "\nunexpected results appeared in actual,\n" + actual + "\n"; } if (onlyInExpected.size() > 0) { diff += "\nexpected results not found in actual,\n" + onlyInExpected + "\n"; } return diff; } }