abstract_graph 1.1.0 → 1.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +13 -5
- data/Rakefile +11 -1
- data/lib/abstract_graph.rb +1 -0
- data/lib/abstract_graph/composition.rb +1 -1
- data/lib/abstract_graph/composition/edge.rb +5 -0
- data/lib/abstract_graph/composition/edge/initialize.rb +6 -0
- data/lib/abstract_graph/composition/edge/is_coincident.rb +5 -2
- data/lib/abstract_graph/composition/unique_name_collection.rb +28 -0
- data/lib/abstract_graph/composition/unique_name_collection/add.rb +23 -0
- data/lib/abstract_graph/composition/unique_name_collection/delete.rb +20 -0
- data/lib/abstract_graph/composition/unique_name_collection/dup.rb +24 -0
- data/lib/abstract_graph/composition/unique_name_collection/each.rb +18 -0
- data/lib/abstract_graph/composition/unique_name_collection/find.rb +18 -0
- data/lib/abstract_graph/composition/unique_name_collection/initialize.rb +22 -0
- data/lib/abstract_graph/composition/unique_name_collection/link.rb +42 -0
- data/lib/abstract_graph/composition/unique_name_collection/method_missing.rb +18 -0
- data/lib/abstract_graph/composition/unique_name_collection/rename.rb +34 -0
- data/lib/abstract_graph/composition/unique_name_collection/ticket.rb +18 -0
- data/lib/abstract_graph/composition/unique_name_collection/ticket/get.rb +20 -0
- data/lib/abstract_graph/composition/unique_name_collection/ticket/initialize.rb +20 -0
- data/lib/abstract_graph/composition/unique_name_collection/ticket/set.rb +20 -0
- data/lib/abstract_graph/composition/vertex.rb +5 -1
- data/lib/abstract_graph/composition/vertex/initialize.rb +6 -0
- data/lib/abstract_graph/graph.rb +1 -0
- data/lib/abstract_graph/graph/add_edge.rb +9 -8
- data/lib/abstract_graph/graph/add_vertex.rb +5 -2
- data/lib/abstract_graph/graph/adjacency_list.rb +8 -3
- data/lib/abstract_graph/graph/change_edge_name.rb +6 -4
- data/lib/abstract_graph/graph/change_vertex_name.rb +5 -3
- data/lib/abstract_graph/graph/connected.rb +36 -0
- data/lib/abstract_graph/graph/delete_edge.rb +5 -4
- data/lib/abstract_graph/graph/delete_vertex.rb +5 -4
- data/lib/abstract_graph/graph/dup.rb +8 -3
- data/lib/abstract_graph/graph/get_edge_name.rb +7 -4
- data/lib/abstract_graph/graph/has_edge.rb +6 -3
- data/lib/abstract_graph/graph/has_vertex.rb +6 -3
- data/lib/abstract_graph/graph/initialize.rb +5 -1
- data/lib/abstract_graph/graph/is_adjacent.rb +9 -7
- data/lib/abstract_graph/graph/merge_vertices.rb +16 -14
- data/lib/abstract_graph/graph/split_vertex.rb +10 -7
- data/lib/abstract_graph/graph/templates/complete_bipartite_graph.rb +7 -5
- data/lib/abstract_graph/graph/templates/complete_graph.rb +8 -6
- data/lib/abstract_graph/graph/templates/cycle_graph.rb +6 -5
- data/lib/abstract_graph/graph/templates/path_graph.rb +6 -4
- data/lib/abstract_graph/graph/templates/petersen_graph.rb +8 -2
- data/lib/abstract_graph/version.rb +1 -1
- data/spec/abstract_graph/composition/{uniquenamecollection → unique_name_collection}/add_spec.rb +0 -0
- data/spec/abstract_graph/composition/{uniquenamecollection → unique_name_collection}/dup_spec.rb +0 -0
- data/spec/abstract_graph/composition/unique_name_collection/each_spec.rb +38 -0
- data/spec/abstract_graph/composition/unique_name_collection/find_spec.rb +33 -0
- data/spec/abstract_graph/composition/{uniquenamecollection → unique_name_collection}/initialize_spec.rb +0 -0
- data/spec/abstract_graph/composition/{uniquenamecollection → unique_name_collection}/link_spec.rb +0 -0
- data/spec/abstract_graph/composition/{uniquenamecollection → unique_name_collection}/method_missing_spec.rb +4 -15
- data/spec/abstract_graph/composition/{uniquenamecollection → unique_name_collection}/rename_spec.rb +1 -1
- data/spec/abstract_graph/composition/{uniquenamecollection_spec.rb → unique_name_collection_spec.rb} +0 -0
- data/spec/abstract_graph/graph/add_edge_spec.rb +1 -1
- data/spec/abstract_graph/graph/connected_spec.rb +39 -0
- data/tasks/benchmark.rb +47 -0
- data/tasks/create_method.rb +64 -0
- data/tasks/list_methods.rb +5 -0
- metadata +45 -32
- data/lib/abstract_graph/composition/uniquenamecollection.rb +0 -22
- data/lib/abstract_graph/composition/uniquenamecollection/add.rb +0 -19
- data/lib/abstract_graph/composition/uniquenamecollection/dup.rb +0 -20
- data/lib/abstract_graph/composition/uniquenamecollection/initialize.rb +0 -14
- data/lib/abstract_graph/composition/uniquenamecollection/link.rb +0 -32
- data/lib/abstract_graph/composition/uniquenamecollection/method_missing.rb +0 -14
- data/lib/abstract_graph/composition/uniquenamecollection/rename.rb +0 -28
- data/lib/abstract_graph/composition/vertex/delete.rb +0 -12
- data/spec/abstract_graph/composition/vertex/delete_spec.rb +0 -12
@@ -4,18 +4,20 @@ module AbstractGraph
|
|
4
4
|
class Graph
|
5
5
|
class << self
|
6
6
|
|
7
|
-
#
|
8
|
-
#
|
9
|
-
#
|
10
|
-
#
|
7
|
+
# d: Create a complete graph K(n).
|
8
|
+
# a: It adds n vertices, named "v(i)", i=2^0..n-1. Then adds the edges, the name being sum
|
9
|
+
# "e(i)" where i is sum of two connecting vertices.
|
10
|
+
# t: n * t(add_vertex) + C(n,2) * t(add_edge)
|
11
|
+
# p: n is number of vertices
|
12
|
+
# r: a complete graph
|
11
13
|
def complete_graph n
|
12
14
|
result = new
|
13
15
|
vertexNames = n.times.collect { |i| 2**i }
|
14
16
|
vertexNames.each do |i|
|
15
17
|
result.add_vertex "v#{i}"
|
16
18
|
end
|
17
|
-
vertexNames.combination(2).each do |i|
|
18
|
-
result.add_edge( "e#{i
|
19
|
+
vertexNames.combination(2).each do |i,j|
|
20
|
+
result.add_edge( "e#{i+j}", "v#{i}", "v#{j}" )
|
19
21
|
end
|
20
22
|
result
|
21
23
|
end
|
@@ -4,11 +4,12 @@ module AbstractGraph
|
|
4
4
|
class Graph
|
5
5
|
class << self
|
6
6
|
|
7
|
-
#
|
8
|
-
#
|
9
|
-
#
|
10
|
-
#
|
11
|
-
#
|
7
|
+
# d: Create a cycle graph
|
8
|
+
# a: Create the vertices and edges at the same time. The naming scheme is power of two for
|
9
|
+
# vertices and the sum of vertices for edges.
|
10
|
+
# t: n * (t(add_vertex) + t(add_edge))
|
11
|
+
# p: n is the number of vertices
|
12
|
+
# r: a cycle graph
|
12
13
|
def cycle_graph n
|
13
14
|
result = new
|
14
15
|
vertexNames = (n-1).times.collect { |i| 2**(i + 1) }
|
@@ -4,10 +4,12 @@ module AbstractGraph
|
|
4
4
|
class Graph
|
5
5
|
class << self
|
6
6
|
|
7
|
-
#
|
8
|
-
#
|
9
|
-
#
|
10
|
-
#
|
7
|
+
# d: Returns a path.
|
8
|
+
# a: It creates a path.by adding vertices and edges at the same time, vertices named "v(i)"
|
9
|
+
# i=2^0..n-1, and edges "e(i)" where i is sum of vertices adjacent.
|
10
|
+
# t: n * (t(add_vertex) + t(add_edge))
|
11
|
+
# p: n is the number of vertices
|
12
|
+
# r: a path graph
|
11
13
|
def path_graph n
|
12
14
|
result = new
|
13
15
|
|
@@ -4,6 +4,12 @@ module AbstractGraph
|
|
4
4
|
class Graph
|
5
5
|
class << self
|
6
6
|
|
7
|
+
# d: Create a peterson graph.
|
8
|
+
# a: It adds 10 vertices "v(i)", i=2^0..9. Then adds the specified edges, according to the
|
9
|
+
# specified edges array.
|
10
|
+
# t: constant
|
11
|
+
# p: none
|
12
|
+
# r: a peterson graph
|
7
13
|
# create a petersen graph.
|
8
14
|
# ie, a 3 regular graph with 10 vertices and 15 edges
|
9
15
|
def petersen_graph
|
@@ -24,8 +30,8 @@ module AbstractGraph
|
|
24
30
|
[4, 9], [5, 8], [5, 7],
|
25
31
|
[6, 9], [7, 9], [6, 8]]
|
26
32
|
|
27
|
-
specifiedEdges.each do |
|
28
|
-
result.add_edge "e#{vertexNames[
|
33
|
+
specifiedEdges.each do |edge1, edge2|
|
34
|
+
result.add_edge "e#{vertexNames[edge1] + vertexNames[edge2]}", "v#{vertexNames[edge1]}", "v#{vertexNames[edge2]}"
|
29
35
|
end
|
30
36
|
|
31
37
|
result
|
data/spec/abstract_graph/composition/{uniquenamecollection → unique_name_collection}/add_spec.rb
RENAMED
File without changes
|
data/spec/abstract_graph/composition/{uniquenamecollection → unique_name_collection}/dup_spec.rb
RENAMED
File without changes
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module AbstractGraph
|
4
|
+
module Composition
|
5
|
+
describe UniqueNameCollection do
|
6
|
+
|
7
|
+
before(:each) do
|
8
|
+
@collection = UniqueNameCollection.new
|
9
|
+
dummy = Dummy.new
|
10
|
+
dummy.name = "DummyName"
|
11
|
+
@collection.add dummy
|
12
|
+
dummy2 = Dummy.new
|
13
|
+
dummy2.name = "DummyName2"
|
14
|
+
@collection.add dummy2
|
15
|
+
end
|
16
|
+
|
17
|
+
describe "#each(&Block)" do
|
18
|
+
|
19
|
+
it "returns an object of type Enumerable" do
|
20
|
+
@collection.each.should be_an_instance_of(Enumerator)
|
21
|
+
end
|
22
|
+
|
23
|
+
it "returns an object of type Hash if passed a block" do
|
24
|
+
@collection.each{}.should be_an_instance_of(Hash)
|
25
|
+
@collection.each{|d|}.should be_an_instance_of(Hash)
|
26
|
+
end
|
27
|
+
|
28
|
+
it "passes each object back to the block of arity 1" do
|
29
|
+
@collection.each do |d|
|
30
|
+
d.should be_an_instance_of( Dummy )
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module AbstractGraph
|
4
|
+
module Composition
|
5
|
+
describe UniqueNameCollection do
|
6
|
+
|
7
|
+
before(:each) do
|
8
|
+
@collection = UniqueNameCollection.new
|
9
|
+
@dummy = Dummy.new
|
10
|
+
@name = "DummyName"
|
11
|
+
@dummy.name = @name
|
12
|
+
@collection.add(@dummy)
|
13
|
+
end
|
14
|
+
|
15
|
+
describe "#find(name)" do
|
16
|
+
|
17
|
+
it "returns an object of the right class" do
|
18
|
+
@collection.find(@name).should be_an_instance_of(Dummy)
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should return the correct object" do
|
22
|
+
@collection.find(@name).should eql(@dummy)
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should return nil if a name that doesn't exist is passed" do
|
26
|
+
@collection.find("BadName").should be_nil
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
File without changes
|
data/spec/abstract_graph/composition/{uniquenamecollection → unique_name_collection}/link_spec.rb
RENAMED
File without changes
|
@@ -24,23 +24,12 @@ module AbstractGraph
|
|
24
24
|
|
25
25
|
end
|
26
26
|
|
27
|
-
describe "#
|
27
|
+
describe "#each" do
|
28
28
|
|
29
|
-
it "
|
30
|
-
@collection.
|
31
|
-
|
32
|
-
end
|
33
|
-
|
34
|
-
end
|
35
|
-
|
36
|
-
describe "#each_key" do
|
37
|
-
|
38
|
-
it "goes through every name in the collection" do
|
39
|
-
alphabet = ""
|
40
|
-
@collection.each_key do |c|
|
41
|
-
alphabet += c
|
29
|
+
it "goes through every object in the collection" do
|
30
|
+
@collection.each do |c|
|
31
|
+
c.should be_an_instance_of(Dummy)
|
42
32
|
end
|
43
|
-
alphabet.should == "abcdefghijklmnopqrstuvwxyz"
|
44
33
|
end
|
45
34
|
|
46
35
|
end
|
data/spec/abstract_graph/composition/{uniquenamecollection_spec.rb → unique_name_collection_spec.rb}
RENAMED
File without changes
|
@@ -37,7 +37,7 @@ module AbstractGraph
|
|
37
37
|
it "returns nil if any of the vertices don't exist" do
|
38
38
|
@graph.add_edge( "MyEdge", @vertex1, "randomString" ).should be_nil
|
39
39
|
@graph.add_edge( "MyEdge", "randomString", @vertex1 ).should be_nil
|
40
|
-
@graph.edges["MyEdge"].should be_nil
|
40
|
+
@graph.edges.collection["MyEdge"].should be_nil
|
41
41
|
end
|
42
42
|
|
43
43
|
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module AbstractGraph
|
4
|
+
describe Graph do
|
5
|
+
|
6
|
+
before :all do
|
7
|
+
end
|
8
|
+
|
9
|
+
before :each do
|
10
|
+
end
|
11
|
+
|
12
|
+
describe "#connected?" do
|
13
|
+
|
14
|
+
it "returns true for any path" do
|
15
|
+
Graph.path_graph( 3 ).connected?.should be_true
|
16
|
+
Graph.path_graph( 1 ).connected?.should be_true
|
17
|
+
Graph.path_graph( 10 ).connected?.should be_true
|
18
|
+
end
|
19
|
+
|
20
|
+
it "returns true for an empty graph" do
|
21
|
+
Graph.new.connected?.should be_true
|
22
|
+
end
|
23
|
+
|
24
|
+
it "returns true for any cycle" do
|
25
|
+
Graph.cycle_graph( 3 ).connected?.should be_true
|
26
|
+
Graph.cycle_graph( 5 ).connected?.should be_true
|
27
|
+
end
|
28
|
+
|
29
|
+
it "returns false after a path loses an edge" do
|
30
|
+
graph3path = Graph.path_graph(3)
|
31
|
+
graph3path.connected?.should be_true
|
32
|
+
graph3path.delete_edge! "e3"
|
33
|
+
graph3path.connected?.should be_false
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
data/tasks/benchmark.rb
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
namespace :benchmark do
|
2
|
+
|
3
|
+
desc "Test that benchmarks work"
|
4
|
+
task :test do
|
5
|
+
p "Setting up benchmarking"
|
6
|
+
setup_benchmark
|
7
|
+
|
8
|
+
p "Testing benchmarking"
|
9
|
+
Timer.start
|
10
|
+
AbstractGraph::Graph.petersen_graph
|
11
|
+
end
|
12
|
+
|
13
|
+
desc "Benchmark a file with AbstractGraph code"
|
14
|
+
task :run, :file_path do |t, args|
|
15
|
+
setup_benchmark
|
16
|
+
Timer.start
|
17
|
+
require args[:file_path]
|
18
|
+
end
|
19
|
+
|
20
|
+
module Timer
|
21
|
+
class << self
|
22
|
+
def start
|
23
|
+
@start_time = Time.now
|
24
|
+
end
|
25
|
+
|
26
|
+
def start_method method
|
27
|
+
p "start #{method} #{'%.8f' % (Time.now - @start_time)}"
|
28
|
+
end
|
29
|
+
|
30
|
+
def end_method method
|
31
|
+
p "end #{method} #{'%.8f' % (Time.now - @start_time)}"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def setup_benchmark
|
37
|
+
AbstractGraph::Graph.instance_methods(false).each do |method|
|
38
|
+
AbstractGraph::Graph.send( :alias_method, "benched_#{method}", method )
|
39
|
+
AbstractGraph::Graph.send( :define_method, method ) do |*args, &block|
|
40
|
+
Timer.start_method method
|
41
|
+
send( "benched_#{method}", *args, &block )
|
42
|
+
Timer.end_method method
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
@@ -0,0 +1,64 @@
|
|
1
|
+
desc "Create a method and corresponding test - run with wanted lib file"
|
2
|
+
task :create_method, :method_path do |t, args|
|
3
|
+
method_path = args[:method_path]
|
4
|
+
if File.extname(method_path) == ""
|
5
|
+
method_path << ".rb"
|
6
|
+
end
|
7
|
+
method_directories, method_name = File.split(method_path)
|
8
|
+
method_name = File.basename(method_name, ".rb")
|
9
|
+
|
10
|
+
lib_path = "lib/" + method_path
|
11
|
+
spec_path = File.join "spec/", method_directories, method_name + "_spec.rb"
|
12
|
+
lib_require_path = "lib/" + method_directories + ".rb"
|
13
|
+
|
14
|
+
|
15
|
+
if File.file?( lib_path ) || File.file?( spec_path )
|
16
|
+
puts "This file already exists"
|
17
|
+
next
|
18
|
+
end
|
19
|
+
unless File.file?( lib_require_path )
|
20
|
+
puts "No place to put the require"
|
21
|
+
next
|
22
|
+
end
|
23
|
+
|
24
|
+
# Create the filler
|
25
|
+
lib_fill = "# required in \"#{method_directories}\"\n\n"
|
26
|
+
spec_fill = "require 'spec_helper'\n\n"
|
27
|
+
|
28
|
+
modules = method_directories.split(/\//)
|
29
|
+
modules.map! do |modulez|
|
30
|
+
modulez.capitalize.gsub(/_./) {|s| s[1].capitalize}
|
31
|
+
end
|
32
|
+
last_module = modules.pop
|
33
|
+
|
34
|
+
modules.each do |modulez|
|
35
|
+
lib_fill << "module #{modulez}\n"
|
36
|
+
spec_fill << "module #{modulez}\n"
|
37
|
+
end
|
38
|
+
|
39
|
+
lib_fill << "class #{last_module}\n"
|
40
|
+
spec_fill << "describe #{last_module} do\n"
|
41
|
+
|
42
|
+
lib_fill << "\n# d:\n# a:\n# t:\n# p:\n# r:\ndef #{method_name}\nend\n\n"
|
43
|
+
spec_fill << "\ndescribe \"##{method_name}\" do\nend\n\n"
|
44
|
+
|
45
|
+
modules.size.next.times do |i|
|
46
|
+
lib_fill << "end\n"
|
47
|
+
spec_fill << "end\n"
|
48
|
+
end
|
49
|
+
|
50
|
+
|
51
|
+
puts "Adding #{lib_path}"
|
52
|
+
File.open( lib_path, "w" ) do |file|
|
53
|
+
file << lib_fill
|
54
|
+
end
|
55
|
+
puts "Adding #{spec_path}"
|
56
|
+
File.open( spec_path, "w" ) do |file|
|
57
|
+
file << spec_fill
|
58
|
+
end
|
59
|
+
puts "Updating #{lib_require_path}"
|
60
|
+
File.open( lib_require_path, "a" ) do |file|
|
61
|
+
file.write "require \"#{method_directories}/#{method_name}\""
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: abstract_graph
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1
|
4
|
+
version: 1.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Austin Lee ~D4L
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-03-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -24,9 +24,8 @@ dependencies:
|
|
24
24
|
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '2.5'
|
27
|
-
description:
|
28
|
-
|
29
|
-
mathematical graphs and perform operatations on them.
|
27
|
+
description: ! "Abstract Graph is a graphing library that can create\n mathematical
|
28
|
+
graphs and perform operatations on them."
|
30
29
|
email:
|
31
30
|
- Austin.Lee.D4L@gmail.com
|
32
31
|
executables: []
|
@@ -44,15 +43,21 @@ files:
|
|
44
43
|
- lib/abstract_graph/composition/edge.rb
|
45
44
|
- lib/abstract_graph/composition/edge/initialize.rb
|
46
45
|
- lib/abstract_graph/composition/edge/is_coincident.rb
|
47
|
-
- lib/abstract_graph/composition/
|
48
|
-
- lib/abstract_graph/composition/
|
49
|
-
- lib/abstract_graph/composition/
|
50
|
-
- lib/abstract_graph/composition/
|
51
|
-
- lib/abstract_graph/composition/
|
52
|
-
- lib/abstract_graph/composition/
|
53
|
-
- lib/abstract_graph/composition/
|
46
|
+
- lib/abstract_graph/composition/unique_name_collection.rb
|
47
|
+
- lib/abstract_graph/composition/unique_name_collection/add.rb
|
48
|
+
- lib/abstract_graph/composition/unique_name_collection/delete.rb
|
49
|
+
- lib/abstract_graph/composition/unique_name_collection/dup.rb
|
50
|
+
- lib/abstract_graph/composition/unique_name_collection/each.rb
|
51
|
+
- lib/abstract_graph/composition/unique_name_collection/find.rb
|
52
|
+
- lib/abstract_graph/composition/unique_name_collection/initialize.rb
|
53
|
+
- lib/abstract_graph/composition/unique_name_collection/link.rb
|
54
|
+
- lib/abstract_graph/composition/unique_name_collection/method_missing.rb
|
55
|
+
- lib/abstract_graph/composition/unique_name_collection/rename.rb
|
56
|
+
- lib/abstract_graph/composition/unique_name_collection/ticket.rb
|
57
|
+
- lib/abstract_graph/composition/unique_name_collection/ticket/get.rb
|
58
|
+
- lib/abstract_graph/composition/unique_name_collection/ticket/initialize.rb
|
59
|
+
- lib/abstract_graph/composition/unique_name_collection/ticket/set.rb
|
54
60
|
- lib/abstract_graph/composition/vertex.rb
|
55
|
-
- lib/abstract_graph/composition/vertex/delete.rb
|
56
61
|
- lib/abstract_graph/composition/vertex/initialize.rb
|
57
62
|
- lib/abstract_graph/graph.rb
|
58
63
|
- lib/abstract_graph/graph/add_edge.rb
|
@@ -60,6 +65,7 @@ files:
|
|
60
65
|
- lib/abstract_graph/graph/adjacency_list.rb
|
61
66
|
- lib/abstract_graph/graph/change_edge_name.rb
|
62
67
|
- lib/abstract_graph/graph/change_vertex_name.rb
|
68
|
+
- lib/abstract_graph/graph/connected.rb
|
63
69
|
- lib/abstract_graph/graph/delete_edge.rb
|
64
70
|
- lib/abstract_graph/graph/delete_vertex.rb
|
65
71
|
- lib/abstract_graph/graph/dup.rb
|
@@ -82,14 +88,15 @@ files:
|
|
82
88
|
- spec/abstract_graph/composition/edge/name_spec.rb
|
83
89
|
- spec/abstract_graph/composition/edge/vertices_spec.rb
|
84
90
|
- spec/abstract_graph/composition/edge_spec.rb
|
85
|
-
- spec/abstract_graph/composition/
|
86
|
-
- spec/abstract_graph/composition/
|
87
|
-
- spec/abstract_graph/composition/
|
88
|
-
- spec/abstract_graph/composition/
|
89
|
-
- spec/abstract_graph/composition/
|
90
|
-
- spec/abstract_graph/composition/
|
91
|
-
- spec/abstract_graph/composition/
|
92
|
-
- spec/abstract_graph/composition/
|
91
|
+
- spec/abstract_graph/composition/unique_name_collection/add_spec.rb
|
92
|
+
- spec/abstract_graph/composition/unique_name_collection/dup_spec.rb
|
93
|
+
- spec/abstract_graph/composition/unique_name_collection/each_spec.rb
|
94
|
+
- spec/abstract_graph/composition/unique_name_collection/find_spec.rb
|
95
|
+
- spec/abstract_graph/composition/unique_name_collection/initialize_spec.rb
|
96
|
+
- spec/abstract_graph/composition/unique_name_collection/link_spec.rb
|
97
|
+
- spec/abstract_graph/composition/unique_name_collection/method_missing_spec.rb
|
98
|
+
- spec/abstract_graph/composition/unique_name_collection/rename_spec.rb
|
99
|
+
- spec/abstract_graph/composition/unique_name_collection_spec.rb
|
93
100
|
- spec/abstract_graph/composition/vertex/initialize_spec.rb
|
94
101
|
- spec/abstract_graph/composition/vertex/name_spec.rb
|
95
102
|
- spec/abstract_graph/composition/vertex/value_spec.rb
|
@@ -99,6 +106,7 @@ files:
|
|
99
106
|
- spec/abstract_graph/graph/adjacency_list_spec.rb
|
100
107
|
- spec/abstract_graph/graph/change_edge_name_spec.rb
|
101
108
|
- spec/abstract_graph/graph/change_vertex_name_spec.rb
|
109
|
+
- spec/abstract_graph/graph/connected_spec.rb
|
102
110
|
- spec/abstract_graph/graph/delete_edge_spec.rb
|
103
111
|
- spec/abstract_graph/graph/delete_vertex_spec.rb
|
104
112
|
- spec/abstract_graph/graph/dup_spec.rb
|
@@ -118,6 +126,9 @@ files:
|
|
118
126
|
- spec/abstract_graph_spec.rb
|
119
127
|
- spec/dummy_helper.rb
|
120
128
|
- spec/spec_helper.rb
|
129
|
+
- tasks/benchmark.rb
|
130
|
+
- tasks/create_method.rb
|
131
|
+
- tasks/list_methods.rb
|
121
132
|
homepage: https://github.com/D4L/abstractGraph
|
122
133
|
licenses:
|
123
134
|
- MIT
|
@@ -128,17 +139,17 @@ require_paths:
|
|
128
139
|
- lib
|
129
140
|
required_ruby_version: !ruby/object:Gem::Requirement
|
130
141
|
requirements:
|
131
|
-
- - '>='
|
142
|
+
- - ! '>='
|
132
143
|
- !ruby/object:Gem::Version
|
133
144
|
version: '0'
|
134
145
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
135
146
|
requirements:
|
136
|
-
- - '>='
|
147
|
+
- - ! '>='
|
137
148
|
- !ruby/object:Gem::Version
|
138
149
|
version: '0'
|
139
150
|
requirements: []
|
140
151
|
rubyforge_project:
|
141
|
-
rubygems_version: 2.0
|
152
|
+
rubygems_version: 2.2.0
|
142
153
|
signing_key:
|
143
154
|
specification_version: 4
|
144
155
|
summary: Mathmatical graph analysis software.
|
@@ -148,14 +159,15 @@ test_files:
|
|
148
159
|
- spec/abstract_graph/composition/edge/name_spec.rb
|
149
160
|
- spec/abstract_graph/composition/edge/vertices_spec.rb
|
150
161
|
- spec/abstract_graph/composition/edge_spec.rb
|
151
|
-
- spec/abstract_graph/composition/
|
152
|
-
- spec/abstract_graph/composition/
|
153
|
-
- spec/abstract_graph/composition/
|
154
|
-
- spec/abstract_graph/composition/
|
155
|
-
- spec/abstract_graph/composition/
|
156
|
-
- spec/abstract_graph/composition/
|
157
|
-
- spec/abstract_graph/composition/
|
158
|
-
- spec/abstract_graph/composition/
|
162
|
+
- spec/abstract_graph/composition/unique_name_collection/add_spec.rb
|
163
|
+
- spec/abstract_graph/composition/unique_name_collection/dup_spec.rb
|
164
|
+
- spec/abstract_graph/composition/unique_name_collection/each_spec.rb
|
165
|
+
- spec/abstract_graph/composition/unique_name_collection/find_spec.rb
|
166
|
+
- spec/abstract_graph/composition/unique_name_collection/initialize_spec.rb
|
167
|
+
- spec/abstract_graph/composition/unique_name_collection/link_spec.rb
|
168
|
+
- spec/abstract_graph/composition/unique_name_collection/method_missing_spec.rb
|
169
|
+
- spec/abstract_graph/composition/unique_name_collection/rename_spec.rb
|
170
|
+
- spec/abstract_graph/composition/unique_name_collection_spec.rb
|
159
171
|
- spec/abstract_graph/composition/vertex/initialize_spec.rb
|
160
172
|
- spec/abstract_graph/composition/vertex/name_spec.rb
|
161
173
|
- spec/abstract_graph/composition/vertex/value_spec.rb
|
@@ -165,6 +177,7 @@ test_files:
|
|
165
177
|
- spec/abstract_graph/graph/adjacency_list_spec.rb
|
166
178
|
- spec/abstract_graph/graph/change_edge_name_spec.rb
|
167
179
|
- spec/abstract_graph/graph/change_vertex_name_spec.rb
|
180
|
+
- spec/abstract_graph/graph/connected_spec.rb
|
168
181
|
- spec/abstract_graph/graph/delete_edge_spec.rb
|
169
182
|
- spec/abstract_graph/graph/delete_vertex_spec.rb
|
170
183
|
- spec/abstract_graph/graph/dup_spec.rb
|