package org.enumerable.lambda.support.functionaljava;
import static fj.Ord.*;
import static fj.data.TreeMap.*;
import static org.enumerable.lambda.support.functionaljava.LambdaFunctionalJava.*;
import static org.junit.Assert.*;
import org.enumerable.lambda.annotation.LambdaParameter;
import org.junit.Test;
import fj.Ord;
import fj.Ordering;
import fj.data.TreeMap;
/**
* Queries and updates an entry in a TreeMap in one go.
*/
public class TreeMap_Update {
@LambdaParameter
static Integer i;
@LambdaParameter
static String a1, a2;
@Test
public void test() {
TreeMap<String, Integer> map = empty(stringOrd());
map = map.set("foo", 2);
map = map.update("foo", λ(i, i + 3))._2();
assertEquals(5, (int) (map.get("foo").some())); // 5
}
public static Ord<String> stringOrd() {
return ord(λ(a1, λ(a2, a1.compareTo(a2) < 0 ? Ordering.LT : a1.compareTo(a2) == 0 ? Ordering.EQ : Ordering.GT)));
}
}