当前位置: 首页>>代码示例>>PHP>>正文


PHP Match::setDistance方法代码示例

本文整理汇总了PHP中Match::setDistance方法的典型用法代码示例。如果您正苦于以下问题:PHP Match::setDistance方法的具体用法?PHP Match::setDistance怎么用?PHP Match::setDistance使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Match的用法示例。


在下文中一共展示了Match::setDistance方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: __set

 /**
  * Proxy setting properties to real objects.
  *
  * @param string $name  Property name.
  * @param mixed  $value Property value.
  *
  * @throws \UnexpectedValueException If property unknown.
  * @return float
  */
 public function __set($name, $value)
 {
     switch ($name) {
         case 'Diff_Timeout':
             $this->diff->setTimeout($value);
             break;
         case 'Diff_EditCost':
             $this->diff->setEditCost($value);
             break;
         case 'Match_Threshold':
             $this->match->setThreshold($value);
             break;
         case 'Match_Distance':
             $this->match->setDistance($value);
             break;
         case 'Match_MaxBits':
             $this->match->setMaxBits($value);
             break;
         case 'Patch_DeleteThreshold':
             $this->patch->setDeleteTreshold($value);
             break;
         case 'Patch_Margin':
             $this->patch->setMargin($value);
             break;
         default:
             throw new \UnexpectedValueException('Unknown property: ' . $name);
     }
 }
开发者ID:yetanotherape,项目名称:diff-match-patch,代码行数:37,代码来源:DiffMatchPatch.php

示例2: testApply

 public function testApply()
 {
     $this->m->setDistance(1000);
     $this->m->setThreshold(0.5);
     $this->p->setDeleteTreshold(0.5);
     // Null case.
     $patches = $this->p->make("", "");
     $this->assertEquals(array("Hello world.", array()), $this->p->apply($patches, "Hello world."));
     // Exact match.
     $patches = $this->p->make("The quick brown fox jumps over the lazy dog.", "That quick brown fox jumped over a lazy dog.");
     $this->assertEquals(array("That quick brown fox jumped over a lazy dog.", array(true, true)), $this->p->apply($patches, "The quick brown fox jumps over the lazy dog."));
     // Partial match.
     $this->assertEquals(array("That quick red rabbit jumped over a tired tiger.", array(true, true)), $this->p->apply($patches, "The quick red rabbit jumps over the tired tiger."));
     // Failed match.
     $this->assertEquals(array("I am the very model of a modern major general.", array(false, false)), $this->p->apply($patches, "I am the very model of a modern major general."));
     // Big delete, small change.
     $patches = $this->p->make("x1234567890123456789012345678901234567890123456789012345678901234567890y", "xabcy");
     $this->assertEquals(array("xabcy", array(true, true)), $this->p->apply($patches, "x123456789012345678901234567890-----++++++++++-----123456789012345678901234567890y"));
     // Big delete, big change 1.
     $patches = $this->p->make("x1234567890123456789012345678901234567890123456789012345678901234567890y", "xabcy");
     $this->assertEquals(array("xabc12345678901234567890---------------++++++++++---------------12345678901234567890y", array(false, true)), $this->p->apply($patches, "x12345678901234567890---------------++++++++++---------------12345678901234567890y"));
     // Big delete, big change 2.
     $this->p->setDeleteTreshold(0.6);
     $patches = $this->p->make("x1234567890123456789012345678901234567890123456789012345678901234567890y", "xabcy");
     $this->assertEquals(array("xabcy", array(true, true)), $this->p->apply($patches, "x12345678901234567890---------------++++++++++---------------12345678901234567890y"));
     $this->p->setDeleteTreshold(0.5);
     // Compensate for failed patch.
     $this->m->setDistance(0);
     $this->m->setThreshold(0.0);
     $patches = $this->p->make("abcdefghijklmnopqrstuvwxyz--------------------1234567890", "abcXXXXXXXXXXdefghijklmnopqrstuvwxyz--------------------1234567YYYYYYYYYY890");
     $this->assertEquals(array("ABCDEFGHIJKLMNOPQRSTUVWXYZ--------------------1234567YYYYYYYYYY890", array(false, true)), $this->p->apply($patches, "ABCDEFGHIJKLMNOPQRSTUVWXYZ--------------------1234567890"));
     $this->m->setDistance(1000);
     $this->m->setThreshold(0.5);
     // No side effects.
     $patches = $this->p->make("", "test");
     $patchesText = $this->p->toText($patches);
     $this->p->apply($patches, "");
     $this->assertEquals($patchesText, $this->p->toText($patches));
     // No side effects with major delete.
     $patches = $this->p->make("The quick brown fox jumps over the lazy dog.", "Woof");
     $patchesText = $this->p->toText($patches);
     $this->p->apply($patches, "The quick brown fox jumps over the lazy dog.");
     $this->assertEquals($patchesText, $this->p->toText($patches));
     // Edge exact match.
     $patches = $this->p->make("", "test");
     $this->assertEquals(array("test", array(true)), $this->p->apply($patches, ""));
     // Near edge exact match.
     $patches = $this->p->make("XY", "XtestY");
     $this->assertEquals(array("XtestY", array(true)), $this->p->apply($patches, "XY"));
     // Edge partial match.
     $patches = $this->p->make("y", "y123");
     $this->assertEquals(array("x123", array(true)), $this->p->apply($patches, "x"));
 }
开发者ID:yetanotherape,项目名称:diff-match-patch,代码行数:53,代码来源:PatchTest.php

示例3: testBitap

 public function testBitap()
 {
     $this->m->setDistance(100);
     $this->m->setThreshold(0.5);
     // Exact matches.
     $this->assertEquals(5, $this->m->bitap("abcdefghijk", "fgh", 5));
     $this->assertEquals(5, $this->m->bitap("abcdefghijk", "fgh", 0));
     // Fuzzy matches.
     $this->assertEquals(4, $this->m->bitap("abcdefghijk", "efxhi", 0));
     $this->assertEquals(2, $this->m->bitap("abcdefghijk", "cdefxyhijk", 5));
     $this->assertEquals(-1, $this->m->bitap("abcdefghijk", "bxy", 1));
     // Overflow.
     $this->assertEquals(2, $this->m->bitap("123456789xx0", "3456789x0", 2));
     $this->assertEquals(0, $this->m->bitap("abcdef", "xxabc", 4));
     $this->assertEquals(3, $this->m->bitap("abcdef", "defyy", 4));
     $this->assertEquals(0, $this->m->bitap("abcdef", "xabcdefy", 0));
     // Threshold test.
     $this->m->setThreshold(0.4);
     $this->assertEquals(4, $this->m->bitap("abcdefghijk", "efxyhi", 1));
     $this->m->setThreshold(0.3);
     $this->assertEquals(-1, $this->m->bitap("abcdefghijk", "efxyhi", 1));
     $this->m->setThreshold(0.0);
     $this->assertEquals(1, $this->m->bitap("abcdefghijk", "bcdef", 1));
     $this->m->setThreshold(0.5);
     // Multiple select.
     $this->assertEquals(0, $this->m->bitap("abcdexyzabcde", "abccde", 3));
     $this->assertEquals(8, $this->m->bitap("abcdexyzabcde", "abccde", 5));
     // Distance test.
     // Strict location.
     $this->m->setDistance(10);
     $this->assertEquals(-1, $this->m->bitap("abcdefghijklmnopqrstuvwxyz", "abcdefg", 24));
     $this->assertEquals(0, $this->m->bitap("abcdefghijklmnopqrstuvwxyz", "abcdxxefg", 1));
     //Loose location.
     $this->m->setDistance(1000);
     $this->assertEquals(0, $this->m->bitap("abcdefghijklmnopqrstuvwxyz", "abcdefg", 24));
 }
开发者ID:yetanotherape,项目名称:diff-match-patch,代码行数:36,代码来源:MatchTest.php


注:本文中的Match::setDistance方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。