Sha256: 6b9ac3c0a1e99bbd3a3815723dcd26af599886127d4300383c0385fd964afc8c

Contents?: true

Size: 1.04 KB

Versions: 5

Compression:

Stored size: 1.04 KB

Contents

# frozen_string_literal: true

require 'test_helper'
require 'rubycritic/core/smell'

describe 'Array of Smells' do
  it 'is sortable' do
    location1 = RubyCritic::Location.new('./foo', 42)
    location2 = RubyCritic::Location.new('./bar', 23)
    location3 = RubyCritic::Location.new('./bar', 16)
    smell1 = RubyCritic::Smell.new(locations: [location1])
    smell2 = RubyCritic::Smell.new(locations: [location2])
    smell3 = RubyCritic::Smell.new(locations: [location3])
    [smell1, smell2, smell3].sort.must_equal [smell3, smell2, smell1]
  end

  it 'implements set intersection' do
    smell1 = RubyCritic::Smell.new(context: '#bar')
    smell2 = RubyCritic::Smell.new(context: '#bar')
    smell3 = RubyCritic::Smell.new(context: '#foo')
    ([smell1, smell3] & [smell2]).must_equal [smell1]
  end

  it 'implements set union' do
    smell1 = RubyCritic::Smell.new(context: '#bar')
    smell2 = RubyCritic::Smell.new(context: '#bar')
    smell3 = RubyCritic::Smell.new(context: '#foo')
    ([smell1, smell3] | [smell2]).must_equal [smell1, smell3]
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
rubycritic-3.4.0 test/lib/rubycritic/core/smells_array_test.rb
rubycritic-3.3.0 test/lib/rubycritic/core/smells_array_test.rb
rubycritic-3.2.3 test/lib/rubycritic/core/smells_array_test.rb
rubycritic-3.2.2 test/lib/rubycritic/core/smells_array_test.rb
rubycritic-3.2.1 test/lib/rubycritic/core/smells_array_test.rb