graph_matching 0.0.2 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +35 -0
  3. data/.rubocop_todo.yml +29 -256
  4. data/CHANGELOG.md +8 -2
  5. data/Rakefile +3 -3
  6. data/benchmark/mcm_bipartite/complete_bigraphs/benchmark.rb +1 -1
  7. data/benchmark/mcm_general/complete_graphs/benchmark.rb +1 -1
  8. data/benchmark/mwm_bipartite/complete_bigraphs/benchmark.rb +1 -1
  9. data/benchmark/mwm_bipartite/misc/calc_d2/benchmark.rb +1 -5
  10. data/benchmark/mwm_general/complete_graphs/benchmark.rb +2 -2
  11. data/benchmark/mwm_general/incomplete_graphs/benchmark.rb +6 -7
  12. data/graph_matching.gemspec +7 -11
  13. data/lib/graph_matching/algorithm/mcm_bipartite.rb +9 -8
  14. data/lib/graph_matching/algorithm/mcm_general.rb +2 -2
  15. data/lib/graph_matching/algorithm/mwm_bipartite.rb +25 -25
  16. data/lib/graph_matching/algorithm/mwm_general.rb +121 -117
  17. data/lib/graph_matching/algorithm/mwmg_delta_assertions.rb +47 -50
  18. data/lib/graph_matching/assertion.rb +4 -4
  19. data/lib/graph_matching/core_ext/set.rb +1 -1
  20. data/lib/graph_matching/graph/bigraph.rb +1 -1
  21. data/lib/graph_matching/graph/graph.rb +1 -1
  22. data/lib/graph_matching/graph/weighted.rb +11 -8
  23. data/lib/graph_matching/integer_vertexes.rb +2 -2
  24. data/lib/graph_matching/version.rb +1 -1
  25. data/lib/graph_matching/visualize.rb +5 -5
  26. data/profile/mwm_general/profile.rb +1 -1
  27. data/spec/graph_matching/algorithm/mcm_bipartite_spec.rb +1 -1
  28. data/spec/graph_matching/algorithm/mcm_general_spec.rb +1 -1
  29. data/spec/graph_matching/algorithm/mwm_bipartite_spec.rb +1 -1
  30. data/spec/graph_matching/algorithm/mwm_general_spec.rb +44 -41
  31. data/spec/graph_matching/graph/graph_spec.rb +4 -4
  32. data/spec/graph_matching/integer_vertexes_spec.rb +2 -2
  33. data/spec/spec_helper.rb +2 -2
  34. metadata +17 -17
@@ -3,7 +3,7 @@
3
3
  require 'spec_helper'
4
4
 
5
5
  RSpec.describe GraphMatching::Graph::Graph do
6
- ERR_MSG_INT_VERTEXES = 'All vertexes must be integers'
6
+ ERR_MSG_INT_VERTEXES = 'All vertexes must be integers'.freeze
7
7
 
8
8
  let(:g) { described_class.new }
9
9
 
@@ -40,13 +40,13 @@ RSpec.describe GraphMatching::Graph::Graph do
40
40
  end
41
41
  end
42
42
 
43
- describe "#max_v" do
44
- it "returns the largest vertex number" do
43
+ describe '#max_v' do
44
+ it 'returns the largest vertex number' do
45
45
  g = described_class[1, 3, 3, 7]
46
46
  expect(g.max_v).to eq(7)
47
47
  end
48
48
 
49
- it "returns nil when graph is empty" do
49
+ it 'returns nil when graph is empty' do
50
50
  expect(g.max_v).to eq(nil)
51
51
  end
52
52
  end
@@ -7,14 +7,14 @@ require 'graph_matching/integer_vertexes'
7
7
  RSpec.describe GraphMatching::IntegerVertexes do
8
8
  describe '.to_integers' do
9
9
  it 'returns new graph with vertexes converted to integers, and a legend' do
10
- e = %w[a b]
10
+ e = %w(a b)
11
11
  g1 = RGL::AdjacencyGraph[*e]
12
12
  g2, legend = described_class.to_integers(g1)
13
13
  expect(g2.size).to eq(g1.size)
14
14
  expect(g2.vertices).to eq(1.upto(g1.size).to_a)
15
15
  expect(g2.num_edges).to eq(g1.num_edges)
16
16
  legend.keys.map(&:class).uniq.each do |klass|
17
- expect(klass).to be < Integer
17
+ expect(klass).to(be <= ::Integer)
18
18
  end
19
19
  end
20
20
  end
@@ -12,8 +12,8 @@ end
12
12
 
13
13
  RSpec::Matchers.define(:match_edges) do |expected|
14
14
  match do |matching|
15
- fail TypeError unless matching.is_a?(GraphMatching::Matching)
16
- fail TypeError unless expected.is_a?(Array)
15
+ raise TypeError unless matching.is_a?(GraphMatching::Matching)
16
+ raise TypeError unless expected.is_a?(Array)
17
17
  se = Set.new(expected.map { |e| RGL::Edge::UnDirectedEdge.new(*e) })
18
18
  sa = Set.new(matching.undirected_edges)
19
19
  se == sa
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: graph_matching
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jared Beck
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-15 00:00:00.000000000 Z
11
+ date: 2017-05-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rgl
@@ -39,89 +39,89 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.12'
41
41
  - !ruby/object:Gem::Dependency
42
- name: pry-nav
42
+ name: pry-byebug
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.2.4
47
+ version: '3.4'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.2.4
54
+ version: '3.4'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec-core
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '3.2'
61
+ version: '3.6'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '3.2'
68
+ version: '3.6'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec-expectations
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '3.2'
75
+ version: '3.6'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '3.2'
82
+ version: '3.6'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rspec-mocks
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '3.2'
89
+ version: '3.6'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '3.2'
96
+ version: '3.6'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rake
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '11.2'
103
+ version: '12.0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '11.2'
110
+ version: '12.0'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: rubocop
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 0.42.0
117
+ version: 0.48.1
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: 0.42.0
124
+ version: 0.48.1
125
125
  description: |2
126
126
  Efficient algorithms for maximum cardinality
127
127
  and weighted matchings in undirected graphs.
@@ -236,7 +236,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
236
236
  requirements:
237
237
  - - ">="
238
238
  - !ruby/object:Gem::Version
239
- version: 2.0.0
239
+ version: 2.2.0
240
240
  required_rubygems_version: !ruby/object:Gem::Requirement
241
241
  requirements:
242
242
  - - ">="
@@ -244,7 +244,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
244
244
  version: '0'
245
245
  requirements: []
246
246
  rubyforge_project:
247
- rubygems_version: 2.5.1
247
+ rubygems_version: 2.6.12
248
248
  signing_key:
249
249
  specification_version: 4
250
250
  summary: Finds maximum matchings in undirected graphs.