Class: Test::Unit::Diff::SequenceMatcher (Ruby 2.7.5)
Description: Class : Test::Unit::Diff::SequenceMatcher - Ruby 2.7.5

### Home Classes Methods

### In Files

- test-unit-3.3.4/lib/test/unit/diff.rb

### Parent

Object

### Methods

- ::new
- #blocks
- #grouped_operations
- #longest_match
- #operations
- #ratio

### Class/Module Index

Quicksearch

- Object
- Test
- Test::Unit
- Test::Unit::AssertionFailedError
- Test::Unit::Assertions
- Test::Unit::Assertions::AssertExceptionHelper
- Test::Unit::Assertions::AssertExceptionHelper::WrappedException
- Test::Unit::Assertions::AssertionMessage
- Test::Unit::Assertions::AssertionMessage::ArrayInspector
- Test::Unit::Assertions::AssertionMessage::DelayedLiteral
- Test::Unit::Assertions::AssertionMessage::HashInspector
- Test::Unit::Assertions::AssertionMessage::Inspector
- Test::Unit::Assertions::AssertionMessage::Literal
- Test::Unit::Assertions::AssertionMessage::MaybeContainer
- Test::Unit::Assertions::AssertionMessage::NumericInspector
- Test::Unit::Assertions::AssertionMessage::Template
- Test::Unit::Assertions::ThrowTagExtractor
- Test::Unit::Attribute
- Test::Unit::Attribute::BaseClassMethods
- Test::Unit::Attribute::ClassMethods
- Test::Unit::Attribute::StringifyKeyHash
- Test::Unit::AttributeMatcher
- Test::Unit::AutoRunner
- Test::Unit::AutoRunner::StopOnFailureListener
- Test::Unit::AutoRunnerLoader
- Test::Unit::CodeSnippetFetcher
- Test::Unit::Collector
- Test::Unit::Collector::Descendant
- Test::Unit::Collector::Dir
- Test::Unit::Collector::Load
- Test::Unit::Collector::ObjectSpace
- Test::Unit::Collector::XML
- Test::Unit::Collector::XML::Listener
- Test::Unit::Color
- Test::Unit::Color::Error
- Test::Unit::Color::ParseError
- Test::Unit::ColorScheme
- Test::Unit::Data
- Test::Unit::Data::ClassMethods
- Test::Unit::Data::ClassMethods::Loader
- Test::Unit::DataSets
- Test::Unit::Diff
- Test::Unit::Diff::Differ
- Test::Unit::Diff::ReadableDiffer
- Test::Unit::Diff::SequenceMatcher
- Test::Unit::Diff::UTF8Line
- Test::Unit::Diff::UnifiedDiffer
- Test::Unit::Error
- Test::Unit::ErrorHandler
- Test::Unit::ExceptionHandler
- Test::Unit::ExceptionHandler::ClassMethods
- Test::Unit::Failure
- Test::Unit::FailureHandler
- Test::Unit::FaultLocationDetector
- Test::Unit::Fixture
- Test::Unit::Fixture::ClassMethods
- Test::Unit::Fixture::Fixture
- Test::Unit::Fixture::HookPoint
- Test::Unit::MixColor
- Test::Unit::Notification
- Test::Unit::NotificationHandler
- Test::Unit::NotifiedError
- Test::Unit::NullResultContainerInitializer
- Test::Unit::Omission
- Test::Unit::OmissionHandler
- Test::Unit::OmittedError
- Test::Unit::PendedError
- Test::Unit::Pending
- Test::Unit::PendingHandler
- Test::Unit::Priority
- Test::Unit::Priority::Checker
- Test::Unit::Priority::ClassMethods
- Test::Unit::TestCase
- Test::Unit::TestCase::InternalData
- Test::Unit::TestCaseNotificationSupport
- Test::Unit::TestCaseOmissionSupport
- Test::Unit::TestCasePendingSupport
- Test::Unit::TestResult
- Test::Unit::TestResultErrorSupport
- Test::Unit::TestResultFailureSupport
- Test::Unit::TestResultNotificationSupport
- Test::Unit::TestResultOmissionSupport
- Test::Unit::TestResultPendingSupport
- Test::Unit::TestSuite
- Test::Unit::UI
- Test::Unit::UI::Console
- Test::Unit::UI::Console::ColorizedReadableDiffer
- Test::Unit::UI::Console::OutputLevel
- Test::Unit::UI::Console::TestRunner
- Test::Unit::UI::Emacs
- Test::Unit::UI::Emacs::TestRunner
- Test::Unit::UI::TestRunner
- Test::Unit::UI::TestRunnerMediator
- Test::Unit::UI::TestRunnerUtilities
- Test::Unit::UI::XML
- Test::Unit::UI::XML::TestRunner
- Test::Unit::Util
- Test::Unit::Util::BacktraceFilter
- Test::Unit::Util::MethodOwnerFinder
- Test::Unit::Util::Observable
- Test::Unit::Util::Output
- Test::Unit::Util::ProcWrapper

No matching classes.

# Test::Unit::Diff::SequenceMatcher

### Public Class Methods

new(from, to, &junk_predicate) click to toggle source

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

grouped_operations(context_size=nil) click to toggle source

                   # File test-unit-3.3.4/lib/test/unit/diff.rb, line 43
    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.4/lib/test/unit/diff.rb, line 21
    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.4/lib/test/unit/diff.rb, line 39
    def operations
      @operations ||= compute_operations
    end

ratio() click to toggle source

                   # File test-unit-3.3.4/lib/test/unit/diff.rb, line 70
    def ratio
      @ratio ||= compute_ratio
    end