public void testNper() { double f, r, y, p, x, n; boolean t; r = 0; y = 7; p = 2; f = 3; t = false; n = Vba.nPer(r, y, p, f, t); // can you believe it? excel returns nper as a fraction!?? x = -0.71428571429; assertEquals(x, n, 1e-10); // cross check with pv r = 1; y = 100; p = -109.66796875; f = 10000; t = false; n = Vba.nPer(r, y, p, f, t); x = 10; assertEquals(x, n, 1e-12); r = 1; y = 100; p = -209.5703125; f = 10000; t = true; n = Vba.nPer(r, y, p, f, t); x = 10; assertEquals(x, n, 1e-14); // cross check with fv r = 2; y = 120; f = -6409178400d; p = 12000; t = false; n = Vba.nPer(r, y, p, f, t); x = 12; assertEquals(x, n, SMALL); r = 2; y = 120; f = -6472951200d; p = 12000; t = true; n = Vba.nPer(r, y, p, f, t); x = 12; assertEquals(x, n, SMALL); }