### Question:
SetMatchFunctionDecorator implements SetMatchFunction<E,T> { private MatchTable<E, T> match(Set<E> source, Set<E> target, boolean full){ MatchTable<E,T> result = new MatchTable<E, T>(); for(E y : target){ for(E x : source){ T matchType = decoratedMatcher.match(x,y); if (matchType != null){ result.addMatch(x,y,matchType); if (!full) break; } } } return result; } SetMatchFunctionDecorator(MatchFunction<E, T> decoratedMatcher); @Override MatchTable<E, T> partialMatch(Set<E> source, Set<E> target); @Override MatchTable<E, T> fullMatch(Set<E> source, Set<E> target); @Override T match(E source, E target);  }### Answer:
@Test public void testMatch() throws Exception { assertEquals(1, setMatcher.match("a","d").intValue()); }