public function testAddTPriorityList()
{
$plist = new TPriorityList($this->plist);
$plist->add($this->pitem3, 200);
$this->assertEquals(200, $plist->priorityAt(4));
// try a negative precision and a different default priority
$list = new TPriorityList(null, false, 256, -1);
$this->assertEquals(260, $list->getDefaultPriority());
$this->assertEquals(-1, $list->getPrecision());
$list->add(-10);
$list->add(-11, 255);
$list->add(-12, 250);
$list->add(-13, 201);
$this->assertEquals(200, $list->priorityAt(0));
$this->assertEquals(250, $list->priorityAt(1));
$this->assertEquals(260, $list->priorityAt(2));
$this->assertEquals(260, $list->priorityAt(3));
$priorities = $list->getPriorities();
$this->assertEquals(3, count($priorities));
$this->assertEquals(200, $priorities[0]);
$this->assertEquals(250, $priorities[1]);
$this->assertEquals(260, $priorities[2]);
// try a negative precision and a different default priority
$list = new TPriorityList(null, false, 0, 4);
$this->assertEquals(0, $list->getDefaultPriority());
$this->assertEquals(4, $list->getPrecision());
$list->add(-10);
$list->add(-11, 0.0001);
$list->add(-12, 1.0E-5);
$list->add(-13, 0.001);
$this->assertEquals(0, $list->priorityAt(0));
$this->assertEquals(0, $list->priorityAt(1));
$this->assertEquals(0.0001, $list->priorityAt(2));
$this->assertEquals(0.001, $list->priorityAt(3));
$priorities = $list->getPriorities();
$this->assertEquals(3, count($priorities));
$this->assertEquals(0, $priorities[0]);
$this->assertEquals(0.0001, $priorities[1]);
$this->assertEquals(0.001, $priorities[2]);
}