Java 类java.util.function.ToIntBiFunction 实例源码

项目:memoization.java    文件:ConcurrentMapBasedToIntBiFunctionMemoizerTest.java   
/**
 *
 */
@Test
@SuppressWarnings(CompilerWarnings.UNUSED)
public void shouldRequireNonNullCache() {
    // given
    final ConcurrentMap<String, Integer> cache = null;
    final BiFunction<String, String, String> keyFunction = (a, b) -> "key";
    final ToIntBiFunction<String, String> biFunction = (a, b) -> 123;

    // when
    thrown.expect(NullPointerException.class);
    thrown.expectMessage("Provide an empty map instead of NULL.");

    // then
    new ConcurrentMapBasedToIntBiFunctionMemoizer<>(cache, keyFunction, biFunction);
}
项目:memoization.java    文件:ConcurrentMapBasedToIntBiFunctionMemoizerTest.java   
/**
 *
 */
@Test
@SuppressWarnings(CompilerWarnings.UNUSED)
public void shouldRequireNonNullKeyBiFunction() {
    // given
    final ConcurrentMap<String, Integer> cache = new ConcurrentHashMap<>();
    final BiFunction<String, String, String> keyFunction = null;
    final ToIntBiFunction<String, String> biFunction = (a, b) -> 123;

    // when
    thrown.expect(NullPointerException.class);
    thrown.expectMessage("Provide a key function, might just be 'MemoizationDefaults.hashCodeKeyFunction()'.");

    // then
    new ConcurrentMapBasedToIntBiFunctionMemoizer<>(cache, keyFunction, biFunction);
}
项目:memoization.java    文件:ConcurrentMapBasedToIntBiFunctionMemoizerTest.java   
/**
 *
 */
@Test
@SuppressWarnings(CompilerWarnings.UNUSED)
public void shouldRequireNonNullBiFunction() {
    // given
    final ConcurrentMap<String, Integer> cache = new ConcurrentHashMap<>();
    final BiFunction<String, String, String> keyFunction = (a, b) -> "key";
    final ToIntBiFunction<String, String> biFunction = null;

    // when
    thrown.expect(NullPointerException.class);
    thrown.expectMessage(
            "Cannot memoize a NULL ToIntBiFunction - provide an actual ToIntBiFunction to fix this.");

    // then
    new ConcurrentMapBasedToIntBiFunctionMemoizer<>(cache, keyFunction, biFunction);
}
项目:memoization.java    文件:ConcurrentMapBasedToIntBiFunctionMemoizerTest.java   
/**
*
*/
@Test
public void shouldUseSetCacheKeyAndValue() {
    // given
    final ConcurrentMap<String, Integer> cache = new ConcurrentHashMap<>();
    final BiFunction<String, String, String> keyFunction = (a, b) -> "key";
    final ToIntBiFunction<String, String> biFunction = (a, b) -> 123;

    // when
    final ConcurrentMapBasedToIntBiFunctionMemoizer<String, String, String> memoizer = new ConcurrentMapBasedToIntBiFunctionMemoizer<>(
            cache, keyFunction, biFunction);

    // then
    memoizer.applyAsInt("123.456", "789.123");
    Assert.assertFalse("Cache is still empty after memoization", memoizer.viewCacheForTest().isEmpty());
    Assert.assertEquals("Memoization key does not match expectations", "key",
            memoizer.viewCacheForTest().keySet().iterator().next());
    Assert.assertEquals("Memoization value does not match expectations", 123,
            memoizer.viewCacheForTest().values().iterator().next().intValue());
}
项目:memoization.java    文件:ConcurrentMapBasedToIntBiFunctionMemoizerTest.java   
/**
*
*/
@Test
@SuppressWarnings(CompilerWarnings.UNCHECKED)
public void shouldUseCallWrappedBiFunction() {
    // given
    final ConcurrentMap<String, Integer> cache = new ConcurrentHashMap<>();
    final BiFunction<String, String, String> keyFunction = (a, b) -> "key";
    final ToIntBiFunction<String, String> biFunction = Mockito.mock(ToIntBiFunction.class);

    // when
    final ConcurrentMapBasedToIntBiFunctionMemoizer<String, String, String> memoizer = new ConcurrentMapBasedToIntBiFunctionMemoizer<>(
            cache, keyFunction, biFunction);

    // then
    memoizer.applyAsInt("123.456", "789.123");
    Mockito.verify(biFunction).applyAsInt("123.456", "789.123");
}
项目:LifeTiles    文件:SequenceSegment.java   
/**
 * Compares two segments, first by start positions, then end positions, then
 * content, then sources.
 *
 * @param other
 *            Sequence segment which needs to be compared.
 * @return the compare value of the start positions.
 */
@Override
public int compareTo(final SequenceSegment other) {
    for (ToIntBiFunction<SequenceSegment, SequenceSegment> comp : COMPARATORS) {
        int result = comp.applyAsInt(this, other);
        if (result != 0) {
            return result;
        }
    }
    int candidateComp = 0;
    Iterator<Sequence> thisIt = this.getSources().iterator();
    Iterator<Sequence> otherIt = other.getSources().iterator();
    while (thisIt.hasNext()) {
        candidateComp = thisIt.next().getIdentifier()
                .compareTo(otherIt.next().getIdentifier());
        if (candidateComp != 0) {
            return candidateComp;
        }
    }
    if (this.getIdentifier() == other.getIdentifier()) {
        candidateComp = 0;
    }
    return candidateComp;
}
项目:buffer-trigger    文件:SimpleBufferTrigger.java   
SimpleBufferTrigger(Supplier<Object> bufferFactory, ToIntBiFunction<Object, E> queueAdder,
        ScheduledExecutorService scheduledExecutorService,
        ThrowableConsumer<Object, Throwable> consumer,
        TriggerStrategy triggerStrategy, BiConsumer<Throwable, Object> exceptionHandler,
        long maxBufferCount, Consumer<E> rejectHandler) {
    this.queueAdder = queueAdder;
    this.bufferFactory = bufferFactory;
    this.consumer = consumer;
    this.exceptionHandler = exceptionHandler;
    this.maxBufferCount = maxBufferCount;
    this.rejectHandler = rejectHandler;
    this.buffer.set(this.bufferFactory.get());
    ReentrantReadWriteLock lock = new ReentrantReadWriteLock();
    readLock = lock.readLock();
    writeLock = lock.writeLock();
    scheduledExecutorService.schedule(
            new TriggerRunnable(scheduledExecutorService, triggerStrategy),
            DEFAULT_NEXT_TRIGGER_PERIOD, MILLISECONDS);
}
项目:LogFX    文件:DateTimeFormatGuesser.java   
private static Optional<ZonedDateTime> dateTimeFromTemporal( TemporalAccessor ta ) {
    ToIntBiFunction<ChronoField, Integer> getField = ( field, orElse ) ->
            ta.isSupported( field ) ? ta.get( field ) : orElse;

    ZoneId zone = Optional.<ZoneId>ofNullable( ta.query( offset() ) )
            .orElse( Optional.ofNullable( ta.query( zoneId() ) )
                    .orElse( ZoneOffset.UTC ) );

    int year = getField.applyAsInt( ChronoField.YEAR, THIS_YEAR );
    int month = getField.applyAsInt( ChronoField.MONTH_OF_YEAR, 1 );
    int day = getField.applyAsInt( ChronoField.DAY_OF_MONTH, 1 );
    int hour = getField.applyAsInt( ChronoField.HOUR_OF_DAY, 0 );
    int minute = getField.applyAsInt( ChronoField.MINUTE_OF_HOUR, 0 );
    int second = getField.applyAsInt( ChronoField.SECOND_OF_MINUTE, 0 );
    int nanos = getField.applyAsInt( ChronoField.NANO_OF_SECOND, 0 );

    ZonedDateTime dateTime = ZonedDateTime.of( year, month, day, hour, minute, second, nanos, zone );

    return Optional.of( dateTime );
}
项目:jOOL    文件:CheckedBiFunctionTest.java   
@Test
public void testCheckedToIntBiFunction() {
    final CheckedToIntBiFunction<Object, Object> toIntBiFunction = (t, u) -> {
        throw new Exception(t + ":" + u);
    };

    ToIntBiFunction<Object, Object> f1 = Unchecked.toIntBiFunction(toIntBiFunction);
    ToIntBiFunction<Object, Object> f2 = CheckedToIntBiFunction.unchecked(toIntBiFunction);
    ToIntBiFunction<Object, Object> f3 = Sneaky.toIntBiFunction(toIntBiFunction);
    ToIntBiFunction<Object, Object> f4 = CheckedToIntBiFunction.sneaky(toIntBiFunction);

    assertToIntBiFunction(f1, UncheckedException.class);
    assertToIntBiFunction(f2, UncheckedException.class);
    assertToIntBiFunction(f3, Exception.class);
    assertToIntBiFunction(f4, Exception.class);
}
项目:OpenJSharp    文件:ConcurrentHashMap.java   
MapReduceMappingsToIntTask
    (BulkTask<K,V,?> p, int b, int i, int f, Node<K,V>[] t,
     MapReduceMappingsToIntTask<K,V> nextRight,
     ToIntBiFunction<? super K, ? super V> transformer,
     int basis,
     IntBinaryOperator reducer) {
    super(p, b, i, f, t); this.nextRight = nextRight;
    this.transformer = transformer;
    this.basis = basis; this.reducer = reducer;
}
项目:OpenJSharp    文件:ConcurrentHashMap.java   
public final void compute() {
    final ToIntBiFunction<? super K, ? super V> transformer;
    final IntBinaryOperator reducer;
    if ((transformer = this.transformer) != null &&
        (reducer = this.reducer) != null) {
        int r = this.basis;
        for (int i = baseIndex, f, h; batch > 0 &&
                 (h = ((f = baseLimit) + i) >>> 1) > i;) {
            addToPendingCount(1);
            (rights = new MapReduceMappingsToIntTask<K,V>
             (this, batch >>>= 1, baseLimit = h, f, tab,
              rights, transformer, r, reducer)).fork();
        }
        for (Node<K,V> p; (p = advance()) != null; )
            r = reducer.applyAsInt(r, transformer.applyAsInt(p.key, p.val));
        result = r;
        CountedCompleter<?> c;
        for (c = firstComplete(); c != null; c = c.nextComplete()) {
            @SuppressWarnings("unchecked")
            MapReduceMappingsToIntTask<K,V>
                t = (MapReduceMappingsToIntTask<K,V>)c,
                s = t.rights;
            while (s != null) {
                t.result = reducer.applyAsInt(t.result, s.result);
                s = t.rights = s.nextRight;
            }
        }
    }
}
项目:jdk8u-jdk    文件:ConcurrentHashMap.java   
MapReduceMappingsToIntTask
    (BulkTask<K,V,?> p, int b, int i, int f, Node<K,V>[] t,
     MapReduceMappingsToIntTask<K,V> nextRight,
     ToIntBiFunction<? super K, ? super V> transformer,
     int basis,
     IntBinaryOperator reducer) {
    super(p, b, i, f, t); this.nextRight = nextRight;
    this.transformer = transformer;
    this.basis = basis; this.reducer = reducer;
}
项目:jdk8u-jdk    文件:ConcurrentHashMap.java   
public final void compute() {
    final ToIntBiFunction<? super K, ? super V> transformer;
    final IntBinaryOperator reducer;
    if ((transformer = this.transformer) != null &&
        (reducer = this.reducer) != null) {
        int r = this.basis;
        for (int i = baseIndex, f, h; batch > 0 &&
                 (h = ((f = baseLimit) + i) >>> 1) > i;) {
            addToPendingCount(1);
            (rights = new MapReduceMappingsToIntTask<K,V>
             (this, batch >>>= 1, baseLimit = h, f, tab,
              rights, transformer, r, reducer)).fork();
        }
        for (Node<K,V> p; (p = advance()) != null; )
            r = reducer.applyAsInt(r, transformer.applyAsInt(p.key, p.val));
        result = r;
        CountedCompleter<?> c;
        for (c = firstComplete(); c != null; c = c.nextComplete()) {
            @SuppressWarnings("unchecked")
            MapReduceMappingsToIntTask<K,V>
                t = (MapReduceMappingsToIntTask<K,V>)c,
                s = t.rights;
            while (s != null) {
                t.result = reducer.applyAsInt(t.result, s.result);
                s = t.rights = s.nextRight;
            }
        }
    }
}
项目:openjdk-jdk10    文件:ConcurrentHashMap.java   
MapReduceMappingsToIntTask
    (BulkTask<K,V,?> p, int b, int i, int f, Node<K,V>[] t,
     MapReduceMappingsToIntTask<K,V> nextRight,
     ToIntBiFunction<? super K, ? super V> transformer,
     int basis,
     IntBinaryOperator reducer) {
    super(p, b, i, f, t); this.nextRight = nextRight;
    this.transformer = transformer;
    this.basis = basis; this.reducer = reducer;
}
项目:openjdk-jdk10    文件:ConcurrentHashMap.java   
public final void compute() {
    final ToIntBiFunction<? super K, ? super V> transformer;
    final IntBinaryOperator reducer;
    if ((transformer = this.transformer) != null &&
        (reducer = this.reducer) != null) {
        int r = this.basis;
        for (int i = baseIndex, f, h; batch > 0 &&
                 (h = ((f = baseLimit) + i) >>> 1) > i;) {
            addToPendingCount(1);
            (rights = new MapReduceMappingsToIntTask<K,V>
             (this, batch >>>= 1, baseLimit = h, f, tab,
              rights, transformer, r, reducer)).fork();
        }
        for (Node<K,V> p; (p = advance()) != null; )
            r = reducer.applyAsInt(r, transformer.applyAsInt(p.key, p.val));
        result = r;
        CountedCompleter<?> c;
        for (c = firstComplete(); c != null; c = c.nextComplete()) {
            @SuppressWarnings("unchecked")
            MapReduceMappingsToIntTask<K,V>
                t = (MapReduceMappingsToIntTask<K,V>)c,
                s = t.rights;
            while (s != null) {
                t.result = reducer.applyAsInt(t.result, s.result);
                s = t.rights = s.nextRight;
            }
        }
    }
}
项目:oryx2    文件:PartitionedFeatureVectors.java   
public PartitionedFeatureVectors(int numPartitions,
                                 ExecutorService executor,
                                 ToIntBiFunction<String,float[]> partitioner) {
  Preconditions.checkArgument(numPartitions > 0);
  Objects.requireNonNull(executor);
  Objects.requireNonNull(partitioner);
  partitions = new FeatureVectorsPartition[numPartitions];
  for (int i = 0; i < numPartitions; i++) {
    partitions[i] = new FeatureVectorsPartition();
  }
  partitionMap = HashObjIntMaps.newMutableMap();
  partitionMapLock = new AutoReadWriteLock();
  this.partitioner = partitioner;
  this.executor = executor;
}
项目:openjdk9    文件:ConcurrentHashMap.java   
MapReduceMappingsToIntTask
    (BulkTask<K,V,?> p, int b, int i, int f, Node<K,V>[] t,
     MapReduceMappingsToIntTask<K,V> nextRight,
     ToIntBiFunction<? super K, ? super V> transformer,
     int basis,
     IntBinaryOperator reducer) {
    super(p, b, i, f, t); this.nextRight = nextRight;
    this.transformer = transformer;
    this.basis = basis; this.reducer = reducer;
}
项目:openjdk9    文件:ConcurrentHashMap.java   
public final void compute() {
    final ToIntBiFunction<? super K, ? super V> transformer;
    final IntBinaryOperator reducer;
    if ((transformer = this.transformer) != null &&
        (reducer = this.reducer) != null) {
        int r = this.basis;
        for (int i = baseIndex, f, h; batch > 0 &&
                 (h = ((f = baseLimit) + i) >>> 1) > i;) {
            addToPendingCount(1);
            (rights = new MapReduceMappingsToIntTask<K,V>
             (this, batch >>>= 1, baseLimit = h, f, tab,
              rights, transformer, r, reducer)).fork();
        }
        for (Node<K,V> p; (p = advance()) != null; )
            r = reducer.applyAsInt(r, transformer.applyAsInt(p.key, p.val));
        result = r;
        CountedCompleter<?> c;
        for (c = firstComplete(); c != null; c = c.nextComplete()) {
            @SuppressWarnings("unchecked")
            MapReduceMappingsToIntTask<K,V>
                t = (MapReduceMappingsToIntTask<K,V>)c,
                s = t.rights;
            while (s != null) {
                t.result = reducer.applyAsInt(t.result, s.result);
                s = t.rights = s.nextRight;
            }
        }
    }
}
项目:Java8CN    文件:ConcurrentHashMap.java   
MapReduceMappingsToIntTask
    (BulkTask<K,V,?> p, int b, int i, int f, Node<K,V>[] t,
     MapReduceMappingsToIntTask<K,V> nextRight,
     ToIntBiFunction<? super K, ? super V> transformer,
     int basis,
     IntBinaryOperator reducer) {
    super(p, b, i, f, t); this.nextRight = nextRight;
    this.transformer = transformer;
    this.basis = basis; this.reducer = reducer;
}
项目:Java8CN    文件:ConcurrentHashMap.java   
public final void compute() {
    final ToIntBiFunction<? super K, ? super V> transformer;
    final IntBinaryOperator reducer;
    if ((transformer = this.transformer) != null &&
        (reducer = this.reducer) != null) {
        int r = this.basis;
        for (int i = baseIndex, f, h; batch > 0 &&
                 (h = ((f = baseLimit) + i) >>> 1) > i;) {
            addToPendingCount(1);
            (rights = new MapReduceMappingsToIntTask<K,V>
             (this, batch >>>= 1, baseLimit = h, f, tab,
              rights, transformer, r, reducer)).fork();
        }
        for (Node<K,V> p; (p = advance()) != null; )
            r = reducer.applyAsInt(r, transformer.applyAsInt(p.key, p.val));
        result = r;
        CountedCompleter<?> c;
        for (c = firstComplete(); c != null; c = c.nextComplete()) {
            @SuppressWarnings("unchecked")
            MapReduceMappingsToIntTask<K,V>
                t = (MapReduceMappingsToIntTask<K,V>)c,
                s = t.rights;
            while (s != null) {
                t.result = reducer.applyAsInt(t.result, s.result);
                s = t.rights = s.nextRight;
            }
        }
    }
}
项目:NonDex    文件:ConcurrentHashMap.java   
MapReduceMappingsToIntTask
    (BulkTask<K,V,?> p, int b, int i, int f, Node<K,V>[] t,
     MapReduceMappingsToIntTask<K,V> nextRight,
     ToIntBiFunction<? super K, ? super V> transformer,
     int basis,
     IntBinaryOperator reducer) {
    super(p, b, i, f, t); this.nextRight = nextRight;
    this.transformer = transformer;
    this.basis = basis; this.reducer = reducer;
}
项目:NonDex    文件:ConcurrentHashMap.java   
@Override
public final void compute() {
    final ToIntBiFunction<? super K, ? super V> transformer;
    final IntBinaryOperator reducer;
    if ((transformer = this.transformer) != null &&
        (reducer = this.reducer) != null) {
        int r = this.basis;
        for (int i = this.baseIndex, f, h; this.batch > 0 &&
                 (h = ((f = this.baseLimit) + i) >>> 1) > i;) {
            this.addToPendingCount(1);
            (this.rights = new MapReduceMappingsToIntTask<K,V>
             (this, this.batch >>>= 1, this.baseLimit = h, f, this.tab,
              this.rights, transformer, r, reducer)).fork();
        }
        for (Node<K,V> p; (p = this.advance()) != null; ) {
            r = reducer.applyAsInt(r, transformer.applyAsInt(p.key, p.val));
        }
        this.result = r;
        CountedCompleter<?> c;
        for (c = this.firstComplete(); c != null; c = c.nextComplete()) {
            @SuppressWarnings("unchecked")
            MapReduceMappingsToIntTask<K,V>
                t = (MapReduceMappingsToIntTask<K,V>)c,
                s = t.rights;
            while (s != null) {
                t.result = reducer.applyAsInt(t.result, s.result);
                s = t.rights = s.nextRight;
            }
        }
    }
}
项目:Diorite-old    文件:ConcurrentIdentityHashMap.java   
MapReduceMappingsToIntTask(final BulkTask<K, V, ?> p, final int b, final int i, final int f, final Node<K, V>[] t, final MapReduceMappingsToIntTask<K, V> nextRight, final ToIntBiFunction<? super K, ? super V> transformer, final int basis, final IntBinaryOperator reducer)
{
    super(p, b, i, f, t);
    this.nextRight = nextRight;
    this.transformer = transformer;
    this.basis = basis;
    this.reducer = reducer;
}
项目:Diorite-old    文件:ConcurrentIdentityHashMap.java   
@Override
public final void compute()
{
    final ToIntBiFunction<? super K, ? super V> transformer;
    final IntBinaryOperator reducer;
    if ((((transformer = this.transformer)) != null) && (((reducer = this.reducer)) != null))
    {
        int r = this.basis;
        for (int i = this.baseIndex, f, h; (this.batch > 0) && (((h = (((f = this.baseLimit)) + i) >>> 1)) > i); )
        {
            this.addToPendingCount(1);
            (this.rights = new MapReduceMappingsToIntTask<>(this, this.batch >>>= 1, this.baseLimit = h, f, this.tab, this.rights, transformer, r, reducer)).fork();
        }
        for (Node<K, V> p; (p = this.advance()) != null; )
        {
            r = reducer.applyAsInt(r, transformer.applyAsInt(p.key, p.val));
        }
        this.result = r;
        CountedCompleter<?> c;
        for (c = this.firstComplete(); c != null; c = c.nextComplete())
        {
            @SuppressWarnings("unchecked")
            final MapReduceMappingsToIntTask<K, V> t = (MapReduceMappingsToIntTask<K, V>) c;
            @SuppressWarnings("unchecked")
            MapReduceMappingsToIntTask<K, V> s = t.rights;
            while (s != null)
            {
                t.result = reducer.applyAsInt(t.result, s.result);
                s = t.rights = s.nextRight;
            }
        }
    }
}
项目:jdk8u_jdk    文件:ConcurrentHashMap.java   
MapReduceMappingsToIntTask
    (BulkTask<K,V,?> p, int b, int i, int f, Node<K,V>[] t,
     MapReduceMappingsToIntTask<K,V> nextRight,
     ToIntBiFunction<? super K, ? super V> transformer,
     int basis,
     IntBinaryOperator reducer) {
    super(p, b, i, f, t); this.nextRight = nextRight;
    this.transformer = transformer;
    this.basis = basis; this.reducer = reducer;
}
项目:jdk8u_jdk    文件:ConcurrentHashMap.java   
public final void compute() {
    final ToIntBiFunction<? super K, ? super V> transformer;
    final IntBinaryOperator reducer;
    if ((transformer = this.transformer) != null &&
        (reducer = this.reducer) != null) {
        int r = this.basis;
        for (int i = baseIndex, f, h; batch > 0 &&
                 (h = ((f = baseLimit) + i) >>> 1) > i;) {
            addToPendingCount(1);
            (rights = new MapReduceMappingsToIntTask<K,V>
             (this, batch >>>= 1, baseLimit = h, f, tab,
              rights, transformer, r, reducer)).fork();
        }
        for (Node<K,V> p; (p = advance()) != null; )
            r = reducer.applyAsInt(r, transformer.applyAsInt(p.key, p.val));
        result = r;
        CountedCompleter<?> c;
        for (c = firstComplete(); c != null; c = c.nextComplete()) {
            @SuppressWarnings("unchecked")
            MapReduceMappingsToIntTask<K,V>
                t = (MapReduceMappingsToIntTask<K,V>)c,
                s = t.rights;
            while (s != null) {
                t.result = reducer.applyAsInt(t.result, s.result);
                s = t.rights = s.nextRight;
            }
        }
    }
}
项目:lookaside_java-1.8.0-openjdk    文件:ConcurrentHashMap.java   
MapReduceMappingsToIntTask
    (BulkTask<K,V,?> p, int b, int i, int f, Node<K,V>[] t,
     MapReduceMappingsToIntTask<K,V> nextRight,
     ToIntBiFunction<? super K, ? super V> transformer,
     int basis,
     IntBinaryOperator reducer) {
    super(p, b, i, f, t); this.nextRight = nextRight;
    this.transformer = transformer;
    this.basis = basis; this.reducer = reducer;
}
项目:lookaside_java-1.8.0-openjdk    文件:ConcurrentHashMap.java   
public final void compute() {
    final ToIntBiFunction<? super K, ? super V> transformer;
    final IntBinaryOperator reducer;
    if ((transformer = this.transformer) != null &&
        (reducer = this.reducer) != null) {
        int r = this.basis;
        for (int i = baseIndex, f, h; batch > 0 &&
                 (h = ((f = baseLimit) + i) >>> 1) > i;) {
            addToPendingCount(1);
            (rights = new MapReduceMappingsToIntTask<K,V>
             (this, batch >>>= 1, baseLimit = h, f, tab,
              rights, transformer, r, reducer)).fork();
        }
        for (Node<K,V> p; (p = advance()) != null; )
            r = reducer.applyAsInt(r, transformer.applyAsInt(p.key, p.val));
        result = r;
        CountedCompleter<?> c;
        for (c = firstComplete(); c != null; c = c.nextComplete()) {
            @SuppressWarnings("unchecked")
            MapReduceMappingsToIntTask<K,V>
                t = (MapReduceMappingsToIntTask<K,V>)c,
                s = t.rights;
            while (s != null) {
                t.result = reducer.applyAsInt(t.result, s.result);
                s = t.rights = s.nextRight;
            }
        }
    }
}
项目:memoization.java    文件:CaffeineMemoizeCustomKeyTest.java   
/**
*
*/
@Test
public void shouldMemoizeToIntBiFunctionWithKeyFunction() {
    // given
    final ToIntBiFunction<Integer, Integer> function = (first, second) -> first.intValue()
            + second.intValue();
    final BiFunction<Integer, Integer, String> keyFunction = hashCodeKeyFunction();

    // when
    final ToIntBiFunction<Integer, Integer> memoize = CaffeineMemoize.toIntBiFunction(function, keyFunction);

    // then
    Assert.assertNotNull("Memoized ToIntBiFunction is NULL", memoize);
}
项目:memoization.java    文件:CaffeineMemoizeDefaultsTest.java   
/**
*
*/
@Test
public void shouldMemoizeToIntBiFunction() {
    // given
    final ToIntBiFunction<Integer, Integer> function = (first, second) -> first.intValue() + second.intValue();

    // when
    final ToIntBiFunction<Integer, Integer> memoize = CaffeineMemoize.toIntBiFunction(function);

    // then
    Assert.assertNotNull("Memoized ToIntBiFunction is NULL", memoize);
}
项目:memoization.java    文件:CaffeineMemoizeLambdaTest.java   
/**
*
*/
@Test
public void shouldMemoizeToIntBiFunctionWithLambda() {
    // given

    // when
    final ToIntBiFunction<Integer, Integer> memoize = CaffeineMemoize
            .toIntBiFunction((first, second) -> first.intValue() + second.intValue());

    // then
    Assert.assertNotNull("Memoized ToIntBiFunction is NULL", memoize);
}
项目:memoization.java    文件:GuavaCacheBasedToIntBiFunctionMemoizer.java   
GuavaCacheBasedToIntBiFunctionMemoizer(
        final Cache<KEY, Integer> cache,
        final BiFunction<FIRST, SECOND, KEY> keyFunction,
        final ToIntBiFunction<FIRST, SECOND> biFunction) {
    super(cache);
    this.keyFunction = keyFunction;
    this.biFunction = biFunction;
}
项目:memoization.java    文件:GuavaMemoizeCustomKeyTest.java   
/**
*
*/
@Test
public void shouldMemoizeToIntBiFunctionWithKeyFunction() {
    // given
    final ToIntBiFunction<String, String> function = (a, b) -> 123;
    final BiFunction<String, String, String> keyFunction = (a, b) -> "key";

    // when
    final ToIntBiFunction<String, String> memoize = GuavaMemoize.toIntBiFunction(function, keyFunction);

    // then
    Assert.assertNotNull("Memoized ToIntBiFunction is NULL", memoize);
}
项目:memoization.java    文件:GuavaCacheBasedToIntBiFunctionMemoizerTest.java   
/**
*
*/
@Test
public void shouldAcceptCacheAndKeyFunctionAndBiFunction() {
    // given
    final ToIntBiFunction<String, String> biFunction = (first, second) -> 123;
    final BiFunction<String, String, String> keyFunction = (first, second) -> second + first;
    final Cache<String, Integer> cache = CacheBuilder.newBuilder().build();

    // when
    final GuavaCacheBasedToIntBiFunctionMemoizer<String, String, String> memoizer = new GuavaCacheBasedToIntBiFunctionMemoizer<>(
            cache, keyFunction, biFunction);

    // then
    Assert.assertNotNull(memoizer);
}
项目:memoization.java    文件:GuavaCacheBasedToIntBiFunctionMemoizerTest.java   
/**
*
*/
@Test
public void shouldTransformInput() {
    // given
    final ToIntBiFunction<String, String> biFunction = (first, second) -> 123;
    final BiFunction<String, String, String> keyFunction = (first, second) -> second + first;
    final Cache<String, Integer> cache = CacheBuilder.newBuilder().build();

    // when
    final GuavaCacheBasedToIntBiFunctionMemoizer<String, String, String> memoizer = new GuavaCacheBasedToIntBiFunctionMemoizer<>(
            cache, keyFunction, biFunction);

    // then
    Assert.assertEquals("firstsecond", 123, memoizer.applyAsInt("first", "second"));
}
项目:memoization.java    文件:GuavaMemoizeLambdaTest.java   
/**
*
*/
@Test
public void shouldMemoizeToIntBiFunctionWithLambda() {
    // given

    // when
    final ToIntBiFunction<String, String> memoize = GuavaMemoize.toIntBiFunction((a, b) -> 123);

    // then
    Assert.assertNotNull("Memoized ToIntBiFunction is NULL", memoize);
}
项目:memoization.java    文件:GuavaMemoizeDefaultsTest.java   
/**
*
*/
@Test
public void shouldMemoizeToIntBiFunction() {
    // given
    final ToIntBiFunction<String, String> function = (a, b) -> 123;

    // when
    final ToIntBiFunction<String, String> memoize = GuavaMemoize.toIntBiFunction(function);

    // then
    Assert.assertNotNull("Memoized ToIntBiFunction is NULL", memoize);
}
项目:memoization.java    文件:JCacheBasedToIntBiFunctionMemoizer.java   
JCacheBasedToIntBiFunctionMemoizer(
        final Cache<KEY, Integer> cache,
        final BiFunction<FIRST, SECOND, KEY> keyFunction,
        final ToIntBiFunction<FIRST, SECOND> biFunction) {
    super(cache);
    this.keyFunction = keyFunction;
    this.biFunction = biFunction;
}
项目:memoization.java    文件:JCacheBasedToIntBiFunctionMemoizerTest.java   
/**
*
*/
@Test
public void shouldMemoizeBiFunction() {
    // given
    final ToIntBiFunction<String, String> function = (first, second) -> 123;
    final BiFunction<String, String, String> keyfunction = hashCodeKeyFunction();
    try (final Cache<String, Integer> cache = JCacheMemoize.createCache(ToIntBiFunction.class)) {
        // when
        final JCacheBasedToIntBiFunctionMemoizer<String, String, String> loader = new JCacheBasedToIntBiFunctionMemoizer<>(
                cache, keyfunction, function);

        // then
        Assert.assertEquals("Memoized value does not match expectation", 123, loader.applyAsInt("first", "second"));
    }
}
项目:memoization.java    文件:JCacheMemoizeCustomKeyTest.java   
/**
*
*/
@Test
public void shouldMemoizeToIntBiFunctionWithKeyBiFunction() {
    // given
    final ToIntBiFunction<String, String> function = (a, b) -> 123;
    final BiFunction<String, String, String> keyFunction = (a, b) -> "key";

    // when
    final ToIntBiFunction<String, String> memoize = JCacheMemoize.toIntBiFunction(function, keyFunction);

    // then
    Assert.assertNotNull("Memoized ToIntBiFunction is NULL", memoize);
}