function testrate() { // various random calculations $this->assertTrue(abs(0.08 - Math_Finance::rate(20, -36.157534, 355, 0, FINANCE_PAY_END, 0.1)) < FINANCE_PRECISION); $this->assertTrue(abs(0.03 - Math_Finance::rate(5, -180.797585, 828, 0, FINANCE_PAY_END, 0.1)) < FINANCE_PRECISION); $this->assertTrue(abs(0.45 - Math_Finance::rate(2, -295.208163, 344, 0, FINANCE_PAY_END, 0.1)) < FINANCE_PRECISION); // cannot pass a type differenet from 0 and 1 $this->assertType('object', Math_Finance::rate(20, -36.157534, 255, 0, 3)); }