function testperiods() { // various random calculations $this->assertTrue(abs(0.759825 - Math_Finance::periods(0.08, -500, 355)) < FINANCE_PRECISION); $this->assertTrue(abs(4.486566 - Math_Finance::periods(0.03, -200, 828)) < FINANCE_PRECISION); $this->assertTrue(abs(0.08464099999999999 - Math_Finance::periods(0.45, -5000, 344)) < FINANCE_PRECISION); $this->assertTrue(abs(4.35 - Math_Finance::periods(0, -100, 435)) < FINANCE_PRECISION); // arguments check $this->assertType('object', Math_Finance::periods(0.29, 100, 477, 0, 3)); $this->assertType('object', Math_Finance::periods(0.5, 0, 0)); $this->assertType('object', Math_Finance::periods(0, 0, 0)); }