@Override public void accept(final long value) { set(value); } }
@Override public Mutable<T1> set(final T1 value) { host.set(fn.apply(value)); return this; }
@Override public MutableLong set(final long value) { host.set(fn.applyAsLong(value)); return this; }
@Test public void inClosure(){ MutableLong myInt = new MutableLong(0); Function<Integer,Function<Integer,MutableLong>> fn = ((Integer i)-> (Integer j)-> myInt.set(i*j)); fn.apply(10).apply(20); assertThat(myInt.getAsLong(), is(200l)); } @Test
@Test public void inClosure2(){ MutableLong myInt = new MutableLong(0); BiFunction<Integer,Integer,MutableLong> fn = (i,j)-> myInt.set(i*j); fn.apply(10,20); assertThat(myInt.getAsLong(), is(200l)); }
@Test public void externalSet(){ value = 0; MutableLong ext = MutableLong.fromExternal(()->value,v->this.value=v); ext.set(10l); assertThat(value,equalTo(10l)); }
@Test public void externalMapInput(){ value = 0; MutableLong ext = MutableLong.fromExternal(()->value,v->this.value=v) .mapInput(s->s+10); ext.set(50); assertThat(value,equalTo(60l)); }
@Test public void testSet() { assertThat(new MutableLong().set(1000).getAsLong(),is(1000l)); }
@Override public void accept(final long value) { set(value); } }
@Override public Mutable<T1> set(final T1 value) { host.set(fn.apply(value)); return this; }
@Override public MutableLong set(final long value) { host.set(fn.applyAsLong(value)); return this; }