Search in sources :

Example 1 with IPersistentMap

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());
}
Also used : IFn(clojure.lang.IFn) IPersistentMap(clojure.lang.IPersistentMap) GroovyTest(org.enumerable.lambda.support.groovy.GroovyTest) ScalaTest(org.enumerable.lambda.support.scala.ScalaTest) JRubyTest(org.enumerable.lambda.support.jruby.JRubyTest) Test(org.junit.Test) JavaScriptTest(org.enumerable.lambda.support.javascript.JavaScriptTest)

Aggregations

IFn (clojure.lang.IFn)1 IPersistentMap (clojure.lang.IPersistentMap)1 GroovyTest (org.enumerable.lambda.support.groovy.GroovyTest)1 JavaScriptTest (org.enumerable.lambda.support.javascript.JavaScriptTest)1 JRubyTest (org.enumerable.lambda.support.jruby.JRubyTest)1 ScalaTest (org.enumerable.lambda.support.scala.ScalaTest)1 Test (org.junit.Test)1