I think I've written a unit test for the contract of this function as
written in the javadoc, but it fails. The intersection function
returns an empty collection when the inputs most definitely have a
non-null intersection. What am I missing?
@SuppressWarnings( "rawtypes" )
@Test
public void testIntersection() throws Exception {
Collection<String> c1 = new ArrayList<String>();
Collection<String> c2 = new ArrayList<String>();
/*
* An exhaustive black box test here
* would involve generating a great deal of data,
* perhaps even different sizes and collection classes.
*/
c1.add("red");
c1.add("blue");
c1.add("green");
c1.add("socialist");
c1.add("red");
c1.add("purple");
c1.add("porpoise");
c1.add("green");
c1.add("blue");
c1.add("gray");
c1.add("blue");
c1.add("12");
c1.add("15");
c1.add("blue");
c1.add("porpoise");
c1.add("33.3");
c1.add("jabberwock");
Multiset<String> correct = HashMultiset.create();
correct.add( "blue" );
correct.add( "blue" );
correct.add( " porpoise ");
@SuppressWarnings( "unchecked" )
Collection<String> res = CollectionUtils.intersection( c1, c2 );
Multiset<String> actual = HashMultiset.create();
actual.addAll(res);
assertEquals( correct, actual );
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]