protected function generate_ins_text($line_nb, $txt) { wfDebugLog('p2p', $this->clock . ' - function logootEngine::generate_ins_text ' . $line_nb . ' ' . $txt); list($start, $end) = $this->getPrevNextPosition($line_nb); $positions = LogootPosition::getLogootPosition($start, $end, count($txt), $this->sessionid, $this->clock, BOUNDARY); $LogootInsList = new LogootPatch($this->sessionid . $this->clock); for ($i = 0; $i < count($txt); $i++) { $LogootIns = new LogootIns($positions[$i], $txt[$i]); $this->deliver($LogootIns); $LogootInsList->add($LogootIns); } $LogootInsList->applied(); return $LogootInsList; }
function test0() { $p = new LogootPosition(array(LogootId::IdMin())); $q = new LogootPosition(array(new LogootId(INT_MIN + 1, "3", 6))); $lp1 = LogootPosition::getLogootPosition($p, $q, 2, "3", 7, 10); foreach ($lp1 as $pos) { //echo $pos; $this->assertEquals('-1', $p->compareTo($pos)); $this->assertEquals('1', $q->compareTo($pos)); } $q = new LogootPosition(array(LogootId::IdMax())); $p = new LogootPosition(array(new LogootId(INT_MAX - 1, "3", 6))); $lp2 = LogootPosition::getLogootPosition($p, $q, 2, "3", 7, 10); foreach ($lp2 as $pos) { //echo $pos; $this->assertEquals('-1', $p->compareTo($pos)); $this->assertEquals('1', $q->compareTo($pos)); } $q = new LogootPosition(array(LogootId::IdMax())); $p = new LogootPosition(array(new LogootId(99, "3", 3), new LogootId(99, "3", 7))); $lp = LogootPosition::getLogootPosition($p, $q, 2, "3", 7, 10); foreach ($lp2 as $pos) { //echo $pos; $this->assertEquals('-1', $p->compareTo($pos)); $this->assertEquals('1', $q->compareTo($pos)); } }