DiffMatchPatch\DiffTest::testDelta PHP Method

testDelta() public method

public testDelta ( )
    public function testDelta()
    {
        // Convert a diff into delta string.
        $this->d->setChanges(array(array(Diff::EQUAL, "jump"), array(Diff::DELETE, "s"), array(Diff::INSERT, "ed"), array(Diff::EQUAL, " over "), array(Diff::DELETE, "the"), array(Diff::INSERT, "a"), array(Diff::EQUAL, " lazy"), array(Diff::INSERT, "old dog")));
        $text1 = $this->d->text1();
        $this->assertEquals("jumps over the lazy", $text1);
        $delta = $this->d->toDelta();
        $this->assertEquals("=4\t-1\t+ed\t=6\t-3\t+a\t=5\t+old dog", $delta);
        // Convert delta string into a diff.
        $this->assertEquals($this->d->getChanges(), $this->d->fromDelta($text1, $delta)->getChanges());
        // Generates error (19 != 20).
        try {
            $this->d->fromDelta($text1 . 'x', $delta);
            $this->fail();
        } catch (\InvalidArgumentException $e) {
        }
        // Generates error (19 != 18).
        try {
            $this->d->fromDelta(mb_substr($text1, 1), $delta);
            $this->fail();
        } catch (\InvalidArgumentException $e) {
        }
        // Test deltas with special characters.
        $this->d->setChanges(array(array(Diff::EQUAL, Utils::unicodeChr(0x680) . "  \t %"), array(Diff::DELETE, Utils::unicodeChr(0x681) . "  \n ^"), array(Diff::INSERT, Utils::unicodeChr(0x682) . "  \\ |")));
        $text1 = $this->d->text1();
        $this->assertEquals(Utils::unicodeChr(0x680) . "  \t %" . Utils::unicodeChr(0x681) . "  \n ^", $text1);
        $delta = $this->d->toDelta();
        $this->assertEquals("=7\t-7\t+%DA%82 %02 %5C %7C", $delta);
        // Convert delta string into a diff.
        $this->assertEquals($this->d->getChanges(), $this->d->fromDelta($text1, $delta)->getChanges());
        // Verify pool of unchanged characters.
        $this->d->setChanges(array(array(Diff::INSERT, "A-Z a-z 0-9 - _ . ! ~ * ' ( ) ; / ? : @ & = + \$ , # ")));
        $text2 = $this->d->text2();
        $this->assertEquals("A-Z a-z 0-9 - _ . ! ~ * ' ( ) ; / ? : @ & = + \$ , # ", $text2);
        $delta = $this->d->toDelta();
        $this->assertEquals("+A-Z a-z 0-9 - _ . ! ~ * ' ( ) ; / ? : @ & = + \$ , # ", $delta);
        // Convert delta string into a diff.
        $this->assertEquals($this->d->getChanges(), $this->d->fromDelta("", $delta)->getChanges());
    }