use of clojure.lang.IPersistentMap in project enumerable by hraberg.
the class ClojureTest method convertFnToIFnHandlesWithMeta.
@Test
public void convertFnToIFnHandlesWithMeta() throws Exception {
IFn fn = (IFn) toIFn(Lambda.λ(s = "world", s.toUpperCase()));
defn("to-upper-case", fn);
IFn fnWithMeta = (IFn) clj.eval("(with-meta to-upper-case {:hello \"world\"})");
assertNotSame(fn, fnWithMeta);
defn("to-upper-case-with-meta", fnWithMeta);
IPersistentMap meta = (IPersistentMap) clj.eval("(meta to-upper-case-with-meta)");
assertEquals(1, meta.count());
assertEquals("world", meta.valAt(clj.eval(":hello")));
assertEquals("HELLO", fnWithMeta.invoke("hello"));
assertEquals("WORLD", fnWithMeta.invoke());
}
Aggregations