| 
<?php
 require_once '/data/priv/prog/diff/StringDiff.php';
 
 /**
 * Test class for StringDiff.
 * Generated by PHPUnit on 2013-02-10 at 22:02:43.
 */
 class StringDiffTest extends PHPUnit_Framework_TestCase
 {
 
 
 public function testTripartite()
 {
 $s = 'abc';
 $middle = 'b';
 $expected = array('a', 'b', 'c');
 $actual = StringDiff::tripartite($s, $middle);
 $this->assertEquals($expected, $actual, 'nice split in middle');
 }
 public function testTripartiteZeroHead()
 {
 $s = 'bc';
 $middle = 'b';
 $expected = array('', 'b', 'c');
 $actual = StringDiff::tripartite($s, $middle);
 $this->assertEquals($expected, $actual, 'split with empty head');
 }
 public function testTripartiteZeroTail()
 {
 $s = 'ab';
 $middle = 'b';
 $expected = array('a', 'b', '');
 $actual = StringDiff::tripartite($s, $middle);
 $this->assertEquals($expected, $actual, 'split with empty tail');
 }
 public function testTripartiteZeroHeadAndTail()
 {
 $s = 'b';
 $middle = 'b';
 $expected = array('', 'b', '');
 $actual = StringDiff::tripartite($s, $middle);
 $this->assertEquals($expected, $actual, 'split with empty head and tail');
 }
 
 public function testDiffEmptyHead ()
 {
 $a = 'ab';
 $b = 'ac';
 $expected = 'a<del>b</del><ins>c</ins>';
 $actual = StringDiff::diff($a, $b);
 $this->assertEquals($expected, $actual);
 }
 public function testDiffEmptyTail ()
 {
 $a = 'ab';
 $b = 'cb';
 $expected = '<del>a</del><ins>c</ins>b';
 $actual = StringDiff::diff($a, $b);
 $this->assertEquals($expected, $actual);
 }
 public function testDiffEmptyHeadAndTail ()
 {
 $a = 'a';
 $b = 'a';
 $expected = 'a';
 $actual = StringDiff::diff($a, $b);
 $this->assertEquals($expected, $actual);
 }
 public function testDiffWithRecursion ()
 {
 $a = 'abc aaabbcc dbc';
 $b = 'adc aaabbcc dac';
 $expected = 'a<del>b</del><ins>d</ins>c aaabbcc d<del>b</del><ins>a</ins>c';
 $actual = StringDiff::diff($a, $b);
 $this->assertEquals($expected, $actual);
 }
 public function testDiffWithThai ()
 {
 $a = '????????????????????????????????????????????????????';
 $b = '??????????????????????????????????????????????';
 $expected = '??????????????????????????????<del>??????</del>????????????????';
 $actual = StringDiff::diff($a, $b);
 $this->assertEquals($expected, $actual);
 }
 
 public function testForLackOfOverlap(){
 $a = 'xxxxxxxxxxxxxxaaxxxxxxxxxxxxxx';
 $b = 'yyyyyyyyyyyyyyaayyyyyyyyyyyyyy';
 $expected = '<del>xxxxxxxxxxxxxxaaxxxxxxxxxxxxxx</del><ins>yyyyyyyyyyyyyyaayyyyyyyyyyyyyy</ins>';
 $actual = StringDiff::diff($a, $b);
 $this->assertEquals($expected, $actual);
 $actual = StringDiff::diff($a, $b, 100.0); //pushing the overlap threshold down
 $expected = '<del>xxxxxxxxxxxxxx</del><ins>yyyyyyyyyyyyyy</ins>aa<del>xxxxxxxxxxxxxx</del><ins>yyyyyyyyyyyyyy</ins>';
 $this->assertEquals($expected, $actual);
 }
 
 public function testOverlap(){
 $a = 'xxxxxaaaaaaaaxxxxx';
 $b = 'yyyyyaaaaaaaayyyyy';
 $expected = 'xxxxx<overlap>aaaaaaaa</overlap>xxxxx';
 $actual = StringDiff::overlap($a, $b);
 $this->assertEquals($expected, $actual);
 $expected = 'yyyyy<overlap>aaaaaaaa</overlap>yyyyy';
 $actual = StringDiff::overlap($b, $a);
 $this->assertEquals($expected, $actual);
 $a = 'xxxxxaxxxxx';
 $b = 'yyyyyayyyyy';
 $expected = 'xxxxxaxxxxx';
 $actual = StringDiff::overlap($a, $b);//threshold 3.0 too high
 $this->assertEquals($expected, $actual);
 $expected = 'xxxxx<overlap>a</overlap>xxxxx';
 $actual = StringDiff::overlap($a, $b, 100.0);//pushing threshold down
 $this->assertEquals($expected, $actual);
 }
 
 public function testDiffEmptyArgs(){
 $a = '';
 $b = '';
 $expected = '';
 $actual = StringDiff::diff($a, $b);
 $this->assertEquals($expected, $actual);
 }
 public function testDiffEmptyA(){
 $a = '';
 $b = 'xxx';
 $expected = '<ins>xxx</ins>';
 $actual = StringDiff::diff($a, $b);
 $this->assertEquals($expected, $actual);
 }
 public function testDiffEmptyB(){
 $a = 'xxx';
 $b = '';
 $expected = '<del>xxx</del>';
 $actual = StringDiff::diff($a, $b);
 $this->assertEquals($expected, $actual);
 }
 public function testOverlapEmptyArgs(){
 $a = '';
 $b = '';
 $expected = '';
 $actual = StringDiff::overlap($a, $b);
 $this->assertEquals($expected, $actual);
 }
 public function testOverlapEmptyA(){
 $a = '';
 $b = 'xxx';
 $expected = '';
 $actual = StringDiff::overlap($a, $b);
 $this->assertEquals($expected, $actual);
 }
 public function testOverlapEmptyB(){
 $a = 'xxx';
 $b = '';
 $expected = 'xxx';
 $actual = StringDiff::overlap($a, $b);
 $this->assertEquals($expected, $actual);
 }
 
 }
 ?>
 
 |