package ilarkesto.fp;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import junit.framework.TestCase;
public class FPTest extends TestCase {
public void testGroup() {
Collection<String> elements = new ArrayList<String>();
elements.add("abc");
elements.add("123");
elements.add("456");
Function<String, String> textOrNumGroupFunction = new Function<String, String>() {
public String eval(String e) {
try {
Integer.parseInt(e);
return "num";
} catch (NumberFormatException ex) {
return "text";
}
}
};
Map<String, List<String>> result = FP.group(elements, textOrNumGroupFunction);
List<String> nums = result.get("num");
List<String> texts = result.get("text");
List<String> others = result.get("other");
assertNotNull(texts);
assertNotNull(nums);
assertNull(others);
assertEquals(1, texts.size());
assertEquals(2, nums.size());
assertTrue(texts.contains("abc"));
assertTrue(nums.contains("123"));
assertFalse(nums.contains("abc"));
}
}