Skip to content

snebes/range-differencer

Repository files navigation

Range Differencer

PHP Version Latest Version Build Status Code Quality Test Coverage

Provides support for finding the differences between two or three sequences of comparable entities.

Specification

The class RangeDifferencer finds longest sequences of matching and non-matching comparable entities. Clients must supply the input to the differencer as an implementation of the RangeComparatorInterface. An RangeComparatorInterface breaks the input data into a sequence of entities and provides a method for comparing one entity with the entity in another RangeComparatorInterface.

For example, to compare two text documents and find longest common sequences of matching and non-matching lines, the implementation of RangeComparatorInterface must break the document into lines and provide a method for testing whether two lines are considered equal. See TagComparator for how this can be done.

The differencer returns the differences among these sequences as an array of RangeDifference objects. Every single RangeDifference describes the kind of difference (no change, change, addition, deletion) and the corresponding ranges of the underlying comparable entities in the two or three inputs.