package com.github.davidmoten.rx; import static org.junit.Assert.assertEquals; import java.util.Arrays; import java.util.List; import org.junit.Test; import rx.Observable; import rx.functions.Func1; import rx.functions.Func2; public class MathsTest { @Test public void testNewtonsSolver() { Func1<Double, Double> f = new Func1<Double, Double>() { @Override public Double call(Double x) { return x * x * x - 9; } }; double x = Maths.solveWithNewtonsMethod(f, 1, 0.01).elementAt(100).toBlocking().single(); assertEquals(Math.pow(9, 0.33333333333333), x, 0.000001); } @Test public void testScan() { Observable.range(1, Integer.MAX_VALUE) // .scan(1, new Func2<Integer, Integer, Integer>() { @Override public Integer call(Integer x, Integer y) { return x; } }) // .elementAt(0).toBlocking().single(); } @Test public void testPrimes() { List<Long> list = Maths.primes().take(10).toList().toBlocking().single(); assertEquals(Arrays.asList(2L, 3L, 5L, 7L, 11L, 13L, 17L, 19L, 23L, 29L), list); } }