# File test-unit-3.3.7/lib/test/unit/diff.rb, line 34
def blocks
@blocks ||= compute_blocks
end
# 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
# 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