Package net.emaze.dysfunctional.numbers

Source Code of net.emaze.dysfunctional.numbers.SumTest

package net.emaze.dysfunctional.numbers;

import java.util.Iterator;
import net.emaze.dysfunctional.Iterations;
import net.emaze.dysfunctional.Reductions;
import net.emaze.dysfunctional.dispatching.delegates.BinaryDelegate;
import net.emaze.dysfunctional.numbers.operations.IntegerOperations;
import net.emaze.dysfunctional.numbers.policies.SumPolicy;
import net.emaze.dysfunctional.testing.O;
import org.junit.Assert;
import org.junit.Test;

public class SumTest {

    @Test(expected = IllegalArgumentException.class)
    public void creatingWithNullPolicyYieldsException() {
        new Sum<O, O, O>(null);
    }

    @Test
    public void canSumUsingAPolicy() {
        BinaryDelegate<O, O, O> sum = new Sum<O, O, O>(new SumPolicy<O, O, O>() {

            @Override
            public O sum(O lhs, O rhs) {
                return O.YET_ANOTHER;
            }
        });
        final O got = sum.perform(O.ONE, O.ANOTHER);
        Assert.assertEquals(O.YET_ANOTHER, got);
    }

    @Test//@Sample
    public void canReduceIntegersUsingSum() {
        Iterator<Integer> iterator = Iterations.iterator(1, 2, 3);
        Integer reduced = Reductions.reduce(iterator, new Sum<Integer, Integer, Integer>(new IntegerOperations()), 0);
        Assert.assertEquals(6, reduced.intValue());
    }
}
TOP

Related Classes of net.emaze.dysfunctional.numbers.SumTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.