Search in sources :

Example 36 with Sum

use of org.eclipse.collections.impl.math.Sum in project eclipse-collections by eclipse.

the class UnifiedMapWithHashingStrategyTest method batchForEachEntry_emptySet.

@Test
public void batchForEachEntry_emptySet() {
    // Test batchForEach on empty set, it should simply do nothing and not throw any exceptions
    Sum sum5 = new IntegerSum(0);
    BatchIterable<Map.Entry<Integer, Integer>> empty = (BatchIterable<Map.Entry<Integer, Integer>>) UnifiedMapWithHashingStrategy.newMap(INTEGER_HASHING_STRATEGY).entrySet();
    empty.batchForEach(new EntrySumProcedure(sum5), 0, empty.getBatchCount(1));
    Assert.assertEquals(0, sum5.getValue());
}
Also used : ImmutableEntry(org.eclipse.collections.impl.tuple.ImmutableEntry) IntegerSum(org.eclipse.collections.impl.math.IntegerSum) Sum(org.eclipse.collections.impl.math.Sum) IntegerSum(org.eclipse.collections.impl.math.IntegerSum) HashMap(java.util.HashMap) MutableMap(org.eclipse.collections.api.map.MutableMap) Map(java.util.Map) UnifiedMap(org.eclipse.collections.impl.map.mutable.UnifiedMap) BatchIterable(org.eclipse.collections.impl.parallel.BatchIterable) Test(org.junit.Test)

Example 37 with Sum

use of org.eclipse.collections.impl.math.Sum in project eclipse-collections by eclipse.

the class UnifiedMapWithHashingStrategyTest method batchForEachNullHandling.

private void batchForEachNullHandling(BatchIterable<Integer> batchIterable, int expectedValue) {
    // Testing batchForEach handling null keys and null values
    Sum sum = new IntegerSum(0);
    for (int i = 0; i < batchIterable.getBatchCount(7); ++i) {
        batchIterable.batchForEach(each -> sum.add(each == null ? 1 : each), i, batchIterable.getBatchCount(7));
    }
    Assert.assertEquals(expectedValue, sum.getValue());
}
Also used : IntegerSum(org.eclipse.collections.impl.math.IntegerSum) Sum(org.eclipse.collections.impl.math.Sum) IntegerSum(org.eclipse.collections.impl.math.IntegerSum)

Example 38 with Sum

use of org.eclipse.collections.impl.math.Sum in project eclipse-collections by eclipse.

the class UnifiedMapWithHashingStrategyTest method batchIterable_forEachEmptyBatchIterable.

private void batchIterable_forEachEmptyBatchIterable(BatchIterable<Integer> batchIterable) {
    // Test forEach on empty set, it should simply do nothing and not throw any exceptions
    Sum sum = new IntegerSum(0);
    batchIterable.batchForEach(new SumProcedure<>(sum), 0, batchIterable.getBatchCount(1));
    Assert.assertEquals(0, sum.getValue());
}
Also used : IntegerSum(org.eclipse.collections.impl.math.IntegerSum) Sum(org.eclipse.collections.impl.math.Sum) IntegerSum(org.eclipse.collections.impl.math.IntegerSum)

Example 39 with Sum

use of org.eclipse.collections.impl.math.Sum in project eclipse-collections by eclipse.

the class AbstractMemoryEfficientMutableMapTest method injectInto.

@Test
public void injectInto() {
    MutableMap<String, Integer> map = this.newMapWithKeysValues("1", 1, "2", 2, "3", 3);
    Integer expectedInteger;
    IntegerSum expectedSum;
    switch(map.size()) {
        case 1:
            expectedSum = new IntegerSum(1);
            expectedInteger = Integer.valueOf(1);
            break;
        case 2:
            expectedSum = new IntegerSum(3);
            expectedInteger = Integer.valueOf(3);
            break;
        case 3:
            expectedSum = new IntegerSum(6);
            expectedInteger = Integer.valueOf(6);
            break;
        default:
            expectedSum = new IntegerSum(0);
            expectedInteger = Integer.valueOf(0);
            break;
    }
    Integer actual = map.injectInto(0, AddFunction.INTEGER);
    Assert.assertEquals(expectedInteger, actual);
    Sum sum = map.injectInto(new IntegerSum(0), SumProcedure.number());
    Assert.assertEquals(expectedSum, sum);
}
Also used : IntegerSum(org.eclipse.collections.impl.math.IntegerSum) Sum(org.eclipse.collections.impl.math.Sum) IntegerSum(org.eclipse.collections.impl.math.IntegerSum) Test(org.junit.Test)

Example 40 with Sum

use of org.eclipse.collections.impl.math.Sum in project eclipse-collections by eclipse.

the class UnifiedMapTest method batchForEachTestCases.

private void batchForEachTestCases(BatchIterable<Integer> batchIterable, int expectedValue) {
    // Testing batch size of 1 to 16 with no chains
    for (int sectionCount = 1; sectionCount <= 16; ++sectionCount) {
        Sum sum = new IntegerSum(0);
        for (int sectionIndex = 0; sectionIndex < sectionCount; ++sectionIndex) {
            batchIterable.batchForEach(new SumProcedure<>(sum), sectionIndex, sectionCount);
        }
        Assert.assertEquals(expectedValue, sum.getValue());
    }
}
Also used : IntegerSum(org.eclipse.collections.impl.math.IntegerSum) Sum(org.eclipse.collections.impl.math.Sum) IntegerSum(org.eclipse.collections.impl.math.IntegerSum)

Aggregations

IntegerSum (org.eclipse.collections.impl.math.IntegerSum)88 Sum (org.eclipse.collections.impl.math.Sum)88 Test (org.junit.Test)76 BatchIterable (org.eclipse.collections.impl.parallel.BatchIterable)20 MutableMap (org.eclipse.collections.api.map.MutableMap)17 Map (java.util.Map)16 Interval (org.eclipse.collections.impl.list.Interval)10 FastList (org.eclipse.collections.impl.list.mutable.FastList)10 UnifiedMap (org.eclipse.collections.impl.map.mutable.UnifiedMap)10 Assert (org.junit.Assert)10 ObjectIntProcedure (org.eclipse.collections.api.block.procedure.primitive.ObjectIntProcedure)9 HashMap (java.util.HashMap)8 ImmutableEntry (org.eclipse.collections.impl.tuple.ImmutableEntry)8 Procedure2 (org.eclipse.collections.api.block.procedure.Procedure2)7 Predicates (org.eclipse.collections.impl.block.factory.Predicates)7 Before (org.junit.Before)7 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)6 LazyIterable (org.eclipse.collections.api.LazyIterable)6 Verify (org.eclipse.collections.impl.test.Verify)6 BigInteger (java.math.BigInteger)5