class Test::Unit::Diff::SequenceMatcher

Public Class Methods

new(from, to, &junk_predicate) click to toggle source
# File test-unit-3.3.7/lib/test/unit/diff.rb, line 13
def initialize(from, to, &junk_predicate)
  @from = from
  @to = to
  @junk_predicate = junk_predicate
  update_to_indexes
end

Public Instance Methods

blocks() click to toggle source
# File test-unit-3.3.7/lib/test/unit/diff.rb, line 34
def blocks
  @blocks ||= compute_blocks
end
grouped_operations(context_size=nil) click to toggle source
# File test-unit-3.3.7/lib/test/unit/diff.rb, line 42
def grouped_operations(context_size=nil)
  context_size ||= 3
  _operations = operations.dup
  _operations = [[:equal, 0, 0, 0, 0]] if _operations.empty?
  expand_edge_equal_operations!(_operations, context_size)

  group_window = context_size * 2
  groups = []
  group = []
  _operations.each do |tag, from_start, from_end, to_start, to_end|
    if tag == :equal and from_end - from_start > group_window
      group << [tag,
                from_start,
                [from_end, from_start + context_size].min,
                to_start,
                [to_end, to_start + context_size].min]
      groups << group
      group = []
      from_start = [from_start, from_end - context_size].max
      to_start = [to_start, to_end - context_size].max
    end
    group << [tag, from_start, from_end, to_start, to_end]
  end
  groups << group unless group.empty?
  groups
end
longest_match(from_start, from_end, to_start, to_end) click to toggle source
# File test-unit-3.3.7/lib/test/unit/diff.rb, line 20
def longest_match(from_start, from_end, to_start, to_end)
  best_info = find_best_match_position(from_start, from_end,
                                       to_start, to_end)
  unless @junks.empty?
    args = [from_start, from_end, to_start, to_end]
    best_info = adjust_best_info_with_junk_predicate(false, best_info,
                                                     *args)
    best_info = adjust_best_info_with_junk_predicate(true, best_info,
                                                     *args)
  end

  best_info
end
operations() click to toggle source
# File test-unit-3.3.7/lib/test/unit/diff.rb, line 38
def operations
  @operations ||= compute_operations
end
ratio() click to toggle source
# File test-unit-3.3.7/lib/test/unit/diff.rb, line 69
def ratio
  @ratio ||= compute_ratio
end