Sha256: dfddb0a3eab40470aeda985feee901b3ec60d4b265951d1eca1f18651e1e1b6f

Contents?: true

Size: 732 Bytes

Versions: 26

Compression:

Stored size: 732 Bytes

Contents

# frozen_string_literal: true

require 'amatch'

module GitlabQuality
  module TestTooling
    class StackTraceComparator
      include Amatch

      def initialize(first_trace, second_trace)
        @first_trace = first_trace
        @second_trace = second_trace
      end

      def diff_ratio
        @diff_ratio ||= (1 - first_trace.levenshtein_similar(second_trace))
      end

      def diff_percent
        (diff_ratio * 100).round(2)
      end

      def lower_than_diff_ratio?(max_diff_ratio)
        diff_ratio < max_diff_ratio
      end

      def lower_or_equal_to_diff_ratio?(max_diff_ratio)
        diff_ratio <= max_diff_ratio
      end

      private

      attr_reader :first_trace, :second_trace
    end
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
gitlab_quality-test_tooling-1.30.0 lib/gitlab_quality/test_tooling/stack_trace_comparator.rb
gitlab_quality-test_tooling-1.29.1 lib/gitlab_quality/test_tooling/stack_trace_comparator.rb
gitlab_quality-test_tooling-1.29.0 lib/gitlab_quality/test_tooling/stack_trace_comparator.rb
gitlab_quality-test_tooling-1.28.0 lib/gitlab_quality/test_tooling/stack_trace_comparator.rb
gitlab_quality-test_tooling-1.24.0 lib/gitlab_quality/test_tooling/stack_trace_comparator.rb
gitlab_quality-test_tooling-1.23.0 lib/gitlab_quality/test_tooling/stack_trace_comparator.rb