Sha256: 859c9b19c2017d1d79d6adfed19cf7183de7773f980ee708f43b9bb31eb9683b

Contents?: true

Size: 802 Bytes

Versions: 4

Compression:

Stored size: 802 Bytes

Contents

# -*- encoding: utf-8 -*-
# frozen_string_literal: true
require 'minitest/assertions'

module Minitest::Assertions
  #
  #  Fails unless +expected and +actual have the same items.
  #
  def assert_same_items(expected, actual)
    assert same_items(expected, actual),
      "Expected #{ expected.inspect } and #{ actual.inspect } to have the same items"
  end

  #
  #  Fails if +expected and +actual have the same items.
  #
  def refute_same_items(expected, actual)
    refute same_items(expected, actual),
    "Expected #{ expected.inspect } and #{ actual.inspect } would not have the same items"
  end

  private
  def same_items(expected, actual)
    actual.is_a?(Enumerable) && expected.is_a?(Enumerable) &&
    expected.count == actual.count && actual.all? { |e| expected.include?(e) }
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
k-replace-1.0.0 test/custom_assertion.rb
k-replace-0.1.1 test/custom_assertion.rb
k-replace-0.1.0 test/custom_assertion.rb
k-replace-0.0.1 test/custom_assertion.rb