abstract_graph 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +2 -0
  3. data/lib/abstract_graph/composition/uniquenamecollection/dup.rb +1 -1
  4. data/lib/abstract_graph/composition/uniquenamecollection/rename.rb +28 -0
  5. data/lib/abstract_graph/composition/uniquenamecollection.rb +1 -0
  6. data/lib/abstract_graph/graph/add_edge.rb +2 -2
  7. data/lib/abstract_graph/graph/adjacency_list.rb +28 -0
  8. data/lib/abstract_graph/graph/change_edge_name.rb +15 -0
  9. data/lib/abstract_graph/graph/change_vertex_name.rb +15 -0
  10. data/lib/abstract_graph/graph/dup.rb +9 -2
  11. data/lib/abstract_graph/graph/get_edge_name.rb +24 -0
  12. data/lib/abstract_graph/graph/is_adjacent.rb +20 -0
  13. data/lib/abstract_graph/graph/merge_vertices.rb +84 -0
  14. data/lib/abstract_graph/graph/split_vertex.rb +40 -0
  15. data/lib/abstract_graph/graph/templates/complete_bipartite_graph.rb +40 -0
  16. data/lib/abstract_graph/graph/templates/complete_graph.rb +25 -0
  17. data/lib/abstract_graph/graph/templates/cycle_graph.rb +34 -0
  18. data/lib/abstract_graph/graph/templates/path_graph.rb +28 -0
  19. data/lib/abstract_graph/graph/templates/petersen_graph.rb +36 -0
  20. data/lib/abstract_graph/graph/templates.rb +15 -0
  21. data/lib/abstract_graph/graph.rb +8 -0
  22. data/lib/abstract_graph/version.rb +1 -1
  23. data/spec/abstract_graph/composition/uniquenamecollection/rename_spec.rb +42 -0
  24. data/spec/abstract_graph/graph/adjacency_list_spec.rb +44 -0
  25. data/spec/abstract_graph/graph/change_edge_name_spec.rb +42 -0
  26. data/spec/abstract_graph/graph/change_vertex_name_spec.rb +40 -0
  27. data/spec/abstract_graph/graph/dup_spec.rb +27 -22
  28. data/spec/abstract_graph/graph/get_edge_name_spec.rb +38 -0
  29. data/spec/abstract_graph/graph/has_edge_spec.rb +17 -19
  30. data/spec/abstract_graph/graph/has_vertex_spec.rb +13 -15
  31. data/spec/abstract_graph/graph/is_adjacent_spec.rb +36 -0
  32. data/spec/abstract_graph/graph/merge_vertices_spec.rb +199 -0
  33. data/spec/abstract_graph/graph/split_vertex_spec.rb +104 -0
  34. data/spec/abstract_graph/graph/templates/complete_bipartite_graph_spec.rb +63 -0
  35. data/spec/abstract_graph/graph/templates/complete_graph_spec.rb +36 -0
  36. data/spec/abstract_graph/graph/templates/cycle_graph_spec.rb +36 -0
  37. data/spec/abstract_graph/graph/templates/path_graph_spec.rb +52 -0
  38. data/spec/abstract_graph/graph/templates/petersen_graph_spec.rb +34 -0
  39. metadata +50 -13
@@ -0,0 +1,36 @@
1
+ require 'spec_helper'
2
+
3
+ module AbstractGraph
4
+ describe Graph do
5
+
6
+ describe ".cycle_graph(Integer)" do
7
+
8
+ before :all do
9
+ @n = 6
10
+ @graphncycle = Graph.cycle_graph @n
11
+ @graph10cycle = Graph.cycle_graph 10
12
+ end
13
+
14
+ it "retuns an object of class Graph" do
15
+ Graph.complete_graph(1).should be_an_instance_of(Graph)
16
+ end
17
+
18
+ it "creates as many vertices as the integer, named with powers of two" do
19
+ @n.times do |i|
20
+ @graphncycle.has_vertex?("v#{2**i}").should be_true
21
+ end
22
+ @graph10cycle.has_vertex?("v#{2**9}").should be_true
23
+ end
24
+
25
+ it "ensures each vertex is adjacent to two other vertices" do
26
+ @n.times do |i|
27
+ @graphncycle.adjacency_list("v#{2**i}").size.should eql(2)
28
+ end
29
+ end
30
+
31
+ #TODO: Write some path specific tests
32
+
33
+ end
34
+
35
+ end
36
+ end
@@ -0,0 +1,52 @@
1
+ require 'spec_helper'
2
+
3
+ module AbstractGraph
4
+ describe Graph do
5
+
6
+ describe ".path_graph(Integer)" do
7
+
8
+ before :all do
9
+ @n = 4
10
+ @graphnpath = Graph.path_graph @n
11
+ @graph10path = Graph.path_graph 10
12
+ end
13
+
14
+ it "returns an object of class Graph" do
15
+ Graph.path_graph(1).should be_an_instance_of(Graph)
16
+ end
17
+
18
+ it "creates as many vertices as the integer, named with powers of two" do
19
+ @n.times do |i|
20
+ @graphnpath.has_vertex?("v#{2**i}").should be_true
21
+ end
22
+ @graph10path.has_vertex?("v#{2**9}").should be_true
23
+ end
24
+
25
+ it "creates the same number as edges as integer - 1" do
26
+ adjacencies = 0
27
+ @n.times do |i|
28
+ adjacencies += @graphnpath.adjacency_list("v#{2**i}").size
29
+ end
30
+ adjacencies.should eql((@n - 1)*2)
31
+ end
32
+
33
+ it "ensures there are two 'end' vertices" do
34
+ endVertices = 0
35
+ @n.times do |i|
36
+ endVertices += 1 if @graphnpath.adjacency_list("v#{2**i}").size == 1
37
+ end
38
+ endVertices.should eql(2)
39
+ end
40
+
41
+ it "ensures there are integer - 2 vertices with adjacency two" do
42
+ connectorVertices = 0
43
+ @n.times do |i|
44
+ connectorVertices += 1 if @graphnpath.adjacency_list("v#{2**i}").size == 2
45
+ end
46
+ connectorVertices.should eql(@n - 2)
47
+ end
48
+
49
+ end
50
+
51
+ end
52
+ end
@@ -0,0 +1,34 @@
1
+ require 'spec_helper'
2
+
3
+ module AbstractGraph
4
+ describe Graph do
5
+
6
+ describe ".petersen_graph" do
7
+
8
+ before :all do
9
+ @graphpetersen = Graph.petersen_graph
10
+ end
11
+
12
+ it "returns an object of class Graph" do
13
+ @graphpetersen.should be_an_instance_of(Graph)
14
+ end
15
+
16
+ it "contains 10 vertices and 15 edges" do
17
+ adjacencies = 0
18
+ (0..9).each do |i|
19
+ @graphpetersen.has_vertex?("v#{2**i}").should be_true
20
+ adjacencies += @graphpetersen.adjacency_list("v#{2**i}").size
21
+ end
22
+ adjacencies.should eql(15 * 2)
23
+ end
24
+
25
+ it "ensures each vertex has degree 3" do
26
+ (0..9).each do |i|
27
+ @graphpetersen.adjacency_list("v#{2**i}").size.should eql(3)
28
+ end
29
+ end
30
+
31
+ end
32
+
33
+ end
34
+ end
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: abstract_graph
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
5
- prerelease:
4
+ version: 1.1.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Austin Lee ~D4L
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-01-09 00:00:00.000000000 Z
11
+ date: 2013-07-07 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rspec
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
@@ -22,13 +20,13 @@ dependencies:
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
29
26
  version: '2.5'
30
- description: ! "Abstract Graph is a graphing library that can create\n mathematical
31
- graphs and perform operatations on them."
27
+ description: |-
28
+ Abstract Graph is a graphing library that can create
29
+ mathematical graphs and perform operatations on them.
32
30
  email:
33
31
  - Austin.Lee.D4L@gmail.com
34
32
  executables: []
@@ -52,18 +50,32 @@ files:
52
50
  - lib/abstract_graph/composition/uniquenamecollection/initialize.rb
53
51
  - lib/abstract_graph/composition/uniquenamecollection/link.rb
54
52
  - lib/abstract_graph/composition/uniquenamecollection/method_missing.rb
53
+ - lib/abstract_graph/composition/uniquenamecollection/rename.rb
55
54
  - lib/abstract_graph/composition/vertex.rb
56
55
  - lib/abstract_graph/composition/vertex/delete.rb
57
56
  - lib/abstract_graph/composition/vertex/initialize.rb
58
57
  - lib/abstract_graph/graph.rb
59
58
  - lib/abstract_graph/graph/add_edge.rb
60
59
  - lib/abstract_graph/graph/add_vertex.rb
60
+ - lib/abstract_graph/graph/adjacency_list.rb
61
+ - lib/abstract_graph/graph/change_edge_name.rb
62
+ - lib/abstract_graph/graph/change_vertex_name.rb
61
63
  - lib/abstract_graph/graph/delete_edge.rb
62
64
  - lib/abstract_graph/graph/delete_vertex.rb
63
65
  - lib/abstract_graph/graph/dup.rb
66
+ - lib/abstract_graph/graph/get_edge_name.rb
64
67
  - lib/abstract_graph/graph/has_edge.rb
65
68
  - lib/abstract_graph/graph/has_vertex.rb
66
69
  - lib/abstract_graph/graph/initialize.rb
70
+ - lib/abstract_graph/graph/is_adjacent.rb
71
+ - lib/abstract_graph/graph/merge_vertices.rb
72
+ - lib/abstract_graph/graph/split_vertex.rb
73
+ - lib/abstract_graph/graph/templates.rb
74
+ - lib/abstract_graph/graph/templates/complete_bipartite_graph.rb
75
+ - lib/abstract_graph/graph/templates/complete_graph.rb
76
+ - lib/abstract_graph/graph/templates/cycle_graph.rb
77
+ - lib/abstract_graph/graph/templates/path_graph.rb
78
+ - lib/abstract_graph/graph/templates/petersen_graph.rb
67
79
  - lib/abstract_graph/version.rb
68
80
  - spec/abstract_graph/composition/edge/initialize_spec.rb
69
81
  - spec/abstract_graph/composition/edge/is_coincident_spec.rb
@@ -75,6 +87,7 @@ files:
75
87
  - spec/abstract_graph/composition/uniquenamecollection/initialize_spec.rb
76
88
  - spec/abstract_graph/composition/uniquenamecollection/link_spec.rb
77
89
  - spec/abstract_graph/composition/uniquenamecollection/method_missing_spec.rb
90
+ - spec/abstract_graph/composition/uniquenamecollection/rename_spec.rb
78
91
  - spec/abstract_graph/composition/uniquenamecollection_spec.rb
79
92
  - spec/abstract_graph/composition/vertex/delete_spec.rb
80
93
  - spec/abstract_graph/composition/vertex/initialize_spec.rb
@@ -83,12 +96,24 @@ files:
83
96
  - spec/abstract_graph/composition/vertex_spec.rb
84
97
  - spec/abstract_graph/graph/add_edge_spec.rb
85
98
  - spec/abstract_graph/graph/add_vertex_spec.rb
99
+ - spec/abstract_graph/graph/adjacency_list_spec.rb
100
+ - spec/abstract_graph/graph/change_edge_name_spec.rb
101
+ - spec/abstract_graph/graph/change_vertex_name_spec.rb
86
102
  - spec/abstract_graph/graph/delete_edge_spec.rb
87
103
  - spec/abstract_graph/graph/delete_vertex_spec.rb
88
104
  - spec/abstract_graph/graph/dup_spec.rb
105
+ - spec/abstract_graph/graph/get_edge_name_spec.rb
89
106
  - spec/abstract_graph/graph/has_edge_spec.rb
90
107
  - spec/abstract_graph/graph/has_vertex_spec.rb
91
108
  - spec/abstract_graph/graph/intialize_spec.rb
109
+ - spec/abstract_graph/graph/is_adjacent_spec.rb
110
+ - spec/abstract_graph/graph/merge_vertices_spec.rb
111
+ - spec/abstract_graph/graph/split_vertex_spec.rb
112
+ - spec/abstract_graph/graph/templates/complete_bipartite_graph_spec.rb
113
+ - spec/abstract_graph/graph/templates/complete_graph_spec.rb
114
+ - spec/abstract_graph/graph/templates/cycle_graph_spec.rb
115
+ - spec/abstract_graph/graph/templates/path_graph_spec.rb
116
+ - spec/abstract_graph/graph/templates/petersen_graph_spec.rb
92
117
  - spec/abstract_graph/graph_spec.rb
93
118
  - spec/abstract_graph_spec.rb
94
119
  - spec/dummy_helper.rb
@@ -96,27 +121,26 @@ files:
96
121
  homepage: https://github.com/D4L/abstractGraph
97
122
  licenses:
98
123
  - MIT
124
+ metadata: {}
99
125
  post_install_message:
100
126
  rdoc_options: []
101
127
  require_paths:
102
128
  - lib
103
129
  required_ruby_version: !ruby/object:Gem::Requirement
104
- none: false
105
130
  requirements:
106
- - - ! '>='
131
+ - - '>='
107
132
  - !ruby/object:Gem::Version
108
133
  version: '0'
109
134
  required_rubygems_version: !ruby/object:Gem::Requirement
110
- none: false
111
135
  requirements:
112
- - - ! '>='
136
+ - - '>='
113
137
  - !ruby/object:Gem::Version
114
138
  version: '0'
115
139
  requirements: []
116
140
  rubyforge_project:
117
- rubygems_version: 1.8.24
141
+ rubygems_version: 2.0.3
118
142
  signing_key:
119
- specification_version: 3
143
+ specification_version: 4
120
144
  summary: Mathmatical graph analysis software.
121
145
  test_files:
122
146
  - spec/abstract_graph/composition/edge/initialize_spec.rb
@@ -129,6 +153,7 @@ test_files:
129
153
  - spec/abstract_graph/composition/uniquenamecollection/initialize_spec.rb
130
154
  - spec/abstract_graph/composition/uniquenamecollection/link_spec.rb
131
155
  - spec/abstract_graph/composition/uniquenamecollection/method_missing_spec.rb
156
+ - spec/abstract_graph/composition/uniquenamecollection/rename_spec.rb
132
157
  - spec/abstract_graph/composition/uniquenamecollection_spec.rb
133
158
  - spec/abstract_graph/composition/vertex/delete_spec.rb
134
159
  - spec/abstract_graph/composition/vertex/initialize_spec.rb
@@ -137,12 +162,24 @@ test_files:
137
162
  - spec/abstract_graph/composition/vertex_spec.rb
138
163
  - spec/abstract_graph/graph/add_edge_spec.rb
139
164
  - spec/abstract_graph/graph/add_vertex_spec.rb
165
+ - spec/abstract_graph/graph/adjacency_list_spec.rb
166
+ - spec/abstract_graph/graph/change_edge_name_spec.rb
167
+ - spec/abstract_graph/graph/change_vertex_name_spec.rb
140
168
  - spec/abstract_graph/graph/delete_edge_spec.rb
141
169
  - spec/abstract_graph/graph/delete_vertex_spec.rb
142
170
  - spec/abstract_graph/graph/dup_spec.rb
171
+ - spec/abstract_graph/graph/get_edge_name_spec.rb
143
172
  - spec/abstract_graph/graph/has_edge_spec.rb
144
173
  - spec/abstract_graph/graph/has_vertex_spec.rb
145
174
  - spec/abstract_graph/graph/intialize_spec.rb
175
+ - spec/abstract_graph/graph/is_adjacent_spec.rb
176
+ - spec/abstract_graph/graph/merge_vertices_spec.rb
177
+ - spec/abstract_graph/graph/split_vertex_spec.rb
178
+ - spec/abstract_graph/graph/templates/complete_bipartite_graph_spec.rb
179
+ - spec/abstract_graph/graph/templates/complete_graph_spec.rb
180
+ - spec/abstract_graph/graph/templates/cycle_graph_spec.rb
181
+ - spec/abstract_graph/graph/templates/path_graph_spec.rb
182
+ - spec/abstract_graph/graph/templates/petersen_graph_spec.rb
146
183
  - spec/abstract_graph/graph_spec.rb
147
184
  - spec/abstract_graph_spec.rb
148
185
  - spec/dummy_helper.rb