function testTBillEquivalentYield()
 {
     // various random calculations
     $this->assertTrue(abs(0.094151 - Math_Finance::TBillEquivalentYield(mktime(0, 0, 0, 3, 31, 2008), mktime(0, 0, 0, 6, 1, 2008), 0.0914)) < FINANCE_PRECISION);
     $this->assertTrue(abs(0.09773985 - Math_Finance::TBillEquivalentYield(mktime(0, 0, 0, 3, 20, 2008), mktime(0, 0, 0, 12, 1, 2008), 0.0914)) < FINANCE_PRECISION);
     $this->assertTrue(abs(0.09778004999999999 - Math_Finance::TBillEquivalentYield(mktime(0, 0, 0, 3, 31, 1993), mktime(0, 0, 0, 12, 15, 1993), 0.0914)) < FINANCE_PRECISION);
     $this->assertTrue(abs(0.09965155000000001 - Math_Finance::TBillEquivalentYield(mktime(0, 0, 0, 1, 10, 1999), mktime(0, 0, 0, 1, 10, 2000), 0.0914)) < FINANCE_PRECISION);
     $this->assertTrue(abs(0.09994538 - Math_Finance::TBillEquivalentYield(mktime(0, 0, 0, 1, 10, 2000), mktime(0, 0, 0, 1, 10, 2001), 0.0914)) < FINANCE_PRECISION);
     // settlement must be before maturity
     $this->assertType('object', Math_Finance::TBillEquivalentYield(mktime(0, 0, 0, 6, 1, 2008), mktime(0, 0, 0, 3, 31, 2008), 0.09));
     // maturity can't be more than one year after settlement
     $this->assertType('object', Math_Finance::TBillEquivalentYield(mktime(0, 0, 0, 6, 1, 2008), mktime(0, 0, 0, 3, 31, 2010), 0.09));
 }