You are here

function Diff::_check in Diff 6

Same name and namespace in other branches
  1. 5.2 DiffEngine.php \Diff::_check()
  2. 5 DiffEngine.php \Diff::_check()
  3. 6.2 DiffEngine.php \Diff::_check()
  4. 7.3 DiffEngine.php \Diff::_check()
  5. 7.2 DiffEngine.php \Diff::_check()

* Check a Diff for validity. * * This is here only for debugging purposes.

File

./DiffEngine.php, line 646

Class

Diff
Class representing a 'diff' between two sequences of strings. @todo document @private @subpackage DifferenceEngine

Code

function _check($from_lines, $to_lines) {
  if (serialize($from_lines) != serialize($this
    ->orig())) {
    trigger_error("Reconstructed original doesn't match", E_USER_ERROR);
  }
  if (serialize($to_lines) != serialize($this
    ->closing())) {
    trigger_error("Reconstructed closing doesn't match", E_USER_ERROR);
  }
  $rev = $this
    ->reverse();
  if (serialize($to_lines) != serialize($rev
    ->orig())) {
    trigger_error("Reversed original doesn't match", E_USER_ERROR);
  }
  if (serialize($from_lines) != serialize($rev
    ->closing())) {
    trigger_error("Reversed closing doesn't match", E_USER_ERROR);
  }
  $prevtype = 'none';
  foreach ($this->edits as $edit) {
    if ($prevtype == $edit->type) {
      trigger_error("Edit sequence is non-optimal", E_USER_ERROR);
    }
    $prevtype = $edit->type;
  }
  $lcs = $this
    ->lcs();
  trigger_error('Diff okay: LCS = ' . $lcs, E_USER_NOTICE);
}