<commit_before>module RSpec
  module Contracts
    class Interaction
      attr_reader :interface_name, :method_name, :arguments, :return_value

      def initialize(interface_name, method_name, options = {})
        @interface_name = interface_name
        @method_name = method_name
        @arguments = options[:arguments] || []
        @return_value = options[:return_value]
      end

      def fully_described_by?(interaction)
        [:interface_name, :method_name, :arguments, :return_value].select do |attribute|
          interaction.send(attribute) != send(attribute)
        end.empty?
      end
    end
  end
end
<commit_msg>Slight refactor of interaction comparison logic<commit_after>module RSpec
  module Contracts
    class Interaction
      attr_reader :interface_name, :method_name, :arguments, :return_value

      def initialize(interface_name, method_name, options = {})
        @interface_name = interface_name
        @method_name = method_name
        @arguments = options[:arguments] || []
        @return_value = options[:return_value]
      end

      def fully_described_by?(interaction)
        [:interface_name, :method_name, :arguments, :return_value].select do |attribute|
          return false if interaction.send(attribute) != send(attribute)
        end
        true
      end
    end
  end
end

{'fraction_non_alphanumeric': 0.08708708708708708, 'fraction_numerical': 0.0, 'mean_word_length': 3.126934984520124, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6593755', 'n_tokens_mistral': 367, 'n_tokens_neox': 361, 'n_words': 87}